itchannel / apex-ha

Local Neptune Apex HA Integration (Aquarium Controller)
GNU General Public License v3.0
23 stars 4 forks source link

Feature request - Add Trident reagent levels #51

Open ineedhungry opened 3 months ago

ineedhungry commented 3 months ago

Not sure if in the API call's if you can grab the data for the reagent levels on the trident and trident NP. Would be great to setup custom level alerts in HA.

brettonw commented 3 months ago

I don’t have a trident. Can you use the web client for the Apex, login, then manually visit the URLs for status and config, and share the JSON responses?

http://<yourneptuneipaddress/rest/status

http://<yourneptuneipaddress/rest/config

ineedhungry commented 3 months ago

stauts:

"system":{"hostname":"apex","software":"5.12_7D24","hardware":"1.0","serial":"1234","type":"AC5","extra":{"sdver":"SS16G,3,5344,2,0","sddate": "181201","sdserial": 2777288039,"sdextDate": "","sdhealth": 0,"WWWVer": "PASS","TmpUart": "PASS","pH2Uart": "PASS","CondUart": "PASS","sdstat": {"reads":228636296,"writes":51534,"readErr":0,"writeErr":0 }},"timezone":"-7.00","date":1724168229}
,"modules":[{"abaddr":2,"hwtype":"EB832","hwrev":1,"swrev":8,"swstat":"OK","pcount":6463951,"pgood":6463951,"perror":0,"reatt":0,"inact":0,"boot":false,"present":true,"extra":{}}
,{"abaddr":3,"hwtype":"EB832","hwrev":1,"swrev":8,"swstat":"OK","pcount":6463951,"pgood":6463951,"perror":0,"reatt":0,"inact":0,"boot":false,"present":true,"extra":{}}
,{"abaddr":4,"hwtype":"FMM","hwrev":1,"swrev":24,"swstat":"OK","pcount":6463995,"pgood":6463995,"perror":0,"reatt":0,"inact":0,"boot":false,"present":true,"extra":{}}
,{"abaddr":5,"hwtype":"AFS","hwrev":1,"swrev":2,"swstat":"OK","pcount":6463935,"pgood":6463934,"perror":0,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{}}
,{"abaddr":6,"hwtype":"MXM","hwrev":1,"swrev":1,"swstat":"OK","pcount":6463889,"pgood":6463887,"perror":2,"reatt":0,"inact":0,"boot":false,"present":true,"extra":{}}
,{"abaddr":7,"hwtype":"TRI","hwrev":1,"swrev":22,"swstat":"OK","pcount":6463951,"pgood":6463939,"perror":12,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{"temp":1090,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":1704216582,"resetTime":[1718755456,1693797211,1718755456,1718755456,1721569660],"levels":[3382.1, 878.8, 14.25, 15.28, 28.27]}}
,{"abaddr":8,"hwtype":"TNP","hwrev":2,"swrev":38,"swstat":"OK","pcount":6463950,"pgood":6463942,"perror":7,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{"temp":944,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":820454400,"resetTime":[1719427310,1719427310,1719427310,1719427310,1719427310],"levels":[1544.6,1048.2, 86.28, 85.84, 89.84]}}
,{"abaddr":9,"hwtype":"PM1","hwrev":1,"swrev":7,"swstat":"OK","pcount":6463978,"pgood":6463978,"perror":0,"reatt":4,"inact":0,"boot":false,"present":true,"extra":{}}
],"nstat":{"dhcp":true,"hostname":"apex","ipaddr":"1.1.1.1","netmask":"255.255.255.0","gateway":"1.1.1.1","dns":["1.1.1.1","1.1.1.1"],"httpPort":80,"fusionEnable":true,"quality":0,"strength":0,"link":false,"wifiAPLock":false,"wifiEnable":false,"wifiAPPassword":"","ssid":"","wifiAP":false,"emailPassword":"fake","updateFirmware":false,"latestFirmware":"5.12_7D24"},"feed":{"name":0,"active":0}
,"power":{"failed":1721441270,"restored":0}
,"outputs":[{"status":["OFF","","OK",""],"name":"VarSpd1_I1","gid":"","type":"variable","ID":0,"did":"base_Var1"}
,{"status":["OFF","","OK",""],"name":"VarSpd2_I2","gid":"","type":"variable","ID":1,"did":"base_Var2"}
,{"status":["OFF","","OK",""],"name":"VarSpd3_I3","gid":"","type":"variable","ID":2,"did":"base_Var3"}
,{"status":["OFF","","OK",""],"name":"VarSpd4_I4","gid":"","type":"variable","ID":3,"did":"base_Var4"}
,{"status":["AOF","","OK",""],"name":"SndAlm_I6","gid":"","type":"alert","ID":4,"did":"base_Alarm"}
,{"status":["AOF","","OK",""],"name":"SndWrn_I7","gid":"","type":"alert","ID":5,"did":"base_Warn"}
,{"status":["AOF","","OK",""],"name":"EmailAlm_I5","gid":"","type":"alert","ID":6,"did":"base_email"}
,{"status":["ON","","OK",""],"name":"UV_1","gid":"","type":"outlet","ID":8,"did":"2_1"}
,{"status":["AOF","","OK",""],"name":"REFLIGHT_2","gid":"","type":"outlet","ID":9,"did":"2_2"}
,{"status":["AON","","OK",""],"name":"RetPump_3","gid":"","type":"outlet","ID":10,"did":"2_3"}
,{"status":["AOF","","OK",""],"name":"Heater_4","gid":"","type":"outlet","ID":11,"did":"2_4"}
,{"status":["AON","","OK",""],"name":"Co2_5","gid":"","type":"outlet","ID":12,"did":"2_5"}
,{"status":["AON","","OK",""],"name":"Skimmer_6","gid":"","type":"outlet","ID":13,"did":"2_6"}
,{"status":["AON","","OK",""],"name":"CalcPump_2_7","gid":"","type":"outlet","ID":14,"did":"2_7"}
,{"status":["AON","","OK",""],"name":"CalcDose_2_8","gid":"","type":"outlet","ID":15,"did":"2_8"}
,{"status":["OFF","","OK",""],"name":"LinkA_2_9","gid":"","type":"24v","ID":16,"did":"2_9"}
,{"status":["OFF","","OK",""],"name":"LINKA_4_2","gid":"","type":"24v","ID":17,"did":"2_10"}
,{"status":["AON","","OK",""],"name":"Lights_3_1","gid":"","type":"outlet","ID":18,"did":"3_1"}
,{"status":["OFF","","OK",""],"name":"LinkA_4_1","gid":"","type":"24v","ID":19,"did":"4_1"}
,{"status":["OFF","","OK",""],"name":"Feeder_5_1","gid":"","type":"afs","ID":20,"did":"5_1"}
,{"status":["TBL","","Lgon","OK"],"name":"Vortech_L","gid":"3","type":"MXMPump|Ecotech|Vortech","ID":21,"did":"6_1"}
,{"status":["TBL","","","OK"],"name":"Radion_R","gid":"0","type":"MXMLight|Ecotech|30G6","ID":22,"did":"6_2"}
,{"status":["AOF","","OK",""],"name":"Alarm_4_2","gid":"","type":"alert","ID":23,"did":"4_2"}
,{"status":["AOF","","OK",""],"name":"Trident_7_3","gid":"","type":"selector","ID":24,"did":"7_3"}
,{"status":["TBL","","",""],"name":"Lunar_6_66","gid":"4","type":"MXMLight|Ecotech|30G6L","ID":25,"did":"6_66"}
,{"status":["TBL","","","OK"],"name":"Radion_LM","gid":"0","type":"MXMLight|Ecotech|30G6","ID":26,"did":"6_3"}
,{"status":["AON","","OK",""],"name":"MP40RF_3_2","gid":"","type":"outlet","ID":27,"did":"3_2"}
,{"status":["AON","","OK",""],"name":"MP40RR_3_3","gid":"","type":"outlet","ID":28,"did":"3_3"}
,{"status":["AON","","OK",""],"name":"MP40LF_3_4","gid":"","type":"outlet","ID":29,"did":"3_4"}
,{"status":["AON","","OK",""],"name":"MP40LR_3_5","gid":"","type":"outlet","ID":30,"did":"3_5"}
,{"status":["AOF","","OK",""],"name":"FANS_3_6","gid":"","type":"outlet","ID":31,"did":"3_6"}
,{"status":["AON","","OK",""],"name":"SMAL_FAN_3_7","gid":"","type":"outlet","ID":32,"did":"3_7"}
,{"status":["OFF","","OK",""],"name":"AirSrub_3_8","gid":"","type":"outlet","ID":33,"did":"3_8"}
,{"status":["AOF","","OK",""],"name":"LinkA_3_9","gid":"","type":"24v","ID":34,"did":"3_9"}
,{"status":["AOF","","OK",""],"name":"Calc_Airout","gid":"","type":"24v","ID":35,"did":"3_10"}
,{"status":["TBL","","",""],"name":"Lunar","gid":"4","type":"MXMLight|Ecotech|30G6L","ID":36,"did":"6_67"}
,{"status":["TBL","","","OK"],"name":"Radion_6_4","gid":"0","type":"MXMLight|Ecotech|30G5","ID":37,"did":"6_4"}
,{"status":["AOF","","OK",""],"name":"Alk_7_4","gid":"","type":"selector","ID":38,"did":"7_4"}
,{"status":["AOF","","",""],"name":"Lunar_6_68","gid":"0","type":"MXMLight|Ecotech|30G5L","ID":39,"did":"6_68"}
,{"status":["TBL","","","OK"],"name":"Radion_6_5","gid":"0","type":"MXMLight|Ecotech|30G5","ID":40,"did":"6_5"}
,{"status":["AOF","","",""],"name":"Lunar_6_69","gid":"0","type":"MXMLight|Ecotech|30G5L","ID":41,"did":"6_69"}
,{"status":["TBL","","Lgon","OK"],"name":"Vortech_L","gid":"3","type":"MXMPump|Ecotech|Vortech","ID":42,"did":"6_6"}
,{"status":["TBL","","Lgon","OK"],"name":"Vortech_R","gid":"1","type":"MXMPump|Ecotech|Vortech","ID":43,"did":"6_7"}
,{"status":["TBL","","Lgon","OK"],"name":"Vortech_R","gid":"1","type":"MXMPump|Ecotech|Vortech","ID":44,"did":"6_8"}
,{"status":["TBL","","Cnst","OK"],"name":"Vectra_6_9","gid":"0","type":"MXMPump|Ecotech|Vectra","ID":45,"did":"6_9"}
,{"status":["AOF","","OK",""],"name":"Trident_8_3","gid":"","type":"selector","ID":46,"did":"8_3"}
],"inputs":[{"did":"base_Temp","type":"Temp","name":"Tmp","value":77.8 }
,{"did":"base_pH","type":"pH","name":"pH","value":8.17 }
,{"did":"base_ORP","type":"ORP","name":"ORP","value":316  }
,{"did":"base_Cond","type":"Cond","name":"Salt","value":45.4 }
,{"did":"2_P0","type":"Amps","name":"UV_1A","value":0.2  }
,{"did":"2_P1","type":"Amps","name":"REFLIGHT_2A","value":0.0  }
,{"did":"2_P2","type":"Amps","name":"RetPump_3A","value":1.0  }
,{"did":"2_P3","type":"Amps","name":"Heater_4A","value":0.0  }
,{"did":"2_P4","type":"Amps","name":"Co2_5A","value":0.0  }
,{"did":"2_P5","type":"Amps","name":"Skimmer_6A","value":0.3  }
,{"did":"2_P6","type":"Amps","name":"CalcPump_2_7A","value":0.6  }
,{"did":"2_P7","type":"Amps","name":"CalcDose_2_8A","value":0.0  }
,{"did":"2_P8","type":"pwr","name":"UV_1W","value":  51 }
,{"did":"2_P9","type":"pwr","name":"REFLIGHT_2W","value":   0 }
,{"did":"2_P10","type":"pwr","name":"RetPump_3W","value": 122 }
,{"did":"2_P11","type":"pwr","name":"Heater_4W","value":   1 }
,{"did":"2_P12","type":"pwr","name":"Co2_5W","value":   0 }
,{"did":"2_P13","type":"pwr","name":"Skimmer_6W","value":  23 }
,{"did":"2_P14","type":"pwr","name":"CalcPump_2_7W","value":  69 }
,{"did":"2_P15","type":"pwr","name":"CalcDose_2_8W","value":   8 }
,{"did":"2_P16","type":"volts","name":"Volt_2","value":118  }
,{"did":"3_P0","type":"Amps","name":"Lights_3_1A","value":2.8  }
,{"did":"3_P1","type":"Amps","name":"MP40RF_3_2A","value":0.0  }
,{"did":"3_P2","type":"Amps","name":"MP40RR_3_3A","value":0.0  }
,{"did":"3_P3","type":"Amps","name":"MP40LF_3_4A","value":0.0  }
,{"did":"3_P4","type":"Amps","name":"MP40LR_3_5A","value":0.0  }
,{"did":"3_P5","type":"Amps","name":"FANS_3_6A","value":0.0  }
,{"did":"3_P6","type":"Amps","name":"SMAL_FAN_3_7A","value":0.0  }
,{"did":"3_P7","type":"Amps","name":"AirSrub_3_8A","value":0.0  }
,{"did":"3_P8","type":"pwr","name":"Lights_3_1W","value": 353 }
,{"did":"3_P9","type":"pwr","name":"MP40RF_3_2W","value":   4 }
,{"did":"3_P10","type":"pwr","name":"MP40RR_3_3W","value":   6 }
,{"did":"3_P11","type":"pwr","name":"MP40LF_3_4W","value":   7 }
,{"did":"3_P12","type":"pwr","name":"MP40LR_3_5W","value":   7 }
,{"did":"3_P13","type":"pwr","name":"FANS_3_6W","value":   3 }
,{"did":"3_P14","type":"pwr","name":"SMAL_FAN_3_7W","value":   3 }
,{"did":"3_P15","type":"pwr","name":"AirSrub_3_8W","value":   1 }
,{"did":"3_P16","type":"volts","name":"Volt_3","value":120  }
,{"did":"4_P0","type":"gph","name":"UV","value": 203 }
,{"did":"4_P1","type":"gph","name":"Carbon","value": 150 }
,{"did":"4_P2","type":"in","name":"Sump","value": 7.1 }
,{"did":"4_P3","type":"gph","name":"Zeovit","value": 0.0 }
,{"did":"7_0","type":"alk","name":"Alkx7","value":7.95 }
,{"did":"7_1","type":"ca","name":"Cax7","value": 444 }
,{"did":"7_2","type":"mg","name":"Mgx7","value":1325 }
,{"did":"8_0","type":"po4","name":"Po4x8","value":0.45 }
,{"did":"8_1","type":"no3","name":"No3x8","value": 0.0 }
,{"did":"9_0","type":"Temp","name":"Tmpx9","value":20.7 }
,{"did":"9_1","type":"pH","name":"CalcPH","value":6.56 }
,{"did":"base_I1","name":"Sw1","type":"digital","value":0},{"did":"base_I2","name":"Sw2","type":"digital","value":0},{"did":"base_I3","name":"Sw3","type":"digital","value":0},{"did":"base_I4","name":"Sw4","type":"digital","value":0},{"did":"base_I5","name":"Sw5","type":"digital","value":0},{"did":"base_I6","name":"Sw6","type":"digital","value":0},{"did":"9_I1","name":"Swx9_1","type":"digital","value":0},{"did":"9_I2","name":"Swx9_2","type":"digital","value":0},{"did":"9_I3","name":"Swx9_3","type":"digital","value":0},{"did":"9_I4","name":"Swx9_4","type":"digital","value":0},{"did":"9_I5","name":"Swx9_5","type":"digital","value":0},{"did":"9_I6","name":"Swx9_6","type":"digital","value":0}],"link":{"linkState":3,"linkKey":"2422","link":false}}

config

"oconf":[{"name":"VarSpd1_I1","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"variable","did":"base_Var1","gid":"","gtype":"12","ID":"0","prog":"Set PF1\n","extra":{}
},{"name":"VarSpd2_I2","icon":"Left/Right Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"variable","did":"base_Var2","gid":"","gtype":"12","ID":"1","prog":"Set PF2\n","extra":{}
},{"name":"VarSpd3_I3","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"variable","did":"base_Var3","gid":"","gtype":"12","ID":"2","prog":"Set PF3\n","extra":{}
},{"name":"VarSpd4_I4","icon":"Left/Right Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"variable","did":"base_Var4","gid":"","gtype":"12","ID":"3","prog":"Set PF4\n","extra":{}
},{"name":"SndAlm_I6","icon":"Sound B","ctype":"Advanced","log":false,"inuse":true,"type":"alert","did":"base_Alarm","gid":"","gtype":"8","ID":"4","prog":"Set OFF \n","extra":{}
},{"name":"SndWrn_I7","icon":"Sound A","ctype":"Advanced","log":false,"inuse":true,"type":"alert","did":"base_Warn","gid":"","gtype":"8","ID":"5","prog":"Set OFF \n","extra":{}
},{"name":"EmailAlm_I5","icon":"Email","ctype":"Advanced","log":false,"inuse":true,"type":"alert","did":"base_email","gid":"","gtype":"8","ID":"6","prog":"Set OFF \nIf Error Trident_7_3 Then ON \nIf Error Trident_8_3 Then ON \n","extra":{}
},{"name":"UV_1","icon":"Sun","ctype":"ORP Control","log":true,"inuse":true,"type":"outlet","did":"2_1","gid":"","gtype":"255","ID":"8","prog":"Fallback OFF \nIf ORP > 320 Then OFF \nIf ORP < 300 Then ON \n","extra":{}
},{"name":"REFLIGHT_2","icon":"Spigot","ctype":"Light","log":true,"inuse":true,"type":"outlet","did":"2_2","gid":"","gtype":"255","ID":"9","prog":"Fallback OFF \nSet OFF \nIf Time 18:00 to 08:00 Then ON \nIf Tmp > 82.0 Then OFF \nMin Time 001:00 Then OFF \n","extra":{}
},{"name":"RetPump_3","icon":"Up/Down Arrows","ctype":"Return Pump","log":true,"inuse":true,"type":"outlet","did":"2_3","gid":"","gtype":"255","ID":"10","prog":"Fallback ON \nSet ON \nIf FeedA 007 Then OFF \n","extra":{}
},{"name":"Heater_4","icon":"Thermometer","ctype":"Heater","log":true,"inuse":true,"type":"outlet","did":"2_4","gid":"","gtype":"255","ID":"11","prog":"Fallback OFF \nIf Tmp < 76.7 Then ON \nIf Tmp > 77.2 Then OFF \n","extra":{}
},{"name":"Co2_5","icon":"Up/Down Arrows","ctype":"pH Control","log":false,"inuse":true,"type":"outlet","did":"2_5","gid":"","gtype":"0","ID":"12","prog":"Fallback OFF \nIf CalcPH > 6.60 Then ON \nIf CalcPH < 6.55 Then OFF \n","extra":{}
},{"name":"Skimmer_6","icon":"Spigot","ctype":"Always","log":false,"inuse":true,"type":"outlet","did":"2_6","gid":"","gtype":"255","ID":"13","prog":"Fallback ON \nSet ON \n","extra":{}
},{"name":"CalcPump_2_7","icon":"Left/Right Arrows","ctype":"Always","log":true,"inuse":true,"type":"outlet","did":"2_7","gid":"","gtype":"255","ID":"14","prog":"Fallback ON \nSet ON \n","extra":{}
},{"name":"CalcDose_2_8","icon":"Fan","ctype":"Always","log":true,"inuse":true,"type":"outlet","did":"2_8","gid":"","gtype":"255","ID":"15","prog":"Fallback ON \nSet ON \n","extra":{}
},{"name":"LinkA_2_9","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"24v","did":"2_9","gid":"","gtype":"255","ID":"16","prog":"Set OFF \n","extra":{}
},{"name":"LINKA_4_2","icon":"Up/Down Arrows","ctype":"Advanced","log":true,"inuse":true,"type":"24v","did":"2_10","gid":"","gtype":"255","ID":"17","prog":"Fallback OFF \nSet OFF \nIf Swx4_1 OPEN Then ON \nIf Swx4_2 CLOSED Then OFF \nDefer 001:00 Then ON \n","extra":{}
},{"name":"Lights_3_1","icon":"Light A","ctype":"Always","log":true,"inuse":true,"type":"outlet","did":"3_1","gid":"","gtype":"1","ID":"18","prog":"Fallback ON \nSet ON \n","extra":{}
},{"name":"LinkA_4_1","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"24v","did":"4_1","gid":"","gtype":"1","ID":"19","prog":"Set OFF \n","extra":{}
},{"name":"Feeder_5_1","icon":"Bars","ctype":"Feeder","log":true,"inuse":true,"type":"afs","did":"5_1","gid":"","gtype":"1","ID":"20","prog":"OSC 000:00/000:30/000:30 Then ON \nIf Time 00:00 to 13:20 Then OFF \nIf Time 13:23 to 00:00 Then OFF \nIf FeedA 000 Then ON \n","extra":{}
},{"name":"Vortech_L","icon":"Up/Down Arrows","ctype":"Advanced","log":true,"inuse":true,"type":"MXMPump|Ecotech|Vortech","did":"6_1","gid":"3","gtype":"0","ID":"21","prog":"Fallback OFF \ntdata 00:01:00,0,0,1,0,0,0,0,0,0,0,0,0,0\ntdata 07:03:00,0,0,26,2,0,0,0,0,0,0,0,0,0\ntdata 11:43:00,0,0,70,1,0,0,0,0,0,0,0,0,0\ntdata 15:43:00,0,0,1,8,0,0,0,0,0,0,0,0,0\ntdata 17:29:00,0,0,27,8,0,0,0,0,0,0,0,0,0\ntdata 19:51:00,0,0,37,2,0,0,0,0,0,0,0,0,0\ntdata 21:36:00,0,0,20,3,20,0,0,0,0,0,0,0,0\ntdata 23:59:00,0,0,10,0,0,0,0,0,0,0,0,0,0\n","extra":{"temperature":false,"gph":{"min":0.0,"max":100.0},"modes":[{"id":1,"name":"Reef"},{"id":0,"name":"Constant"},{"id":2,"name":"Lagoon"},{"id":3,"name":"Pulse"},{"id":7,"name":"Tidal"},{"id":8,"name":"Nutrient"},{"id":10,"name":"Sync"},{"id":11,"name":"AntiSync"}]}
},{"name":"Radion_R","icon":"Light B","ctype":"Advanced","log":true,"inuse":true,"type":"MXMLight|Ecotech|30G6","did":"6_2","gid":"0","gtype":"0","ID":"22","prog":"Fallback OFF \ntdata 06:01:00,0,0,1,0,0,0,0,0,0,0,0,0,0\ntdata 08:15:00,0,0,100,0,40,25,0,100,66,0,0,0,0\ntdata 09:00:00,0,0,100,0,56,40,24,100,66,5,0,0,0\ntdata 09:50:00,0,0,100,30,80,74,37,100,66,7,0,0,0\ntdata 10:20:00,0,0,100,74,80,100,38,100,66,8,0,0,0\ntdata 12:00:00,0,0,100,100,80,100,38,100,66,80,0,0,0\ntdata 14:57:00,0,0,100,74,80,100,38,100,66,8,0,0,0\ntdata 15:26:00,0,0,100,30,80,74,37,100,66,7,0,0,0\ntdata 15:51:00,0,0,100,0,56,40,24,100,66,5,0,0,0\ntdata 16:23:00,0,0,100,0,40,25,0,100,66,0,0,0,0\ntdata 17:00:00,0,0,100,0,16,0,0,20,13,0,0,0,0\ntdata 19:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0\n","extra":{"temperature":false,"fan":false,"flash":false,"colors":[{"name":"Cool White","rgb":"bfe6f0","ratio":0.247,"max":100.0},{"name":"Royal Blue","rgb":"152bc4","ratio":0.442,"max":100.0},{"name":"Blue","rgb":"156bc4","ratio":0.152,"max":100.0},{"name":"Red","rgb":"d10014","ratio":0.009,"max":100.0},{"name":"UV","rgb":"c408d6","ratio":0.088,"max":100.0},{"name":"Violet","rgb":"7a08d6","ratio":0.134,"max":100.0},{"name":"Warm White","rgb":"e0dcbf","ratio":0.026,"max":100.0}]}
},{"name":"Alarm_4_2","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"alert","did":"4_2","gid":"","gtype":"0","ID":"23","prog":"Set OFF \n","extra":{}
},{"name":"Trident_7_3","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"selector","did":"7_3","gid":"","gtype":"0","ID":"24","prog":"OSC 000:00/001:00/719:00 Then ON \n","extra":{}
},{"name":"Lunar_6_66","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"MXMLight|Ecotech|30G6L","did":"6_66","gid":"4","gtype":"0","ID":"25","prog":"Fallback OFF \ntdata 00:00:00,0,0,5,100,100,0,0,0,0,0,0,0,0\ntdata 02:00:00,0,0,0,100,100,0,0,0,0,0,0,0,0\ntdata 04:02:00,0,0,0,100,100,0,0,0,0,0,0,0,0\ntdata 19:37:00,0,0,0,100,100,0,0,0,0,0,0,0,0\ntdata 21:54:00,0,0,4,100,100,0,0,0,0,0,0,0,0\ntdata 23:59:00,0,0,5,100,100,0,0,0,0,0,0,0,0\n","extra":{"temperature":false,"fan":false,"flash":false,"colors":[{"name":"White","rgb":"bfe6f0","max":100.0},{"name":"Blue","rgb":"15b4c4","max":100.0}]}
},{"name":"Radion_LM","icon":"Light B","ctype":"Advanced","log":true,"inuse":true,"type":"MXMLight|Ecotech|30G6","did":"6_3","gid":"0","gtype":"0","ID":"26","prog":"Fallback OFF \ntdata 06:01:00,0,0,1,0,0,0,0,0,0,0,0,0,0\ntdata 08:15:00,0,0,100,0,40,25,0,100,66,0,0,0,0\ntdata 09:00:00,0,0,100,0,56,40,24,100,66,5,0,0,0\ntdata 09:50:00,0,0,100,30,80,74,37,100,66,7,0,0,0\ntdata 10:20:00,0,0,100,74,80,100,38,100,66,8,0,0,0\ntdata 12:00:00,0,0,100,100,80,100,38,100,66,80,0,0,0\ntdata 14:55:00,0,0,100,74,80,100,38,100,66,8,0,0,0\ntdata 15:23:00,0,0,100,30,80,74,37,100,66,7,0,0,0\ntdata 15:51:00,0,0,100,0,56,40,24,100,66,5,0,0,0\ntdata 16:24:00,0,0,100,0,40,25,0,100,66,0,0,0,0\ntdata 17:00:00,0,0,100,0,16,0,0,20,13,0,0,0,0\ntdata 19:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0\n","extra":{"temperature":false,"fan":false,"flash":false,"colors":[{"name":"Cool White","rgb":"bfe6f0","ratio":0.247,"max":100.0},{"name":"Royal Blue","rgb":"152bc4","ratio":0.442,"max":100.0},{"name":"Blue","rgb":"156bc4","ratio":0.152,"max":100.0},{"name":"Red","rgb":"d10014","ratio":0.009,"max":100.0},{"name":"UV","rgb":"c408d6","ratio":0.088,"max":100.0},{"name":"Violet","rgb":"7a08d6","ratio":0.134,"max":100.0},{"name":"Warm White","rgb":"e0dcbf","ratio":0.026,"max":100.0}]}
},{"name":"MP40RF_3_2","icon":"Thumbs","ctype":"Always","log":true,"inuse":true,"type":"outlet","did":"3_2","gid":"","gtype":"1","ID":"27","prog":"Fallback ON \nSet ON \n","extra":{}
},{"name":"MP40RR_3_3","icon":"Thumbs","ctype":"Always","log":true,"inuse":true,"type":"outlet","did":"3_3","gid":"","gtype":"1","ID":"28","prog":"Fallback ON \nSet ON \n","extra":{}
},{"name":"MP40LF_3_4","icon":"Thumbs","ctype":"Always","log":true,"inuse":true,"type":"outlet","did":"3_4","gid":"","gtype":"1","ID":"29","prog":"Fallback ON \nSet ON \n","extra":{}
},{"name":"MP40LR_3_5","icon":"Thumbs","ctype":"Always","log":true,"inuse":true,"type":"outlet","did":"3_5","gid":"","gtype":"1","ID":"30","prog":"Fallback ON \nSet ON \n","extra":{}
},{"name":"FANS_3_6","icon":"Spigot","ctype":"Chiller","log":false,"inuse":true,"type":"outlet","did":"3_6","gid":"","gtype":"1","ID":"31","prog":"Fallback OFF \nIf Tmp > 78.0 Then ON \nIf Tmp < 77.5 Then OFF \n","extra":{}
},{"name":"SMAL_FAN_3_7","icon":"Left/Right Arrows","ctype":"Chiller","log":false,"inuse":true,"type":"outlet","did":"3_7","gid":"","gtype":"1","ID":"32","prog":"Fallback OFF \nIf Tmp > 77.6 Then ON \nIf Tmp < 77.0 Then OFF \n","extra":{}
},{"name":"AirSrub_3_8","icon":"Light B","ctype":"Light","log":false,"inuse":true,"type":"outlet","did":"3_8","gid":"","gtype":"1","ID":"33","prog":"Fallback OFF \nSet OFF \nIf Time 08:00 to 08:05 Then ON \nIf Tmp > 82.0 Then OFF \nMin Time 001:00 Then OFF \n","extra":{}
},{"name":"LinkA_3_9","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"24v","did":"3_9","gid":"","gtype":"1","ID":"34","prog":"Set OFF \n","extra":{}
},{"name":"Calc_Airout","icon":"Up/Down Arrows","ctype":"Light","log":false,"inuse":true,"type":"24v","did":"3_10","gid":"","gtype":"1","ID":"35","prog":"Fallback OFF \nSet OFF \nIf Time 09:00 to 09:15 Then ON \nIf Tmpx9 > 82.0 Then OFF \nMin Time 001:00 Then OFF \n","extra":{}
},{"name":"Lunar","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"MXMLight|Ecotech|30G6L","did":"6_67","gid":"4","gtype":"0","ID":"36","prog":"Fallback OFF \ntdata 00:00:00,0,0,5,100,100,0,0,0,0,0,0,0,0\ntdata 02:00:00,0,0,0,100,100,0,0,0,0,0,0,0,0\ntdata 04:02:00,0,0,0,100,100,0,0,0,0,0,0,0,0\ntdata 19:37:00,0,0,0,100,100,0,0,0,0,0,0,0,0\ntdata 21:54:00,0,0,4,100,100,0,0,0,0,0,0,0,0\ntdata 23:59:00,0,0,5,100,100,0,0,0,0,0,0,0,0\n","extra":{"temperature":false,"fan":false,"flash":false,"colors":[{"name":"White","rgb":"bfe6f0","max":100.0},{"name":"Blue","rgb":"15b4c4","max":100.0}]}
},{"name":"Radion_6_4","icon":"Light B","ctype":"Advanced","log":false,"inuse":true,"type":"MXMLight|Ecotech|30G5","did":"6_4","gid":"0","gtype":"0","ID":"37","prog":"Fallback OFF \ntdata 06:01:00,0,0,0,0,0,0,0,0,0,0,0,0,0\ntdata 08:15:00,0,0,100,0,40,25,0,100,66,0,0,0,0\ntdata 09:00:00,0,0,100,0,56,40,24,100,66,5,0,0,0\ntdata 09:50:00,0,0,100,30,80,74,37,100,66,7,30,0,0\ntdata 10:20:00,0,0,100,74,80,100,38,100,66,8,74,0,0\ntdata 12:00:00,0,0,100,100,80,100,38,100,66,80,100,0,0\ntdata 14:49:00,0,0,100,74,80,100,38,100,66,8,74,0,0\ntdata 15:22:00,0,0,100,30,80,74,37,100,66,7,30,0,0\ntdata 15:53:00,0,0,100,0,56,40,24,100,66,5,0,0,0\ntdata 16:24:00,0,0,100,0,40,25,0,100,66,0,0,0,0\ntdata 17:00:00,0,0,100,0,16,0,0,20,13,0,0,0,0\ntdata 19:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0\n","extra":{"temperature":false,"fan":false,"flash":false,"colors":[{"name":"Cool White","rgb":"bfe6f0","ratio":0.061,"max":100.0},{"name":"Royal Blue","rgb":"152bc4","ratio":0.389,"max":100.0},{"name":"Blue","rgb":"156bc4","ratio":0.233,"max":100.0},{"name":"Red","rgb":"d10014","ratio":0.012,"max":100.0},{"name":"UV","rgb":"c408d6","ratio":0.073,"max":100.0},{"name":"Violet","rgb":"7a08d6","ratio":0.090,"max":100.0},{"name":"Cyan","rgb":"0d98ba","ratio":0.111,"max":100.0},{"name":"Lime","rgb":"24b952","ratio":0.027,"max":100.0}]}
},{"name":"Alk_7_4","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"selector","did":"7_4","gid":"","gtype":"0","ID":"38","prog":"OSC 360:00/001:00/359:00 Then ON \n","extra":{}
},{"name":"Lunar_6_68","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":false,"type":"MXMLight|Ecotech|30G5L","did":"6_68","gid":"0","gtype":"0","ID":"39","prog":"Set OFF \n","extra":{"temperature":false,"fan":false,"flash":false,"colors":[{"name":"White","rgb":"bfe6f0","max":100.0},{"name":"Blue","rgb":"15b4c4","max":100.0}]}
},{"name":"Radion_6_5","icon":"Light B","ctype":"Advanced","log":false,"inuse":true,"type":"MXMLight|Ecotech|30G5","did":"6_5","gid":"0","gtype":"0","ID":"40","prog":"Fallback OFF \ntdata 06:01:00,0,0,0,0,0,0,0,0,0,0,0,0,0\ntdata 08:15:00,0,0,100,0,40,25,0,100,66,0,0,0,0\ntdata 09:00:00,0,0,100,0,56,40,24,100,66,5,0,0,0\ntdata 09:50:00,0,0,100,30,80,74,37,100,66,7,30,0,0\ntdata 10:20:00,0,0,100,74,80,100,38,100,66,8,74,0,0\ntdata 12:00:00,0,0,100,100,80,100,38,100,66,80,100,0,0\ntdata 14:27:00,0,0,100,74,80,100,38,100,66,8,74,0,0\ntdata 14:55:00,0,0,100,30,80,74,37,100,66,7,30,0,0\ntdata 15:25:00,0,0,100,0,56,40,24,100,66,5,0,0,0\ntdata 16:08:00,0,0,100,0,40,25,0,100,66,0,0,0,0\ntdata 17:00:00,0,0,100,0,16,0,0,20,13,0,0,0,0\ntdata 19:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0\n","extra":{"temperature":false,"fan":false,"flash":false,"colors":[{"name":"Cool White","rgb":"bfe6f0","ratio":0.061,"max":100.0},{"name":"Royal Blue","rgb":"152bc4","ratio":0.389,"max":100.0},{"name":"Blue","rgb":"156bc4","ratio":0.233,"max":100.0},{"name":"Red","rgb":"d10014","ratio":0.012,"max":100.0},{"name":"UV","rgb":"c408d6","ratio":0.073,"max":100.0},{"name":"Violet","rgb":"7a08d6","ratio":0.090,"max":100.0},{"name":"Cyan","rgb":"0d98ba","ratio":0.111,"max":100.0},{"name":"Lime","rgb":"24b952","ratio":0.027,"max":100.0}]}
},{"name":"Lunar_6_69","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":false,"type":"MXMLight|Ecotech|30G5L","did":"6_69","gid":"0","gtype":"0","ID":"41","prog":"Set OFF \n","extra":{"temperature":false,"fan":false,"flash":false,"colors":[{"name":"White","rgb":"bfe6f0","max":100.0},{"name":"Blue","rgb":"15b4c4","max":100.0}]}
},{"name":"Vortech_L","icon":"Up/Down Arrows","ctype":"Advanced","log":true,"inuse":true,"type":"MXMPump|Ecotech|Vortech","did":"6_6","gid":"3","gtype":"0","ID":"42","prog":"Fallback OFF \ntdata 00:01:00,0,0,1,0,0,0,0,0,0,0,0,0,0\ntdata 07:03:00,0,0,26,2,0,0,0,0,0,0,0,0,0\ntdata 11:43:00,0,0,70,1,0,0,0,0,0,0,0,0,0\ntdata 15:43:00,0,0,1,8,0,0,0,0,0,0,0,0,0\ntdata 17:29:00,0,0,27,8,0,0,0,0,0,0,0,0,0\ntdata 19:51:00,0,0,37,2,0,0,0,0,0,0,0,0,0\ntdata 21:36:00,0,0,20,3,20,0,0,0,0,0,0,0,0\ntdata 23:59:00,0,0,10,0,0,0,0,0,0,0,0,0,0\n","extra":{"temperature":false,"gph":{"min":0.0,"max":100.0},"modes":[{"id":1,"name":"Reef"},{"id":0,"name":"Constant"},{"id":2,"name":"Lagoon"},{"id":3,"name":"Pulse"},{"id":7,"name":"Tidal"},{"id":8,"name":"Nutrient"},{"id":10,"name":"Sync"},{"id":11,"name":"AntiSync"}]}
},{"name":"Vortech_R","icon":"Up/Down Arrows","ctype":"Advanced","log":true,"inuse":true,"type":"MXMPump|Ecotech|Vortech","did":"6_7","gid":"1","gtype":"0","ID":"43","prog":"Fallback OFF \ntdata 00:00:00,0,0,11,0,0,0,0,0,0,0,0,0,0\ntdata 07:03:00,0,0,28,2,0,0,0,0,0,0,0,0,0\ntdata 09:53:00,0,0,96,1,0,0,0,0,0,0,0,0,0\ntdata 16:22:00,0,0,34,2,0,0,0,0,0,0,0,0,0\ntdata 21:11:00,0,0,9,3,20,0,0,0,0,0,0,0,0\ntdata 23:59:00,0,0,17,0,0,0,0,0,0,0,0,0,0\n","extra":{"temperature":false,"gph":{"min":0.0,"max":100.0},"modes":[{"id":1,"name":"Reef"},{"id":0,"name":"Constant"},{"id":2,"name":"Lagoon"},{"id":3,"name":"Pulse"},{"id":7,"name":"Tidal"},{"id":8,"name":"Nutrient"},{"id":10,"name":"Sync"},{"id":11,"name":"AntiSync"}]}
},{"name":"Vortech_R","icon":"Up/Down Arrows","ctype":"Advanced","log":true,"inuse":true,"type":"MXMPump|Ecotech|Vortech","did":"6_8","gid":"1","gtype":"0","ID":"44","prog":"Fallback OFF \ntdata 00:00:00,0,0,11,0,0,0,0,0,0,0,0,0,0\ntdata 07:03:00,0,0,28,2,0,0,0,0,0,0,0,0,0\ntdata 09:53:00,0,0,96,1,0,0,0,0,0,0,0,0,0\ntdata 16:22:00,0,0,34,2,0,0,0,0,0,0,0,0,0\ntdata 21:11:00,0,0,9,3,20,0,0,0,0,0,0,0,0\ntdata 23:59:00,0,0,17,0,0,0,0,0,0,0,0,0,0\n","extra":{"temperature":false,"gph":{"min":0.0,"max":100.0},"modes":[{"id":1,"name":"Reef"},{"id":0,"name":"Constant"},{"id":2,"name":"Lagoon"},{"id":3,"name":"Pulse"},{"id":7,"name":"Tidal"},{"id":8,"name":"Nutrient"},{"id":10,"name":"Sync"},{"id":11,"name":"AntiSync"}]}
},{"name":"Vectra_6_9","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"MXMPump|Ecotech|Vectra","did":"6_9","gid":"0","gtype":"0","ID":"45","prog":"Fallback OFF \ntdata 00:00:00,0,0,82,0,0,0,0,0,0,0,0,0,0\ntdata 23:59:00,0,0,82,0,0,0,0,0,0,0,0,0,0\n","extra":{"temperature":false,"gph":{"min":0.0,"max":100.0},"modes":[{"id":0,"name":"Constant"}]}
},{"name":"Trident_8_3","icon":"Up/Down Arrows","ctype":"Advanced","log":false,"inuse":true,"type":"selector","did":"8_3","gid":"","gtype":"0","ID":"46","prog":"Fallback OFF \nSet OFF \nIf Time 01:00 to 01:01 Then ON \n","extra":{}
}],"pconf":[{"name":"PF1","ID":1,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF2","ID":2,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF3","ID":3,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF4","ID":4,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF5","ID":5,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF6","ID":6,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF7","ID":7,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF8","ID":8,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF9","ID":9,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF10","ID":10,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF11","ID":11,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF12","ID":12,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF13","ID":13,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF14","ID":14,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF15","ID":15,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF16","ID":16,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF17","ID":17,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF18","ID":18,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF19","ID":19,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF20","ID":20,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF21","ID":21,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF22","ID":22,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF23","ID":23,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF24","ID":24,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF25","ID":25,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF26","ID":26,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF27","ID":27,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF28","ID":28,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF29","ID":29,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF30","ID":30,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF31","ID":31,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}},
{"name":"PF32","ID":32,"type":"pump","data":{"min":0,"max":100,"sync":"Disable","div10":"Disable","offTime0":1,"onTime":1,"offTime1":1}}],"clock":{"timezone":["-7.00","-7.00"],"date":1724168270,
"dst":false,"auto":true}
,"mconf":[{"abaddr":2,"name":"EB832_2","hwtype":"EB832","update":false,"updateStat":0,"extra":{"swapAddr":0}},{"abaddr":3,"name":"EB832_3","hwtype":"EB832","update":false,"updateStat":0,"extra":{"swapAddr":0}},{"abaddr":4,"name":"FMM_4","hwtype":"FMM","update":false,"updateStat":0,"extra":{"swapAddr":0,"auto":[true,false,false,false],"mode": ["flow_500","flow_500","LLS-15","flow_250"],"flowMode":"gph","levelMode":"in"}},{"abaddr":5,"name":"AFS_5","hwtype":"AFS","update":false,"updateStat":0,"extra":{"swapAddr":0}},{"abaddr":6,"name":"MXM_6","hwtype":"MXM","update":false,"updateStat":0,"extra":{"swapAddr":0,"status": "\n    (0,511,511)\n   Vortech_L(42) - Rev 1.4 Ser #: 3J1600028ARBB3 - OK-1\n   Radion_R(196) - Rev 7.1 Ser #: 6C5G00AA1BRBDE - OK-2\n   Radion_LM(196) - Rev 7.1 Ser #: 6C5G00AB04RBD0 - OK-3\n   Radion_6_4(193) - Rev 7.1 Ser #: 3K5D001A4CRBD4 - OK-4\n   Radion_6_5(193) - Rev 7.1 Ser #: 3K5D001A4DRBD5 - OK-5\n   Vortech_L(42) - Rev 1.4 Ser #: 3Z16001966RBBE - OK-6\n   Vortech_R(42) - Rev 1.4 Ser #: 3Z16001963RBBB - OK-7\n   Vortech_R(42) - Rev 1.4 Ser #: 3U1600128ERBC3 - OK-8\n   Vectra_6_9(149) - Rev 1.5 Ser #: 5N4500130ERWCE - OK-9\n"}},{"abaddr":7,"name":"TRI_7","hwtype":"TRI","update":false,"updateStat":0,"extra":{"swapAddr":0,"errorMask":65535,"wasteSize":3801.0,"cal":false,"targetAlk": 8.50,"targetCa": 400,"targetMg":1300,"sampleChange":false,"resetDefaults":false,"primeBlank":false,"prime":[false,false,false,false],"clean":0,"reset":[false,false,false,false,false],"newReagent":[false,false,false],"calConst":[60.66,68.30, 7.56]}},{"abaddr":8,"name":"TNP_8","hwtype":"TNP","update":false,"updateStat":0,"extra":{"swapAddr":0,"errorMask":65535,"wasteSize":3800.0,"cal":false,"targetPO4":   0,"targetNO3":50.0,"sampleChange":false,"resetDefaults":false,"primeBlank":false,"prime":[false,false,false,false],"clean":0,"reset":[false,false,false,false,false],"newReagent":[false,false,false],"calConst":[ 0.00, 0.00, 0.00]}},{"abaddr":9,"name":"PM1_9","hwtype":"PM1","update":false,"updateStat":0,"extra":{"swapAddr":0}}],"dconf":[{"page":0,"lineEnables":[true,true,true,false,false],"probes":["base_Temp","base_pH","base_Cond","base_ORP"],"outputs":["base_Var1","base_Var2","base_Var3","base_Var4","base_Alarm","base_Warn","base_email","0_0","3_1","3_2","3_3","3_4","3_5","3_6","3_7","3_8"]},{"page":1,"lineEnables":[true,true,false,true,false],"probes":["base_Temp","base_pH","base_pH2","base_Temp"],"outputs":["base_Var1","base_Var2","base_Var3","base_Var4","base_Alarm","base_Warn","base_email","0_0","3_1","3_2","3_3","3_4","3_5","3_6","3_7","3_8"]},{"page":2,"lineEnables":[false,true,true,false,false],"probes":["base_Temp","base_pH","base_Cond","base_pH2"],"outputs":["base_Var1","base_Var2","base_Var3","base_Var4","base_Alarm","base_Warn","base_email","base_Var1","3_1","3_2","3_3","3_4","3_5","3_6","3_7","3_8"]},{"page":3,"lineEnables":[true,false,false,false,false],"probes":["base_Temp","base_pH","base_pH2","3_P0"],"outputs":["base_Var1","base_Var2","base_Var3","base_Var4","base_Alarm","base_Warn","base_email","base_Var1","3_1","3_2","3_3","3_4","3_5","3_6","3_7","3_8"]}],"iconf":[{"did":"base_Temp","enable":true,"type":"Temp","name":"Tmp","alarm":{"max":82.0 ,"min":75.0 },"extra":{"scale":"4bf7","offset":"-3","range":"Faren"}},{"did":"base_pH","enable":true,"type":"pH","name":"pH","alarm":{},"extra":{"scale":"1045","offset":"-18","comp":false}},{"did":"base_pH2","enable":false,"type":"pH","name":"pH2","alarm":{},"extra":{"scale":"13ea","offset":"-175","comp":false}},{"did":"base_ORP","enable":true,"type":"ORP","name":"ORP","alarm":{"max":450,"min":150},"extra":{"scale":"1071","offset":"97"}},{"did":"base_Cond","enable":true,"type":"Cond","name":"Salt","alarm":{},"extra":{"scale":"15db","offset":"272","comp":0.0,"range":"Salinity"}},{"did":"2_P0","enable":true,"type":"Amps","name":"UV_1A","alarm":{},"extra":{}},{"did":"2_P1","enable":true,"type":"Amps","name":"REFLIGHT_2A","alarm":{},"extra":{}},{"did":"2_P2","enable":true,"type":"Amps","name":"RetPump_3A","alarm":{},"extra":{}},{"did":"2_P3","enable":true,"type":"Amps","name":"Heater_4A","alarm":{},"extra":{}},{"did":"2_P4","enable":true,"type":"Amps","name":"Co2_5A","alarm":{},"extra":{}},{"did":"2_P5","enable":true,"type":"Amps","name":"Skimmer_6A","alarm":{},"extra":{}},{"did":"2_P6","enable":true,"type":"Amps","name":"CalcPump_2_7A","alarm":{},"extra":{}},{"did":"2_P7","enable":true,"type":"Amps","name":"CalcDose_2_8A","alarm":{},"extra":{}},{"did":"2_P8","enable":true,"type":"pwr","name":"UV_1W","alarm":{},"extra":{}},{"did":"2_P9","enable":true,"type":"pwr","name":"REFLIGHT_2W","alarm":{},"extra":{}},{"did":"2_P10","enable":true,"type":"pwr","name":"RetPump_3W","alarm":{},"extra":{}},{"did":"2_P11","enable":true,"type":"pwr","name":"Heater_4W","alarm":{},"extra":{}},{"did":"2_P12","enable":true,"type":"pwr","name":"Co2_5W","alarm":{},"extra":{}},{"did":"2_P13","enable":true,"type":"pwr","name":"Skimmer_6W","alarm":{},"extra":{}},{"did":"2_P14","enable":true,"type":"pwr","name":"CalcPump_2_7W","alarm":{},"extra":{}},{"did":"2_P15","enable":true,"type":"pwr","name":"CalcDose_2_8W","alarm":{},"extra":{}},{"did":"2_P16","enable":true,"type":"volts","name":"Volt_2","alarm":{},"extra":{}},{"did":"3_P0","enable":true,"type":"Amps","name":"Lights_3_1A","alarm":{},"extra":{}},{"did":"3_P1","enable":true,"type":"Amps","name":"MP40RF_3_2A","alarm":{},"extra":{}},{"did":"3_P2","enable":true,"type":"Amps","name":"MP40RR_3_3A","alarm":{},"extra":{}},{"did":"3_P3","enable":true,"type":"Amps","name":"MP40LF_3_4A","alarm":{},"extra":{}},{"did":"3_P4","enable":true,"type":"Amps","name":"MP40LR_3_5A","alarm":{},"extra":{}},{"did":"3_P5","enable":true,"type":"Amps","name":"FANS_3_6A","alarm":{},"extra":{}},{"did":"3_P6","enable":true,"type":"Amps","name":"SMAL_FAN_3_7A","alarm":{},"extra":{}},{"did":"3_P7","enable":true,"type":"Amps","name":"AirSrub_3_8A","alarm":{},"extra":{}},{"did":"3_P8","enable":true,"type":"pwr","name":"Lights_3_1W","alarm":{},"extra":{}},{"did":"3_P9","enable":true,"type":"pwr","name":"MP40RF_3_2W","alarm":{},"extra":{}},{"did":"3_P10","enable":true,"type":"pwr","name":"MP40RR_3_3W","alarm":{},"extra":{}},{"did":"3_P11","enable":true,"type":"pwr","name":"MP40LF_3_4W","alarm":{},"extra":{}},{"did":"3_P12","enable":true,"type":"pwr","name":"MP40LR_3_5W","alarm":{},"extra":{}},{"did":"3_P13","enable":true,"type":"pwr","name":"FANS_3_6W","alarm":{},"extra":{}},{"did":"3_P14","enable":true,"type":"pwr","name":"SMAL_FAN_3_7W","alarm":{},"extra":{}},{"did":"3_P15","enable":true,"type":"pwr","name":"AirSrub_3_8W","alarm":{},"extra":{}},{"did":"3_P16","enable":true,"type":"volts","name":"Volt_3","alarm":{},"extra":{}},{"did":"4_P0","enable":true,"type":"gph","name":"UV","alarm":{},"extra":{}},{"did":"4_P1","enable":true,"type":"gph","name":"Carbon","alarm":{},"extra":{}},{"did":"4_P2","enable":true,"type":"in","name":"Sump","alarm":{"min": 0.0},"extra":{}},{"did":"4_P3","enable":true,"type":"gph","name":"Zeovit","alarm":{},"extra":{}},{"did":"7_0","enable":true,"type":"alk","name":"Alkx7","alarm":{},"extra":{"scale":"0","offset":"0"}},{"did":"7_1","enable":true,"type":"ca","name":"Cax7","alarm":{},"extra":{"scale":"0","offset":"0"}},{"did":"7_2","enable":true,"type":"mg","name":"Mgx7","alarm":{},"extra":{"scale":"0","offset":"0"}},{"did":"8_0","enable":true,"type":"po4","name":"Po4x8","alarm":{},"extra":{"scale":"0","offset":"0"}},{"did":"8_1","enable":true,"type":"no3","name":"No3x8","alarm":{},"extra":{"scale":"0","offset":"0"}},{"did":"9_0","enable":true,"type":"Temp","name":"Tmpx9","alarm":{},"extra":{"scale":"1000","offset":"-9","range":"Faren"}},{"did":"9_1","enable":true,"type":"pH","name":"CalcPH","alarm":{},"extra":{"scale":"1000","offset":"-35","comp":false}},{"did":"9_2","enable":false,"type":"ORP","name":"ORPx9","alarm":{},"extra":{"scale":"1016","offset":"82"}},{"did":"base_I1","name":"Sw1","type":"digital","extra":{},"enable":true},{"did":"base_I2","name":"Sw2","type":"digital","extra":{},"enable":true},{"did":"base_I3","name":"Sw3","type":"digital","extra":{},"enable":true},{"did":"base_I4","name":"Sw4","type":"digital","extra":{},"enable":true},{"did":"base_I5","name":"Sw5","type":"digital","extra":{},"enable":true},{"did":"base_I6","name":"Sw6","type":"digital","extra":{},"enable":true},{"did":"9_I1","name":"Swx9_1","type":"digital","extra":{},"enable":true},{"did":"9_I2","name":"Swx9_2","type":"digital","extra":{},"enable":true},{"did":"9_I3","name":"Swx9_3","type":"digital","extra":{},"enable":true},{"did":"9_I4","name":"Swx9_4","type":"digital","extra":{},"enable":true},{"did":"9_I5","name":"Swx9_5","type":"digital","extra":{},"enable":true},{"did":"9_I6","name":"Swx9_6","type":"digital","extra":{},"enable":true}],"misc":{"reboot":false,"almSound":"Solveigs","wrnSound":"Positive Beep","logInterval":10,"feedInterval":[300,4700,300,301],"pwrMon":true},"season":{"temp":[76.0 ,75.0 ,76.0 ,76.0 ,76.5 ,77.5 ,78.5 ,80.5 ,78.5 ,77.5 ,76.5 ,76.0 ],"newmoon":[11,9,10,8,7,6,5,4,2,2,1,30],"moonrise":["9:00","9:23","8:12","8:36","8:12","8:35","8:12","8:35","8:59","8:35","8:59","8:35"],"moonset":["21:00","21:23","20:12","20:36","20:12","20:35","20:12","20:35","20:59","20:35","20:59","20:35"],"sunrise":["7:33","7:37","7:26","7:06","6:47","6:39","6:43","6:52","6:57","6:58","7:03","7:17"],"sunset":["18:51","19:07","19:17","19:21","19:25","19:34","19:41","19:38","19:21","18:59","18:41","18:38"]},"nconf":{"dhcp":true,"hostname":"apex","ipaddr":"10.100.17.137","netmask":"255.255.255.0","gateway":"10.100.17.1","dns":["10.100.21.247","10.100.21.248"],"httpPort":80,"user":"fake","password":"fake","defaultAuth":true,"fusionEnable":true,"wifiAPLock":false,"wifiEnable":false,"wifiAPPassword":"","ssid":"","wifiAP":false,"emailEnable":false,"smtpPort":587,"smtpServer":"mail.example.com","emailFrom":"name@example.com","emailTo":"recipient@example.com","reEmail":60,"emailAuth":false,"emailUser":"name@example.com","emailPassword":"","updateFirmware":false,"latestFirmware":"5.12_7D24"},"cal":{"did":"base_Temp","date":1724168270,"value": 778,"state": 0}}
brettonw commented 3 months ago

You have quite the setup...

{"abaddr":8,"hwtype":"TNP","hwrev":2,"swrev":38,"swstat":"OK","pcount":6463950,"pgood":6463942,"perror":7,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{"temp":944,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":820454400,"resetTime":[1719427310,1719427310,1719427310,1719427310,1719427310],"levels":[1544.6,1048.2, 86.28, 85.84, 89.84]}}

Are there controls associated with these levels, like a reset/refill or anything? If you want to jump the gun, you might be able to create a rest sensor for these values directly in HA. I believe the status URL can be fetched without logging in.

ineedhungry commented 3 months ago

There are reset's for them as well. Screenshot 2024-08-20 at 10 56 46 AM Screenshot 2024-08-20 at 10 57 29 AM

brettonw commented 3 months ago

You seem to understand the lingo... Can you use the developer tools to capture the http request to the config url when you reset these values?

ineedhungry commented 3 months ago

I assume you just want the api call it's making?

I need refill the reagents on abaddr:7 tomorrow. I'll grab that.

brettonw commented 3 months ago

After looking at it a bit - the current integration doesn't really capture modules as sensors. You might be better off creating a rest sensor from the status url, capturing the level values from there.

Are the reagents of fixed/known type? levels[0] is something specific, levels[1], etc. Or do you set what each reagent is somewhere? Like a profile or something?

ineedhungry commented 3 months ago

They are fixed known types which cannot be changed. Each trident(np) has three reagents in a fixed position. The "fill" just makes it go to 100% regardless how much you put in the container. Then they just estimate the levels based of number of tests run. Which is approximate at best given the pump tubing wears and fluid levels change over time as a result. Looking at the level numbers I can't wrap my head around them. They are odd. I am hoping once I reset the reagents the levels number will make more sense.

So really per trident there should be three sensors for the different reagent levels. Then you could do a momentary switch for the reset. Personally I wouldn't bother the reset or prime, the level data I feel is more important to write triggers against.

brettonw commented 3 months ago

A few things: 1) The status response on my system does not have the same elements yours does, but you have the same version of system software - your type reports as AC5 - which Apex do you have? 2) You replace the reagents in packs, yeah? Or do you do each independently? I’m wondering if you only need one sensor… The replace times are in sync for a bunch of them. 3) Can you tell me what the reagent names are when you wrap your head around the level numbers? I also suspect there’s something like the amount of waste water as one of the values… (in case that goes into reservoir?) 4) I'm not at home this week, so I'm looking at my system through the fusion cloud, which may be different than in-person. I'm interested in how I can integrate this and improve the DOS/DQD integration as well, as they have some similarities, I think.

ineedhungry commented 3 months ago

1) If I remember correctly its the main head unit which was "new" in 2016. Its not the newer one with the FFM's built in, but larger than the Jr model. 2) On the OG trident you replace reagent A separately from B and C. A uses about double from what B and C does. On the Trident NP they all seem to be consuming about the same rate (1 being slightly less). The NP is new to me and I haven't had to swap reagents on that one yet. Its looking like all three will be replaced at the same time on that one though. 3) On the OG trident they are A,B,C. for the names. On the NP they are labeled 1,2,3. You are correct there are waste water values too. Looking at the levels again I would bet the first one is the waste level value. I don't see the custom values set for the waste containers though. Getting % might be a bit hard. The rest I can't make sense of. Unless they have a "reserve" amount set.

ineedhungry commented 3 months ago

Reset the waste. Here is the API and Payload: API:

Request URL:
http://IP/rest/config/mconf/7
Request Method:
PUT

Payload:

{abaddr: 7, name: "TRI_7", hwtype: "TRI", update: false, updateStat: 0,…}
abaddr
: 
7
action
: 
0
extra
: 
{cal: false, prime: [false, false, false, false], reset: [true, false, false, false, false],…}
cal
: 
false
calConst
: 
[60.66, 68.3, 7.56]
clean
: 
0
errorMask
: 
65535
newReagent
: 
[false, false, false]
0
: 
false
1
: 
false
2
: 
false
prime
: 
[false, false, false, false]
0
: 
false
1
: 
false
2
: 
false
3
: 
false
primeBlank
: 
false
reset
: 
[true, false, false, false, false]
0
: 
true
1
: 
false
2
: 
false
3
: 
false
4
: 
false
resetDefaults
: 
false
sampleChange
: 
false
swapAddr
: 
0
targetAlk
: 
8.5
targetCa
: 
400
targetMg
: 
1300
wasteSize
: 
3801
hwtype
: 
"TRI"
name
: 
"TRI_7"
update
: 
false
updateStat
: 
0

TNP API:

Request URL:
http://IP/rest/config/mconf/8
Request Method:
PUT

TNP Payload:

{abaddr: 8, name: "TNP_8", hwtype: "TNP", update: false, updateStat: 0,…}
abaddr
: 
8
action
: 
0
extra
: 
{cal: false, prime: [false, false, false, false], reset: [true, false, false, false, false],…}
cal
: 
false
calConst
: 
[0, 0, 0]
clean
: 
0
errorMask
: 
65535
newReagent
: 
[false, false, false]
prime
: 
[false, false, false, false]
primeBlank
: 
false
reset
: 
[true, false, false, false, false]
resetDefaults
: 
false
sampleChange
: 
false
swapAddr
: 
0
targetNO3
: 
50
targetPO4
: 
0
wasteSize
: 
3800
hwtype
: 
"TNP"
name
: 
"TNP_8"
update
: 
false
updateStat
: 
0

Here are the before and after values for the levels. Before:

{"abaddr":7,"hwtype":"TRI","hwrev":1,"swrev":22,"swstat":"OK","pcount":104387,"pgood":104387,"perror":0,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{"temp":1074,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":1704216582,"resetTime":[1718755456,1693797211,1718755456,1718755456,1721569660],"levels":[3442.3, 922.9, 10.43, 11.46, 19.85]}}
{"abaddr":8,"hwtype":"TNP","hwrev":2,"swrev":40,"swstat":"OK","pcount":104646,"pgood":104644,"perror":2,"reatt":5,"inact":0,"boot":false,"present":true,"extra":{"temp":923,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":820454400,"resetTime":[1719427310,1719427310,1719427310,1719427310,1719427310],"levels":[1587.1,1079.6, 82.65, 82.20, 86.20]}}

After:

,{"abaddr":7,"hwtype":"TRI","hwrev":1,"swrev":22,"swstat":"OK","pcount":105667,"pgood":105667,"perror":0,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{"temp":1085,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":1704216582,"resetTime":[1724260305,1693797211,1718755456,1718755456,1721569660],"levels":[   0.0, 922.9, 10.43, 11.46, 19.85]}}
,{"abaddr":8,"hwtype":"TNP","hwrev":2,"swrev":40,"swstat":"OK","pcount":105926,"pgood":105924,"perror":2,"reatt":5,"inact":0,"boot":false,"present":true,"extra":{"temp":918,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":820454400,"resetTime":[1724260448,1719427310,1719427310,1719427310,1719427310],"levels":[   0.0,1079.6, 82.65, 82.20, 86.20]}}

Looks like the first level number is the waste container, and it counts up.

ineedhungry commented 3 months ago

A before: ,{"abaddr":7,"hwtype":"TRI","hwrev":1,"swrev":22,"swstat":"OK","pcount":105667,"pgood":105667,"perror":0,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{"temp":1085,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":1704216582,"resetTime":[1724260305,1693797211,1718755456,1718755456,1721569660],"levels":[ 0.0, 922.9, 10.43, 11.46, 19.85]}} A After: ,{"abaddr":7,"hwtype":"TRI","hwrev":1,"swrev":22,"swstat":"OK","pcount":106860,"pgood":106860,"perror":0,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{"temp":1059,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":1704216582,"resetTime":[1724260305,1693797211,1718755456,1718755456,1724260969],"levels":[ 0.0, 922.9, 10.43, 11.46,250.00]}}

API: Request URL: http://IP/rest/config/mconf/7 Request Method: PUT

Payload: {abaddr: 7, name: "TRI_7", hwtype: "TRI", update: false, updateStat: 0,…} abaddr : 7 action : 0 extra : {cal: false, prime: [false, false, false, false], reset: [false, false, false, false, true],…} cal : false calConst : [60.66, 68.3, 7.56] clean : 0 errorMask : 65535 newReagent : [false, false, false] 0 : false 1 : false 2 : false prime : [false, false, false, false] 0 : false 1 : false 2 : false 3 : false primeBlank : false reset : [false, false, false, false, true] 0 : false 1 : false 2 : false 3 : false 4 : true resetDefaults : false sampleChange : false swapAddr : 0 targetAlk : 8.5 targetCa : 400 targetMg : 1300 wasteSize : 3801 hwtype : "TRI" name : "TRI_7" update : false updateStat : 0

B before: ,{"abaddr":7,"hwtype":"TRI","hwrev":1,"swrev":22,"swstat":"OK","pcount":106860,"pgood":106860,"perror":0,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{"temp":1059,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":1704216582,"resetTime":[1724260305,1693797211,1718755456,1718755456,1724260969],"levels":[ 0.0, 922.9, 10.43, 11.46,250.00]}}

B After: ,{"abaddr":7,"hwtype":"TRI","hwrev":1,"swrev":22,"swstat":"OK","pcount":107206,"pgood":107205,"perror":0,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{"temp":1048,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":1704216582,"resetTime":[1724260305,1693797211,1718755456,1724261142,1724260969],"levels":[ 0.0, 922.9, 10.43,250.00,250.00]}}

API: Request URL: http://IP/rest/config/mconf/7 Request Method: PUT Payload: {"abaddr":7,"name":"TRI_7","hwtype":"TRI","update":false,"updateStat":0,"extra":{"cal":false,"prime":[false,false,false,false],"reset":[false,false,false,true,false],"primeBlank":false,"resetDefaults":false,"sampleChange":false,"targetAlk":8.5,"targetCa":400,"targetMg":1300,"wasteSize":3801,"swapAddr":0,"errorMask":65535,"clean":0,"newReagent":[false,false,false],"calConst":[60.66,68.3,7.56]},"action":0}

C before: ,{"abaddr":7,"hwtype":"TRI","hwrev":1,"swrev":22,"swstat":"OK","pcount":107206,"pgood":107205,"perror":0,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{"temp":1048,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":1704216582,"resetTime":[1724260305,1693797211,1718755456,1724261142,1724260969],"levels":[ 0.0, 922.9, 10.43,250.00,250.00]}} C After: ,{"abaddr":7,"hwtype":"TRI","hwrev":1,"swrev":22,"swstat":"OK","pcount":107443,"pgood":107443,"perror":0,"reatt":2,"inact":0,"boot":false,"present":true,"extra":{"temp":1043,"errorCode":0,"errorMask":65535,"status":"idle","lastCal":1704216582,"resetTime":[1724260305,1693797211,1724261248,1724261142,1724260969],"levels":[ 0.0, 922.9,250.00,250.00,250.00]}} API: Request URL: http://IP/rest/config/mconf/7 Request Method: PUT Payload: {"abaddr":7,"name":"TRI_7","hwtype":"TRI","update":false,"updateStat":0,"extra":{"cal":false,"prime":[false,false,false,false],"reset":[false,false,true,false,false],"primeBlank":false,"resetDefaults":false,"sampleChange":false,"targetAlk":8.5,"targetCa":400,"targetMg":1300,"wasteSize":3801,"swapAddr":0,"errorMask":65535,"clean":0,"newReagent":[false,false,false],"calConst":[60.66,68.3,7.56]},"action":0}

ineedhungry commented 3 months ago

Looks like the container levels start at the furthest out for abc and its a count down. I am guessing the containers are 250ml and 0 is empty. It also seems like the reset payload for the put follows that same value slot as well. no idea what the second number from the right is though. Could do a get for the waste container size and that one is a count up.