Author Topic: Classic Monitor using Pi and Node-Red  (Read 241 times)

ClassicCrazy

  • Hero Member
  • *****
  • Posts: 2582
Classic Monitor using Pi and Node-Red
« 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
« Last Edit: March 25, 2020, 04:40:58 PM by ClassicCrazy »
system one
Classic 150 , 5s4p  Kyocera 135watt , 12s Soneil 2v 540amp lead crystal for 24v pack , Outback 3524 inverter
system two
Classic 150 ,5s 135 watt Kyocero , 16s Calb 100AH LiFePO4 , Outback VFX 3648 inverter
system three
Midnite KID MPPT 24 DC in to  12 volt AGM batterie

mcsarge

  • Jr. Member
  • **
  • Posts: 98
Re: Classic Monitor using Pi and Node-Red
« Reply #1 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
« Last Edit: March 26, 2020, 10:15:12 AM by mcsarge »
Off Grid Island in Ontario Canada (Beaverstone Bay)
Primary: Classic 150 + wbjr; 3s2p HES 270watt
Winter: SolarBoost 50 MPPT (into wbjr); 2 x Sharp NE-80EJEA 80watt
Pack: 4s4p US2200 FLA 6V for 24V pack
Inverter/Charger: Trace DR2424
Call Sign: KG4EUF

ClassicCrazy

  • Hero Member
  • *****
  • Posts: 2582
Re: Classic Monitor using Pi and Node-Red
« Reply #2 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
system one
Classic 150 , 5s4p  Kyocera 135watt , 12s Soneil 2v 540amp lead crystal for 24v pack , Outback 3524 inverter
system two
Classic 150 ,5s 135 watt Kyocero , 16s Calb 100AH LiFePO4 , Outback VFX 3648 inverter
system three
Midnite KID MPPT 24 DC in to  12 volt AGM batterie

mcsarge

  • Jr. Member
  • **
  • Posts: 98
Re: Classic Monitor using Pi and Node-Red
« Reply #3 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
Off Grid Island in Ontario Canada (Beaverstone Bay)
Primary: Classic 150 + wbjr; 3s2p HES 270watt
Winter: SolarBoost 50 MPPT (into wbjr); 2 x Sharp NE-80EJEA 80watt
Pack: 4s4p US2200 FLA 6V for 24V pack
Inverter/Charger: Trace DR2424
Call Sign: KG4EUF

mcsarge

  • Jr. Member
  • **
  • Posts: 98
Re: Classic Monitor using Pi and Node-Red
« Reply #4 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}]
« Last Edit: March 26, 2020, 12:11:30 PM by mcsarge »
Off Grid Island in Ontario Canada (Beaverstone Bay)
Primary: Classic 150 + wbjr; 3s2p HES 270watt
Winter: SolarBoost 50 MPPT (into wbjr); 2 x Sharp NE-80EJEA 80watt
Pack: 4s4p US2200 FLA 6V for 24V pack
Inverter/Charger: Trace DR2424
Call Sign: KG4EUF