Add heatMinOpTemperature field and firmware version tracking#14
Merged
Conversation
- Add heatMinOpTemperature field to DeviceStatus model - Raw value converted using 'raw + 20' formula (70 -> 90°F) - Represents minimum operating temperature for heat pump activation - Implement firmware version tracking system - Add KNOWN_FIRMWARE_FIELD_CHANGES to constants.py for tracking new fields - Enhanced logging to differentiate known vs unknown new fields - Graceful handling of fields from firmware updates - Documentation updates - Add heatMinOpTemperature to DEVICE_STATUS_FIELDS.rst - Create new FIRMWARE_TRACKING.rst guide - Add firmware tracking to documentation index - Improve future maintainability - Users can report firmware versions when new fields appear - Library continues to function with unknown fields - Clear path for adding support for new firmware features This change ensures compatibility with current firmware while preparing for future device updates.
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR adds support for a newly discovered device status field (heatMinOpTemperature) and implements a systematic approach for tracking and handling firmware-introduced fields.
- Adds
heatMinOpTemperaturefield to theDeviceStatusmodel with appropriate conversion logic - Creates a firmware tracking system in
constants.pyto document known field changes - Implements graceful handling of unknown fields with informative logging for user reporting
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/nwp500/models.py | Adds heatMinOpTemperature field, implements unknown field filtering with logging for known/unknown new fields |
| src/nwp500/constants.py | Creates KNOWN_FIRMWARE_FIELD_CHANGES and LATEST_KNOWN_FIRMWARE dictionaries for tracking field changes |
| docs/index.rst | Adds Firmware Tracking documentation to the index |
| docs/FIRMWARE_TRACKING.rst | Comprehensive guide for firmware version tracking, field reporting, and contribution process |
| docs/DEVICE_STATUS_FIELDS.rst | Documents the heatMinOpTemperature field with conversion formula and description |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…unknown field handling - Query live device to populate LATEST_KNOWN_FIRMWARE with actual versions: - Controller SW: 184614912 - Panel SW: 0 (not used on NWP500) - WiFi SW: 34013184 - Add unknown field filtering to DeviceFeature.from_dict() - Prevents crashes when new feature fields appear (e.g., recirculationUse) - Consistent with DeviceStatus handling - Logs info message about ignored fields - Update FIRMWARE_TRACKING.rst with observed versions and features - Document heatMinOpTemperature was observed with these versions - Note presence of recirc* fields for future implementation All firmware data collected from live NWP500 device on 2025-10-15.
Owner
Author
Firmware Versions AddedJust queried the live device to populate the firmware version constants with actual data: Observed Versions (NWP500, 2025-10-15)
Additional Changes
The firmware tracking system is now fully populated with real-world data and ready for users to reference when reporting new fields. |
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.
Summary
This PR adds support for the
heatMinOpTemperaturefield discovered in device status messages and implements a firmware version tracking system for future field changes.Changes
New Field Support
heatMinOpTemperatureto DeviceStatus modelfloatraw + 20(e.g., raw value 70 → 90°F)hpUpperOnTempSetting(heat pump turn-on temperature)Firmware Tracking System
Created
constants.KNOWN_FIRMWARE_FIELD_CHANGESEnhanced unknown field logging
Documentation
DEVICE_STATUS_FIELDS.rstwithheatMinOpTemperaturedocumentationFIRMWARE_TRACKING.rstguideTesting
Notes
During testing, discovered additional
recirc*fields (recirculation pump related) that are now logged for future tracking.Backwards Compatibility
✅ Fully backwards compatible - existing code continues to work without changes.