Repository navigation
Pool: source pzem6l24 from upstream PR, park the display stack - #92
Merged
Merged
Conversation
The local pzem6l24 component no longer builds cleanly against 2026.8.0's modbus refactor, and the rewrite in esphome/esphome#17849 supersedes it, so pool now pulls the component straight from that PR instead of ../components. The Waveshare display/LVGL stack is commented out rather than deleted while the panel is off the bench, and the flow inputs get a short debounce so switch chatter no longer registers as flow. Changes: - Source pzem6l24 from github://pr#17849 (refresh 1h); keep pool_controller local - Comment out display, lvgl, touchscreen, font, backlight light/output/power_supply, psram, and the wifi/time on_value LVGL handlers - Add `delayed_on: 50ms` to the main and auxiliary pump flow sensors - Set log_level DEBUG for the current bring-up Verified with `esphome config pool.yaml`. Co-Authored-By: Claude <noreply@anthropic.com>
CI installs ESPHome unpinned, so the clang-tidy step started failing the moment 2026.8.0 shipped: it moved the legacy on_modbus_data()/on_modbus_error() hooks off ModbusClientDevice onto the deprecated ModbusDevice shim, leaving `only virtual member functions can be marked 'override'` on pzem6l24.h:95. This is unrelated to the pool config change but blocks it, since clang_tidy.py lints components/ off the pool build whether or not pool.yaml references them. Pin the base class to modbus::ModbusDevice so it builds again. The shim is slated for removal in 2027.2.0, but esphome/esphome#17849 replaces this component well before then -- pool.yaml already sources it from that PR. Co-Authored-By: Claude <noreply@anthropic.com>
nuttytree
added a commit
that referenced
this pull request
Sep 30, 2026
`device_base.yaml` mixed the chip-agnostic core (api, ota, logger, diagnostics, time) with wifi -- both the `wifi:` block and the wifi-only diagnostics -- so an ethernet device could not reuse the core without dragging in a wifi stack the board doesn't have. The static-IP/DHCP split compounded it: `wifi/wifi.yaml` and `wifi/wifi_dhcp.yaml` were near-identical copies, and every device carried `ip_address`/`ip_subnet`/`ip_gateway` substitutions whether it used them or not. Devices now include exactly one combo package, which is nothing but a `packages:` block pulling in one common, one chip and one network layer. - Split `device_base.yaml` into `device_common.yaml`, `device_esp32.yaml` / `device_esp8266.yaml` (platform block only), and `device_wifi.yaml` / `device_eth.yaml` (network stack plus its own diagnostics). - Add the combo packages devices include: `device_esp32_wifi.yaml`, `device_esp8266_wifi.yaml`, `device_esp32_eth.yaml`. - Add `text_sensor/ethernet_info.yaml`, mirroring `text_sensor/wifi_info.yaml`. The `ethernet:` block stays in the device yaml, since PHY/pin wiring is board-specific. - Drop `wifi/wifi_dhcp.yaml` and collapse `wifi/wifi.yaml` to the DHCP form; static IPs are DHCP reservations on the router now. - Rename `econet_base.yaml` to `econet.yaml`; rename every device's `device_base:` package key to `device:`. - Drop the OTA and AP passwords and `ap_timeout`. This changes behaviour on upgrade: the first OTA push to each device still needs the old password, every push after that is unauthenticated, as is the fallback AP. - Widen the CI build-cache key from `device_base*.yaml` to `device_*.yaml`. - bt-proxy-basement: drop `connection_slots` from 4 to 3. - pool.yaml: pin the pzem6l24 source to esphome/esphome at `36d39416f0a7` with `refresh: never` instead of tracking `github://pr#17849`. That PR head moved to `automation.register_apply_action` (esphome/esphome#19469), which landed after the 2026.9 branch cut and is in no released ESPHome, taking `esphome config` and `compile pool` down with it. - Add `.claude/settings.json` denying reads of `devices/secrets.yaml`. - Update CLAUDE.md for the new layout, and document that Bash filesystem commands must be scoped away from `devices/.esphome/`. Follows on from #92.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The local
pzem6l24component stopped building cleanly against 2026.8.0, which moved the legacyon_modbus_data()/on_modbus_error()hooks offModbusClientDeviceonto the deprecatedModbusDeviceshim. The rewrite in esphome/esphome#17849 supersedes the local copy entirely, so pool now pulls the component straight from that PR rather than carrying a patched local one.At the same time the Waveshare panel is off the bench, so the whole display path is commented out rather than deleted — it comes back verbatim when the hardware is back. The pump flow inputs also picked up a short debounce: switch chatter was registering as flow and confusing the controller's runtime tracking.
Changes:
pzem6l24fromgithub://pr#17849(refresh: 1h);pool_controllerstill comes from../componentsdisplay,lvgl,touchscreen,font, the backlightlight/output/power_supply,psram, and thewifi_rssi/time_sourceLVGL update handlersdelayed_on: 50msto the main and auxiliary pump flow binary sensorslog_level: DEBUGfor the current bring-upPZEM6L24's base class tomodbus::ModbusDeviceso the local component still compilesThat last one is unrelated to the pool config but blocks it. CI installs ESPHome unpinned, so the clang-tidy step began failing the moment 2026.8.0 shipped (
only virtual member functions can be marked 'override'atpzem6l24.h:95) — master has been red on this since the release, independent of these changes.scripts/clang_tidy.pylintscomponents/off the pool build whether or notpool.yamlreferences them, so the local copy has to keep compiling even now that pool sources the component from #17849. TheModbusDeviceshim is slated for removal in 2027.2.0; #17849 should land well before that, at which pointcomponents/pzem6l24/can be dropped.Verified with
esphome config pool.yaml(valid) and a cleanpre-commit run --all-files.