From 2225ec1cedf1bb2a1d74fcfb09bd90515cf2aa4d Mon Sep 17 00:00:00 2001 From: Fredrik Ahlgren Date: Wed, 19 Aug 2026 10:45:53 +0200 Subject: [PATCH] feat(heishamon): declare the existing heat curve offset control Describe set_heat_curve_offset with bounds and write_ack evidence. Base this metadata change on current main so it can land independently of the power-telemetry proposal in #60. Signed-off-by: Fredrik Ahlgren --- CHANGELOG.md | 8 ++++++++ SUPPORT_STATUS.md | 4 ++-- devices.yaml | 2 +- drivers/lua/heishamon.lua | 23 +++++++++++++++++++++-- index.yaml | 6 +++--- manifests/heishamon.yaml | 6 +++--- support-status.json | 2 +- 7 files changed, 39 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b1b6371..13ec56f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## heishamon 0.7.0 + +Declare the existing `set_heat_curve_offset` control: −3…+3 °C, in steps +of 1 °C. The evidence is `write_ack`: a successful MQTT publish does not +confirm the pump's setting. The command, its bounds and its default mode +keep their existing behavior. This metadata change does not depend on the +power-telemetry proposal in #60. + ## vag_vehicle 0.2.1 Show only a VIN's last four characters in log lines (`****1234`). Logs get pasted into public issues, and a full VIN reached srcfl/device-drivers#143 that way. Every log call goes through one masking function, so API errors that quote a URL with the VIN are masked too. The driver still uses the full VIN for API calls and as its serial. diff --git a/SUPPORT_STATUS.md b/SUPPORT_STATUS.md index 490462e..450e4e9 100644 --- a/SUPPORT_STATUS.md +++ b/SUPPORT_STATUS.md @@ -76,8 +76,8 @@ Catalog source is not proof that a target can install or run a driver. | growatt | 2.1.2 | blixt-l1 | not_assessed | — | not_recorded | not_assessed | | hardybarth | 1.0.1 | ftw-core | not_assessed | — | not_recorded | not_assessed | | hardybarth | 1.0.1 | blixt-l1 | not_assessed | — | not_recorded | not_assessed | -| heishamon | 0.5.1 | ftw-core | not_assessed | — | not_recorded | not_assessed | -| heishamon | 0.5.1 | blixt-l1 | not_assessed | — | not_recorded | not_assessed | +| heishamon | 0.7.0 | ftw-core | not_assessed | — | not_recorded | not_assessed | +| heishamon | 0.7.0 | blixt-l1 | not_assessed | — | not_recorded | not_assessed | | hello | 1.1.2 | ftw-core | not_assessed | — | not_recorded | not_assessed | | hello | 1.1.2 | blixt-l1 | not_assessed | — | not_recorded | not_assessed | | huawei | 2.1.3 | ftw-core | not_assessed | — | not_recorded | not_assessed | diff --git a/devices.yaml b/devices.yaml index 9b96334..9258bb2 100644 --- a/devices.yaml +++ b/devices.yaml @@ -1008,7 +1008,7 @@ manufacturers: protocols: - protocol: mqtt driver: "heishamon" - version: "0.5.1" + version: "0.7.0" ders: [heatpump] control: true firmware_versions: "" diff --git a/drivers/lua/heishamon.lua b/drivers/lua/heishamon.lua index 046d323..1ba2263 100644 --- a/drivers/lua/heishamon.lua +++ b/drivers/lua/heishamon.lua @@ -18,7 +18,7 @@ -- host: core-mosquitto -- port: 1883 -- username: mqtt-user --- password: 42wenkel +-- password: -- config: -- base_topic: panasonic_heat_pump -- min_offset: -3 @@ -31,7 +31,7 @@ DRIVER = { id = "heishamon", name = "Panasonic Aquarea (Heishamon)", manufacturer = "Panasonic", - version = "0.5.1", + version = "0.7.0", protocols = { "mqtt" }, capabilities = { "heatpump" }, description = "Panasonic Aquarea H/J/K/L/M-series heat pump via Heishamon MQTT bridge. Controls Zone 1 heat curve offset (Z1_Heat_Request_Temp) in range -3..+3 °C.", @@ -42,6 +42,25 @@ DRIVER = { verified_by = { "Rolf (Runneval)" }, verified_at = "2026-06-21", verification_notes = "Tested on WH-SXC09H3E8 (H-series) with Heishamon Large v4.1.6 on ESP32. MQTT via core-mosquitto on HA Green. Live metrics confirmed. Offset control verified via Z1_Heat_Request_Temp.", + -- What an operator may command, in terms a host UI can render without + -- knowing this driver. The bounds are the defaults below; min_offset and + -- max_offset can narrow them in config, and driver_command clamps to + -- whichever is tighter, so a narrowed site is safe — its UI just offers a + -- couple of steps that land on the configured limit. + -- + -- evidence is write_ack, not readback: apply_offset returns as soon as the + -- publish succeeds. The pump does echo the value back on + -- main/Z1_Heat_Request_Temp, but that arrives on a later poll and nothing + -- here waits for it or compares it. Claiming readback would tell a host + -- the setting was confirmed when all we know is that a message left. + controls = { + { + id = "set_heat_curve_offset", + label = "Heat curve offset", + evidence = "write_ack", + input = { type = "number", min = -3, max = 3, step = 1, unit = "°C" }, + }, + }, } PROTOCOL = "mqtt" diff --git a/index.yaml b/index.yaml index 936c81f..75e4ce7 100644 --- a/index.yaml +++ b/index.yaml @@ -331,15 +331,15 @@ drivers: size_bytes: 2193 sha256: "517e086af899dc511c86b00460cd8ce052a8d4973edee8b018e5824d4b550d6e" - name: "heishamon" - version: "0.5.1" + version: "0.7.0" tier: core protocol: mqtt connectivity: local setup: [bridge] ders: [heatpump] control: true - size_bytes: 6973 - sha256: "a20d17ccc147772df3ad6827f0243436dcbb28b307e1dfc034cd6ff658a9ba69" + size_bytes: 7932 + sha256: "aed6707a656a7e4e17c5edd00e8d081ed485b580d078173c13bdad75d9ffcaac" - name: "hello" version: "1.1.2" tier: community diff --git a/manifests/heishamon.yaml b/manifests/heishamon.yaml index b1ac703..7403568 100644 --- a/manifests/heishamon.yaml +++ b/manifests/heishamon.yaml @@ -1,5 +1,5 @@ name: "heishamon" -version: "0.5.1" +version: "0.7.0" tier: core author: "Sourceful Labs AB" protocol: mqtt @@ -16,9 +16,9 @@ tested_devices: notes: "Panasonic Aquarea H/J/K/L/M-series heat pump via Heishamon MQTT bridge. Controls Zone 1 heat curve offset (Z1_Heat_Request_Temp) in range -3..+3 °C." min_driver_version: "0.4.0" min_host_version: "2.0.0" -size_bytes: 6973 +size_bytes: 7932 dkb_id: "heishamon" -sha256: "a20d17ccc147772df3ad6827f0243436dcbb28b307e1dfc034cd6ff658a9ba69" +sha256: "aed6707a656a7e4e17c5edd00e8d081ed485b580d078173c13bdad75d9ffcaac" signature: "" bytecode_sha256: "" diff --git a/support-status.json b/support-status.json index 689a13e..4f3ea99 100644 --- a/support-status.json +++ b/support-status.json @@ -758,7 +758,7 @@ }, { "catalog_source": true, - "catalog_version": "0.5.1", + "catalog_version": "0.7.0", "driver_id": "heishamon", "targets": { "blixt-l1": {