From 92f2ea8fd56c493d14ca85c7ab4d765eee1677cc Mon Sep 17 00:00:00 2001 From: Konstantin Renner Date: Thu, 2 Jul 2026 15:19:09 +0200 Subject: [PATCH] =?UTF-8?q?edge-host:=20round=204=20=E2=80=94=2057=20DIDs?= =?UTF-8?q?=20+=20open3e=20MQTT=20command=20channel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds VCMU 320/355 circuit temps, heating pump 2791, and DHW quick-mode state 1007 to the poll set, and enables -l open3e/cmnd on the unit: the single sanctioned write path (DHW one-time charge via DID 1006, HA MQTT switch). Still no -w flag, no service 0x77. Already deployed to edge-1. Co-Authored-By: Claude Fable 5 --- ansible/roles/edge-host/defaults/main.yml | 2 +- ansible/roles/edge-host/templates/open3e.service.j2 | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ansible/roles/edge-host/defaults/main.yml b/ansible/roles/edge-host/defaults/main.yml index 4d3b7145..ac734a1e 100644 --- a/ansible/roles/edge-host/defaults/main.yml +++ b/ansible/roles/edge-host/defaults/main.yml @@ -31,7 +31,7 @@ edge_open3e_poll_seconds: 30 # the commissioning workstation; see vican repo CLAUDE.md for the rationale). # NO -w / write DIDs here — live heating + battery, writes are Phase 3. edge_open3e_datapoints: >- - vitocal.268,vitocal.269,vitocal.271,vitocal.274,vitocal.318,vitocal.321,vitocal.324,vitocal.548,vitocal.565,vitocal.1043,vitocal.1190,vitocal.1211,vitocal.1391,vitocal.2320,vitocal.2346,vitocal.2351,vitocal.2352,vitocal.2369,vitocal.2370,vitocal.2622,vitocal.2624,vitocal.2625,vitocal.2735,vitocal.3016,vx3.378,vx3.379,vx3.380,vx3.535,vx3.1603,vx3.1664,vx3.1690,vx3.1801,vx3.1802,vx3.1810,vx3.1828,vx3.1830,vx3.1834,vx3.1836,vx3.2240,vcmu.322,vcmu.325,vcmu.389,vcmu.391,vcmu.1772,vcmu.1773,vcmu.1775,vcmu.1776,vcmu.2256,vcmu.2259,vcmu.2333,vcmu.2334,vcmu.2569,vcmu.2571 + vitocal.268,vitocal.269,vitocal.271,vitocal.274,vitocal.318,vitocal.321,vitocal.324,vitocal.548,vitocal.565,vitocal.1007,vitocal.1043,vitocal.1190,vitocal.1211,vitocal.1391,vitocal.2320,vitocal.2346,vitocal.2351,vitocal.2352,vitocal.2369,vitocal.2370,vitocal.2622,vitocal.2624,vitocal.2625,vitocal.2735,vitocal.3016,vx3.378,vx3.379,vx3.380,vx3.535,vx3.1603,vx3.1664,vx3.1690,vx3.1801,vx3.1802,vx3.1810,vx3.1828,vx3.1830,vx3.1834,vx3.1836,vx3.2240,vcmu.320,vcmu.322,vcmu.325,vcmu.355,vcmu.389,vcmu.391,vcmu.1772,vcmu.1773,vcmu.1775,vcmu.1776,vcmu.2256,vcmu.2259,vcmu.2333,vcmu.2334,vcmu.2569,vcmu.2571,vitocal.2791 # ECU addresses; -dev selects codec set, tx selects the UDS address. # vcmu (refrigerant-circuit controller) has no dedicated codec set — # omitting dpList makes open3e fall back to the generic datapoint list, diff --git a/ansible/roles/edge-host/templates/open3e.service.j2 b/ansible/roles/edge-host/templates/open3e.service.j2 index ea29f87b..be1f7ae0 100644 --- a/ansible/roles/edge-host/templates/open3e.service.j2 +++ b/ansible/roles/edge-host/templates/open3e.service.j2 @@ -1,6 +1,8 @@ # Managed by ansible (roles/edge-host). -# READ-ONLY listener — no -w, no service 0x77. Writes are Phase 3 and get -# their own review; this unit must never grow write flags casually. +# Read-mostly listener — no -w flag, no service 0x77. The ONE sanctioned +# write path is the MQTT command topic (-l): HA publishes the DHW +# one-time-charge command there (scope decision 2026-07-02, see vican +# CLAUDE.md). Anything beyond that single write gets its own review. # -j is load-bearing: without it open3e flattens JSON payloads into # per-key subtopics and the HA package (homeassistant repo, # packages/open3e.yaml) receives nothing. @@ -27,6 +29,7 @@ ExecStart={{ edge_base_dir }}/open3e/venv/bin/open3e \ -mfstr "{{ edge_open3e_mqtt_format }}" \ -r {{ edge_open3e_datapoints }} \ -t {{ edge_open3e_poll_seconds }} \ + -l {{ edge_open3e_mqtt_topic }}/cmnd \ -j Restart=on-failure RestartSec=10 -- 2.54.0