feat(controls): EMS export + flexi parity, RTC and active-power knobs#83
Conversation
Bumps the givenergy-modbus floor to 2.1.0a11 (brings the EMS export slot setters from modbus #143 and the Ems.plant_enabled read-back from #145) and adds the GE-Cloud control knobs they unlock, plus the inverter knobs already available: - Real Time Control switch (set_enable_rtc / inv.enable_rtc) - Inverter Max Output Active Power % number (set_active_power_rate) - EMS Export Slot 1-3: start/end times + target SoC, completing export parity with the charge/discharge slots (one-word extensions of the EMS time/number factories) - Flexi EMS Control switch (set_ems_plant / ems.plant_enabled) — adds EMS switch platform support, gated on coordinator.data.ems Source: GE Cloud portal "EMS setup" view (EMS + 2 inverters) on #52. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 47 minutes and 36 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (8)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the "givenergy-modbus" dependency to version "2.1.0a11" and introduces several new entities and controls. Specifically, it adds support for EMS export slots (including start/end times and target SoC numbers), a new "Inverter Max Output Active Power" (active_power_rate) number entity, a "Real Time Control" (enable_rtc) switch, and a "Flexi EMS Control" (ems_plant_enable) switch. Corresponding unit tests have been added or updated to verify the behavior of these new entities. There are no review comments, so I have no feedback to provide.
dewet22-codex
left a comment
There was a problem hiding this comment.
Approved. I reviewed the current head and do not have any actionable concerns. I ran uv run pytest -q (148 passed), uv lock --check, and targeted ruff on the changed files; the GitHub checks are also green.
… totals (#121) * feat: dashboard PR A — Smart Load, AC-Coupled, mode controls, battery totals Closes high-priority gaps between exposed entities and the generated dashboard: - Smart Load slots 1–10 on Controls (`has_smart_load` kwarg; defaults open until givenergy-modbus exposes a capability we can gate on per #181 / 2.1.3 — wired through with a TODO). - AC-Coupled card on Controls (export priority, EPS, AC charge/discharge limits) gated by `has_ac_config_block` from PlantCapabilities. - Mode card additions: Real Time Control, Inverter Max Output Power. - Energy → All-Time Totals: Battery Charged / Battery Discharged. - Bumps DASHBOARD_VERSION to 8 so the Repairs prompt fires on existing installs. Refs #52, #76, #83, #89, #90, #106. * fix: align has_ac_config_block gating with entity registration Exclude three-phase systems from the AC-coupled card — switch.py and number.py both gate AC-coupled entities on `not caps.is_three_phase`, so the dashboard flag must match. Also replace EN DASH characters in docstrings with plain ASCII hyphens (ruff RUF002). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
EMS / inverter control parity
Surfaces the GE-Cloud control knobs the integration was missing — limited to those where
givenergy_modbusprovides both a setter and a readable model field (real state, no write-only controls).Bumps the
givenergy-modbusfloor a8 → a11, which brings the two pieces this needed: the EMS export slot setters (modbus #143) and theEms.plant_enabledboolean read-back (modbus #145, added in response to the parity handoff).Added
set_enable_rtc/inv.enable_rtcset_active_power_rate/inv.active_power_rateset_ems_export_slot_*) and target SoC (set_ems_export_target_soc), completing export parity with the charge/discharge slots; one-word extensions of the existing EMS time/number factoriesset_ems_plant/ems.plant_enabled; adds EMS-scoped switch support, gated oncoordinator.data.emsNotes / not included
set_battery_power_reserve)._accharge/discharge limit variants and a Set Date/Time service deferred as follow-ups.Source: GE Cloud portal "EMS setup" (EMS + 2-inverter plant) on #52. 149 tests pass; mypy-neutral; full suite green against a11.
🤖 Generated with Claude Code