From 1981b01ce695a5221c01e2601f2fea46d8749822 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Viktor=20Markst=C3=A4dter?= Date: Thu, 6 Mar 2025 08:38:16 +0100 Subject: [PATCH 1/2] Handle posibly removed VeDbusService path /MCU/Temperature --- dbus-goecharger.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/dbus-goecharger.py b/dbus-goecharger.py index 933dc8d..80b0552 100755 --- a/dbus-goecharger.py +++ b/dbus-goecharger.py @@ -239,11 +239,13 @@ class DbusGoeChargerService: self._dbusservice['/Mode'] = 0 # Manual, no control - - if hardwareVersion >= 3: - self._dbusservice['/MCU/Temperature'] = int(data['tma'][0] if data['tma'] is not None else 0) - else: - self._dbusservice['/MCU/Temperature'] = int(data['tmp']) + config = self._getConfig() + hardwareVersion = int(config['DEFAULT']['HardwareVersion']) + if '/MCU/Temperature' in self._dbusservice: # check if path exists, at some point it was removed + if hardwareVersion >= 3: + self._dbusservice['/MCU/Temperature'] = int(data['tma'][0] if data['tma'][0] else 0) + else: + self._dbusservice['/MCU/Temperature'] = int(data['tmp']) # carState, null if internal error (Unknown/Error=0, Idle=1, Charging=2, WaitCar=3, Complete=4, Error=5) # status 0=Disconnected; 1=Connected; 2=Charging; 3=Charged; 4=Waiting for sun; 5=Waiting for RFID; 6=Waiting for start; 7=Low SOC; 8=Ground fault; 9=Welded contacts; 10=CP Input shorted; 11=Residual current detected; 12=Under voltage detected; 13=Overvoltage detected; 14=Overheating detected From 220dec743d473edf691df4a8ccd6fc69c82ab307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Viktor=20Markst=C3=A4dter?= Date: Thu, 6 Mar 2025 08:50:55 +0100 Subject: [PATCH 2/2] fix merge errors --- dbus-goecharger.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dbus-goecharger.py b/dbus-goecharger.py index 80b0552..07afd15 100755 --- a/dbus-goecharger.py +++ b/dbus-goecharger.py @@ -210,14 +210,14 @@ class DbusGoeChargerService: #send data to DBus self._dbusservice['/Ac/Voltage'] = int(data['nrg'][0]) - if hardwareVersion < 4 + if hardwareVersion < 4: self._dbusservice['/Ac/L1/Power'] = int(data['nrg'][7]) self._dbusservice['/Ac/L2/Power'] = int(data['nrg'][8]) self._dbusservice['/Ac/L3/Power'] = int(data['nrg'][9]) self._dbusservice['/Ac/Power'] = int(data['nrg'][11]) self._dbusservice['/Ac/Energy/Forward'] = int(float(data['eto']) / 1000.0) self._dbusservice['/Current'] = max(data['nrg'][4], data['nrg'][5], data['nrg'][6]) - else + else: self._dbusservice['/Ac/L1/Power'] = int(data['nrg'][7] * 0.1 * 1000) self._dbusservice['/Ac/L2/Power'] = int(data['nrg'][8] * 0.1 * 1000) self._dbusservice['/Ac/L3/Power'] = int(data['nrg'][9] * 0.1 * 1000)