Skip to content

Releases: sethyx/ngbs_icon_hacs

v1.4.1

Choose a tag to compare

@sethyx sethyx released this 18 Jul 19:13

Improved

  • Post-write refresh delay now scales with system size. The delay before re-reading after a setpoint/preset/mode write was a fixed 1.5 seconds, tuned for a single (master-only) system. Cross-unit BMS propagation - e.g. a relay on one icon controller driven by a thermostat on another - takes longer to settle the more icon units are chained on the bus, so the delay now scales: 1.5s base + 0.5s per slave icon beyond the master (e.g. 2.5s on a 3-unit system).

See the README's Live update behavior section for details.

v1.4.0

Choose a tag to compare

@sethyx sethyx released this 18 Jul 19:02

Fixed

  • Relay on/off state could read wrong when forced, BMS-overridden, or driven cross-unit. Relay binary sensors were reading the Relay register (0x0A) - the thermostat's logical demand before any force/override is applied - instead of the actual physical output. When a relay was forced on, had a BMS override active, or was driven by a thermostat on a different icon controller than the relay itself, this could read as off while the relay was genuinely energized.
  • Relay state now reads from the EffOut registers (0x00F0-0x00F9, one per relay), the value that actually drives each physical output, confirmed via decompiled firmware and matching the legacy JSON API exactly. On a read failure, relay state now reports unknown rather than a wrong guess.

Verified live: an icon-2 relay reading off via the old register while genuinely on (matching a cross-unit BMS-driven garage relay) now correctly reads on via EffOut, and all configured relays across both controllers match the legacy JSON API's ground truth with zero mismatches.

See the README for details.

v1.3.0

Choose a tag to compare

@sethyx sethyx released this 16 Jul 09:57

Improved

  • Fewer Modbus round trips per poll. async_get_data() used to probe all 8 possible device slots on every single poll, even though most systems only have 1-2 controllers - each empty slot still costs a full round trip to rule out. Config flow setup/reconfigure already runs a full Modbus discovery for validation; that result is now persisted and reused so every regular poll only reads the controllers that are actually present.
  • Entries created before this change (or not yet reconfigured) self-heal automatically: after the first successful read, the coordinator caches the discovered device indices in-memory so later polls in the same run also skip the full scan, without requiring a manual Reconfigure. Re-running Reconfigure persists the cache and after adding or removing a controller keeps it accurate.

Verified live: a full probe scans all 8 slots and finds the actual controllers present; a cached read only probes the known indices and returns identical data.

See the README for details.

v1.2.0

Choose a tag to compare

@sethyx sethyx released this 16 Jul 07:58

Fixed

  • Modbus-TCP connection handling. The iCON controller kills Modbus-TCP connections after roughly 30 seconds regardless of activity. Previously this integration kept one connection open for its entire lifetime, which meant eating a spurious disconnect on whatever request happened to be in flight when the controller's timer expired. Each read cycle now opens its own connection and closes it again immediately afterward.
  • The one exception: a write leaves its connection open on success, so the settle-and-refresh read that follows ~1.5s later reuses it instead of paying for a reconnect, then closes it once done.

Verified against live hardware: writes leave the connection open, the follow-up refresh triggers zero new TCP connects, and every other read cycle closes the connection before returning.

See the README's Connection handling section for details.

v1.1.0 - Documentation update

Choose a tag to compare

@sethyx sethyx released this 09 Jul 14:05

Documentation and repository metadata only — no functional/code changes since v1.0.0.

Changed

  • Reworked the README: retitled to make clear this is a Home Assistant integration (not the vendor product itself), added HACS/CI/release/license/min-HA-version badges, documented the fixed-IP requirement for the controller, added an acknowledgements section crediting molnarg/ngbs-icon for the legacy JSON/TCP protocol reference, and reordered sections so Requirements/Installation/Configuration follow Features directly, with deeper implementation details afterward.
  • Declared the actual minimum Home Assistant version (2024.11.0) in hacs.json, determined by checking home-assistant/core release tags for the reconfigure-flow APIs this integration uses.
  • Split the combined CI workflow into separate validate.yml and hassfest.yml files so each has its own status badge.

v1.0.0 - Initial release

Choose a tag to compare

@sethyx sethyx released this 09 Jul 13:29

Home Assistant custom integration for NGBS iCON heating/cooling controllers, talking to the controller over Modbus-TCP instead of the manufacturer's proprietary JSON/TCP protocol.

Disclaimer: This is an independent hobby project with no affiliation to, endorsement by, or support from NGBS Hungary Kft. It was built by reverse-engineering documentation available online and against real hardware. Use at your own risk.

Highlights

  • Auto-discovery of every iCON controller (master + up to 7 slaves) and every connected thermostat — only entities for hardware that actually responds get created.
  • Master controller detection via the device's own ISTATUS flag, rather than assuming it's whichever controller has the lowest address.
  • Zero-config setup: only the controller's IP address is needed. The System ID (SYSID) and human-readable thermostat/relay names are auto-discovered over the legacy JSON/TCP protocol at setup/reconfigure time only; all runtime polling and control is Modbus-only.
  • Climate entities per thermostat: current temperature/humidity, active setpoint (writable), ECO/Comfort preset (writable), HVAC action. Only the H/C-master thermostat can switch the whole system between heating and cooling.
  • Sensors: per-thermostat temperature/humidity/dew point; mixing-valve position, water/outdoor temperature, HC mode, firmware version, and diagnostic supply voltages/cycle counter on the Master controller.
  • Binary sensors: water pump, per-thermostat HVAC demand (combined and split A-/B-loop), condensation warning, ECO state, connection status, and configured relay/valve outputs (correctly attached to whichever controller physically owns them, even when relays are spread across controllers different from their thermostats).
  • Fast feedback after writes: setpoint/preset/mode changes trigger an immediate full re-read (with a short settle delay for the controller's own regulation cycle) instead of waiting for the next scheduled poll.
  • Options flow to adjust the poll interval without reconfiguring the whole entry.

Requirements

  • An NGBS iCON controller with Modbus-TCP enabled (port 502 reachable from Home Assistant).
  • Port 7992 (legacy JSON/TCP) reachable from Home Assistant during setup/reconfigure only.

See the README for full installation, configuration, and implementation details.