A Forum run by Enthusiasts of MidNite Solar

The Open Source software/hardware corner => Node Red => Topic started by: ClassicCrazy on March 25, 2020, 04:38:08 PM

Title: Classic Monitor using Pi and Node-Red
Post by: ClassicCrazy on March 25, 2020, 04:38:08 PM
We were talking about this on other opensource forum topics ( see http://midniteftp.com/forum/index.php?topic=3875.30 and   http://midniteftp.com/forum/index.php?topic=4817.0 )
I am bringing this discussion back here to Node-Red section because I got the Pi MQTT and Android MQTT monitoring working.
Now with Matt's help I have been trying to  use the same Pi that is publishing on MQTT . I had Node Red running on my windows 10 computer but no luck getting the flow Matt shared to display anything.
Then I installed Node Red on the Pi using Docker and got Matts flow installed in there but no data showing in the debug or UI graphs.
The source MQTT in says it is connected.
This is the flow I am using that Matt created . The only thing I changed was to bring the MQTT in on the same flow instead of having it split across two flows like he had it originally ( don't think that should make a difference)
If anyone wants to give it a try  here it is the flow to import  .
Code: [Select]
[{"id":"a73ad516.854ac8","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"15949017.f3b9c","type":"tab","label":"Classic Data Getter","disabled":true,"info":"This flow retrieves data from the Midnite Classic \nSolar Controller using Modbus over TCPIP.  \nTakes the raw data and formats it for use with labels.\nJSON for convenience. !\n\nIt then transfers this data to the Dashboard Flow "},{"id":"f97fac82.098ea","type":"tab","label":"Classic Dashboard Flow","disabled":false,"info":"This flow receieves it's data from the Data Getter\nand presents a basic dashboard view.\n\n"},{"id":"954e68f3.b4f5e8","type":"ui_group","z":"","name":"Current Status","tab":"3e54fee5.c21d42","order":1,"disp":true,"width":"22","collapse":false},{"id":"d99a896b.7d5bb8","type":"ui_group","z":"","name":"Power Generation","tab":"3e54fee5.c21d42","order":3,"disp":true,"width":"22","collapse":false},{"id":"3e54fee5.c21d42","type":"ui_tab","z":"","name":"Home","icon":"dashboard","order":1},{"id":"e199800c.cd6f5","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#0094CE","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"},"themeState":{"base-color":{"default":"#0094CE","value":"#0094CE","edited":false},"page-titlebar-backgroundColor":{"value":"#0094CE","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#ffffff","edited":false},"group-textColor":{"value":"#1bbfff","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#0094ce","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey"}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","lockMenu":"false","allowTempTheme":"true","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"92c91ae.b9d49e8","type":"mqtt-broker","z":"","name":"Island","broker":"127.0.0.1","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"446f8d5a.7161b4","type":"ui_group","z":"","name":"Temperatures","tab":"3e54fee5.c21d42","order":4,"disp":true,"width":"22","collapse":true},{"id":"39f332ea.261e1e","type":"ui_group","z":"","name":"Power","tab":"3e54fee5.c21d42","order":5,"disp":true,"width":"22","collapse":true},{"id":"f090db1a.2823f8","type":"ui_group","z":"","name":"Time","tab":"3e54fee5.c21d42","order":2,"disp":false,"width":"22","collapse":false},{"id":"fe7b8bb8.690598","type":"mqtt-broker","z":"","name":"","broker":"192.168.3.29","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"777a1b7c.bbb1e4","type":"debug","z":"15949017.f3b9c","name":"RAW payload","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":540,"y":300,"wires":[]},{"id":"15c4ef25.471461","type":"link out","z":"15949017.f3b9c","name":"","links":["d5f37c08.6b4"],"x":775,"y":220,"wires":[]},{"id":"a6c62d2.9ae33d","type":"ui_gauge","z":"f97fac82.098ea","name":"","group":"954e68f3.b4f5e8","order":5,"width":"4","height":"4","gtype":"gage","title":"PV Current","label":"Amps","format":"{{payload.PVCurrent}}","min":"0","max":"1500","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":970,"y":200,"wires":[]},{"id":"9715c413.831b68","type":"ui_chart","z":"f97fac82.098ea","name":"","group":"d99a896b.7d5bb8","order":4,"width":"5","height":"5","label":"PV Current (24hrs)","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"linear","nodata":"No Data","dot":false,"ymin":"0","ymax":"30","removeOlder":"24","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":true,"outputs":1,"x":670,"y":320,"wires":[[]]},{"id":"b0735abd.68ef38","type":"json","z":"f97fac82.098ea","name":"","property":"payload","action":"obj","pretty":false,"x":90,"y":120,"wires":[["50d18d02.c85c94","a6c62d2.9ae33d","d5fd83e5.60202","1e3d2f37.20fc41","77f43a72.b98a24","7b412a25.94d604","9fc8c327.5be1a","2af2859d.cb4b6a","a91f0c38.a1011","b717912.2df157","14e8ad6d.f82a33","a3839b78.90fdf8","171a7541.cb171b","699ce93a.cd9468","64355f0b.6e004","6d32fab1.c735c4","52a1819.564858","8ce07833.3ecff8"]]},{"id":"d5fd83e5.60202","type":"ui_gauge","z":"f97fac82.098ea","name":"","group":"954e68f3.b4f5e8","order":2,"width":"4","height":"4","gtype":"gage","title":"Battery Volts","label":"Volts","format":"{{payload.BatVoltage}}","min":"23.00","max":"32.00","colors":["#ff0000","#e6e600","#00b700"],"seg1":"24.7","seg2":"24.7","x":610,"y":200,"wires":[]},{"id":"42e0ec4.3d9cc14","type":"ui_chart","z":"f97fac82.098ea","name":"","group":"d99a896b.7d5bb8","order":3,"width":"5","height":"5","label":"PV Voltage (24hrs)","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"linear","nodata":"No Data","dot":false,"ymin":"0","ymax":"150","removeOlder":"24","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":true,"outputs":1,"x":670,"y":360,"wires":[[]]},{"id":"50d18d02.c85c94","type":"debug","z":"f97fac82.098ea","name":"JSON converted (msg.paylod)","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","x":250,"y":40,"wires":[]},{"id":"1e3d2f37.20fc41","type":"ui_gauge","z":"f97fac82.098ea","name":"","group":"954e68f3.b4f5e8","order":4,"width":"4","height":"4","gtype":"gage","title":"Input Volts","label":"Volts","format":"{{payload.PVVoltage}}","min":"0","max":"200","colors":["#ff0000","#e6e600","#00b700"],"seg1":"50","seg2":"50","x":790,"y":200,"wires":[]},{"id":"77f43a72.b98a24","type":"ui_text","z":"f97fac82.098ea","group":"39f332ea.261e1e","order":4,"width":"5","height":"1","name":"","label":"Lifetime kWh : ","format":"{{msg.payload.TotalAmpHours}}","layout":"row-left","x":720,"y":20,"wires":[]},{"id":"7b412a25.94d604","type":"ui_text","z":"f97fac82.098ea","group":"39f332ea.261e1e","order":3,"width":"5","height":"1","name":"","label":"Lifetime Ahrs : ","format":"{{msg.payload.PositiveAmpHours}}","layout":"row-left","x":720,"y":60,"wires":[]},{"id":"9fc8c327.5be1a","type":"change","z":"f97fac82.098ea","name":"In_PV_Amps payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.PVCurrent","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":320,"wires":[["9715c413.831b68"]]},{"id":"2af2859d.cb4b6a","type":"change","z":"f97fac82.098ea","name":"In_PV_Volts payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.PVVoltage","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":360,"wires":[["42e0ec4.3d9cc14"]]},{"id":"a91f0c38.a1011","type":"ui_text","z":"f97fac82.098ea","group":"39f332ea.261e1e","order":1,"width":"5","height":"1","name":"","label":"Net AHrs : ","format":"{{msg.payload.NetAmpHours}}","layout":"row-left","x":710,"y":140,"wires":[]},{"id":"b717912.2df157","type":"ui_text","z":"f97fac82.098ea","group":"39f332ea.261e1e","order":2,"width":"5","height":"1","name":"","label":"kWhrs Today : ","format":"{{msg.payload.EnergyToday}}","layout":"row-left","x":720,"y":100,"wires":[]},{"id":"14e8ad6d.f82a33","type":"ui_text","z":"f97fac82.098ea","group":"446f8d5a.7161b4","order":1,"width":"5","height":"1","name":"","label":"Battery Temp : ","format":"{{msg.payload.BatTemperature}} C","layout":"row-left","x":980,"y":20,"wires":[]},{"id":"a3839b78.90fdf8","type":"ui_text","z":"f97fac82.098ea","group":"446f8d5a.7161b4","order":3,"width":"5","height":"1","name":"","label":"FET Temp : ","format":"{{msg.payload.FETTemperature}} C","layout":"row-left","x":970,"y":60,"wires":[]},{"id":"171a7541.cb171b","type":"ui_text","z":"f97fac82.098ea","group":"446f8d5a.7161b4","order":2,"width":"5","height":"1","name":"","label":"Pcb Temp : ","format":"{{msg.payload.PCBTemperature}} C","layout":"row-left","x":970,"y":100,"wires":[]},{"id":"e39d7eae.25f83","type":"ui_chart","z":"f97fac82.098ea","name":"","group":"d99a896b.7d5bb8","order":2,"width":"5","height":"5","label":"Battery Currrent (24hrs)","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"bezier","nodata":"No Data","dot":false,"ymin":"-70","ymax":"70","removeOlder":"24","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":true,"outputs":1,"x":690,"y":400,"wires":[[]]},{"id":"699ce93a.cd9468","type":"change","z":"f97fac82.098ea","name":"WzBJr payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.WhizbangBatCurrent","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":400,"wires":[["e39d7eae.25f83"]]},{"id":"b0c1be75.d0183","type":"comment","z":"f97fac82.098ea","name":"Dashboard Flow Read Me !","info":"This is a simple \"SnapShot\" Dashboard for Node-Red\nNothing too fancy but a start...\n\nData is received from the Data Getter using an InFlow [NODE]\n- json cleanup goes on which has a debug [NODE].\n- date & time are triggered by the input activity for display using system time.\n\nBattery Volts, Input Volts, Input Watts guages retrieve their data directly.\nThe Text Nodes also retrieve their data directly from the input.\n\nThe graphs must have the \"msg\" tweaked as they only take a simple payload.\nThis change is accomplished in front of them, taking data from the input.","x":520,"y":520,"wires":[]},{"id":"519d8b12.2fc424","type":"mqtt in","z":"15949017.f3b9c","name":"Pi3B+ ","topic":"ClassicMQTT","qos":"2","datatype":"auto","broker":"fe7b8bb8.690598","x":250,"y":160,"wires":[["777a1b7c.bbb1e4","15c4ef25.471461"]]},{"id":"64355f0b.6e004","type":"ui_gauge","z":"f97fac82.098ea","name":"","group":"954e68f3.b4f5e8","order":1,"width":"4","height":"4","gtype":"gage","title":"SOC","label":"% Charge","format":"{{payload.SOC}}","min":"0","max":"100","colors":["#ff0000","#e6e600","#00b700"],"seg1":"50","seg2":"70","x":770,"y":240,"wires":[]},{"id":"6d32fab1.c735c4","type":"change","z":"f97fac82.098ea","name":"BatVoltage payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.BatVoltage","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":440,"wires":[["fc9ae6f3.18f3a8"]]},{"id":"52a1819.564858","type":"change","z":"f97fac82.098ea","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.timestamp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":240,"y":540,"wires":[["9c75f1e9.3dd8a"]]},{"id":"9c75f1e9.3dd8a","type":"moment","z":"f97fac82.098ea","name":"","topic":"","input":"","inputType":"msg","inTz":"America/New_York","adjAmount":0,"adjType":"days","adjDir":"add","format":"ddd DD MMM HH:mm:ss","locale":"en_US","output":"","outputType":"msg","outTz":"America/New_York","x":520,"y":580,"wires":[["9f01b22.558c95"]]},{"id":"9f01b22.558c95","type":"ui_text","z":"f97fac82.098ea","group":"f090db1a.2823f8","order":1,"width":"5","height":"1","name":"","label":"Time","format":"{{msg.payload}}","layout":"row-left","x":810,"y":600,"wires":[]},{"id":"8ce07833.3ecff8","type":"ui_gauge","z":"f97fac82.098ea","name":"","group":"954e68f3.b4f5e8","order":3,"width":"4","height":"4","gtype":"gage","title":"Battery Current","label":"Amps","format":"{{payload.WhizbangBatCurrent}}","min":"-100","max":"100","colors":["#ff0000","#e6e600","#00b700"],"seg1":"-50","seg2":"50","x":620,"y":260,"wires":[]},{"id":"fc9ae6f3.18f3a8","type":"ui_chart","z":"f97fac82.098ea","name":"","group":"d99a896b.7d5bb8","order":1,"width":"5","height":"5","label":"Battery Voltage(24hrs)","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"bezier","nodata":"No Data","dot":false,"ymin":"23","ymax":"32","removeOlder":"24","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":true,"outputs":1,"x":680,"y":440,"wires":[[]]},{"id":"519f17cb.196fb8","type":"mqtt in","z":"f97fac82.098ea","name":"Pi3B+ ","topic":"ClassicMQTT","qos":"2","datatype":"auto","broker":"fe7b8bb8.690598","x":50,"y":200,"wires":[["b0735abd.68ef38"]]}]
Larry
Title: Re: Classic Monitor using Pi and Node-Red
Post by: mcsarge on March 26, 2020, 10:13:28 AM
Larry,

I found you issue, The topic you subscribe to must look look like: "ClassicMQTT/classic/stat/readings/#" replacing "classic" with the name you used for your unit.

And the setup of the MQTT server is done by clicking on the pen logo. Remember to set the user and password on the security tab of the server edit screen.

Check out the pics

Matt
Title: Re: Classic Monitor using Pi and Node-Red
Post by: ClassicCrazy on March 26, 2020, 11:56:23 AM
Matt ,
I thought I needed to use the exact same Root Topic that I initually had put into the set up for the Android
I had used the defaults and I put the exact same MQTT user and password  that I have  in my android phone which works.
I am using Mosquitto on the local network - have not been going to an outside server.  That is why I had the IP address of my raspberry pi and the port number there ( same as I use to subscribe on the android).
The thing is that in Node Red it says it is connected on MQTT but I never see any data out of it.
Seems like I have something not set up right or something is blocking the data.
I will try setting it up later through an external MQTT and see if it works that way.
I have tried all kinds of different settings editing the MQTT topic etc.
Thanks for the help .
Larry
Title: Re: Classic Monitor using Pi and Node-Red
Post by: mcsarge on March 26, 2020, 12:02:38 PM
Larry,

Send me what you are starting the python program with and I will configure it for you.

For the subscription, you have to give the whole path to the data, you are only giving it the tippy top. In the program, we add all that ending part on to properly set it apart from other data.

Send it to matthew * c* sargent at gmail * net

Matt
Title: Re: Classic Monitor using Pi and Node-Red
Post by: mcsarge on March 26, 2020, 12:09:16 PM
Larry,

Try importing this, it may work. Look at the topic and adjust as necessary for your settings - the only thing you would need to change is the "classic" to whatever name you used to start the classic_mqtt.py (the --classic_name" setting. You may have to go in and set the username and password to ClassicClient, ClassicClient123, I think the import/export strips the username/password.

Code: [Select]
[{"id":"3178c654.69190a","type":"tab","label":"Classic Dashboard Flow","disabled":false,"info":"This flow receieves it's data from the Data Getter\nand presents a basic dashboard view.\n\n"},{"id":"cc03171d.4c9128","type":"ui_gauge","z":"3178c654.69190a","name":"","group":"c430e503.23e648","order":5,"width":"4","height":"4","gtype":"gage","title":"PV Current","label":"Amps","format":"{{payload.PVCurrent}}","min":"0","max":"1500","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":970,"y":200,"wires":[]},{"id":"9c0a575d.51e478","type":"ui_chart","z":"3178c654.69190a","name":"","group":"77627704.dcfb08","order":4,"width":"5","height":"5","label":"PV Current (24hrs)","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"linear","nodata":"No Data","dot":false,"ymin":"0","ymax":"30","removeOlder":"24","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":true,"outputs":1,"x":670,"y":320,"wires":[[]]},{"id":"fa6c4754.cff218","type":"json","z":"3178c654.69190a","name":"","property":"payload","action":"obj","pretty":false,"x":90,"y":120,"wires":[["5f287576.0f7abc","cc03171d.4c9128","aff179e4.9d4178","104f3c0b.0288f4","336a06f8.e7665a","6433748e.c88c4c","65ee3066.08e51","b8f23372.a5fca","b2f718e0.23f3b8","b16daf77.1f963","9ecf253b.0c57b8","b242053c.0eeef8","df40e7e7.bc6228","69ff6695.8897e8","92908b4f.ce57a8","d3a80ebb.6c40d","ad2b73d8.7a819","dcc3fe43.0039e"]]},{"id":"aff179e4.9d4178","type":"ui_gauge","z":"3178c654.69190a","name":"","group":"c430e503.23e648","order":2,"width":"4","height":"4","gtype":"gage","title":"Battery Volts","label":"Volts","format":"{{payload.BatVoltage}}","min":"23.00","max":"32.00","colors":["#ff0000","#e6e600","#00b700"],"seg1":"24.7","seg2":"24.7","x":610,"y":200,"wires":[]},{"id":"4a6e2fd8.b0ff3","type":"ui_chart","z":"3178c654.69190a","name":"","group":"77627704.dcfb08","order":3,"width":"5","height":"5","label":"PV Voltage (24hrs)","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"linear","nodata":"No Data","dot":false,"ymin":"0","ymax":"150","removeOlder":"24","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":true,"outputs":1,"x":670,"y":360,"wires":[[]]},{"id":"5f287576.0f7abc","type":"debug","z":"3178c654.69190a","name":"JSON converted (msg.paylod)","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","x":250,"y":40,"wires":[]},{"id":"104f3c0b.0288f4","type":"ui_gauge","z":"3178c654.69190a","name":"","group":"c430e503.23e648","order":4,"width":"4","height":"4","gtype":"gage","title":"Input Volts","label":"Volts","format":"{{payload.PVVoltage}}","min":"0","max":"200","colors":["#ff0000","#e6e600","#00b700"],"seg1":"50","seg2":"50","x":790,"y":200,"wires":[]},{"id":"336a06f8.e7665a","type":"ui_text","z":"3178c654.69190a","group":"f992cf68.66ae9","order":4,"width":"5","height":"1","name":"","label":"Lifetime kWh : ","format":"{{msg.payload.TotalAmpHours}}","layout":"row-left","x":720,"y":20,"wires":[]},{"id":"6433748e.c88c4c","type":"ui_text","z":"3178c654.69190a","group":"f992cf68.66ae9","order":3,"width":"5","height":"1","name":"","label":"Lifetime Ahrs : ","format":"{{msg.payload.PositiveAmpHours}}","layout":"row-left","x":720,"y":60,"wires":[]},{"id":"65ee3066.08e51","type":"change","z":"3178c654.69190a","name":"In_PV_Amps payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.PVCurrent","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":320,"wires":[["9c0a575d.51e478"]]},{"id":"b8f23372.a5fca","type":"change","z":"3178c654.69190a","name":"In_PV_Volts payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.PVVoltage","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":360,"wires":[["4a6e2fd8.b0ff3"]]},{"id":"b2f718e0.23f3b8","type":"ui_text","z":"3178c654.69190a","group":"f992cf68.66ae9","order":1,"width":"5","height":"1","name":"","label":"Net AHrs : ","format":"{{msg.payload.NetAmpHours}}","layout":"row-left","x":710,"y":140,"wires":[]},{"id":"b16daf77.1f963","type":"ui_text","z":"3178c654.69190a","group":"f992cf68.66ae9","order":2,"width":"5","height":"1","name":"","label":"kWhrs Today : ","format":"{{msg.payload.EnergyToday}}","layout":"row-left","x":720,"y":100,"wires":[]},{"id":"9ecf253b.0c57b8","type":"ui_text","z":"3178c654.69190a","group":"7c791a2c.d1cde4","order":1,"width":"5","height":"1","name":"","label":"Battery Temp : ","format":"{{msg.payload.BatTemperature}} C","layout":"row-left","x":980,"y":20,"wires":[]},{"id":"b242053c.0eeef8","type":"ui_text","z":"3178c654.69190a","group":"7c791a2c.d1cde4","order":3,"width":"5","height":"1","name":"","label":"FET Temp : ","format":"{{msg.payload.FETTemperature}} C","layout":"row-left","x":970,"y":60,"wires":[]},{"id":"df40e7e7.bc6228","type":"ui_text","z":"3178c654.69190a","group":"7c791a2c.d1cde4","order":2,"width":"5","height":"1","name":"","label":"Pcb Temp : ","format":"{{msg.payload.PCBTemperature}} C","layout":"row-left","x":970,"y":100,"wires":[]},{"id":"fcc6db23.8b57b8","type":"ui_chart","z":"3178c654.69190a","name":"","group":"77627704.dcfb08","order":2,"width":"5","height":"5","label":"Battery Currrent (24hrs)","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"bezier","nodata":"No Data","dot":false,"ymin":"-70","ymax":"70","removeOlder":"24","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":true,"outputs":1,"x":690,"y":400,"wires":[[]]},{"id":"69ff6695.8897e8","type":"change","z":"3178c654.69190a","name":"WzBJr payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.WhizbangBatCurrent","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":400,"wires":[["fcc6db23.8b57b8"]]},{"id":"2987d37a.52c0bc","type":"comment","z":"3178c654.69190a","name":"Dashboard Flow Read Me !","info":"This is a simple \"SnapShot\" Dashboard for Node-Red\nNothing too fancy but a start...\n\nData is received from the Data Getter using an InFlow [NODE]\n- json cleanup goes on which has a debug [NODE].\n- date & time are triggered by the input activity for display using system time.\n\nBattery Volts, Input Volts, Input Watts guages retrieve their data directly.\nThe Text Nodes also retrieve their data directly from the input.\n\nThe graphs must have the \"msg\" tweaked as they only take a simple payload.\nThis change is accomplished in front of them, taking data from the input.","x":520,"y":520,"wires":[]},{"id":"92908b4f.ce57a8","type":"ui_gauge","z":"3178c654.69190a","name":"","group":"c430e503.23e648","order":1,"width":"4","height":"4","gtype":"gage","title":"SOC","label":"% Charge","format":"{{payload.SOC}}","min":"0","max":"100","colors":["#ff0000","#e6e600","#00b700"],"seg1":"50","seg2":"70","x":770,"y":240,"wires":[]},{"id":"d3a80ebb.6c40d","type":"change","z":"3178c654.69190a","name":"BatVoltage payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.BatVoltage","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":440,"wires":[["484c84f.b5a617c"]]},{"id":"ad2b73d8.7a819","type":"change","z":"3178c654.69190a","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.timestamp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":240,"y":540,"wires":[["2b7ccf9.666613"]]},{"id":"2b7ccf9.666613","type":"moment","z":"3178c654.69190a","name":"","topic":"","input":"","inputType":"msg","inTz":"America/New_York","adjAmount":0,"adjType":"days","adjDir":"add","format":"ddd DD MMM HH:mm:ss","locale":"en_US","output":"","outputType":"msg","outTz":"America/New_York","x":520,"y":580,"wires":[["ff1a32a1.0e9a6"]]},{"id":"ff1a32a1.0e9a6","type":"ui_text","z":"3178c654.69190a","group":"df76aeb5.5afbc","order":1,"width":"5","height":"1","name":"","label":"Time","format":"{{msg.payload}}","layout":"row-left","x":810,"y":600,"wires":[]},{"id":"dcc3fe43.0039e","type":"ui_gauge","z":"3178c654.69190a","name":"","group":"c430e503.23e648","order":3,"width":"4","height":"4","gtype":"gage","title":"Battery Current","label":"Amps","format":"{{payload.WhizbangBatCurrent}}","min":"-100","max":"100","colors":["#ff0000","#e6e600","#00b700"],"seg1":"-50","seg2":"50","x":620,"y":260,"wires":[]},{"id":"484c84f.b5a617c","type":"ui_chart","z":"3178c654.69190a","name":"","group":"77627704.dcfb08","order":1,"width":"5","height":"5","label":"Battery Voltage(24hrs)","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"bezier","nodata":"No Data","dot":false,"ymin":"23","ymax":"32","removeOlder":"24","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":true,"outputs":1,"x":680,"y":440,"wires":[[]]},{"id":"5482231a.36703c","type":"mqtt in","z":"3178c654.69190a","name":"Pi3B+ ","topic":"ClassicMQTT/classic/stat/readings/#","qos":"2","datatype":"auto","broker":"68d39474.524b4c","x":50,"y":200,"wires":[["fa6c4754.cff218"]]},{"id":"c430e503.23e648","type":"ui_group","z":"","name":"Current Status","tab":"f5a3cc8d.ec6aa","order":1,"disp":true,"width":"22","collapse":false},{"id":"77627704.dcfb08","type":"ui_group","z":"","name":"Power Generation","tab":"f5a3cc8d.ec6aa","order":3,"disp":true,"width":"22","collapse":false},{"id":"f992cf68.66ae9","type":"ui_group","z":"","name":"Power","tab":"f5a3cc8d.ec6aa","order":5,"disp":true,"width":"22","collapse":true},{"id":"7c791a2c.d1cde4","type":"ui_group","z":"","name":"Temperatures","tab":"f5a3cc8d.ec6aa","order":4,"disp":true,"width":"22","collapse":true},{"id":"df76aeb5.5afbc","type":"ui_group","z":"","name":"Time","tab":"f5a3cc8d.ec6aa","order":2,"disp":false,"width":"22","collapse":false},{"id":"68d39474.524b4c","type":"mqtt-broker","z":"","name":"LarryMoquitto","broker":"192.168.3.29","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"f5a3cc8d.ec6aa","type":"ui_tab","z":"","name":"Home","icon":"dashboard","order":1}]