Skip to content

pytest - #3786

Merged
LKuemmel merged 4 commits into
openWB:feature_consumerfrom
LKuemmel:consumer_dev
Aug 10, 2026
Merged

pytest#3786
LKuemmel merged 4 commits into
openWB:feature_consumerfrom
LKuemmel:consumer_dev

Conversation

@LKuemmel

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Extends load-management and PV-delay handling to consumers while updating integration expectations.

Changes:

  • Adds consumer-aware surplus reservation and reset logic.
  • Prevents incomplete consumer creation without an EVU counter.
  • Updates algorithm logging and charging tests.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
packages/helpermodules/command.py Reorders consumer creation and handles missing EVU counters.
packages/control/counter.py Adds consumer-aware PV switching calculations.
packages/control/consumer/consumer.py Resets delays when consumer modes change.
packages/control/algorithm/surplus_controlled.py Suppresses empty load-group logs.
packages/control/algorithm/min_current.py Suppresses empty load-group logs.
packages/control/algorithm/additional_current.py Suppresses empty load-group logs.
packages/control/algorithm/integration_test/conftest.py Adds consumer current expectations.
packages/control/algorithm/integration_test/pv_charging_test.py Updates PV charging scenarios for consumers.
packages/control/algorithm/integration_test/instant_charging_test.py Updates instant-charging expectations.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/control/counter.py Outdated
return self.SWITCH_ON_TEXTS_CONSUMER

def calc_switch_on_power(self, load: Load) -> Tuple[float, float]:
def calc_switch_on_power(self, switch_on_threshold: float) -> Tuple[float, float, float]:
Comment thread packages/control/counter.py Outdated
return surplus, threshold

def get_pv_config_py_load(self, load: Load) -> Tuple[float, float, bool]:
def get_pv_config_py_load(self, load: Load) -> Tuple[float, float]:
evu_counter.data.set.released_surplus -= (surplus_config.vehicle.switch_on_threshold
* chargepoint.data.control_parameter.phases)
chargepoint.data.control_parameter.state = ChargepointState.NO_CHARGING_ALLOWED
evu_counter.data.set.released_surplus -= threshold
expected_current_cp3: float = 0
expected_current_cp4: float = 0
expected_current_cp5: float = 0
expected_current_consumer7: float = 0

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.

Suppressed comments (2)

packages/control/algorithm/integration_test/conftest.py:89

  • This new shared assertion makes existing parameterized cases fail because several cases still inherit expected_current_consumer7 = 0 even when the consumer is allocated 0.5 A. For example, test_instant_charging_limit immediately asserts 0.5 A after calling this helper, and the phase-switch case also omits the consumer expectation. Set the expected consumer current explicitly in every affected case before enabling this assertion.
    assert data.data.consumer_data["consumer7"].data.set.current == params.expected_current_consumer7

packages/control/counter.py:603

  • An active consumer enters the switch-off delay by adding load.data.set.required_power to released_surplus (line 573), but this branch removes required_current * 230 * phases. Since required_power is calculated from the consumer's actual voltages, a mode change at any voltage other than exactly 230 V leaves a stale balance that affects subsequent surplus decisions. Remove the same required_power value for active consumers; retain the nominal threshold calculation only for switch-on reservations.
                else:
                    threshold = (load.data.control_parameter.required_current *
                                 230 *
                                 load.data.control_parameter.phases)

@LKuemmel
LKuemmel merged commit 5138c6e into openWB:feature_consumer Aug 10, 2026
1 check passed
@LKuemmel
LKuemmel deleted the consumer_dev branch August 10, 2026 13:15
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.

2 participants