Fix: evse_current in Evse.__init__ initialisieren#3327
Open
s0170071 wants to merge 1 commit intoopenWB:masterfrom
Open
Fix: evse_current in Evse.__init__ initialisieren#3327s0170071 wants to merge 1 commit intoopenWB:masterfrom
s0170071 wants to merge 1 commit intoopenWB:masterfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Fixes an AttributeError in the EVSE Modbus client by ensuring Evse.evse_current is initialized during construction, so set_current() can be called safely before the first state poll.
Changes:
- Initialize
self.evse_currentto0inEvse.__init__to prevent access to an unset attribute inset_current().
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
LKuemmel
approved these changes
Apr 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Das Attribut
self.evse_currentwird inEvse.__init__nicht initialisiert. Es wird erst beim ersten Aufruf vonget_plug_charge_state()gesetzt (Zeile 55).set_current()liestself.evse_currentjedoch direkt in seiner Guard-Bedingung:if self.evse_current != formatted_current:Wird
set_current()aufgerufen, bevorget_plug_charge_state()mindestens einmal gelaufen ist, kommt es zu einemAttributeError.Auswirkung
Der Ladevorgang kann nicht gestartet werden, wenn die Steuerungsschleife
set_current()vor dem ersten State-Polling aufruft. Das ist z.B. möglich, wenn direkt nach der Initialisierung ein Strom gesetzt werden soll.Lösung
self.evse_current = 0wird am Ende von__init__gesetzt. Der Wert 0 sorgt dafür, dass der ersteset_current()-Aufruf immer einen Modbus-Write auslöst (es sei denn, der Sollstrom ist ebenfalls 0 — in dem Fall ist kein Write nötig).