Skip to content

Interner Ladepunkt: vorhandene Fehlermeldung setzen, auch wenn Topics fehlen - #4244

Merged
LKuemmel merged 2 commits into
openWB:masterfrom
LKuemmel:error_handling_internal
Nov 11, 2026
Merged

LKuemmel merged 2 commits into
openWB:masterfrom
LKuemmel:error_handling_internal

Conversation

@LKuemmel

@LKuemmel LKuemmel commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Folge-PR zu #3970

Summary by Sourcery

Bug Fixes:

  • Set the existing internal chargepoint fault message even when required topics are missing.

@LKuemmel LKuemmel added this to the 2.4.0 milestone Nov 2, 2026
@LKuemmel
LKuemmel requested a lite review from Copilot November 11, 2026 10:45

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.

🟢 Approval recommended

No active review issues remain, and the change preserves existing internal fault information while handling missing MQTT topics appropriately.

No open issues 🎉

What changed in this PR

This follow-up updates the external openWB chargepoint module so an existing internal chargepoint fault is preserved and reported even when required MQTT topics are missing.

Changes:

  • Stores the chargepoint state within the protected parsing block.
  • Uses optional lookups for fault_state and fault_str.
  • Reports missing required topics only when no existing internal fault is available.
File Description
packages/​modules/​chargepoints/​external_openwb/​chargepoint_module.py Handles missing MQTT topics while preserving and reporting existing internal chargepoint fault information.

Review effort: Lite

@LKuemmel
LKuemmel marked this pull request as ready for review November 11, 2026 10:47
@sourcery-ai

sourcery-ai Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

Implementation

Speichert den Ladepunkt-Zustand vor der Prüfung auf fehlende Topics und gibt bei vorhandenem Fehlerstatus stattdessen die vorhandene Fehlermeldung aus.

  • packages/modules/chargepoints/external_openwb/chargepoint_module.py L107-113

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="packages/modules/chargepoints/external_openwb/chargepoint_module.py" line_range="109" />
<code_context>
                     except KeyError as e:
-                        raise KeyError(f"Es wurden nicht alle notwendigen Daten empfangen: {e}")
-                    self.store.set(chargepoint_state)
+                        if received_topics.get(f"{topic_prefix}fault_state", 0) == 2:
+                            self.fault_state.error(received_topics.get(
+                                f"{topic_prefix}fault_str", "Fehlerstatus vom internen Ladepunkt"))
</code_context>
<issue_to_address>
**Stale chargepoint readings persist**

When fault_state is 2, required state topics are missing, and an earlier read stored valid state, `get_values` treats the `KeyError` as success and resets the error timer without calling `self.store.set`; repeated polls never reach the timeout fallback, so callers keep seeing the previous `ChargepointState` as current.

Keep incomplete fault responses on the error path so repeated missing-topic polls reach the timeout fallback and clear the stored state.

Also at `packages/modules/chargepoints/external_openwb/chargepoint_module.py:113`.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨

@LKuemmel
LKuemmel merged commit 7df57d4 into openWB:master Nov 11, 2026
2 checks passed
@LKuemmel
LKuemmel deleted the error_handling_internal branch November 11, 2026 12:07
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