Open 38Cherry opened 5 days ago
Thanks for this, I was able to experience this myself on 0.4.0-pre but not since. If you could get exact reproduction steps that would be great. I'll also try it as well. I had it happen to me when I manually turned on valves in rapid succession via HA.
@dcmeglio I wonder if it could be something with how we call the api to get values. Like maybe the coordinator is going wide on getting values with x requests at the same time?
I didn't reboot the controller this morning after it became unavailable. It went unavailable at 950am ish and just leaving it alone it came back online at 1236pm.
Seems like the controller is getting spammed by ha and locks it up for a couple hours and eventually eased up and recovers. Unfortunately I turned off debugging earlier
I was able to recreate it just now and i was very deliberate in watching what i did. I started the shower with my HA automation (pressing my insteon button). shower warmed up (HA didn't change status until warm up was complete. This is the same behavior as the Kohler Konnect App, which sends the shower ready notification at the same time. It turned on with a strange sequence of valve outlets that i never turn on (outlet 1,2 and 3). I turned off 3 using the switch in HA. It turned off fine. Waited about 10 seconds then turned off valve 2 and that immediately caused the controller to go unavailable.
I don't see anything in the HA debug log other than the single line call to shut off outlet 2 at 12:44:13
2024-11-27 12:44:13.644 DEBUG (SyncWorker_19) [custom_components.kohler] closeOutlet valveId=1 outletId=2 2024-11-27 12:44:16.684 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140137901323984] Unexpected exception Traceback (most recent call last): File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 468, in _make_request six.raise_from(e, None) File "<string>", line 3, in raise_from File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 463, in _make_request httplib_response = conn.getresponse() ^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/http/client.py", line 1428, in getresponse response.begin() File "/usr/local/lib/python3.12/http/client.py", line 331, in begin version, status, reason = self._read_status() ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/http/client.py", line 292, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/socket.py", line 708, in readinto return self._sock.recv_into(b) ^^^^^^^^^^^^^^^^^^^^^^^ TimeoutError: timed out
One thing to note is that HA is not going unavailable, it is the actual Kohler controller because all comms are locked up including ping and browser. Not sure if i made that clear before. I'll leave it alone so it comes back again and see if i can pull the debug logs from the controller.
I haven't experienced this issue myself with the new version. But I'll say I have experienced it in the past. If you poll the controller too frequently, it can sometimes lock up. Probably a cruddy HTTP server it's running. I believe the previous integration used the default polling interval of 30s, this now has the update_interval set to 20s. Maybe that's too fast?
home-assistant_kohler_2024-11-27T15-10-06.061Z.log
Since 0.4.x came out when i start my shower the controller becomes unavailable and generally doesn't come back online without a power cycle to the Kohler controller. It is not pingable, reachable via http, and the Kohler Konnect app is not working. Attached is a debug file from HA. First thing i did was update to 0.4.1 then started the shower with HA. As it went through the warm up cycle the status was correct and valves updated correctly. Here's where i wasn't sure what triggered everything to go unavailable. It was either as it moved from warm up to operation or when I touched the touchscreen to turn on the screen.