Skip to content

PE653: child devices, Z-Wave optimizer, profile-aware operation mode#32

Open
JaragonCR wants to merge 1 commit into
philh30:mainfrom
JaragonCR:feature/child-devices-refactor
Open

PE653: child devices, Z-Wave optimizer, profile-aware operation mode#32
JaragonCR wants to merge 1 commit into
philh30:mainfrom
JaragonCR:feature/child-devices-refactor

Conversation

@JaragonCR

Copy link
Copy Markdown

What changed

New module: child-manager.lua

  • Profile-aware child device creation and deletion
  • Creates standalone circuit switch and temperature sensor devices per profile
  • Syncs child device state on every Z-Wave report and proprietary 0x84 event
  • Persists created-child tracking across driver restarts to prevent duplicates
  • Deletes children cleanly on profile/mode change using driver:try_delete_device()

New profile: p_-sss__---wa_

  • Pool-only, circuits 1/3/5, water+air temps (matches test hardware)
  • Added pe653ActiveMode capability and device-config JSON

Profile switching (init.lua)

  • PROFILE_KEY_TO_NAME lookup maps short preference keys to dashed YAML names
  • Delayed sync after profile switch re-fetches live device to avoid stale proxy
  • Startup sync on driver restart re-evaluates children without recreating them

Z-Wave optimizer (zwave-optimizer.lua)

  • Detects VSP, heater, spa, booster from stored Z-Wave fields on init
  • Builds trimmed refresh and full-config command lists (skips unused params)
  • should_process_param() gate filters incoming reports for absent hardware
  • Saves ~315k Z-Wave messages/year on single-speed pump, pool-only configs

Operation mode settings

  • Added timezoneUTC, timezoneDST, setpointScale, zwDelay to all 9 operation profiles
  • Configuration-only settings (profile, child toggles, schedules) stay in config mode only

Schedule management

  • Removed pe653ScheduleTime from all operation profiles (read-only in operation mode)
  • Added enableSchedules toggle in configuration-mode.yml

README

  • Full rewrite documenting modes, child devices, Z-Wave optimization, all profiles, settings table, and clearly marking hardware-tested vs code-only features

## What changed

### New module: child-manager.lua
- Profile-aware child device creation and deletion
- Creates standalone circuit switch and temperature sensor devices per profile
- Syncs child device state on every Z-Wave report and proprietary 0x84 event
- Persists created-child tracking across driver restarts to prevent duplicates
- Deletes children cleanly on profile/mode change using driver:try_delete_device()

### New profile: p_-sss__-_-_-wa_
- Pool-only, circuits 1/3/5, water+air temps (matches test hardware)
- Added pe653ActiveMode capability and device-config JSON

### Profile switching (init.lua)
- PROFILE_KEY_TO_NAME lookup maps short preference keys to dashed YAML names
- Delayed sync after profile switch re-fetches live device to avoid stale proxy
- Startup sync on driver restart re-evaluates children without recreating them

### Z-Wave optimizer (zwave-optimizer.lua)
- Detects VSP, heater, spa, booster from stored Z-Wave fields on init
- Builds trimmed refresh and full-config command lists (skips unused params)
- should_process_param() gate filters incoming reports for absent hardware
- Saves ~315k Z-Wave messages/year on single-speed pump, pool-only configs

### Operation mode settings
- Added timezoneUTC, timezoneDST, setpointScale, zwDelay to all 9 operation profiles
- Configuration-only settings (profile, child toggles, schedules) stay in config mode only

### Schedule management
- Removed pe653ScheduleTime from all operation profiles (read-only in operation mode)
- Added enableSchedules toggle in configuration-mode.yml

### README
- Full rewrite documenting modes, child devices, Z-Wave optimization, all profiles,
  settings table, and clearly marking hardware-tested vs code-only features

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

1 participant