zigbee-battery-fix #21

Merged
torjus merged 2 commits from zigbee-battery-fix into master 2026-02-05 21:51:42 +00:00
Owner

Summary

Fix battery reporting for three Aqara WSDCGQ12LM temperature sensors that report battery: 0 due to a firmware quirk. The sensors report valid voltage values via MQTT, so we calculate battery percentage from voltage instead.

Changes

  • Battery fix: Override value_template for battery entities in Zigbee2MQTT to calculate from voltage: (voltage - 2100) / 9
  • Staleness alert: New zigbee_sensor_stale Prometheus alert fires when sensors don't report for >1 hour
  • Declarative devices: Moved device config from external devices.yaml to inline NixOS config

Affected sensors

Sensor Voltage Expected Battery
Temp Living Room 2710 mV ~68%
Temp Office 2658 mV ~62%
temp_server 2765 mV ~74%

Files changed

  • services/home-assistant/default.nix — Inline device config with battery fix
  • services/monitoring/rules.yml — New staleness alert
  • docs/plans/completed/zigbee-sensor-battery-monitoring.md — Plan documentation

Post-deployment

After ha1 upgrade, battery entities may need re-discovery in Home Assistant (Settings → Devices & Services → MQTT).

## Summary Fix battery reporting for three Aqara WSDCGQ12LM temperature sensors that report `battery: 0` due to a firmware quirk. The sensors report valid voltage values via MQTT, so we calculate battery percentage from voltage instead. ### Changes - **Battery fix**: Override `value_template` for battery entities in Zigbee2MQTT to calculate from voltage: `(voltage - 2100) / 9` - **Staleness alert**: New `zigbee_sensor_stale` Prometheus alert fires when sensors don't report for >1 hour - **Declarative devices**: Moved device config from external `devices.yaml` to inline NixOS config ### Affected sensors | Sensor | Voltage | Expected Battery | |--------|---------|------------------| | Temp Living Room | 2710 mV | ~68% | | Temp Office | 2658 mV | ~62% | | temp_server | 2765 mV | ~74% | ### Files changed - `services/home-assistant/default.nix` — Inline device config with battery fix - `services/monitoring/rules.yml` — New staleness alert - `docs/plans/completed/zigbee-sensor-battery-monitoring.md` — Plan documentation ### Post-deployment After ha1 upgrade, battery entities may need re-discovery in Home Assistant (Settings → Devices & Services → MQTT).
torjus added 2 commits 2026-02-05 21:50:42 +00:00
home-assistant: fix zigbee sensor battery reporting
Some checks failed
Run nix flake check / flake-check (push) Has been cancelled
c515a6b4e1
WSDCGQ12LM sensors report battery: 0 due to firmware quirk. Override
battery calculation using voltage via homeassistant value_template.

Also adds zigbee_sensor_stale alert for detecting dead sensors regardless
of battery reporting accuracy (1 hour threshold).

Device configuration moved from external devices.yaml to inline NixOS
config for declarative management.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
docs: move zigbee battery plan to completed
All checks were successful
Run nix flake check / flake-check (push) Successful in 2m17s
Run nix flake check / flake-check (pull_request) Successful in 2m19s
32968147b5
Updated plan with:
- Full device inventory from ha1
- Backup verification details
- Branch and commit references

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
torjus merged commit 7b46f94e48 into master 2026-02-05 21:51:42 +00:00
torjus deleted branch zigbee-battery-fix 2026-02-05 21:51:42 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torjus/nixos-servers#21