Skip to content

fix(sensor): 🐛 hide exhaust air temperature when the sensor is unwired - #808

Merged
rhammen merged 2 commits into
mainfrom
fix/807-exhaust-air-sentinel
Sep 17, 2026
Merged

rhammen merged 2 commits into
mainfrom
fix/807-exhaust-air-sentinel

Conversation

@rhammen

@rhammen rhammen commented Sep 17, 2026 •

Copy link
Copy Markdown
Collaborator

🔍 What this fixes

A ventilation module can run without an exhaust-air sensor. Two LWC407s (#729, #807) then hold ID_WEB_Temp_Lueftung_Abluft (C0160) on the controller's unwired-sensor placeholder 5.0 — constant for days while supply air drifts normally (#729: one state in 18 h of recorder history against 229 on supply; #807: 5.0 in both dumps while Zuluft went 25.1 → 22.4), and never shown on the controller's own display. The integration published it as a real 5 °C temperature.

✨ Changes

  • sensor_entities_predefined.py: VENTILATION_EXHAUST_AIR_TEMPERATURE gets entity_active_formula="!= 5.0", so the sensor is not created while the register reads the placeholder. Same shape as the != -50.0 gate on the heat-source outlet temperature.
    • Only 5.0 is gated: the formula grammar is one comparison, 0.0 on both channels already means "no ventilation device" (has_ventilation), and 75.0 has never been seen on this channel.
    • Supply air is deliberately not gated — 5.0 is a plausible reading after heat recovery on a cold morning, and no unwired supply channel has been reported.
    • The ventilation device itself is unaffected (has_ventilation already treats 5.0 as absent and latches on the live supply channel).
  • README.md: entity table now says the sensor only exists when an exhaust sensor is wired.

🧪 Tests

  • test_exhaust_air_temperature_needs_a_wired_sensor: on the Parameter Ablufttemperatur in der Lüftung hat keinen Sensor #807 shape (Zuluft 22.4 / Abluft 5.0) the ventilation device exists, the exhaust sensor does not, the supply sensor does; on the mirror (Zuluft 5.0 / Abluft 21.2) both exist. Runs through the real coordinator and descriptions.
  • ruff check/format clean, basedpyright 0 errors, 1311 passed, coverage 100 % (unchanged).

⚠️ Upgrade notes

If your ventilation module has no exhaust-air sensor, sensor.<prefix>_ventilation_exhaust_air_temperature (which showed a constant 5 °C) is no longer created. The existing entity stays in the entity registry as "no longer provided by the integration" — delete it there. Units with a wired exhaust sensor are unaffected.

Resolves #807

🤖 Generated with Claude Code

rhammen and others added 2 commits September 17, 2026 21:44
- gate VENTILATION_EXHAUST_AIR_TEMPERATURE on entity_active_formula "!= 5.0"
- two LWC407s (#729, #807) run a ventilation module without an exhaust
  sensor; the register sits on the controller's 5.0 placeholder and the
  controller's own display never shows it
- supply air deliberately not gated: 5.0 is a plausible reading there and
  no unwired supply channel has been reported
- test covers both channel assignments

Resolves #807

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- the entity table listed the sensor unconditionally; it is now gated on the register not reading the 5 °C unwired-sensor placeholder (#807)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@rhammen
rhammen merged commit afb4bcf into main Sep 17, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Parameter Ablufttemperatur in der Lüftung hat keinen Sensor

1 participant