MadPatrick / domoticz_toon

Toon Control for Domoticz
GNU General Public License v2.0
6 stars 1 forks source link

Toon freezes due overload of communication #5

Closed MadPatrick closed 1 year ago

MadPatrick commented 1 year ago

The Toon becomes slow and uncontrolable after a few hours/day. A reboot of Toon solves the issue for the moment and freezes again after a period of time Changing the heartbeat to 60 looks like the solution (for now)

I see a lot of communication in the log of "... called" espacially "onDisconnect called" 4x in 1 mSec

2023-01-15 13:42:36.161 Toon: onMessage called
2023-01-15 13:42:36.161 Toon: onMessageZwaveInfo called
2023-01-15 13:42:42.133 Toon: onDisconnect called
2023-01-15 13:42:42.133 Toon: onDisconnect called
2023-01-15 13:42:42.133 Toon: onDisconnect called
2023-01-15 13:42:42.133 Toon: onDisconnect called
2023-01-15 13:43:36.087 Toon: onHeartbeat called
2023-01-15 13:43:36.139 Toon: onConnect called
2023-01-15 13:43:36.140 Toon: onConnect called
2023-01-15 13:43:36.140 Toon: onConnect called
2023-01-15 13:43:36.140 Toon: onConnect called
2023-01-15 13:43:36.193 Toon: onMessage called
2023-01-15 13:43:36.193 Toon: onMessageBoilerInfo called
2023-01-15 13:43:36.193 Toon: onMessage called
2023-01-15 13:43:36.193 Toon: onMessagetoonTSCinfo called
2023-01-15 13:43:36.193 Toon: onMessage called
2023-01-15 13:43:36.193 Toon: onMessageThermostatInfo called
2023-01-15 13:43:36.199 Toon: onMessage called
2023-01-15 13:43:36.199 Toon: onMessageZwaveInfo called
2023-01-15 13:43:42.361 Toon: onDisconnect called
2023-01-15 13:43:42.361 Toon: onDisconnect called
2023-01-15 13:43:42.361 Toon: onDisconnect called
2023-01-15 13:43:42.361 Toon: onDisconnect called
2023-01-15 13:44:36.057 Toon: onHeartbeat called
2023-01-15 13:44:36.108 Toon: onConnect called
2023-01-15 13:44:36.108 Toon: onConnect called
2023-01-15 13:44:36.109 Toon: onConnect called
2023-01-15 13:44:36.109 Toon: onConnect called
2023-01-15 13:44:36.161 Toon: onMessage called
2023-01-15 13:44:36.161 Toon: onMessageBoilerInfo called
2023-01-15 13:44:36.162 Toon: onMessage called
2023-01-15 13:44:36.162 Toon: onMessagetoonTSCinfo called
2023-01-15 13:44:36.167 Toon: onMessage called
2023-01-15 13:44:36.167 Toon: onMessageThermostatInfo called
2023-01-15 13:44:36.181 Toon: onMessage called
2023-01-15 13:44:36.181 Toon: onMessageZwaveInfo called
2023-01-15 13:44:42.408 Toon: onDisconnect called
2023-01-15 13:44:42.408 Toon: onDisconnect called
2023-01-15 13:44:42.408 Toon: onDisconnect called
2023-01-15 13:44:42.408 Toon: onDisconnect called
2023-01-15 13:45:36.056 Toon: onHeartbeat called
2023-01-15 13:45:36.107 Toon: onConnect called
2023-01-15 13:45:36.107 Toon: onConnect called
2023-01-15 13:45:36.107 Toon: onConnect called
2023-01-15 13:45:36.107 Toon: onConnect called
2023-01-15 13:45:36.158 Toon: onMessage called
2023-01-15 13:45:36.158 Toon: onMessageBoilerInfo called
2023-01-15 13:45:36.159 Toon: onMessage called
2023-01-15 13:45:36.159 Toon: onMessageThermostatInfo called
2023-01-15 13:45:36.168 Toon: onMessage called
2023-01-15 13:45:36.168 Toon: onMessagetoonTSCinfo called
2023-01-15 13:45:36.173 Toon: onMessage called
2023-01-15 13:45:36.174 Toon: onMessageZwaveInfo called
2023-01-15 13:45:42.194 Toon: onDisconnect called
2023-01-15 13:45:42.194 Toon: onDisconnect called
2023-01-15 13:45:42.194 Toon: onDisconnect called
2023-01-15 13:45:42.194 Toon: onDisconnect called
2023-01-15 13:46:36.094 Toon: onHeartbeat called
2023-01-15 13:46:36.145 Toon: onConnect called
2023-01-15 13:46:36.145 Toon: onConnect called
2023-01-15 13:46:36.145 Toon: onConnect called
2023-01-15 13:46:36.145 Toon: onConnect called
2023-01-15 13:46:36.196 Toon: onMessage called
2023-01-15 13:46:36.196 Toon: onMessageThermostatInfo called
2023-01-15 13:46:36.202 Toon: onMessage called
2023-01-15 13:46:36.202 Toon: onMessagetoonTSCinfo called
2023-01-15 13:46:36.202 Toon: onMessage called
2023-01-15 13:46:36.202 Toon: onMessageBoilerInfo called
2023-01-15 13:46:36.203 Toon: onMessage called
2023-01-15 13:46:36.203 Toon: onMessageZwaveInfo called
2023-01-15 13:46:42.427 Toon: onDisconnect called
2023-01-15 13:46:42.427 Toon: onDisconnect called
2023-01-15 13:46:42.427 Toon: onDisconnect called
2023-01-15 13:46:42.427 Toon: onDisconnect called
2023-01-15 13:47:36.075 Toon: onHeartbeat called
2023-01-15 13:47:36.129 Toon: onConnect called
2023-01-15 13:47:36.130 Toon: onConnect called
2023-01-15 13:47:36.130 Toon: onConnect called
2023-01-15 13:47:36.130 Toon: onConnect called
2023-01-15 13:47:36.184 Toon: onMessage called
2023-01-15 13:47:36.184 Toon: onMessageBoilerInfo called
2023-01-15 13:47:36.184 Toon: onMessage called
2023-01-15 13:47:36.184 Toon: onMessagetoonTSCinfo called
2023-01-15 13:47:36.184 Toon: onMessage called
2023-01-15 13:47:36.185 Toon: onMessageThermostatInfo called
2023-01-15 13:47:36.190 Toon: onMessage called
2023-01-15 13:47:36.190 Toon: onMessageZwaveInfo called
2023-01-15 13:47:42.661 Toon: onDisconnect called
2023-01-15 13:47:42.661 Toon: onDisconnect called
2023-01-15 13:47:42.661 Toon: onDisconnect called
2023-01-15 13:47:42.661 Toon: onDisconnect called
2023-01-15 13:48:36.067 Toon: onHeartbeat called
2023-01-15 13:48:42.808 Toon: onDisconnect called
2023-01-15 13:48:42.808 Toon: onDisconnect called
2023-01-15 13:48:42.808 Toon: onDisconnect called
2023-01-15 13:48:42.808 Toon: onDisconnect called

Is this related to the problem ?

do other people have the same problem?

JanJaapKo commented 1 year ago

OK, this is due to how this plugin is setup: they open a connection for all 4 datatypes (BoilerInfo, toonTSCInfo, ThermostatInfo and ZwaveInfo) they want to get. This is a bit strange (and probably inefficient): normally you open 1 connection to a device and then use that for all requests (see how this is done in the somfy plugin). But to untangle that is quite a bit of work + testing.......

The onDisconnect method is called when the connection is broken. This is done by the Toon as there is no disconnect call done in the plugin. I just pushed v1.4.7 that closes the connection after receiving the update, can you check if that works (a bit) better?

MadPatrick commented 1 year ago

If it is not a big issue and the Toon will not freeze it is what it is.

I've installed v1.4.7 ad this is the output

2023-01-15 21:59:37.068 Toon: onHeartbeat called
2023-01-15 21:59:37.119 Toon: onConnect called
2023-01-15 21:59:37.119 Toon: onConnect called
2023-01-15 21:59:37.119 Toon: onConnect called
2023-01-15 21:59:37.119 Toon: onConnect called
2023-01-15 21:59:37.170 Toon: onMessage called
2023-01-15 21:59:37.170 Toon: onMessageBoilerInfo called
2023-01-15 21:59:37.221 Toon: onDisconnect called: BoilerInfo
2023-01-15 21:59:37.221 Toon: onMessage called
2023-01-15 21:59:37.221 Toon: onMessagetoonTSCinfo called
2023-01-15 21:59:37.224 Toon: onMessage called
2023-01-15 21:59:37.224 Toon: onMessageZwaveInfo called
2023-01-15 21:59:37.231 Toon: onMessage called
2023-01-15 21:59:37.231 Toon: onMessageThermostatInfo called
2023-01-15 21:59:37.286 Toon: onDisconnect called: toonTSCinfo
2023-01-15 21:59:37.286 Toon: onDisconnect called: toonConnZwaveInfo
2023-01-15 21:59:37.286 Toon: onDisconnect called: ThermostatInfo
2023-01-15 21:59:57.071 Toon: onHeartbeat called
2023-01-15 21:59:57.122 Toon: onConnect called
2023-01-15 21:59:57.122 Toon: onConnect called
2023-01-15 21:59:57.122 Toon: onConnect called
2023-01-15 21:59:57.122 Toon: onConnect called
2023-01-15 21:59:57.173 Toon: onMessage called
2023-01-15 21:59:57.173 Toon: onMessageBoilerInfo called
2023-01-15 21:59:57.173 Toon: onMessage called
2023-01-15 21:59:57.173 Toon: onMessagetoonTSCinfo called
2023-01-15 21:59:57.174 Toon: onMessage called
2023-01-15 21:59:57.174 Toon: onMessageZwaveInfo called
2023-01-15 21:59:57.184 Toon: onMessage called
2023-01-15 21:59:57.184 Toon: onMessageThermostatInfo called
2023-01-15 21:59:57.240 Toon: onDisconnect called: BoilerInfo
2023-01-15 21:59:57.241 Toon: onDisconnect called: toonTSCinfo
2023-01-15 21:59:57.241 Toon: onDisconnect called: toonConnZwaveInfo
2023-01-15 21:59:57.241 Toon: onDisconnect called: ThermostatInfo

I've removed a typo 😃