Skip to content

Releases

Security and robustness fixes

Choose a tag to compare

@fredsch fredsch released this 01 Oct 15:42
4522f7b

Full Changelog: 1.081...1.090

Add some documentation

Choose a tag to compare

@fredsch fredsch released this 21 Sep 15:36
a27b403

Full Changelog: 1.080...1.081

Shutter movement fix

Choose a tag to compare

@fredsch fredsch released this 18 Sep 20:11
6dbcea7

Full Changelog: 1.070...1.080

State restore after a restart

Choose a tag to compare

@fredsch fredsch released this 09 Sep 14:35
ab90d66
  • State restore after a restart for shutters (last estimated position) and
    DALI/DMX lights (on/off, brightness, RGB color), via RestoreEntity. No more
    shutter stuck at "unknown" or DMX/RGB light coming back off after a restart or an
    update of Home Assistant. The restore is accurate here since only Home Assistant
    drives these outputs (the PLC's internal program is suspended).
  • Toggle option "Restore state after restart" in the integration settings
    (Configure), enabled by default. Relays and on/off lights are not affected: they
    keep re-reading their real state from the PLC at startup.

Fix Entities Types

Choose a tag to compare

@fredsch fredsch released this 07 Sep 18:32
ab90d66

Fixed

  • Air-conditioning registers, pumps, solenoid valves and contactors showed up as
    lights.
    In the Calaos file these outputs have gui_type="light" but a separate
    io_style attribute (heater, pump, boiler, outlet) that the importer
    ignored. It now honors it: those outputs are created as switch entities
    (with the outlet device class for outlet, and a fitting icon for
    radiator/pump/boiler), while genuine lights stay as light.

Migration note

  • After the update, the affected entities change domain (light.* → switch.*):
    their entity_id changes and the old light.* entities become orphaned. Update
    your dashboards and automations, and remove the light.* entities that became
    unavailable.

DALI Light Fix

Choose a tag to compare

@fredsch fredsch released this 04 Sep 19:26
ab90d66

DALI lights switching back to "off" ~1-2 min after being turned on. The DALI
state was polled periodically via WAGO_DALI_GET, but that read returns "off"
(the query is unreliable, and impossible for DMX at address >= 100), which
overwrote the real state. In line with Calaos, DALI state is no longer polled in a
loop: it is read once at startup (and only for genuine DALI addresses 1-64),
then tracked optimistically. Since the PLC's internal program is suspended, a
DALI light can only be changed from Home Assistant, so the optimistic state is
exact.

DALI lights switching Fix

Choose a tag to compare

@fredsch fredsch released this 25 Aug 09:03
ab90d66
  • DALI lights switching back to "off" ~1-2 min after being turned on. The DALI
    state was polled periodically via WAGO_DALI_GET, but that read returns "off"
    (the query is unreliable, and impossible for DMX at address >= 100), which
    overwrote the real state. In line with Calaos, DALI state is no longer polled in a
    loop: it is read once at startup (and only for genuine DALI addresses 1-64),
    then tracked optimistically. Since the PLC's internal program is suspended, a
    DALI light can only be changed from Home Assistant, so the optimistic state is
    exact.

Unstable inputs fix

Choose a tag to compare

@fredsch fredsch released this 24 Aug 14:00
ab90d66
  • Unstable inputs: clicks were lost intermittently (issue #2). The UDP listener
    socket (port 4646) was opened with SO_REUSEPORT; on Linux the kernel then
    spreads incoming datagrams across every socket bound to that port. After a reload,
    an update or a restart, an old socket sometimes stayed bound and "stole" a share
    of the WAGO INT packets, which were silently lost. The socket is now
    exclusive: every input packet reaches the single listening instance.
  • Clean close of the UDP socket on unload (waiting for its actual release) and a
    bind retry at startup, so a reload never leaves two sockets competing for the port.

Added

  • A bus event wago2haddon_event is fired on every decoded action (single /
    double / triple click, long press), in addition to the event entity. An event
    trigger on this event is fully reliable (never de-duplicated) and is a robust
    alternative for automations.
  • Defensive handling of multiple messages per datagram (no message dropped if the
    PLC were to batch them).
  • Clean cancellation of the input decoder timers when an entity is removed (avoids
    an event firing after a reload).