Verbrauchersteuerung - #3808
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces “Verbrauchersteuerung” (consumer/device load control) across the backend control loop, MQTT plumbing, logging/graphing, and multiple web themes, while also aligning some MQTT topic paths (notably battery mode) and removing the PV “feed-in limit” option from charge templates/UI.
Changes:
- Add a full consumer domain model (configs, usage modes, state/store/simcounter, control-loop integration, MQTT subscription/publication, logging & graph support).
- Update UIs (Koala, Cards, Standard Legacy, Colors) to display and interact with consumers, and add consumer datasets to charts/totals.
- Update MQTT topics for battery mode/power reserve and remove PV feed-in-limit controls across UIs and templates; refactor Shelly status handling reuse.
Reviewed changes
Copilot reviewed 187 out of 226 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| simpleAPI/src/ParameterHandler.php | Update MQTT topic path for battery mode setting. |
| simpleAPI/simpleAPI_mqtt.py | Update MQTT topic paths for battery mode and power reserve operations. |
| packages/modules/web_themes/standard_legacy/web/setupMqttServices.js | Subscribe to updated battery mode topic. |
| packages/modules/web_themes/standard_legacy/web/processAllMqttMsg.js | Remove feed-in-limit UI handling; update battery mode topic handling. |
| packages/modules/web_themes/standard_legacy/web/index.html | Update battery mode publish topic; remove feed-in-limit control from PV settings. |
| packages/modules/web_themes/koala/source/src/stores/mqtt-store-model.ts | Extend MQTT data model: consumers + consumer datasets in graph points; remove feed-in-limit field. |
| packages/modules/web_themes/koala/source/src/stores/localData-store.ts | Switch legend hide/show storage from label text to stable dataset keys. |
| packages/modules/web_themes/koala/source/src/pages/IndexPage.vue | Add “Verbraucher” tab/panel and availability gating. |
| packages/modules/web_themes/koala/source/src/css/quasar.variables.scss | Add consumer color variable and expose as CSS var. |
| packages/modules/web_themes/koala/source/src/components/ConsumerModeButtons.vue | New consumer mode selector UI component. |
| packages/modules/web_themes/koala/source/src/components/ConsumerMessage.vue | New consumer status/fault message component. |
| packages/modules/web_themes/koala/source/src/components/ConsumerInformation.vue | New consumer overview/grid/carousel component. |
| packages/modules/web_themes/koala/source/src/components/charts/historyChart/HistoryChartLegendStandard.vue | Legend now uses dataset keys (not label text) and typed categorized items. |
| packages/modules/web_themes/koala/source/src/components/charts/historyChart/HistoryChartLegendCategory.vue | Same legend keying/type updates for categorized legend menu. |
| packages/modules/web_themes/koala/source/src/components/charts/historyChart/HistoryChartLegendCategoriesGroup.vue | Add consumer legend category and refine menu props/styles. |
| packages/modules/web_themes/koala/source/src/components/charts/historyChart/HistoryChartLegend.vue | Introduce stable dataset keys/categories; add consumer category; keep hidden state by key. |
| packages/modules/web_themes/koala/source/src/components/charts/historyChart/history-chart-model.ts | Add consumer category + dataset keys/constants and consumer dataset key helper. |
| packages/modules/web_themes/koala/source/src/components/charts/energyFlowChart/EnergyFlowChart.vue | Add consumer node to energy flow chart including styling/animation. |
| packages/modules/web_themes/koala/source/src/components/charts/dailyTotals/DailyTotalsRow.vue | Add consumer icon mapping/power direction handling. |
| packages/modules/web_themes/koala/source/src/components/charts/dailyTotals/DailyTotals.vue | Add consumer totals and per-consumer expansion rows. |
| packages/modules/web_themes/koala/source/src/components/ChargePointPvSettings.vue | Remove feed-in-limit toggle from PV settings. |
| packages/modules/web_themes/koala/source/src/assets/icons/owbConsumer.svg | Add consumer SVG icon asset. |
| packages/modules/web_themes/koala/source/src/assets/icons/icon_Data.md | Document icon source attribution URL. |
| packages/modules/web_themes/colors/source/src/components/chargePointList/model.ts | Remove feed-in-limit field and accessors from chargepoint model/template. |
| packages/modules/web_themes/colors/source/src/components/chargePointList/cpConfig/ConfigPv.vue | Remove feed-in-limit configuration item from PV config panel. |
| packages/modules/loadvars.py | Add threaded update handling for consumer modules during loadvars. |
| packages/modules/display_themes/colors/source/src/components/chargePointList/model.ts | Remove feed-in-limit field and accessors. |
| packages/modules/display_themes/colors/source/src/components/chargePointList/configPanels/ConfigPv.vue | Remove feed-in-limit config item. |
| packages/modules/display_themes/cards/source/src/views/ChargePointsView.vue | Remove feed-in-limit UI/actions from cards theme chargepoint config. |
| packages/modules/display_themes/cards/source/src/stores/mqtt.js | Update battery mode topic; add consumer power getter; remove feed-in-limit getter. |
| packages/modules/display_themes/cards/source/src/main.scss | Add consumer color CSS variable. |
| packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue | Add consumer component to flow visualization. |
| packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue | Update battery mode topics used to publish changes. |
| packages/modules/display_themes/cards/source/src/assets/icons/owbConsumer.svg | Add consumer SVG icon asset for cards theme. |
| packages/modules/display_themes/cards/source/src/App.vue | Subscribe to consumer total power topic and updated battery mode topic. |
| packages/modules/devices/shelly/shelly/inverter.py | Refactor to shared Shelly status handler (request/parse). |
| packages/modules/devices/shelly/shelly/device.py | Refactor generation detection to shared helper. |
| packages/modules/devices/shelly/shelly/constants.py | Remove unused constants (alphabetical index). |
| packages/modules/devices/shelly/shelly/bat.py | Refactor to shared Shelly status handler (request/parse). |
| packages/modules/devices/generic/virtual/counter_test.py | Fix CounterAll import path. |
| packages/modules/devices/generic/http/api.py | Add helper to create POST functions for generic HTTP integrations. |
| packages/modules/consumers/viessmann/viessmann_heat_pump/consumer.py | Add Viessmann heat pump consumer module (Modbus switch). |
| packages/modules/consumers/viessmann/viessmann_heat_pump/config.py | Add Viessmann heat pump consumer config setup. |
| packages/modules/consumers/viessmann/viessmann_heat_pump/init.py | Package init for Viessmann heat pump consumer. |
| packages/modules/consumers/viessmann/vendor.py | Add Viessmann vendor descriptor. |
| packages/modules/consumers/viessmann/init.py | Package init for Viessmann consumers. |
| packages/modules/consumers/vendors.py | Introduce consumer vendor grouping enum. |
| packages/modules/consumers/stiebel/vendor.py | Add Stiebel vendor descriptor. |
| packages/modules/consumers/stiebel/stiebel/consumer.py | Add Stiebel consumer module (Modbus on/off). |
| packages/modules/consumers/stiebel/stiebel/config.py | Add Stiebel consumer config setup. |
| packages/modules/consumers/stiebel/stiebel/init.py | Package init for Stiebel consumer module. |
| packages/modules/consumers/stiebel/init.py | Package init for Stiebel consumers. |
| packages/modules/consumers/solvis/vendor.py | Add Solvis vendor descriptor. |
| packages/modules/consumers/solvis/solvis/consumer.py | Add Solvis consumer module (Modbus metering). |
| packages/modules/consumers/solvis/solvis/config.py | Add Solvis consumer config setup. |
| packages/modules/consumers/solvis/solvis/init.py | Package init for Solvis consumer module. |
| packages/modules/consumers/solvis/init.py | Package init for Solvis consumers. |
| packages/modules/consumers/shelly/vendor.py | Add Shelly consumer vendor descriptor. |
| packages/modules/consumers/shelly/shelly_pm/consumer.py | Add Shelly PM consumer (metering + switching). |
| packages/modules/consumers/shelly/shelly_pm/config.py | Add Shelly PM consumer config setup. |
| packages/modules/consumers/shelly/shelly_pm/init.py | Package init for Shelly PM consumer module. |
| packages/modules/consumers/shelly/shelly_em/consumer.py | Add Shelly EM consumer (metering). |
| packages/modules/consumers/shelly/shelly_em/config.py | Add Shelly EM consumer config setup. |
| packages/modules/consumers/shelly/shelly_em/init.py | Package init for Shelly EM consumer module. |
| packages/modules/consumers/shelly/init.py | Package init for Shelly consumers. |
| packages/modules/consumers/ratiotherm/vendor.py | Add Ratiotherm vendor descriptor. |
| packages/modules/consumers/ratiotherm/ratiotherm/consumer.py | Add Ratiotherm consumer (power limit set via Modbus). |
| packages/modules/consumers/ratiotherm/ratiotherm/config.py | Add Ratiotherm consumer config setup. |
| packages/modules/consumers/ratiotherm/ratiotherm/init.py | Package init for Ratiotherm consumer module. |
| packages/modules/consumers/ratiotherm/init.py | Package init for Ratiotherm consumers. |
| packages/modules/consumers/ovum/vendor.py | Add Ovum vendor descriptor. |
| packages/modules/consumers/ovum/ovum/config.py | Add Ovum consumer config setup. |
| packages/modules/consumers/ovum/ovum/init.py | Package init for Ovum consumer module. |
| packages/modules/consumers/ovum/init.py | Package init for Ovum consumers. |
| packages/modules/consumers/nibe/vendor.py | Add Nibe vendor descriptor. |
| packages/modules/consumers/nibe/nibe_s_series/consumer.py | Add Nibe S-Series consumer (Modbus metering). |
| packages/modules/consumers/nibe/nibe_s_series/config.py | Add Nibe S-Series consumer config setup. |
| packages/modules/consumers/nibe/nibe_s_series/init.py | Package init for Nibe S-Series consumer module. |
| packages/modules/consumers/nibe/init.py | Package init for Nibe consumers. |
| packages/modules/consumers/mystrom/vendor.py | Add MyStrom vendor descriptor. |
| packages/modules/consumers/mystrom/mystrom/consumer.py | Add MyStrom consumer (HTTP report + relay). |
| packages/modules/consumers/mystrom/mystrom/config.py | Add MyStrom consumer config setup. |
| packages/modules/consumers/mystrom/mystrom/init.py | Package init for MyStrom consumer module. |
| packages/modules/consumers/mystrom/init.py | Package init for MyStrom consumers. |
| packages/modules/consumers/my_pv/vendor.py | Add my-PV vendor descriptor. |
| packages/modules/consumers/my_pv/elwa_e/consumer.py | Add Elwa-E consumer (Modbus metering + setpoint). |
| packages/modules/consumers/my_pv/elwa_e/config.py | Add Elwa-E consumer config setup. |
| packages/modules/consumers/my_pv/elwa_e/init.py | Package init for Elwa-E consumer module. |
| packages/modules/consumers/my_pv/acthor/consumer.py | Add Acthor consumer (Modbus metering + setpoint). |
| packages/modules/consumers/my_pv/acthor/config.py | Add Acthor consumer config setup. |
| packages/modules/consumers/my_pv/acthor/init.py | Package init for Acthor consumer module. |
| packages/modules/consumers/my_pv/init.py | Package init for my-PV consumers. |
| packages/modules/consumers/lambda_/vendor.py | Add Lambda vendor descriptor. |
| packages/modules/consumers/lambda_/lambda_/consumer.py | Add Lambda consumer (Modbus send_values + metering + set_limit). |
| packages/modules/consumers/lambda_/lambda_/config.py | Add Lambda consumer config setup. |
| packages/modules/consumers/lambda_/lambda_/init.py | Package init for Lambda consumer module. |
| packages/modules/consumers/lambda_/init.py | Package init for Lambda consumers. |
| packages/modules/consumers/idm/vendor.py | Add IDM vendor descriptor. |
| packages/modules/consumers/idm/idm/consumer.py | Add IDM consumer (Modbus send_values + metering + set_limit). |
| packages/modules/consumers/idm/idm/config.py | Add IDM consumer config setup. |
| packages/modules/consumers/idm/idm/init.py | Package init for IDM consumer module. |
| packages/modules/consumers/idm/init.py | Package init for IDM consumers. |
| packages/modules/consumers/generic/vendor.py | Add generic consumer vendor descriptor. |
| packages/modules/consumers/generic/mqtt/consumer.py | Add generic MQTT consumer module (subscribe get/, publish set/). |
| packages/modules/consumers/generic/mqtt/config.py | Add generic MQTT consumer config setup. |
| packages/modules/consumers/generic/mqtt/init.py | Package init for generic MQTT consumer. |
| packages/modules/consumers/generic/json/consumer.py | Add generic JSON consumer module (HTTPS + jq extraction + POST hooks). |
| packages/modules/consumers/generic/json/config.py | Add generic JSON consumer config setup. |
| packages/modules/consumers/generic/json/init.py | Package init for generic JSON consumer. |
| packages/modules/consumers/generic/http/consumer.py | Add generic HTTP consumer module (HTTPS + GET/POST paths). |
| packages/modules/consumers/generic/http/config.py | Add generic HTTP consumer config setup. |
| packages/modules/consumers/generic/http/init.py | Package init for generic HTTP consumer. |
| packages/modules/consumers/generic/dac/model.py | Add DAC model enum scaffold. |
| packages/modules/consumers/generic/dac/consumer.py | Add DAC consumer skeleton (set_limit placeholder). |
| packages/modules/consumers/generic/dac/config.py | Add DAC consumer config setup. |
| packages/modules/consumers/generic/dac/init.py | Package init for generic DAC consumer. |
| packages/modules/consumers/generic/init.py | Package init for generic consumers. |
| packages/modules/consumers/avm/vendor.py | Add AVM vendor descriptor. |
| packages/modules/consumers/avm/avm/config.py | Add AVM consumer config setup (credentials/session fields). |
| packages/modules/consumers/avm/avm/init.py | Package init for AVM consumer module. |
| packages/modules/consumers/avm/init.py | Package init for AVM consumers. |
| packages/modules/consumers/askoma/vendor.py | Add ASKOMA vendor descriptor. |
| packages/modules/consumers/askoma/askoheat/consumer.py | Add ASKOMA consumer module (Modbus metering + set_limit). |
| packages/modules/consumers/askoma/askoheat/config.py | Add ASKOMA consumer config setup. |
| packages/modules/consumers/askoma/askoheat/init.py | Package init for ASKOMA consumer module. |
| packages/modules/consumers/askoma/init.py | Package init for ASKOMA consumers. |
| packages/modules/consumers/init.py | Package init for consumers root package. |
| packages/modules/common/utils/peak_filter.py | Extend peak filter to support consumer components. |
| packages/modules/common/store/_inverter_test.py | Fix CounterAll import path. |
| packages/modules/common/store/_factory.py | Add consumer store selection to component store factory. |
| packages/modules/common/store/_counter_test.py | Fix CounterAll import path. |
| packages/modules/common/store/_consumer.py | Add consumer value store publishing + extra-meter purge wrapper. |
| packages/modules/common/simcount/_simcounter.py | Add SimCounterConsumer for consumer energy simulation/counting. |
| packages/modules/common/consumer_setup.py | Add base ConsumerSetup type (name/type/id/vendor/usage/color). |
| packages/modules/common/configurable_consumer.py | Add configurable consumer wrapper (init/update/switch/set_limit/send_values). |
| packages/modules/common/component_type.py | Add CONSUMER (and VEHICLE) component types and topic/type mapping. |
| packages/modules/common/component_state.py | Add ConsumerState to shared component state definitions. |
| packages/modules/common/abstract_consumer.py | Add CurrentValues dataclass used for SELF_CONTROLLED consumer integrations. |
| packages/main.py | Call consumer midnight handlers within midnight processing. |
| packages/helpermodules/update_config_test.py | Add datastore upgrade test coverage for v139 EV chargemode conversion. |
| packages/helpermodules/timecheck.py | Extend plan/time utilities to support consumer schedule/time plans. |
| packages/helpermodules/subdata.py | Subscribe/process consumer topics; add Enum parsing; wire consumer module loading. |
| packages/helpermodules/mosquitto_dynsec/missing_role_topics_test.py | Add missing-role topics for consumer plan IDs. |
| packages/helpermodules/measurement_logging/write_log.py | Add consumer logging; skip extra-meter counters; include consumer names/colors. |
| packages/helpermodules/measurement_logging/write_log_test.py | Update tests to include consumer names. |
| packages/helpermodules/measurement_logging/update_yields.py | Include consumer yields in daily yield publishing. |
| packages/helpermodules/measurement_logging/test_data_analyse_percentage_totals.json | Extend test data for consumer percentage totals. |
| packages/helpermodules/measurement_logging/process_log.py | Add consumer sections into processing/analysis and ensure colors are aggregated. |
| packages/helpermodules/measurement_logging/process_log_unit_test.py | Extend percentage totals unit tests to include consumer totals. |
| packages/helpermodules/graph.py | Add consumer power series to graph data output. |
| packages/helpermodules/create_debug.py | Update debug output to new chargemode_config structure and fix indentation. |
| packages/helpermodules/constants.py | Add default consumer color. |
| packages/helpermodules/command_test_data.py | Update command test data to include consumer and PV changes. |
| packages/helpermodules/changed_values_handler.py | Include consumer values in changed-values publishing. |
| packages/helpermodules/auto_str.py | Add repr generation to auto_str helper. |
| packages/helpermodules/abstract_plans.py | Add consumer variants of time/scheduled plans. |
| packages/control/process.py | Integrate consumers into algorithm result processing (state updates + control threads). |
| packages/control/prepare.py | Ensure consumers are updated and summed during preparation step. |
| packages/control/loadmanagement_test.py | Adjust signature usage in test to match implementation changes. |
| packages/control/load_protocol.py | Introduce protocol/dataclasses to generalize “load” across chargepoints/consumers. |
| packages/control/ev/ev.py | Remove feed-in-limit dependency and use new surplus config fields. |
| packages/control/ev/charge_template.py | Remove feed-in-limit from PV charging template; mark prio as obsolete. |
| packages/control/data.py | Add consumer data/all-data to core data container and copying logic. |
| packages/control/counter_test.py | Update tests for hierarchy/load naming changes and surplus config refactors. |
| packages/control/counter_all/loadmanagement_prio.py | Add loadmanagement priority mixin supporting consumer entries. |
| packages/control/counter_all/hierarchy_test.py | Rename/extend hierarchy helpers from “chargepoints” to generic “loads”. |
| packages/control/counter_all/counter_home_consumption_test.py | Fix CounterAll import path. |
| packages/control/consumer/usage.py | Add consumer usage enum and “not controlled” grouping. |
| packages/control/consumer/consumer_data.py | Add consumer data model (usage/config/get/set/reset/wait states). |
| packages/control/consumer/consumer_all.py | Add aggregate consumer totals/fault reporting. |
| packages/control/chargepoint/get_phases_test.py | Update tests to new surplus config path. |
| packages/control/chargepoint/control_parameter.py | Change current_plan type; remove prio from control parameters. |
| packages/control/chargepoint/chargepoint.py | Make Chargepoint implement Load protocol; remove prio propagation/logging; add stop-allowed hook. |
| packages/control/chargepoint/chargepoint_test.py | Update tests to new surplus config path. |
| packages/control/chargelog/chargelog_test.py | Include consumer sections in logged data fixtures. |
| packages/control/auto_phase_switch_test.py | Update test call signature for auto_phase_switch (no charge_template arg). |
| packages/control/algorithm/no_current.py | Generalize “no current” logic to handle consumers as loads. |
| packages/control/algorithm/min_current.py | Generalize min-current handling to grouped loads per counter, not just chargepoints. |
| packages/control/algorithm/integration_test/conftest.py | Extend integration test setup to include consumers in hierarchy/prios. |
| packages/control/algorithm/common_test.py | Update tests for renamed “available_current_for_load” helper. |
| packages/control/algorithm/chargemodes.py | Simplify charge mode ordering tuples and adjust considered-mode sets. |
| packages/control/algorithm/bidi_charging.py | Refactor to new load filtering helpers; keep bidi logic on chargepoints. |
| packages/control/algorithm/algorithm.py | Update auto_phase_switch invocation signature. |
| packages/control/algorithm/additional_current.py | Generalize additional-current allocation to loads, not just chargepoints. |
| packages/conftest.py | Fix CounterAll import path. |
| docs/samples/sample_consumer/vendor.py | Add vendor descriptor for the sample consumer package. |
| docs/samples/sample_consumer/sample_consumer/consumer.py | Add sample consumer implementation (Modbus example). |
| docs/samples/sample_consumer/sample_consumer/config.py | Add sample consumer config setup. |
| docs/samples/sample_consumer/sample_consumer/init.py | Package init for sample consumer module. |
| docs/samples/sample_consumer/init.py | Package init for sample consumer docs package. |
| data/config/mosquitto/public/role-templates.json | Add dynamic security role templates for consumer access/write access. |
| data/config/mosquitto/local/openwb_local.conf | Update version marker; add consumer topic bridging; broaden counter get/# bridging. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
3ceea9d to
b2b3bea
Compare
4e1fd10 to
4f3098d
Compare
5b0e450 to
f5df263
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 107 out of 113 changed files in this pull request and generated 1 comment.
Suppressed comments (8)
data/config/mosquitto/public/default-dynamic-security.json:1791
- The three send ACLs omit the broker's
openWB/set/...prefix, unlike the charge-point configuration ACLs above and the per-consumer role template. With user management enabled, writes to config, module, and usage are therefore denied. Addsetto all three send topics; keep the receive topics unchanged.
"topic": "openWB/consumer/+/config",
packages/modules/web_themes/koala/source/src/components/charts/dailyTotals/DailyTotalsRow.vue:138
- Only the aggregate
consumerID is handled. Expanded rows use IDs such asconsumer-7, so their nonzeropoweris rendered with the no-current horizontal line. Resolveconsumer-*IDs withconsumerPower, as is already done for individual counters.
packages/control/counter_all/loadmanagement_prio.py:24 - Vehicle IDs and consumer IDs use separate namespaces, but removal now matches only the numeric ID and removes the first vehicle or consumer entry encountered. Deleting consumer 2 can therefore remove vehicle 2's priority entry (or vice versa). Pass the component type through the removal API and require both type and ID to match.
packages/control/counter_all/hierarchy.py:56 - Returning consumers here exposes a caller incompatibility:
Counter._get_loadmanagement_state()iterates this result but always indexesdata.data.cp_data[load_key]. If a counter enters fault state with a consumer below it, that raisesKeyErrorand aborts counter setup, leaving its load-management limits stale. Update that caller to resolve bothcp...andconsumer...keys before including consumers here.
elif child["type"] == ComponentType.CONSUMER.value:
self.connected_loads.append(f"consumer{child['id']}")
packages/modules/devices/shelly/shelly/status_handler.py:119
- For
em1:0devices, totalpowerandcurrentsapplyfactor, but the per-phasepowersvalue does not. With any factor other than 1, the emitted phase power no longer sums to total power. Apply the same factor here.
packages/control/general.py:61 - The consumer surplus switch-on delay defaults to 30 seconds here, while datastore initialization adds the same topic with 60 seconds (
helpermodules/update_config.py:666). This makes behavior depend on whether the value came from the dataclass or initialized broker data. Use one default consistently.
data/config/mosquitto/public/default-dynamic-security.json:1776 - The consumer configuration role has no ACL for the
addConsumerorremoveConsumercommand topics. Unlike the charge-point configuration role at lines 1674-1684, a user granted this role cannot actually create or delete consumers. Add both command ACLs to this role.
"acls": [
data/config/mosquitto/public/default-dynamic-security.json:1815
- The configuration role never grants access to
openWB/set/consumer/+/extra_meteror its corresponding receive topic, although consumer creation and configuration use that topic. Users relying on this role cannot configure an external meter. Add scoped send and receive ACLs forextra_meter.
"topic": "openWB/system/configurable/consumers",
| }, | ||
| { | ||
| "acltype": "publishClientSend", | ||
| "topic": "openWB/set/command/+/todo/addConsumerSchedulePlan", |
f5df263 to
64f9b91
Compare
2949258 to
1f63aeb
Compare
1f63aeb to
41637a7
Compare
41637a7 to
f0b4a8d
Compare
* draft * Anlauferkennung * Betriebsmodus zurücksetzen * ammend * Anlauferkennung * draft * draft scheduled charging * add scheduled und time plan commands for adding and removing * flake8 * update config * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * review * fix pytest --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* on_time * eco default price, typo
* Add consumer to energy flow chart * Add consumer row to daily totals chart * Add consumer total to history chart * add consumer color to store * Align legend category dropdowns
* Add consumer component to display flow chart * Add user management role
* energy percentage, set usage per json * consider min interval * fixes * pv * fix * pycheck, fix extra meter * ammend * fixes * ammend * fix * switch interval elapsed * flake8
* add shelly, flake8, pytest consumer chargemodes * fix shelly * existing pytests running * review
* fix colors, lookup dict names and colors for consumers * review
* fix colors, lookup dict names and colors for consumers * review * extend tests * add colors for yearly graph data * remove extra meters from log data * remove comment * flake8
* usage type self controlled * fix * review
* calc on time * review
* IDM: send PV/Hausverbrauch/Batterie via GLT statt Leistungsvorgabe * Lambda: PV-Überschuss statt power_limit an E-Manager senden * Add OVUM CubeSpeicher/MPlus consumer module * IDM: revert scaling factor, fix flake8 formatting * flake8 * Rename send_grid_values to send_values in config.py * Adjust surplus calculation to account for charging power Include charging power in surplus calculation to avoid misreporting surplus to the heat pump. * Update send_values function to send grid power * Add Self_Controlled for IDM and Lambda * flake8: fix syntax error and whitespace in consumer modules Stray pasted line broke lambda_ consumer.py syntax; idm/lambda_/ovum files had trailing whitespace on blank lines and missing EOF newlines.
* clean up * fix loadmanagement * review * review * flake8
f0b4a8d to
195bb53
Compare
#3840) * no charge for loads * consider non charging for consumers and update consumer state messages * flake8 * review
No description provided.