-
-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change to auto tele update #9
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks ok. I'll make some small optimizations after it's merged.
Let me test it, then I'll give you a feedback so you can make the Tasmota PR. Thanks. |
@curzon01 Norbert, made some changes to package and updated the repo. I flashed the new fw. Created the updated Rule and set NPTeleperiod manually to 5. Strange thing: after the command, I see SENSOR two times in 20ms. Overall consideration: reaction times are good, and the status of sensors (the right section) etc. is finally in sync with the status of the switches (the ones on the left). Previously, I turned on a switch, its status would update after 3s, but the relevant sensor updated much after. So it looks good. :) See below for other comments... 20:27:10.262 CMD: NPTeleperiod 5
20:27:10.276 MQT: stat/SmartPool/NPTELEPERIOD = {"NPTelePeriod":5}
20:27:10.788 MQT: tele/SmartPool/STATE = {"Time":"2023-11-08T20:27:10","Uptime":"0T00:20:05","UptimeSec":1205,"Heap":132,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":229},"Wifi":{"AP":1,"SSId":"NetStumbling?","BSSId":"2C:3A:FD:EF:1E:67","Channel":1,"Mode":"11n","RSSI":100,"Signal":-35,"LinkCount":1,"Downtime":"0T00:00:13"}}
20:27:10.806 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:27:10","NeoPool":{"Time":"2023-11-08T20:27:08","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.7,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":595,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T04:16:43","Part":"51T04:16:43","Pol1":"25T21:26:46","Pol2":"25T06:49:57","Changes":464},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,0,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}},"TempUnit":"C"} (retained)
20:27:10.827 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:27:10","NeoPool":{"Time":"2023-11-08T20:27:08","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.7,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":595,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T04:16:43","Part":"51T04:16:43","Pol1":"25T21:26:46","Pol2":"25T06:49:57","Changes":464},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,0,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained) Then I tested the NPLight: the strange thing is that it gets repeated, I thought I clicked it two times but that was not the case, I always find the same double entry in the console. NPLight on 20:29:33.086 MQT: stat/SmartPool/NPLIGHT = {"NPLight":"ON"}
20:29:35.814 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:29:35","NeoPool":{"Time":"2023-11-08T20:29:34","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.7,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":15,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":596,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T04:16:43","Part":"51T04:16:43","Pol1":"25T21:26:46","Pol2":"25T06:49:57","Changes":464},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,0,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}},"TempUnit":"C"} (retained)
20:29:36.810 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:29:36","NeoPool":{"Time":"2023-11-08T20:29:34","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.7,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":15,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":596,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T04:16:43","Part":"51T04:16:43","Pol1":"25T21:26:46","Pol2":"25T06:49:57","Changes":464},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,0,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
20:29:36.983 MQT: stat/SmartPool/NPLIGHT = {"NPLight":"ON"}
20:29:50.836 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:29:50","NeoPool":{"Time":"2023-11-08T20:29:49","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.7,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":596,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T04:16:43","Part":"51T04:16:43","Pol1":"25T21:26:46","Pol2":"25T06:49:57","Changes":464},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,0,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}},"TempUnit":"C"} (retained)
20:29:59.834 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:29:59","NeoPool":{"Time":"2023-11-08T20:29:57","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.7,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":33,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":596,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T04:16:43","Part":"51T04:16:43","Pol1":"25T21:26:46","Pol2":"25T06:49:57","Changes":464},"State":"Pol1","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,0,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained) NPLight off 20:32:04.666 MQT: stat/SmartPool/NPLIGHT = {"NPLight":"OFF"}
20:32:05.829 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:32:05","NeoPool":{"Time":"2023-11-08T20:32:03","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.9,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":15,"24-30V":33,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":0,"Tank":1},"Redox":{"Data":633,"Setpoint":720},"Hydrolysis":{"Data":18.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":54,"Setpoint":54},"Runtime":{"Total":"51T04:18:38","Part":"51T04:18:38","Pol1":"25T21:28:41","Pol2":"25T06:49:57","Changes":464},"State":"Pol1","Cover":0,"Boost":0,"Low":1},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,1,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}},"TempUnit":"C"} (retained)
20:32:07.806 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:32:07","NeoPool":{"Time":"2023-11-08T20:32:06","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.9,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":0,"Tank":1},"Redox":{"Data":633,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T04:18:40","Part":"51T04:18:40","Pol1":"25T21:28:43","Pol2":"25T06:49:57","Changes":464},"State":"Pol1","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,1,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
20:32:08.228 MQT: stat/SmartPool/NPLIGHT = {"NPLight":"OFF"}
20:32:14.811 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:32:14","NeoPool":{"Time":"2023-11-08T20:32:12","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.9,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":33,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":0,"Tank":1},"Redox":{"Data":634,"Setpoint":720},"Hydrolysis":{"Data":3.2,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":9,"Setpoint":54},"Runtime":{"Total":"51T04:18:42","Part":"51T04:18:42","Pol1":"25T21:28:45","Pol2":"25T06:49:57","Changes":464},"State":"Pol1","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,1,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
20:32:20.840 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:32:20","NeoPool":{"Time":"2023-11-08T20:32:19","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.9,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":32,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":0,"Tank":1},"Redox":{"Data":635,"Setpoint":720},"Hydrolysis":{"Data":14.3,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":43,"Setpoint":54},"Runtime":{"Total":"51T04:18:46","Part":"51T04:18:46","Pol1":"25T21:28:49","Pol2":"25T06:49:57","Changes":464},"State":"Pol1","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,1,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}},"TempUnit":"C"} (retained)
20:32:22.806 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:32:22","NeoPool":{"Time":"2023-11-08T20:32:21","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.9,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":30,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":0,"Tank":1},"Redox":{"Data":635,"Setpoint":720},"Hydrolysis":{"Data":18.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":54,"Setpoint":54},"Runtime":{"Total":"51T04:18:50","Part":"51T04:18:50","Pol1":"25T21:28:53","Pol2":"25T06:49:57","Changes":464},"State":"Pol1","Cover":0,"Boost":0,"Low":1},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,1,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained) Then I tested NPFiltration: here I don't see the duplicate command, looks good. NPFiltration on 20:30:05.657 MQT: stat/SmartPool/NPFILTRATION = {"NPFiltration":"ON","Speed":"1"}
20:30:05.802 MQT: tele/SmartPool/STATE = {"Time":"2023-11-08T20:30:05","Uptime":"0T00:23:00","UptimeSec":1380,"Heap":130,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":27,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":229},"Wifi":{"AP":1,"SSId":"NetStumbling?","BSSId":"2C:3A:FD:EF:1E:67","Channel":1,"Mode":"11n","RSSI":100,"Signal":-38,"LinkCount":1,"Downtime":"0T00:00:13"}}
20:30:05.819 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:30:05","NeoPool":{"Time":"2023-11-08T20:30:03","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.7,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":33,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":603,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T04:16:43","Part":"51T04:16:43","Pol1":"25T21:26:46","Pol2":"25T06:49:57","Changes":464},"State":"Pol1","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,0,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}},"TempUnit":"C"} (retained)
20:30:09.804 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:30:09","NeoPool":{"Time":"2023-11-08T20:30:08","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.7,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":33,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":0,"Tank":1},"Redox":{"Data":606,"Setpoint":720},"Hydrolysis":{"Data":1.9,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":5,"Setpoint":54},"Runtime":{"Total":"51T04:16:44","Part":"51T04:16:44","Pol1":"25T21:26:47","Pol2":"25T06:49:57","Changes":464},"State":"Pol1","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,1,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
20:30:15.870 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:30:15","NeoPool":{"Time":"2023-11-08T20:30:14","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.7,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":32,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":0,"Tank":1},"Redox":{"Data":609,"Setpoint":720},"Hydrolysis":{"Data":9.6,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":29,"Setpoint":54},"Runtime":{"Total":"51T04:16:50","Part":"51T04:16:50","Pol1":"25T21:26:53","Pol2":"25T06:49:57","Changes":464},"State":"Pol1","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,1,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
20:30:18.792 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-08T20:30:18","NeoPool":{"Time":"2023-11-08T20:30:14","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.8,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":31,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":0,"Tank":1},"Redox":{"Data":610,"Setpoint":720},"Hydrolysis":{"Data":18.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":54,"Setpoint":54},"Runtime":{"Total":"51T04:16:53","Part":"51T04:16:53","Pol1":"25T21:26:56","Pol2":"25T06:49:57","Changes":464},"State":"Pol1","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,1,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained) |
Enable sensor debug using |
I see MQTT before the commands two times, that means HA is sending it two times, correct? Weblog 3 + NPLight off 00:06:03.786 NEO: NeopoolCheckChanges() false
00:06:04.801 NEO: NeopoolCheckChanges() false
00:06:05.831 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T00:06:05","NeoPool":{"Time":"2023-11-09T00:06:03","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":14.4,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":15,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":601,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T05:21:03","Part":"51T05:21:03","Pol1":"25T21:32:20","Pol2":"25T07:48:43","Changes":465},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,0,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}},"TempUnit":"C"} (retained)
00:06:05.839 NEO: NeopoolCheckChanges() false
00:06:06.819 NEO: NeopoolCheckChanges() false
00:06:07.778 NEO: NeopoolCheckChanges() false
00:06:08.801 NEO: NeopoolCheckChanges() false
00:06:09.811 NEO: NeopoolCheckChanges() false
00:06:10.620 SRC: MQTT
00:06:10.622 CMD: Grp 0, Cmd 'NPLIGHT', Idx 1, Len 1, Pld 0, Data '0'
00:06:10.711 MQT: stat/SmartPool/NPLIGHT = {"NPLight":"OFF"}
00:06:10.784 NEO: NeopoolCheckChanges() false
00:06:11.799 NEO: NeopoolCheckChanges() false
00:06:12.808 NEO: NeopoolCheckChanges() false
00:06:13.773 NEO: NeopoolCheckChanges() addr 0x010E data changed from 4 (0x0004) to 0 (0x0000)
00:06:13.774 NEO: NeopoolCheckChanges() true
00:06:13.789 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T00:06:13","NeoPool":{"Time":"2023-11-09T00:06:13","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":14.4,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":601,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T05:21:03","Part":"51T05:21:03","Pol1":"25T21:32:20","Pol2":"25T07:48:43","Changes":465},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,0,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
00:06:14.077 SRC: MQTT
00:06:14.079 CMD: Grp 0, Cmd 'NPLIGHT', Idx 1, Len 1, Pld 0, Data '0'
00:06:14.166 MQT: stat/SmartPool/NPLIGHT = {"NPLight":"OFF"}
00:06:14.803 NEO: NeopoolCheckChanges() false
00:06:15.815 NEO: NeopoolCheckChanges() false
00:06:16.782 NEO: NeopoolCheckChanges() false
00:06:17.794 NEO: NeopoolCheckChanges() false
00:06:18.806 NEO: NeopoolCheckChanges() false
00:06:19.817 NEO: NeopoolCheckChanges() false
00:06:20.810 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T00:06:20","NeoPool":{"Time":"2023-11-09T00:06:18","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":14.5,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":13,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":601,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T05:21:03","Part":"51T05:21:03","Pol1":"25T21:32:20","Pol2":"25T07:48:43","Changes":465},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,0,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}},"TempUnit":"C"} (retained)
00:06:20.819 NEO: NeopoolCheckChanges() addr 0x0106 data changed from 144 (0x0090) to 145 (0x0091)
00:06:20.821 NEO: NeopoolCheckChanges() false
00:06:21.798 NEO: NeopoolCheckChanges() false
00:06:22.817 NEO: NeopoolCheckChanges() addr 0x0106 data changed from 145 (0x0091) to 144 (0x0090)
00:06:22.818 NEO: NeopoolCheckChanges() false
00:06:23.799 NEO: NeopoolCheckChanges() false
00:06:24.792 NEO: NeopoolCheckChanges() false
00:06:25.801 NEO: NeopoolCheckChanges() false
00:06:26.810 NEO: NeopoolCheckChanges() false
00:06:27.820 NEO: NeopoolCheckChanges() false
00:06:28.785 NEO: NeopoolCheckChanges() addr 0x0103 data changed from 601 (0x0259) to 600 (0x0258)
00:06:28.786 NEO: NeopoolCheckChanges() true
00:06:28.800 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T00:06:28","NeoPool":{"Time":"2023-11-09T00:06:26","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":14.4,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":15,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":600,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T05:21:03","Part":"51T05:21:03","Pol1":"25T21:32:20","Pol2":"25T07:48:43","Changes":465},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,0,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained) NPLight on 00:11:01.335 SRC: MQTT
00:11:01.337 CMD: Grp 0, Cmd 'NPLIGHT', Idx 1, Len 1, Pld 1, Data '1'
00:11:01.425 MQT: stat/SmartPool/NPLIGHT = {"NPLight":"ON"}
00:11:01.821 NEO: NeopoolCheckChanges() false
00:11:02.812 NEO: NeopoolCheckChanges() false
00:11:03.824 NEO: NeopoolCheckChanges() false
00:11:04.787 NEO: NeopoolCheckChanges() addr 0x010E data changed from 0 (0x0000) to 4 (0x0004)
00:11:04.788 NEO: NeopoolCheckChanges() true
00:11:04.804 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T00:11:04","NeoPool":{"Time":"2023-11-09T00:11:02","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":14.4,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":33,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":599,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T05:21:03","Part":"51T05:21:03","Pol1":"25T21:32:20","Pol2":"25T07:48:43","Changes":465},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,0,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
00:11:04.885 SRC: MQTT
00:11:04.887 CMD: Grp 0, Cmd 'NPLIGHT', Idx 1, Len 1, Pld 1, Data '1'
00:11:04.978 MQT: stat/SmartPool/NPLIGHT = {"NPLight":"ON"}
00:11:05.861 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T00:11:05","NeoPool":{"Time":"2023-11-09T00:11:02","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":14.4,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":33,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":0,"Tank":1},"Redox":{"Data":599,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T05:21:03","Part":"51T05:21:03","Pol1":"25T21:32:20","Pol2":"25T07:48:43","Changes":465},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,0,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}},"TempUnit":"C"} (retained)
00:11:05.872 NEO: NeopoolCheckChanges() false
00:11:06.783 NEO: NeopoolCheckChanges() false |
For the 00:26:45.991 SRC: MQTT
00:26:45.994 CMD: Grp 0, Cmd 'NPFILTRATION', Idx 1, Len 1, Pld 1, Data '1'
00:26:46.068 MQT: stat/SmartPool/NPFILTRATION = {"NPFiltration":"ON","Speed":"1"}
00:26:46.811 NEO: NeopoolCheckChanges() false
00:26:47.821 NEO: NeopoolCheckChanges() addr 0x010D data changed from 16928 (0x4220) to 16992 (0x4260)
00:26:47.823 NEO: NeopoolCheckChanges() addr 0x0107 data changed from 50432 (0xC500) to 57600 (0xE100)
00:26:47.825 NEO: NeopoolCheckChanges() addr 0x010E data changed from 0 (0x0000) to 258 (0x0102)
00:26:47.827 NEO: NeopoolCheckChanges() true
00:26:47.842 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T00:26:47","NeoPool":{"Time":"2023-11-09T00:26:44","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":14.3,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":15,"24-30V":34,"4-20mA":0.050},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":1,"Tank":1},"Redox":{"Data":593,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T05:21:03","Part":"51T05:21:03","Pol1":"25T21:32:20","Pol2":"25T07:48:43","Changes":465},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,1,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
00:26:48.779 NEO: NeopoolCheckChanges() false
00:26:49.782 NEO: NeopoolCheckChanges() false
00:26:50.826 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T00:26:50","NeoPool":{"Time":"2023-11-09T00:26:49","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":14.3,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":15,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":1,"Tank":1},"Redox":{"Data":593,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T05:21:03","Part":"51T05:21:03","Pol1":"25T21:32:20","Pol2":"25T07:48:43","Changes":465},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,1,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}},"TempUnit":"C"} (retained)
00:26:50.840 NEO: NeopoolCheckChanges() false
00:26:51.812 NEO: NeopoolCheckChanges() addr 0x0102 data changed from 730 (0x02DA) to 729 (0x02D9)
00:26:51.814 NEO: NeopoolCheckChanges() false
00:26:52.806 NEO: NeopoolCheckChanges() false
00:26:53.818 NEO: NeopoolCheckChanges() false
00:26:54.780 NEO: NeopoolCheckChanges() false
00:26:55.792 NEO: NeopoolCheckChanges() false
00:26:56.804 NEO: NeopoolCheckChanges() false
00:26:57.814 NEO: NeopoolCheckChanges() addr 0x0102 data changed from 729 (0x02D9) to 730 (0x02DA)
00:26:57.835 NEO: NeopoolCheckChanges() true
00:26:57.851 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T00:26:57","NeoPool":{"Time":"2023-11-09T00:26:55","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":14.3,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":13,"24-30V":33,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":1,"Tank":1},"Redox":{"Data":593,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T05:21:03","Part":"51T05:21:03","Pol1":"25T21:32:20","Pol2":"25T07:48:43","Changes":465},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,1,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
00:26:58.825 NEO: NeopoolCheckChanges() false
00:26:59.794 NEO: NeopoolCheckChanges() false |
that is all correct - you have now different sources for SENSOR trigger, some after a few second after a command comes from a sensor change (e.g 0x0103 is the Rx level and 0x0102 the pH) and it seems you also didn't reset your standard TelePeriod time - use |
Got it. But why the double command only for NPLight? And...should we recommend in readme notes to use TelePeriod 300 as default? Anyway, from my test, this is working fine and it's quick and stable enough that I don't think a custom component is really necessary anymore. Could you kindly let me know when it's merged in Tasmota dev? I hope next official release we'll have this final version of NeoPool. Can't wait. :) |
This is due to the slow implementation within the SV:
don't think so, that's the Tasmata default -
Yes, but still under dev at the moment. I have rare crashes on the ESP82xx, I have to fix it first... |
So when I read
If the target would only be ESP32, there would still be memory constraints to host ALL NP commands in the firmware? |
don't really understand the background of your question, would you specify what exactly you mean?
there will not be an ESP32 only version - BTW, the cause of the crashes are not based by lack of memory Which NP cmnd do you mean by ALL? The game goes on with wishes of other users who want to set the times in the filtration, change the names of the aux, set the parameters of the pH pump control... - I have enough requests, but when you ask people to make a simple few NPReads on their system, there is silence... |
aah, now I got it, example:
mean there is a command (CMD module) "NPLIGHT" received with parameter "1" the source of this command is "SRC: MQTT" so the command comes via MQTT |
I didn't ask you to make an ESP32 version. It was purely a technical question, that you answered in the second part of the answer. :)
The firmware ones + the Berry script ones.
That would be the one I would include, because it's an embedded function of the cell, and I think widely used.
That is understandable, it makes sense.
With respect, I want to be very clear and sincere about this: I didn't request anything, and I don't particularly like generalizations. If I make a request it's always for what I think a valid reason for most users, not just me, and most importantly, if I collaborate with someone, I put in the time/work to help/test/implement what I can (I think you can acknowledge this). So please don't treat me like the ones who make constant selfish requests on the repo without even bothering to help test things etc. :) If I tell you about the berry script it's because:
Since we're talking about a functionality that all pool owners use (Boost) I logically think it should be part of the firmware. And if there's resource constraints, I see some commands included far less important than NPBoost that is available only to ESP32 users. Anyway, this is the last time I will discuss this. It's your driver, it's your decision, I'm just giving you my respectful and honest opinion based on my experience and my tests. Thanks as always. |
So back on my previous comment: if the source IS mqtt, like I suspected, it means HA sent the command two times, correct? But I don't see why it happens only for the NPLight command. The code of the switch for NPLight and NPFiltration is the same: switch:
- unique_id: "neopool_mqtt_filtration_switch"
name: "NeoPool MQTT Filtration Switch"
device_class: switch
command_topic: "cmnd/SmartPool/NPFiltration"
state_topic: "tele/SmartPool/SENSOR"
value_template: "{{ value_json.NeoPool.Filtration.State }}"
optimistic: false
retain: false
payload_on: "1"
payload_off: "0"
state_on: "1"
state_off: "0"
availability_topic: "tele/SmartPool/LWT"
payload_available: "Online"
payload_not_available: "Offline"
- unique_id: "neopool_mqtt_light_switch"
name: "NeoPool MQTT Light Switch"
device_class: switch
command_topic: "cmnd/SmartPool/NPLight"
state_topic: "tele/SmartPool/SENSOR"
optimistic: false
retain: false
value_template: "{{ value_json.NeoPool.Light }}"
payload_on: "1"
payload_off: "0"
state_on: "1"
state_off: "0"
availability_topic: "tele/SmartPool/LWT"
payload_available: "Online"
payload_not_available: "Offline" |
this is probably a result of the fact that you defined the commands once before retain (can you remember?) Did you explicitly delete your retain topics afterwards? |
Thanks. I deleted them, but NPLight was still there...can't understand why...anyway, problem solved. :) UPDATE: Talked too soon...I still see double commands. :( |
how did you delete it? |
MQTT Explorer. Then toggled the switch again. |
Stop ha, recoonect explorer and see if the topic is realy gone. MQTT explorer sometimes wrong displaying retains |
problem is not MQTT Explorer: when you modify retain flag, all sessions still active don't see the change, you have to reconnect. I tried reloading the MQTT integration in HA, hoping it would reconnect, but I still see two commands in Tasmota console. The topic is definitely without the retain flag: |
It was all a log thing I believe...I sent the command through Tasmo console, look at the log: I always see SRC: MQTT and the second command, even if I only used the console. 20:35:22.688 CMD: NPLight 1
20:35:22.690 SRC: WebConsole from 10.1.10.45
20:35:22.692 CMD: Grp 0, Cmd 'NPLIGHT', Idx 1, Len 1, Pld 1, Data '1'
20:35:22.784 MQT: stat/SmartPool/NPLIGHT = {"NPLight":"ON"}
20:35:22.835 NEO: NeopoolCheckChanges() false
20:35:23.805 NEO: NeopoolCheckChanges() false
20:35:24.783 NEO: NeopoolCheckChanges() false
20:35:25.775 NEO: NeopoolCheckChanges() addr 0x010E data changed from 0 (0x0000) to 4 (0x0004)
20:35:25.777 NEO: NeopoolCheckChanges() true
20:35:25.795 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T20:35:25","NeoPool":{"Time":"2023-11-09T20:35:21","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.5,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":15,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":1,"Tank":1},"Redox":{"Data":544,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T14:54:49","Part":"51T14:54:49","Pol1":"26T02:25:02","Pol2":"25T12:29:47","Changes":470},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,0,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
20:35:25.871 SRC: MQTT
20:35:25.873 CMD: Grp 0, Cmd 'NPLIGHT', Idx 1, Len 1, Pld 1, Data '1'
20:35:25.961 MQT: stat/SmartPool/NPLIGHT = {"NPLight":"ON"}
20:35:26.792 NEO: NeopoolCheckChanges() false
20:35:27.862 NEO: NeopoolCheckChanges() false
20:35:28.784 NEO: NeopoolCheckChanges() false This doesn't happen with NPFiltration though: 20:38:20.444 CMD: NPFiltration 1
20:38:20.447 SRC: WebConsole from 10.1.10.45
20:38:20.449 CMD: Grp 0, Cmd 'NPFILTRATION', Idx 1, Len 1, Pld 1, Data '1'
20:38:20.519 MQT: stat/SmartPool/NPFILTRATION = {"NPFiltration":"ON","Speed":"1"}
20:38:20.775 NEO: NeopoolCheckChanges() false
20:38:21.784 NEO: NeopoolCheckChanges() false
20:38:22.795 NEO: NeopoolCheckChanges() addr 0x010D data changed from 8736 (0x2220) to 8800 (0x2260)
20:38:22.797 NEO: NeopoolCheckChanges() addr 0x0107 data changed from 49408 (0xC100) to 57600 (0xE100)
20:38:22.798 NEO: NeopoolCheckChanges() addr 0x010E data changed from 4 (0x0004) to 262 (0x0106)
20:38:22.799 NEO: NeopoolCheckChanges() true
20:38:22.815 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T20:38:22","NeoPool":{"Time":"2023-11-09T20:38:18","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.5,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":15,"24-30V":33,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":2,"FL1":1,"Tank":1},"Redox":{"Data":544,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T14:54:49","Part":"51T14:54:49","Pol1":"26T02:25:02","Pol2":"25T12:29:47","Changes":470},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":1,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,1,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
20:38:23.819 NEO: NeopoolCheckChanges() false
20:38:24.785 NEO: NeopoolCheckChanges() false
20:38:25.796 NEO: NeopoolCheckChanges() false Maybe something related to Berry scripts? |
Your screenshot shows what I mean, I observed that exporer sometimes shows no retain flag even the topic is retained, thats a bug. This can be verifyied when no other Publisher isn9nline, you reconnect explorer and when you see this topic without anyone has sent its still retained. |
I don't agree. That happens when you set retain AFTER MQTT Explorer is already connected (it's also documented). When you reconnect you see the flag. It's the spec, it's not explorer. MQTT is a strange (and old) beast. :) Anyway, I checked with the broker, and the topic has no retain flag. MQTT Explorer is fine. BTW: I rebooted the device and System#Init has not triggered the NPTelePeriod. The rule in readme had a bug, a missing DO before the command, and with no NPTelePeriod saved, nothing works. :) Rule1
ON Time#Initialized DO NPTime 0 ENDON
ON Time#Set DO NPTime 0 ENDON
ON System#Init NPTeleperiod 5 ENDON
Backlog Rule1 4;Rule1 1 |
It's not the retain flag, I deleted ALL topics, reconnected HA, rebooted Tasmota, and I still have the duplicate NPLight command. When you can, test with your Atom...would like to know if it's just me... 21:12:01.413 CMD: Weblog 3
21:12:01.420 MQT: stat/SmartPool/RESULT = {"WebLog":3}
21:12:01.829 NEO: NeopoolCheckChanges() false
21:12:02.349 CFG: Saved, Count 543, Bytes 4096
21:12:02.820 NEO: NeopoolCheckChanges() false
21:12:03.830 NEO: NeopoolCheckChanges() false
21:12:04.840 NEO: NeopoolCheckChanges() false
21:12:05.293 SRC: MQTT
21:12:05.295 CMD: Grp 0, Cmd 'NPLIGHT', Idx 1, Len 1, Pld 0, Data '0'
21:12:05.382 MQT: stat/SmartPool/RESULT = {"NPLight":"OFF"}
21:12:05.856 NEO: NeopoolCheckChanges() false
21:12:06.814 NEO: NeopoolCheckChanges() false
21:12:07.826 NEO: NeopoolCheckChanges() false
21:12:08.836 NEO: NeopoolCheckChanges() addr 0x0102 data changed from 727 (0x02D7) to 726 (0x02D6)
21:12:08.838 NEO: NeopoolCheckChanges() addr 0x010E data changed from 4 (0x0004) to 0 (0x0000)
21:12:08.839 NEO: NeopoolCheckChanges() true
21:12:08.855 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T21:12:08","NeoPool":{"Time":"2023-11-09T21:12:06","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.4,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":33,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":1,"Tank":1},"Redox":{"Data":541,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T14:54:49","Part":"51T14:54:49","Pol1":"26T02:25:02","Pol2":"25T12:29:47","Changes":470},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,0,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
21:12:08.943 SRC: MQTT
21:12:08.945 CMD: Grp 0, Cmd 'NPLIGHT', Idx 1, Len 1, Pld 0, Data '0'
21:12:09.036 MQT: stat/SmartPool/RESULT = {"NPLight":"OFF"}
21:12:09.819 NEO: NeopoolCheckChanges() false
21:12:10.833 NEO: NeopoolCheckChanges() false
21:12:11.841 NEO: NeopoolCheckChanges() false |
Can |
Yep, its my default fault I have only single NPLight shots, switching using HA - just wonder why yours has a gap of 3,x sec each time. |
I noticed...that confirms it's not the retain...something else going on... HA is not playing a role, it also happens when I send NPLight from tasmo console. Don't know what else to check... |
How does this look with weblog 4? First cmd src must be webconsole and the second? |
22:08:30.801 CMD: NPLight 0
22:08:30.803 SRC: WebConsole from 10.1.10.45
22:08:30.805 CMD: Grp 0, Cmd 'NPLIGHT', Idx 1, Len 1, Pld 0, Data '0'
22:08:30.830 NEO: NeoPoolReadRegister(0x0410, 1) = [0x0003]
22:08:30.849 NEO: NeoPoolReadRegister(0x010E, 1) = [0x0004]
22:08:30.850 NEO: NeoPoolWriteRegister(0x0470, 1) = [0x0004]
22:08:30.871 NEO: NeoPoolWriteRegister(0x02F5, 1) = [0x0001]
22:08:30.901 MQT: stat/SmartPool/RESULT = {"NPLight":"OFF"}
22:08:30.967 NEO: NeopoolCheckChanges() false
22:08:31.835 NEO: NeopoolCheckChanges() false
22:08:32.186 NEO: modbus send(1, 4, 0x006A, 9)
22:08:32.442 NEO: modbus send(1, 4, 0x0100, 17)
22:08:32.696 NEO: modbus send(1, 4, 0x0206, 20)
22:08:32.847 NEO: NeopoolCheckChanges() false
22:08:32.949 NEO: modbus send(1, 4, 0x0300, 7)
22:08:33.202 NEO: modbus send(1, 4, 0x0408, 14)
22:08:33.442 NEO: modbus send(1, 4, 0x0500, 16)
22:08:33.713 NEO: modbus send(1, 4, 0x0600, 8)
22:08:33.810 NEO: NeopoolCheckChanges() false
22:08:33.966 NEO: modbus send(1, 4, 0x0022, 2)
22:08:34.221 NEO: modbus send(1, 4, 0x006A, 9)
22:08:34.472 NEO: modbus send(1, 4, 0x0100, 17)
22:08:34.728 NEO: modbus send(1, 4, 0x0206, 20)
22:08:34.827 NEO: NeopoolCheckChanges() addr 0x010E data changed from 4 (0x0004) to 0 (0x0000)
22:08:34.829 NEO: NeopoolCheckChanges() true
22:08:34.845 MQT: tele/SmartPool/SENSOR = {"Time":"2023-11-09T22:08:34","NeoPool":{"Time":"2023-11-09T22:08:32","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.3,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":1,"Tank":1},"Redox":{"Data":530,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T14:54:49","Part":"51T14:54:49","Pol1":"26T02:25:02","Pol2":"25T12:29:47","Changes":470},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":0,"Relay":{"State":[0,0,0,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}} (retained)
22:08:34.977 NEO: modbus send(1, 4, 0x0300, 7)
22:08:35.025 SRC: MQTT
22:08:35.027 CMD: Grp 0, Cmd 'NPLIGHT', Idx 1, Len 1, Pld 0, Data '0'
22:08:35.053 NEO: NeoPoolReadRegister(0x0410, 1) = [0x0003]
22:08:35.073 NEO: NeoPoolReadRegister(0x010E, 1) = [0x0000]
22:08:35.075 NEO: NeoPoolWriteRegister(0x0470, 1) = [0x0004]
22:08:35.097 NEO: NeoPoolWriteRegister(0x02F5, 1) = [0x0001]
22:08:35.124 MQT: stat/SmartPool/RESULT = {"NPLight":"OFF"}
22:08:35.850 NEO: NeopoolCheckChanges() false |
another test, because it looks like the second cmnd is a reaction of the SENSOR tele (MQTT cmnd comes 0.2 sec after SENSOR): do the same but with tasmo disconnect to mqtt (disable mqtt or better, let it enabled and use a wrong mqtt pw) |
I banned the client from the broker: Then in console: 22:51:04.213 MQT: Attempting connection...
22:51:04.261 MQT: Connect failed to 10.1.10.36:1883, rc 5. Retry in 10 sec
22:51:05.845 RSL: SENSOR = {"Time":"2023-11-09T22:51:05","NeoPool":{"Time":"2023-11-09T22:51:03","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.1,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":15,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":1,"Tank":1},"Redox":{"Data":521,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T14:54:49","Part":"51T14:54:49","Pol1":"26T02:25:02","Pol2":"25T12:29:47","Changes":470},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,0,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}}
22:51:15.228 MQT: Attempting connection...
22:51:15.276 MQT: Connect failed to 10.1.10.36:1883, rc 5. Retry in 20 sec
22:51:46.031 CMD: NPLight 1
22:51:46.033 SRC: WebConsole from 10.1.10.45
22:51:46.034 CMD: Grp 0, Cmd 'NPLIGHT', Idx 1, Len 1, Pld 1, Data '1'
22:51:46.059 NEO: NeoPoolReadRegister(0x0410, 1) = [0x0003]
22:51:46.078 NEO: NeoPoolReadRegister(0x010E, 1) = [0x0000]
22:51:46.079 NEO: NeoPoolWriteRegister(0x0470, 1) = [0x0003]
22:51:46.100 NEO: NeoPoolWriteRegister(0x02F5, 1) = [0x0001]
22:51:46.124 RSL: RESULT = {"NPLight":"ON"}
22:51:46.840 NEO: NeopoolCheckChanges() false
22:51:47.445 NEO: modbus send(1, 4, 0x0022, 2)
22:51:47.695 NEO: modbus send(1, 4, 0x006A, 9)
22:51:47.865 NEO: NeoPoolReadRegister(0x04EA, 1) = [0x0000]
22:51:47.884 NEO: NeoPoolReadRegister(0x0429, 1) = [0x0000]
22:51:47.885 NEO: NeopoolCheckChanges() false
22:51:47.944 WIF: Checking connection...
22:51:48.852 NEO: NeopoolCheckChanges() false
22:51:49.201 NEO: modbus send(1, 4, 0x006A, 9)
22:51:49.454 NEO: modbus send(1, 4, 0x0100, 17)
22:51:49.706 NEO: modbus send(1, 4, 0x0206, 20)
22:51:49.856 NEO: NeopoolCheckChanges() addr 0x010E data changed from 0 (0x0000) to 4 (0x0004)
22:51:49.857 NEO: NeopoolCheckChanges() true
22:51:49.866 RSL: SENSOR = {"Time":"2023-11-09T22:51:49","NeoPool":{"Time":"2023-11-09T22:51:44","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.2,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":1,"Tank":1},"Redox":{"Data":521,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T14:54:49","Part":"51T14:54:49","Pol1":"26T02:25:02","Pol2":"25T12:29:47","Changes":470},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,0,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}}}
22:51:49.958 NEO: modbus send(1, 4, 0x0300, 7)
22:51:50.211 NEO: modbus send(1, 4, 0x0408, 14)
22:51:50.465 NEO: modbus send(1, 4, 0x0500, 16)
22:51:50.718 NEO: modbus send(1, 4, 0x0600, 8)
22:51:50.815 NEO: NeopoolCheckChanges() false
22:51:50.969 NEO: modbus send(1, 4, 0x0022, 2)
22:51:51.217 NEO: modbus send(1, 4, 0x006A, 9)
22:51:51.480 NEO: modbus send(1, 4, 0x0100, 17)
22:51:51.736 NEO: modbus send(1, 4, 0x0206, 20)
22:51:51.834 NEO: NeopoolCheckChanges() false
22:51:51.936 NEO: modbus send(1, 4, 0x0300, 7)
22:51:52.186 NEO: modbus send(1, 4, 0x0408, 14)
22:51:52.439 NEO: modbus send(1, 4, 0x0500, 16)
22:51:52.691 NEO: modbus send(1, 4, 0x0600, 8)
22:51:52.842 BRY: GC from 19960 to 16592 bytes, objects freed 10/229 (in 1 ms) - slots from 195/274 to 181/274
22:51:52.848 RSL: STATE = {"Time":"2023-11-09T22:51:52","Uptime":"0T01:45:18","UptimeSec":6318,"Heap":134,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":229},"Wifi":{"AP":1,"SSId":"NetStumbling?","BSSId":"2C:3A:FD:EF:1E:67","Channel":1,"Mode":"11n","RSSI":100,"Signal":-36,"LinkCount":1,"Downtime":"0T00:00:13"}}
22:51:52.864 RSL: SENSOR = {"Time":"2023-11-09T22:51:52","NeoPool":{"Time":"2023-11-09T22:51:51","Type":"Hay","Modules":{"pH":1,"Redox":1,"Hydrolysis":1,"Chlorine":0,"Conductivity":0,"Ionization":0},"Temperature":15.2,"Powerunit":{"Version":"V5.0","NodeID":"XXXX XXXX XXXX XXXX XXXX 3435","5V":5,"12V":14,"24-30V":34,"4-20mA":0.060},"pH":{"Data":7.3,"Min":7.2,"Max":7.4,"State":0,"Pump":0,"FL1":1,"Tank":1},"Redox":{"Data":521,"Setpoint":720},"Hydrolysis":{"Data":0.0,"Unit":"g/h","Setpoint":18.0,"Max":33.0,"Percent":{"Data":0,"Setpoint":54},"Runtime":{"Total":"51T14:54:49","Part":"51T14:54:49","Pol1":"26T02:25:02","Pol2":"25T12:29:47","Changes":470},"State":"Flow","Cover":0,"Boost":0,"Low":0},"Filtration":{"State":0,"Speed":1,"Mode":0},"Light":1,"Relay":{"State":[0,0,1,0,0,0,0],"Aux":[0,0,0,0],"Acid":0}},"TempUnit":"C"} |
so you have to find the mqtt client which possibly react on SENSOR |
no client is aware of SmartPool, apart HA. Is there a way to see the ip of the client sending a command through mqtt? |
Mistery solved: I had defined an entity group for the light switch and the shelly relay I'm actually using to turn on the pool light (I can't connect the lights to the Aquarite because of specific requirements of the lights transformer used). So basically the NeoPool Light switch is acting as a trigger to turn on the shelly. What happens is that when I send the NPLight command, the automation sends the switch on command to the group, so to both entities, the NeoPool Light and the Shelly. :) Case closed. Sorry for wasting your time. - id: automation_switchgroup_luce_piscina
alias: Automazione SwitchGroup Luce Piscina
description: Gestione Switch Luce Piscina
trigger:
- platform: state
entity_id: group.luce_piscina
from: 'off'
to: 'on'
- platform: template
value_template: "{{ expand('group.luce_piscina') | selectattr('state', '==', 'off') | list != [] }}"
action:
- service: "homeassistant.turn_{{ iif(trigger.platform == 'state', 'on', 'off') }}"
target:
entity_id: group.luce_piscina_pippo
mode: single |
I guess we're good now, the dev fw has been running for some days without issues. Hope you solved the problem on the ESP82xx. |
great, no problem, such things just happen
was a wrong mem access to flash, will make PR today |
Norbert, you implemented NPBoost in the fw!!! So happy about that. Thank you. :D One thing I still don't understand: why |
I see your focus at HA, but's it's 'cause backward usage compatiblity (user without HA and without HA ambitions), the default 0 is imho no issue (setup needed anyway)
you need to setup Tasmota anyway (Topic, Rule, imho, SensorRetain 1 is no longer necessary), append a Do you know if you set NPTeleperiod above TelePeriod time (e.g. TelePeriod 60 and NPTeleperiod 300) it works just as well with your integration? Try it out and only measured values are reported every 60 sec. via TelePeriod timing. BTW: The startup setup of NPTeleperiod within the rule is only neccessary for ESP82xx user (without unified file system, that's the default), ESP32 stores now this (and others) value permantly. |
You gave me some food for thought there, let's see if I can synthesize correctly what I understood so you can confirm:
It's necessary to have the retain flag on SENSOR topic otherwise on HA startup all sensors are unknown. Unless NPTeleperiod enables it automatically, but I don't think that's the case. Topic is just to avoid users edit the file, advanced users know that they can change that and the package file. Rule is necessary mainly for time sync. All devices on my network are time synced, I have a historical obsession for time synchronization because of my past professional experience. I have a Stratum-1 miniserver installed in my homelab. :)
I agree that probably NPTeleperiod 5 is too much, since there's the automatic send trigger for switches/relays, so we don't need measurements that frequent. I'll modify readme with a 30s value.
I didn't know because in your OP you wrote that limits were:
This is a very important info: I specified that the integration was only for ESP32 because of the NPBoost / Berry prerequirement. Since NPBoost is now in the fw, the integration works 100% for both chipsets, with the exception of NPTeleperiod that is not permanently saved for ESP82xx. So if all this is confirmed by you, I will update readme like this:
Let me know your feedbacks and I'll proceed. Thanks. :) |
make it so |
I updated readme:
I didn't want to specify that the NPTeleperiod 60 in Rule1 is not needed for ESP32, I prefer to have a single configuration for both chipsets. |
Makes the
Backlog <cmnd>;Delay 30;Teleperiod
obsolete.This PR only works with the appened Tasmota FW. It implements a new cmnd
NPTelePeriod
to enable auto sending SENSOR topic on system value changes,NPTelePeriod 0
disable this - this is always the default after Tamota starts.Short desc:
The
NPTelePeriod
setting will not be permanently stored, so it must be set by RULE during Tasmota start so I add aON System#Init NPTeleperiod 5 ENDON
to the default rule.NPTeleperiod 5
for example means:TelePeriod
setting.You will the the changes are visibile more or less immediatley - it still takes 1-3 seconds e.g. when switching the filtration but this depends on the processing time of the SV system
Here the Tasmota FW with debug enabled - use
Weblog 3
orWeblog 4
to see the sensor debug values.Weblog 2
get's back to normal logging:tasmota32-neopool-dev.zip
If you aprove it, I will create a Tasmota PR