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  .
[{"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.


[{"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}]
Title: Re: Classic Monitor using Pi and Node-Red
Post by: ClassicCrazy on January 31, 2021, 05:48:58 PM
Quote from: 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.


[{"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}]


I just got this to work Matt - thanks !
Title: Re: Classic Monitor using Pi and Node-Red
Post by: mcsarge on February 12, 2021, 11:03:37 AM
I forgot we did this!
Title: Re: Classic Monitor using Pi and Node-Red
Post by: ClassicCrazy on February 12, 2021, 12:59:34 PM
Quote from: mcsarge on February 12, 2021, 11:03:37 AM
I forgot we did this!
well you did it !
I haven't gotten too much farther with it so far.
I was trying to make it so it would wake up the Classic by sending wake command but of course I don't really understand exactly what I am doing or how it works. I just tried to copy what Graham was doing with the mqqt.fx  app when it sent wakeup command. It doesn't get data until I turn on the Android Classic Monitoring app and then all the data comes - because that wakes up the classic I guess.
So far my conclusion is that it is a lot easier to use the Android Classic Monitoring app because Graham has done such a nice job with it and worked out all the bugs.
The reason I would want to use Node Red instead is to be able to control some things that the Classic can't .

Larry
Title: Re: Classic Monitor using Pi and Node-Red
Post by: mcsarge on February 13, 2021, 09:09:24 AM
Larry,

The wake command is pretty easy, and if you talk to Graham, he can tell you exactly what to send. I was able to get it to work I remember now, but really I did not want the super fast data since I was looking at it over a long period of time.

Matt
Title: Re: Classic Monitor using Pi and Node-Red
Post by: Fort Wisers on February 16, 2021, 11:58:23 AM
Interesting!
Keep up the good work.....
Title: Re: Classic Monitor using Pi and Node-Red
Post by: Jose Miranda on November 27, 2021, 07:12:25 PM
It's been a while since the last update to this thread, but I figured this could be of help. I have been working on Node-Red for some years now to get data from my Classic 150 and Schneider SW4048. So far it has been working fine (after some fixes during these days). However, I am using MODBUS to get the data, not MQTT. I dont know which method is better... Here is my project, in case you are interested.

https://github.com/joseamirandavelez/FlowsDashboardsClassic

I am using Grafana to display the data. The Grafana dashboard is there too.
Title: Re: Classic Monitor using Pi and Node-Red
Post by: ClassicCrazy on November 27, 2021, 11:25:48 PM
Quote from: Jose Miranda on November 27, 2021, 07:12:25 PM
It's been a while since the last update to this thread, but I figured this could be of help. I have been working on Node-Red for some years now to get data from my Classic 150 and Schneider SW4048. So far it has been working fine (after some fixes during these days). However, I am using MODBUS to get the data, not MQTT. I dont know which method is better... Here is my project, in case you are interested.

https://github.com/joseamirandavelez/FlowsDashboardsClassic

I am using Grafana to display the data. The Grafana dashboard is there too.

Thanks for sharing this Jose .  I will give it a try one of these days.  I haven't tinkered with any node red for awhile so it will be fun to figure it out again.

Larry
Title: Re: Classic Monitor using Pi and Node-Red
Post by: Jose Miranda on November 28, 2021, 09:49:16 PM
I also stopped playing with Node-Red for a while. I actually found yesterday that I am having problems with this flow. It works the first time it runs, but then it seems the connection to the Classic is never dropped and it fails to connect a second time...
Title: Re: Classic Monitor using Pi and Node-Red
Post by: Wizbandit on November 30, 2021, 07:51:12 AM
I am working on our DIY COMBOX project to monitor up to 4 Classics. Using Grafana as well. The brain is an Orange Pi Zero...
Title: Re: Classic Monitor using Pi and Node-Red
Post by: Jose Miranda on November 30, 2021, 08:01:24 AM
Quote from: Wizbandit on November 30, 2021, 07:51:12 AM
I am working on our DIY COMBOX project to monitor up to 4 Classics. Using Grafana as well. The brain is an Orange Pi Zero...

Are you using Node-Red? If yes, can you please share your setup? I'm having problems reconnecting to the Classic after the first data stream comes.
Title: Re: Classic Monitor using Pi and Node-Red
Post by: Wizbandit on November 30, 2021, 08:05:55 AM
Quote
Are you using Node-Red? If yes, can you please share your setup? I'm having problems reconnecting to the Classic after the first data stream comes.

No, Python.
Title: Re: Classic Monitor using Pi and Node-Red
Post by: ClassicCrazy on November 30, 2021, 05:56:36 PM
Quote from: Jose Miranda on November 28, 2021, 09:49:16 PM
I also stopped playing with Node-Red for a while. I actually found yesterday that I am having problems with this flow. It works the first time it runs, but then it seems the connection to the Classic is never dropped and it fails to connect a second time...

You probably need to put a wake up message in your node red . I had asked Graham about the same thing  in one of these threads  and he told me how to do it.
I will see if I can find it.

Here it is from Graham http://midniteftp.com/forum/index.php?topic=4817.msg48337#msg48337
"SNOOZE_PUBLISH_RATE should be around 300 seconds since, in this mode, it will disconnect from modbus after every read to allow the local app to get in and access the classic.
If you want it to stay awake you can send a MQTT cmnd with a json payload containing "stayAwake"

ClassicMQTT/MNC250CP/cmnd {"stayAwake"}"

I think though that grabbing the data from Graham and Mats MQTT project is better way to go since you can have other things using the same data instead of just one.
And the way their MQTT is designed , if you want to connect up using the Local Status app , there is a pause so that the Local Status can butt in without having to shut off the one that is grabbing MQTT . One the Local Status app is shut down the MQTT connects back up and resumes.

Larry
Title: Re: Classic Monitor using Pi and Node-Red
Post by: ClassicCrazy on November 30, 2021, 05:58:14 PM
Quote from: Wizbandit on November 30, 2021, 07:51:12 AM
I am working on our DIY COMBOX project to monitor up to 4 Classics. Using Grafana as well. The brain is an Orange Pi Zero...

Is this an open source project that you can share ?

Larry