extra meter only consumer - #3920
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Unconditional no-op updates erase genuine control faults for existing consumers without updater callbacks.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds a meter-only consumer representing consumption measured by a separate meter without a controllable device.
Changes:
- Adds the new consumer configuration and registration.
- Allows consumers without updater callbacks.
- Broadens consumer update scheduling.
File summaries
| File | Description |
|---|---|
packages/modules/loadvars.py |
Schedules updates for all consumers. |
packages/modules/common/configurable_consumer.py |
Makes updater callbacks optional. |
packages/modules/consumers/extra_meter_only/vendor.py |
Registers the consumer vendor. |
packages/modules/consumers/extra_meter_only/extra_meter_only/config.py |
Defines meter-only defaults. |
packages/modules/consumers/extra_meter_only/extra_meter_only/consumer.py |
Creates the placeholder consumer. |
packages/modules/consumers/extra_meter_only/__init__.py |
Initializes the vendor package. |
packages/modules/consumers/extra_meter_only/extra_meter_only/__init__.py |
Initializes the consumer package. |
Review details
- Files reviewed: 5/7 changed files
- Comments generated: 2
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| modules_threads.append(Thread(target=consumer.module.update, | ||
| args=(), | ||
| name=f"set values consumer{consumer.data.module.id}")) |
There was a problem hiding this comment.
🟡 Changes recommended
ConfigurableConsumer.update() no longer resets fault state when module_updater is None, which can cause consumer fault states to remain stuck after transient publish-time errors (notably relevant for extra_meter-driven consumers).
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
- Files reviewed: 4/5 changed files
- Comments generated: 2
- Review effort level: Lite
There was a problem hiding this comment.
🟢 Approval recommended
The changes are small, internally consistent (Loadvars always calls ConfigurableConsumer.update, which safely no-ops when no updater is configured), and the new consumer module follows existing consumer module patterns.
Review details
- Files reviewed: 4/5 changed files
- Comments generated: 0 new
- Review effort level: Lite
references #3908 (comment)