Skip to content

Releases: sbstn-0x2a/ha_froeling_modbus

v0.3.5

Choose a tag to compare

@sbstn-0x2a sbstn-0x2a released this 21 Mar 19:06

feat(sensor): add missing Kesselzustand status codes 89 & 90 (v0.3.5)

Status values 89 and 90 were missing from KESSELZUSTAND_MAPPING,
causing Home Assistant to display "Unknown (89)" and "Unknown (90)"
after the Scheitholz heating cycle. Added:
89: "Abstellen Warten (SH)"
90: "Abreinigen (SH)"

v0.3.4

Choose a tag to compare

@sbstn-0x2a sbstn-0x2a released this 19 Mar 07:02

fix: catch BrokenPipeError after Modbus connection loss (v0.3.4)

After the Modbus adapter loses its TCP connection, pymodbus raises a
BrokenPipeError on the next read/write attempt. In all read*_sync and
_write_register_sync helpers the first try-block only caught TypeError,
so BrokenPipeError propagated uncaught through async_add_executor_job,
causing Home Assistant to log "Task exception was never retrieved" for
every entity on every polling cycle.

Fix: add except (BrokenPipeError, ConnectionResetError) to the first
try-block in each sync helper. On catch, client.close() resets the
broken socket so the next polling cycle's client.connect() can
establish a fresh connection automatically.

Affected files: sensor.py, binary_sensor.py, number.py, select.py,
time.py, switch.py

Version bump: manifest.json 0.3.2 → 0.3.4, sw_version 0.3.3 → 0.3.4

v0.3.3

Choose a tag to compare

@sbstn-0x2a sbstn-0x2a released this 07 Oct 16:25

README translated fully to English (README.md)
Added German version (README_de.md)

v0.3.2

Choose a tag to compare

@sbstn-0x2a sbstn-0x2a released this 05 Oct 13:30

fix(number): add support for device_class in _BaseNumber constructor
fix(options): stop assigning self.config_entry explicitly in OptionsFlow (HA deprecation)
update README

v0.3.1

Choose a tag to compare

@sbstn-0x2a sbstn-0x2a released this 03 Oct 20:51

fix(translations): use entity.select state translations instead of select_option
fix(number): add support for device_class in _BaseNumber constructor

fix(Übersetzungen): select.py auf entity.select.* Schema umgestellt
fix(Number): device_class als optionales Argument in _BaseNumber hinzugefügt