and, now it stopped working. I am getting nothing. 
I get an "Error -5 while decompressing data incomplete or truncated stream".
I rolled back to 1.5.0 then 1.4.1 and now i cannot even get a connection to the same device I had full control before.
The Hayward has no internet access. So no updates to it.
something about decompressing, a non-compressed packet or some such?
Do you want me to put the log here, or on github?
And, thank you!
homeassistant.exceptions.ConfigEntryNotReady: Error -5 while decompressing data: incomplete or truncated stream
2026-06-03 18:23:34.644 DEBUG (MainThread) [pyomnilogic_local.api.protocol] connection lost: None
2026-06-03 18:33:20.827 ERROR (MainThread) [custom_components.fpl] 'balancesDrilldown'
2026-06-03 18:33:35.106 DEBUG (MainThread) [pyomnilogic_local.api.api] Sending RequestTelemetryData with body: <?xml version='1.0' encoding='utf-8'?>
<Request xmlns="http://nextgen.hayward.com/api"><Name>RequestTelemetryData</Name></Request>
2026-06-03 18:33:35.107 DEBUG (MainThread) [pyomnilogic_local.api.protocol] connection established
2026-06-03 18:33:35.108 DEBUG (MainThread) [pyomnilogic_local.api.protocol] transmitting message ID: 1601, type: GET_TELEMETRY (attempt 1/6)
2026-06-03 18:33:35.116 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received from ('10.2.30.3', 10444): ID: 1601, Type: MSP_ACK, Compressed: False, Client: OMNI, Body:
2026-06-03 18:33:35.125 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received from ('10.2.30.3', 10444): ID: 314, Type: MSP_TELEMETRY_UPDATE, Compressed: True, Client: OMNI
2026-06-03 18:33:35.125 DEBUG (MainThread) [pyomnilogic_local.api.protocol] sent XML_ACK for message ID 314
2026-06-03 18:33:35.126 DEBUG (MainThread) [pyomnilogic_local.api.api] Received response for RequestTelemetryData: <?xml version="1.0" encoding="UTF-8" ?>
<STATUS version="1.12">
<Backyard systemId="0" statusVersion="12" airTemp="83" state="1" ConfigChksum="2961726" mspVersion="R0502000" />
<BodyOfWater systemId="1" waterTemp="-1" flow="1" />
<Filter systemId="3" filterState="0" filterSpeed="0" valvePosition="2" whyFilterIsOn="0" fpOverride="0" reportedFilterSpeed="0" power="0" lastSpeed="50" />
<VirtualHeater systemId="4" Current-Set-Point="80" enable="1" SolarSetPoint="81" Mode="0" SilentMode="0" whyHeaterIsOn="1" />
<Heater systemId="5" heaterState="0" temp="83" enable="1" priority="0" maintainFor="24" />
<Chlorinator systemId="6" status="0" instantSaltLevel="0" avgSaltLevel="0" chlrAlert="0" chlrError="0" scMode="0" operatingState="1" Timed-Percent="35" operatingMode="1" enable="0" />
<ColorLogic-Light systemId="8" lightState="0" currentShow="0" speed="4" brightness="4" specialEffect="0" />
<BodyOfWater systemId="2" waterTemp="96" flow="1" />
<Filter systemId="10" filterState="1" filterSpeed="100" valvePosition="2" whyFilterIsOn="14" fpOverride="0" reportedFilterSpeed="100" power="1210" lastSpeed="50" />
<VirtualHeater systemId="11" Current-Set-Point="96" enable="1" SolarSetPoint="97" Mode="0" SilentMode="0" whyHeaterIsOn="1" />
<Heater systemId="12" heaterState="0" temp="83" enable="1" priority="0" maintainFor="24" />
<Chlorinator systemId="13" status="0" instantSaltLevel="0" avgSaltLevel="3900" chlrAlert="0" chlrError="0" scMode="0" operatingState="1" Timed-Percent="0" operatingMode="1" enable="0" />
</STATUS>
2026-06-03 18:33:35.127 DEBUG (MainThread) [pyomnilogic_local.api.api] Sending RequestConfiguration with body: <?xml version='1.0' encoding='utf-8'?>
<Request xmlns="http://nextgen.hayward.com/api"><Name>RequestConfiguration</Name></Request>
2026-06-03 18:33:35.129 DEBUG (MainThread) [pyomnilogic_local.api.protocol] connection lost: None
2026-06-03 18:33:35.129 DEBUG (MainThread) [pyomnilogic_local.api.protocol] connection established
2026-06-03 18:33:35.129 DEBUG (MainThread) [pyomnilogic_local.api.protocol] transmitting message ID: 39914, type: REQUEST_CONFIGURATION (attempt 1/6)
2026-06-03 18:33:35.133 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received from ('10.2.30.3', 10444): ID: 39914, Type: MSP_ACK, Compressed: False, Client: OMNI, Body:
2026-06-03 18:33:35.186 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received from ('10.2.30.3', 10444): ID: 316, Type: MSP_LEADMESSAGE, Compressed: True, Client: OMNI
2026-06-03 18:33:35.187 DEBUG (MainThread) [pyomnilogic_local.api.protocol] sent XML_ACK for message ID 316
2026-06-03 18:33:35.187 DEBUG (MainThread) [pyomnilogic_local.api.protocol] reassembling 4-block response (compressed=True)
2026-06-03 18:33:35.193 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received from ('10.2.30.3', 10444): ID: 318, Type: MSP_BLOCKMESSAGE, Compressed: False, Client: OMNI
2026-06-03 18:33:35.193 DEBUG (MainThread) [pyomnilogic_local.api.protocol] sent XML_ACK for message ID 318
2026-06-03 18:33:35.194 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received block 1/4
2026-06-03 18:33:35.200 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received from ('10.2.30.3', 10444): ID: 320, Type: MSP_BLOCKMESSAGE, Compressed: False, Client: OMNI
2026-06-03 18:33:35.201 DEBUG (MainThread) [pyomnilogic_local.api.protocol] sent XML_ACK for message ID 320
2026-06-03 18:33:35.201 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received block 2/4
2026-06-03 18:33:35.206 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received from ('10.2.30.3', 10444): ID: 322, Type: MSP_BLOCKMESSAGE, Compressed: False, Client: OMNI
2026-06-03 18:33:35.206 DEBUG (MainThread) [pyomnilogic_local.api.protocol] sent XML_ACK for message ID 322
2026-06-03 18:33:35.206 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received block 3/4
2026-06-03 18:33:35.210 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received from ('10.2.30.3', 10444): ID: 324, Type: MSP_BLOCKMESSAGE, Compressed: False, Client: OMNI
2026-06-03 18:33:35.211 DEBUG (MainThread) [pyomnilogic_local.api.protocol] sent XML_ACK for message ID 324
2026-06-03 18:33:35.211 DEBUG (MainThread) [pyomnilogic_local.api.protocol] received block 4/4
2026-06-03 18:33:35.212 INFO (MainThread) [custom_components.omnilogic_local] Config entry 'Omnilogic' for omnilogic_local integration not ready yet: Error -5 while decompressing data: incomplete or truncated stream; Retrying in 600 seconds
2026-06-03 18:33:35.212 DEBUG (MainThread) [custom_components.omnilogic_local] Full exception
Traceback (most recent call last):
File "/config/custom_components/omnilogic_local/__init__.py", line 59, in async_setup_entry
await omni.refresh()
File "/usr/local/lib/python3.14/site-packages/pyomnilogic_local/omnilogic.py", line 174, in refresh
self.mspconfig = await self._api.async_get_mspconfig()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.14/site-packages/pyomnilogic_local/api/api.py", line 176, in async_get_mspconfig
resp = await self.async_send_and_receive(MessageType.REQUEST_CONFIGURATION, req_body)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.14/site-packages/pyomnilogic_local/api/api.py", line 146, in async_send_and_receive
resp = await protocol.async_send_and_receive(message_type, message)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.14/site-packages/pyomnilogic_local/api/protocol.py", line 336, in async_send_and_receive
return self._decode_payload(raw_data, compressed)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.14/site-packages/pyomnilogic_local/api/protocol.py", line 287, in _decode_payload
data = zlib.decompress(data.rstrip(b"\x00"))
zlib.error: Error -5 while decompressing data: incomplete or truncated stream
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 796, in __async_setup_with_context
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/omnilogic_local/__init__.py", line 61, in async_setup_entry
raise ConfigEntryNotReady from error
homeassistant.exceptions.ConfigEntryNotReady: Error -5 while decompressing data: incomplete or truncated stream
2026-06-03 18:33:35.215 DEBUG (MainThread) [pyomnilogic_local.api.protocol] connection lost: None
And, because I have no idea what I am talking about this is what the genAI is suggesting:
Symptom: omnilogic_local integration fails at setup with zlib.error: Error -5 while decompressing data: incomplete or truncated stream, raised as ConfigEntryNotReady. Telemetry works fine; only the MSP config fetch fails.
Failing location: pyomnilogic_local/api/protocol.py:287 → data = zlib.decompress(data.rstrip(b"\x00"))
Library version: python-omnilogic-local==3.1.0 (also reproduced via integration 2.0.0; not version-specific to the integration)
Controller firmware: mspVersion="R0502000"
Reproduces outside Home Assistant: clean-room CLI/script repro on a fresh install, same LAN, no HA involved — so it's not an HA, container, or config-entry issue.
Network/transport is fine: full handshake completes every time — MSP_ACK, MSP_LEADMESSAGE, all 4 MSP_BLOCKMESSAGE blocks received and ACKed, reassembled. Nothing truncated on the wire.
Payload is a valid zlib stream: reassembled compressed config is 3604 bytes, header 78 9c (standard zlib).
Root cause: one-shot zlib.decompress() fails on this payload, but streaming zlib.decompressobj() succeeds and inflates the full, valid 48,106-byte XML.
Proposed fix (verified against a live controller):
python _d = zlib.decompressobj()
data = _d.decompress(data.rstrip(b"\x00")) + _d.flush()
Why it "used to work": telemetry (single-block) never hits this path; the bug surfaces on larger/multi-block config payloads, so it's a latent flaw exposed once the config grew, not a regression in the integration code.