Author Topic: Classic Monitoring with a raspberry pi  (Read 13348 times)

ClassicCrazy

  • Hero Member
  • *****
  • Posts: 2665
Re: Classic Monitoring with a raspberry pi
« Reply #30 on: June 06, 2019, 09:25:00 PM »
I asked Midnite if they would want to make a Node Red heading for forums here.
Will be interesting to see your project.
I get what you mean about being busy in the summer now !

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

ClassicCrazy

  • Hero Member
  • *****
  • Posts: 2665
Re: Classic Monitoring with a raspberry pi
« Reply #31 on: June 07, 2019, 09:55:20 AM »
This is a Raspberry Pi Forum so Node-Red falls under that IMO.   BUT that being said, Node-Red IS cross Platform and works on Windows too but I don't know about everything else, I do believe that InfluxDB is also Multi Platform but Grafana ?

I will likely start my own thread series as I like to document a things as I go along.   I'm doing "upgrades" again this evening as I got a new Big Case, Fan (don't like CPU @ 61C) and an RTC clock so it keeps time for itself.

Because of my setup here... having a separate PowerHouse 60 feet from Cabin and having my solar rack even farther away I have to organise a few things up...  I want to be able to run this 7/24 BUT I do not want to have the satellite (I'm remote Sat is my internet etc) which is a power pig, so it will likely be located in the powerhouse & attached to my battery bank through the 12V circuit I have running off it...  I'll just have to find an "adapter" that will step that down to 5V-3A and another for the Router which I think is 4.5V

So far I have my flow talking to the Classic but that needs serious lovin to clean it up and once I have that the way I want, then I'll dashboard it with Node-red.  I really don't see too many issues with the Classic itself and sure am hoping the folks @ MidNite are considering all of this with their new Inverter/Chargers (B17 ?) too. 

My biggest issue at this time, is with Samlex Inc !  Their Inverter has Modbus but they've never released the information on it and are not forthcoming with that.  They are discussing it at Corporate now because I presented a case scenario which would increase their profile in the RE Sector.  Ironically, they have RJ45 connectors but I do not believe they are Ethernet but rather some form of Serial so I'll have to get an engineering type to look at that... maybe I'll have to use an RS485 port or something... ugh....

New Node Red header was added on forums here
http://midniteftp.com/forum/index.php?board=73.0

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

ClayHadi

  • Newby
  • *
  • Posts: 1
Re: Classic Monitoring with a raspberry pi
« Reply #32 on: March 23, 2020, 01:38:06 PM »
Hi....the Arduino suggestions will probably work fine if you account for the voltage range that the Raspberry Pi can handle. I used input from relay output once in a car security system to tell when a remote commanded the doors to lock or unlock. That was years ago in the days before Arduino; I used a PIC16F84. I vaguely recall having to do some filtering in the analog domain to make it work, but I might be remembering it wrong. I'm a software developer, not an electrical engineer, so I always found the analog stuff more difficult. Still, I made it work reliably, so I don't think you're bitting too much to chew.

pcb and small parts assembly
« Last Edit: April 15, 2020, 02:27:34 PM by ClayHadi »

ClassicCrazy

  • Hero Member
  • *****
  • Posts: 2665
Re: Classic Monitoring with a raspberry pi
« Reply #33 on: March 23, 2020, 03:55:52 PM »
Hi....the Arduino suggestions will probably work fine if you account for the voltage range that the Raspberry Pi can handle. I used input from relay output once in a car security system to tell when a remote commanded the doors to lock or unlock. That was years ago in the days before Arduino; I used a PIC16F84. I vaguely recall having to do some filtering in the analog domain to make it work, but I might be remembering it wrong. I'm a software developer, not an electrical engineer, so I always found the analog stuff more difficult. Still, I made it work reliably, so I don't think you're bitting too much to chew.

Check this project out if you haven't seen it yet . I now have Raspberry Pi monitoring the Classic thanks to Graham and Matt
http://midniteftp.com/forum/index.php?topic=4817.0

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

  • Full Member
  • ***
  • Posts: 106
Re: Classic Monitoring with a raspberry pi
« Reply #34 on: March 23, 2020, 08:43:49 PM »
Hey Guys,

I took the Node-Red that I got from your guys a little while ago and it was really easy to convert it to getting the data about the classic from MQTT instead of directly from the MODBUS. I just have to convert the field names in the payload you guys were using to the field names we use in the json packet. Here is what our "readings" packet looks like:

Code: [Select]
{"BatTemperature":0.8,
  "NetAmpHours":4,
  "ChargeState":0,
  "InfoFlagsBits":-1308610300,
  "ReasonForResting":4,
  "NegativeAmpHours":-9369,
  "BatVoltage":25.9,
  "PVVoltage":10.5,
  "VbattRegSetPTmpComp":27.4,
  "TotalAmpHours":704,
  "WhizbangBatCurrent":-0.5,
  "BatCurrent":0.0,
  "PVCurrent":0.0,
  "ConnectionState":0,
  "EnergyToday":0.5,
  "EqualizeTime":10800,
  "SOC":100,
  "Aux1":false,
  "Aux2":false,
  "Power":0.0,
  "FETTemperature":14.0,
  "PositiveAmpHours":17138,
  "TotalEnergy":616.1,
  "FloatTimeTodaySeconds":29689,
  "RemainingAmpHours":704,
  "AbsorbTime":18000,
  "ShuntTemperature":4.0,
  "PCBTemperature":21.3}

We also send an "info" packet for things that do not change much, but you get the idea

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

ClassicCrazy

  • Hero Member
  • *****
  • Posts: 2665
Re: Classic Monitoring with a raspberry pi
« Reply #35 on: March 23, 2020, 10:16:53 PM »
Matt
I was messing with the Node Red a little bit on my windows computer . I wanted to see if I could get it to subscribe to the raspberry pi MQTT broker that is already running on same network.  I think I did get it to connect . I then tried to hook it up to the one Node Red flow that was shared but didn't see anything from it.  I didn't get too much farther than that.

If you want to share your Node Red flow I will give it a try here .

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

  • Full Member
  • ***
  • Posts: 106
Re: Classic Monitoring with a raspberry pi
« Reply #36 on: March 24, 2020, 12:14:21 PM »
Larry,

I used the --snooze_secs to update every 1 minute instead of five so it is easier to get some data. All I did wa remove the MODBUS and route the MQTT readr to the link to the JSON message thingy.

[{"id":"44d8794b.34ddd8","type":"tab","label":"Classic Data Getter","disabled":false,"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":"479ec480.5bf78c","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":"c033e13a.592b2","type":"modbus-client","z":"","name":"ClassicRemote","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"tcpHost":"127.0.0.1","tcpPort":"1883","tcpType":"TPC-RTU-BUFFERED","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"1","commandDelay":"1","clientTimeout":"1000","reconnectTimeout":"2000"},{"id":"af7bd7ae.bc45e8","type":"ui_group","z":"","name":"Current Status","tab":"aaa74f48.136a7","order":1,"disp":true,"width":"22","collapse":false},{"id":"a603949e.27e288","type":"ui_group","z":"","name":"Panel Watts Generation","tab":"aaa74f48.136a7","order":2,"disp":true,"width":"15","collapse":false},{"id":"aaa74f48.136a7","type":"ui_tab","z":"","name":"Home","icon":"dashboard","order":1},{"id":"5ca6233.e85a1dc","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":"16705c50.f9a794","type":"mqtt-broker","z":"","name":"Island","broker":"0.tcp.ngrok.io","port":"10693","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"79fd54c3.7f5bdc","type":"ui_spacer","name":"spacer","group":"af7bd7ae.bc45e8","order":1,"width":1,"height":1},{"id":"27a2f700.e982b8","type":"debug","z":"44d8794b.34ddd8","name":"RAW payload","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":540,"y":300,"wires":[]},{"id":"6fcbc911.4fc1f8","type":"link out","z":"44d8794b.34ddd8","name":"","links":["a5bf75bd.e2df18"],"x":775,"y":220,"wires":[]},{"id":"85722714.288338","type":"ui_gauge","z":"479ec480.5bf78c","name":"","group":"af7bd7ae.bc45e8","order":3,"width":"4","height":"4","gtype":"gage","title":"Input Watts","label":"Watts","format":"{{payload.PVCurrent}}","min":"0","max":"2080","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":970,"y":200,"wires":[]},{"id":"4752aed1.c84fe","type":"ui_chart","z":"479ec480.5bf78c","name":"","group":"a603949e.27e288","order":1,"width":"5","height":"5","label":"Input Amps (24hrs)","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"linear","nodata":"No Data","dot":false,"ymin":"0","ymax":"2080","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":"d111e626.910bd8","type":"json","z":"479ec480.5bf78c","name":"","property":"payload","action":"obj","pretty":false,"x":90,"y":120,"wires":[["4ba0b222.6e49fc","85722714.288338","85b81828.707f68","cf678ab.887af78","a53d84f3.d38538","ec9c248a.c27c08","b25e09f8.4cbcb8","7c078e46.0f115","d237b039.0a69c","5e9f17e2.005e48","71c98bfb.510b34","bbcf0529.774df8","dbd75023.c7a06","2fb99b52.1bc384"]]},{"id":"85b81828.707f68","type":"ui_gauge","z":"479ec480.5bf78c","name":"","group":"af7bd7ae.bc45e8","order":1,"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":"","seg2":"","x":610,"y":200,"wires":[]},{"id":"fec31f54.d6d32","type":"ui_chart","z":"479ec480.5bf78c","name":"","group":"a603949e.27e288","order":2,"width":"5","height":"5","label":"Input Volts (24hrs)","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"linear","nodata":"No Data","dot":false,"ymin":"0","ymax":"210","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":"a5bf75bd.e2df18","type":"link in","z":"479ec480.5bf78c","name":"","links":["6fcbc911.4fc1f8"],"x":35,"y":200,"wires":[["d111e626.910bd8","a530bc96.b8e76"]]},{"id":"4ba0b222.6e49fc","type":"debug","z":"479ec480.5bf78c","name":"JSON converted (msg.paylod)","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","x":250,"y":40,"wires":[]},{"id":"a530bc96.b8e76","type":"moment","z":"479ec480.5bf78c","name":"","topic":"","input":"","inputType":"flow","inTz":"America/Toronto","adjAmount":0,"adjType":"days","adjDir":"add","format":"L, h:mm a","locale":"en_CA","output":"payload.daytime","outputType":"msg","outTz":"America/Toronto","x":180,"y":460,"wires":[["d077f37d.f56fe"]]},{"id":"d077f37d.f56fe","type":"ui_text","z":"479ec480.5bf78c","group":"af7bd7ae.bc45e8","order":4,"width":"5","height":"1","name":"Date","label":"","format":"{{msg.payload.daytime}}","layout":"row-left","x":350,"y":460,"wires":[]},{"id":"cf678ab.887af78","type":"ui_gauge","z":"479ec480.5bf78c","name":"","group":"af7bd7ae.bc45e8","order":2,"width":"4","height":"4","gtype":"gage","title":"Input Volts","label":"Volts","format":"{{payload.PVVoltage}}","min":"0","max":"200","colors":["#ff0000","#e6e600","#00b700"],"seg1":"","seg2":"","x":790,"y":200,"wires":[]},{"id":"a53d84f3.d38538","type":"ui_text","z":"479ec480.5bf78c","group":"af7bd7ae.bc45e8","order":5,"width":"5","height":"1","name":"","label":"Lifetime kWh : ","format":"{{msg.payload.TotalAmpHours}}","layout":"row-left","x":720,"y":20,"wires":[]},{"id":"ec9c248a.c27c08","type":"ui_text","z":"479ec480.5bf78c","group":"af7bd7ae.bc45e8","order":7,"width":"5","height":"1","name":"","label":"Lifetime Ahrs : ","format":"{{msg.payload.PositiveAmpHours}}","layout":"row-left","x":720,"y":60,"wires":[]},{"id":"b25e09f8.4cbcb8","type":"change","z":"479ec480.5bf78c","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":[["4752aed1.c84fe"]]},{"id":"7c078e46.0f115","type":"change","z":"479ec480.5bf78c","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":[["fec31f54.d6d32"]]},{"id":"d237b039.0a69c","type":"ui_text","z":"479ec480.5bf78c","group":"af7bd7ae.bc45e8","order":11,"width":"5","height":"1","name":"","label":"Ahrs Today : ","format":"{{msg.payload.NetAmpHours}}","layout":"row-left","x":710,"y":140,"wires":[]},{"id":"5e9f17e2.005e48","type":"ui_text","z":"479ec480.5bf78c","group":"af7bd7ae.bc45e8","order":9,"width":"5","height":"1","name":"","label":"kWhrs Today : ","format":"{{msg.payload.EnergyToday}}","layout":"row-left","x":720,"y":100,"wires":[]},{"id":"71c98bfb.510b34","type":"ui_text","z":"479ec480.5bf78c","group":"af7bd7ae.bc45e8","order":6,"width":"5","height":"1","name":"","label":"Battery Temp : ","format":"{{msg.payload.BatTemperature}}","layout":"row-left","x":980,"y":20,"wires":[]},{"id":"bbcf0529.774df8","type":"ui_text","z":"479ec480.5bf78c","group":"af7bd7ae.bc45e8","order":10,"width":"5","height":"1","name":"","label":"FET Temp : ","format":"{{msg.payload.FETTemperature}}","layout":"row-left","x":970,"y":60,"wires":[]},{"id":"dbd75023.c7a06","type":"ui_text","z":"479ec480.5bf78c","group":"af7bd7ae.bc45e8","order":8,"width":"5","height":"1","name":"","label":"Pcb Temp : ","format":"{{msg.payload.PCBTemperature}}","layout":"row-left","x":970,"y":100,"wires":[]},{"id":"5ccb367a.49db58","type":"ui_chart","z":"479ec480.5bf78c","name":"","group":"a603949e.27e288","order":2,"width":"5","height":"5","label":"High Volts in (24hrs)","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"bezier","nodata":"No Data","dot":false,"ymin":"0","ymax":"210","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":400,"wires":[[]]},{"id":"2fb99b52.1bc384","type":"change","z":"479ec480.5bf78c","name":"Hi_V_In_Today payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.HighVoltInToday","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":410,"y":400,"wires":[["5ccb367a.49db58"]]},{"id":"2fb36cba.543cd4","type":"comment","z":"479ec480.5bf78c","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":390,"y":220,"wires":[]},{"id":"de40081b.e86998","type":"mqtt in","z":"44d8794b.34ddd8","name":"readings","topic":"ClassicMQTT/classic/stat/readings/#","qos":"2","datatype":"auto","broker":"16705c50.f9a794","x":260,"y":160,"wires":[["27a2f700.e982b8","6fcbc911.4fc1f8"]]}]


Matt
« Last Edit: March 24, 2020, 01:02:23 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

ClassicCrazy

  • Hero Member
  • *****
  • Posts: 2665
Re: Classic Monitoring with a raspberry pi
« Reply #37 on: March 24, 2020, 01:05:37 PM »
I tried your flow Matt - it was pretty much like I had already.
I think we may be talking about two different copied flows from others.
I will try again later.

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

Vic

  • Hero Member
  • *****
  • Posts: 2441
Re: Classic Monitoring with a raspberry pi
« Reply #38 on: March 24, 2020, 03:05:36 PM »
Thank you very much,  to ALL who have contributed to this project.

We  will,  soon try dipping one toe into this water.

Great work !   Thanks again,   Vic
Off Grid - Two systems -- 4 SW+ 5548s, Surrette 4KS25 1280 AH X2@48V, 11.1 KW STC PV, 3X MidNite Classic 150 w/ WBjrs, Beta KID on S-530s, MX-60s, MN Bkrs/Boxes.  Thanks MN for Great Products/Service/Support!

ClassicCrazy

  • Hero Member
  • *****
  • Posts: 2665
Re: Classic Monitoring with a raspberry pi
« Reply #39 on: March 24, 2020, 04:16:04 PM »
Thank you very much,  to ALL who have contributed to this project.

We  will,  soon try dipping one toe into this water.

Great work !   Thanks again,   Vic

Get a raspberry pi Vic and we can get you up and running soon - at least with the Android Monitor app part
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

  • Full Member
  • ***
  • Posts: 106
Re: Classic Monitoring with a raspberry pi
« Reply #40 on: March 24, 2020, 05:36:20 PM »
I updated the flow to better match the values in our "readings" subject. It looks like the attached.

Code: [Select]
[{"id":"44d8794b.34ddd8","type":"tab","label":"Classic Data Getter","disabled":false,"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":"479ec480.5bf78c","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":"af7bd7ae.bc45e8","type":"ui_group","z":"","name":"Current Status","tab":"aaa74f48.136a7","order":1,"disp":true,"width":"22","collapse":false},{"id":"a603949e.27e288","type":"ui_group","z":"","name":"Power Generation","tab":"aaa74f48.136a7","order":3,"disp":true,"width":"22","collapse":false},{"id":"aaa74f48.136a7","type":"ui_tab","z":"","name":"Home","icon":"dashboard","order":1},{"id":"5ca6233.e85a1dc","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":"16705c50.f9a794","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":"cb16369e.0e7fc8","type":"ui_group","z":"","name":"Temperatures","tab":"aaa74f48.136a7","order":4,"disp":true,"width":"22","collapse":true},{"id":"4229bb36.fe3a84","type":"ui_group","z":"","name":"Power","tab":"aaa74f48.136a7","order":5,"disp":true,"width":"22","collapse":true},{"id":"612bf217.53203c","type":"ui_group","z":"","name":"Time","tab":"aaa74f48.136a7","order":2,"disp":false,"width":"22","collapse":false},{"id":"27a2f700.e982b8","type":"debug","z":"44d8794b.34ddd8","name":"RAW payload","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":540,"y":300,"wires":[]},{"id":"6fcbc911.4fc1f8","type":"link out","z":"44d8794b.34ddd8","name":"","links":["a5bf75bd.e2df18"],"x":775,"y":220,"wires":[]},{"id":"85722714.288338","type":"ui_gauge","z":"479ec480.5bf78c","name":"","group":"af7bd7ae.bc45e8","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":"4752aed1.c84fe","type":"ui_chart","z":"479ec480.5bf78c","name":"","group":"a603949e.27e288","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":"d111e626.910bd8","type":"json","z":"479ec480.5bf78c","name":"","property":"payload","action":"obj","pretty":false,"x":90,"y":120,"wires":[["4ba0b222.6e49fc","85722714.288338","85b81828.707f68","cf678ab.887af78","a53d84f3.d38538","ec9c248a.c27c08","b25e09f8.4cbcb8","7c078e46.0f115","d237b039.0a69c","5e9f17e2.005e48","71c98bfb.510b34","bbcf0529.774df8","dbd75023.c7a06","2fb99b52.1bc384","bbdfde82.e5d2b","77f51866.d246d8","e3333f4a.65f36","7520a9fb.3f5488"]]},{"id":"85b81828.707f68","type":"ui_gauge","z":"479ec480.5bf78c","name":"","group":"af7bd7ae.bc45e8","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":"fec31f54.d6d32","type":"ui_chart","z":"479ec480.5bf78c","name":"","group":"a603949e.27e288","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":"a5bf75bd.e2df18","type":"link in","z":"479ec480.5bf78c","name":"","links":["6fcbc911.4fc1f8"],"x":35,"y":200,"wires":[["d111e626.910bd8"]]},{"id":"4ba0b222.6e49fc","type":"debug","z":"479ec480.5bf78c","name":"JSON converted (msg.paylod)","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","x":250,"y":40,"wires":[]},{"id":"cf678ab.887af78","type":"ui_gauge","z":"479ec480.5bf78c","name":"","group":"af7bd7ae.bc45e8","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":"a53d84f3.d38538","type":"ui_text","z":"479ec480.5bf78c","group":"4229bb36.fe3a84","order":4,"width":"5","height":"1","name":"","label":"Lifetime kWh : ","format":"{{msg.payload.TotalAmpHours}}","layout":"row-left","x":720,"y":20,"wires":[]},{"id":"ec9c248a.c27c08","type":"ui_text","z":"479ec480.5bf78c","group":"4229bb36.fe3a84","order":3,"width":"5","height":"1","name":"","label":"Lifetime Ahrs : ","format":"{{msg.payload.PositiveAmpHours}}","layout":"row-left","x":720,"y":60,"wires":[]},{"id":"b25e09f8.4cbcb8","type":"change","z":"479ec480.5bf78c","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":[["4752aed1.c84fe"]]},{"id":"7c078e46.0f115","type":"change","z":"479ec480.5bf78c","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":[["fec31f54.d6d32"]]},{"id":"d237b039.0a69c","type":"ui_text","z":"479ec480.5bf78c","group":"4229bb36.fe3a84","order":1,"width":"5","height":"1","name":"","label":"Net AHrs : ","format":"{{msg.payload.NetAmpHours}}","layout":"row-left","x":710,"y":140,"wires":[]},{"id":"5e9f17e2.005e48","type":"ui_text","z":"479ec480.5bf78c","group":"4229bb36.fe3a84","order":2,"width":"5","height":"1","name":"","label":"kWhrs Today : ","format":"{{msg.payload.EnergyToday}}","layout":"row-left","x":720,"y":100,"wires":[]},{"id":"71c98bfb.510b34","type":"ui_text","z":"479ec480.5bf78c","group":"cb16369e.0e7fc8","order":1,"width":"5","height":"1","name":"","label":"Battery Temp : ","format":"{{msg.payload.BatTemperature}} C","layout":"row-left","x":980,"y":20,"wires":[]},{"id":"bbcf0529.774df8","type":"ui_text","z":"479ec480.5bf78c","group":"cb16369e.0e7fc8","order":3,"width":"5","height":"1","name":"","label":"FET Temp : ","format":"{{msg.payload.FETTemperature}} C","layout":"row-left","x":970,"y":60,"wires":[]},{"id":"dbd75023.c7a06","type":"ui_text","z":"479ec480.5bf78c","group":"cb16369e.0e7fc8","order":2,"width":"5","height":"1","name":"","label":"Pcb Temp : ","format":"{{msg.payload.PCBTemperature}} C","layout":"row-left","x":970,"y":100,"wires":[]},{"id":"5ccb367a.49db58","type":"ui_chart","z":"479ec480.5bf78c","name":"","group":"a603949e.27e288","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":"2fb99b52.1bc384","type":"change","z":"479ec480.5bf78c","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":[["5ccb367a.49db58"]]},{"id":"2fb36cba.543cd4","type":"comment","z":"479ec480.5bf78c","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":"de40081b.e86998","type":"mqtt in","z":"44d8794b.34ddd8","name":"readings","topic":"ClassicMQTT/classic/stat/readings/#","qos":"2","datatype":"auto","broker":"16705c50.f9a794","x":260,"y":160,"wires":[["27a2f700.e982b8","6fcbc911.4fc1f8"]]},{"id":"bbdfde82.e5d2b","type":"ui_gauge","z":"479ec480.5bf78c","name":"","group":"af7bd7ae.bc45e8","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":"77f51866.d246d8","type":"change","z":"479ec480.5bf78c","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":[["7543e6b2.112af8"]]},{"id":"e3333f4a.65f36","type":"change","z":"479ec480.5bf78c","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.timestamp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":240,"y":540,"wires":[["77ff432e.bd6adc"]]},{"id":"77ff432e.bd6adc","type":"moment","z":"479ec480.5bf78c","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":[["9228f077.77b3d"]]},{"id":"9228f077.77b3d","type":"ui_text","z":"479ec480.5bf78c","group":"612bf217.53203c","order":1,"width":"5","height":"1","name":"","label":"Time","format":"{{msg.payload}}","layout":"row-left","x":810,"y":600,"wires":[]},{"id":"7520a9fb.3f5488","type":"ui_gauge","z":"479ec480.5bf78c","name":"","group":"af7bd7ae.bc45e8","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":"7543e6b2.112af8","type":"ui_chart","z":"479ec480.5bf78c","name":"","group":"a603949e.27e288","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":[[]]}]
« Last Edit: March 24, 2020, 05:39:44 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

Vic

  • Hero Member
  • *****
  • Posts: 2441
Re: Classic Monitoring with a raspberry pi
« Reply #41 on: March 24, 2020, 06:11:19 PM »

Get a raspberry pi Vic and we can get you up and running soon - at least with the Android Monitor app part

Hi Larry,   have several R Pis here,   but have not done much with them  --  they DO make a perfectly acceptable Internet cruising machine.   Amazin'  that those lil boxes are SO capable.

Thanks for the offer.   73,   Vic
Off Grid - Two systems -- 4 SW+ 5548s, Surrette 4KS25 1280 AH X2@48V, 11.1 KW STC PV, 3X MidNite Classic 150 w/ WBjrs, Beta KID on S-530s, MX-60s, MN Bkrs/Boxes.  Thanks MN for Great Products/Service/Support!

ClassicCrazy

  • Hero Member
  • *****
  • Posts: 2665
Re: Classic Monitoring with a raspberry pi
« Reply #42 on: March 24, 2020, 06:22:58 PM »
Matt,
I tried  your last flow in Node Red - It won't run because of an "unknown moment "
What is that so I can add it to my Node red
see snapshot
thanks 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

  • Full Member
  • ***
  • Posts: 106
Re: Classic Monitoring with a raspberry pi
« Reply #43 on: March 24, 2020, 10:16:15 PM »
Here it is, it is just a time formatter.
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: 2665
Re: Classic Monitoring with a raspberry pi
« Reply #44 on: March 24, 2020, 10:52:38 PM »
okay - found the moment node - looked for it before but I was looking in the wrong spot to search and install it.
giving it another try

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