ich habe eine simple Frage, an der ich aber seit langem scheitere.
Meine Wallbox liefert die Start- und Endzeiten in UTC, also z.B.
2025-10-03 11:08:54 - es ist aber 2025-10-03 13:08:54.
Wie kann ich der UTC-Zeit die aktuelle Zeitverschiebung hinzuaddieren ?
@sirector Danke für den Code, aber die Zeit wird mir als
”2025-10-03T11:08:54+02:00” angezeigt, ich stelle mir eher ”2025-10-03 13:08:54” - aber genau das bekomme ich nicht hin.
Vielleicht hier einmal die Info, wie ich den Wert auslese.
Ich nutze die Keba-Integration und habe mir das custom so angepasst, dass ich noch mehr Werte auslese, als es die über HCAS-Integration macht. Dazu habe ich in der sensor.py die folgenden Änderungen vorgenommen:
## A-DAS SIND DIE VERÄNDERUNGEN
KebaSensor(
keba,
"product_info",
SensorEntityDescription(
key="I",
name="Product Information",
),
),
## E-DAS SIND DIE VERÄNDERUNGEN
bzw.
## A-DAS SIND DIE VERÄNDERUNGEN
## keba.get_value ist der Wert aus der Dokumentation !
if self.entity_description.key == "I":
self._attributes["serial"] = str(self._keba.get_value("Serial"))
self._attributes["uptime"] = str(self._keba.get_value("Sec"))
self._attributes["firmware"] = str(self._keba.get_value("Firmware"))
self._attributes["product"] = str(self._keba.get_value("Product"))
self._attributes["session"] = str(self._keba.get_value("Session ID"))
self._attributes["rfid_tag"] = str(self._keba.get_value("RFID tag"))
self._attributes["started"] = str(self._keba.get_value("started"))
self._attributes["ended"] = str(self._keba.get_value("ended"))
self._attributes["reason"] = str(self._keba.get_value("reason"))
self._attributes["state"] = str(self._keba.get_value("State"))
## E-DAS SIND DIE VERÄNDERUNGEN
Wieso sollten die Werte falsch übertragen werden. Das Attribute “started” und “ended” wird von der Wallbox in UTC/GMT geloggt und so in Wallbox gespeichert. Dieses Attribute lese ich aus und ich möchte dieser Uhrzeit meine Zeitverschiebung von zZt 2 Stunden (ab Nov. dann eben nur noch 1 Stunde) addieren. D.h. das Attribut “started” mit dem Wert “2025-10-03 11:08:54” soll mir als “2025-10-03 13:08:54” angezeigt werden.
Weil es mit “2025-10-03T11:08:54+02:00” übertragen wird und das wäre dann falsch. Wenn es wirklich UTC wäre, müsste da “2025-10-03T11:08:54+00:00” stehen. Dann könnte man das umrechnen.
Edit:
Du könntest es mal mit + timedelta(hours=2) versuchen.
Ich habe 2 Helfer, die beim Starten und Stoppen die aktuelle Uhrzeit speichern und mir dann die Differenz als Ladesession berechnen. Das klappt soweit auch.
Start und Endpunkt haben zu den Daten aus der Wallbox immer die 2 Stunden bzw. 1 Stunde bei Winterzeit.
Mich wurmt es einfach, dass ich die Zeiten aus der Wallbox nicht so nutzen kann wie ich will, da ich es nicht schaffe den Start und Endzeiten diese “blöde” Zeitverschiebung zu addieren.
Die Wallbox loggt def. UTC/GMT auch wenn die Angabe der Zeitzone fehlt.