Seite 1 von 1

SOC-Modul: CarState soc_timestamp

Verfasst: Di Okt 17, 2023 2:18 pm
von rleidner
Frage zum soc_timestamp in CarState.
Ich versuche den soc_timestamp explizit zu setzen.
Im soc.log kommt das erwartete:

Code: Alles auswählen

2023-10-17 15:47:09,477 - {modules.common.store._api:30} - {INFO:store soc_ev2} - Saving CarState(soc=80, range=279.0, soc_timestamp=10/16/2023, 11:33:13)
Im Vehicle Status wird aber der aktuelle Zeitstempel abgezeigt:
soc_timestamp.JPG
Was mache ich da falsch.

In diesem Zusammenhang: Soll hier tatsächlich das (~US) Format "%m/%d/%Y, %H:%M:%S" benutzt werden? :o

Re: SOC-Modul: CarState soc_timestamp

Verfasst: Di Okt 17, 2023 2:50 pm
von openWB
Ohne nachgesehen zu haben, versuch mal einen UNIX Timestamp.

Re: SOC-Modul: CarState soc_timestamp

Verfasst: Fr Okt 20, 2023 3:26 pm
von Flocki
Hattest du inzwischen Erfolg?

Beim Kia-Modul hatte ich verschiedene Formate probiert und es dann sein lassen.

Re: SOC-Modul: CarState soc_timestamp

Verfasst: Fr Okt 20, 2023 3:58 pm
von mrinas
rleidner hat geschrieben: Di Okt 17, 2023 2:18 pm Frage zum soc_timestamp in CarState.
Ich versuche den soc_timestamp explizit zu setzen.
Im soc.log kommt das erwartete:

Code: Alles auswählen

2023-10-17 15:47:09,477 - {modules.common.store._api:30} - {INFO:store soc_ev2} - Saving CarState(soc=80, range=279.0, soc_timestamp=10/16/2023, 11:33:13)
Im Vehicle Status wird aber der aktuelle Zeitstempel abgezeigt:
soc_timestamp.JPG

Was mache ich da falsch.

In diesem Zusammenhang: Soll hier tatsächlich das (~US) Format "%m/%d/%Y, %H:%M:%S" benutzt werden? :o
Im PSA Modul setze ich einfach den UTC-String der von PSA zurück kommt, wobei ich das schon länger nicht mehr kontrolliert habe.
updatedAt":"2023-10-20T15:34:48Z"
https://github.com/openWB/core/blob/9cf ... 2-L122C102

Re: SOC-Modul: CarState soc_timestamp

Verfasst: Fr Okt 20, 2023 4:06 pm
von mrinas
Tja, ich setze den soc_timestamp zwar, aber der gesetzte Wert wird nicht übernommen.

das hier ist im Broker:

Code: Alles auswählen

{"imported_start": null, "manual_soc": null, "request_start_soc": true, "soc_start": {"soc": 33, "range": 74, "soc_timestamp": "2023-10-20T15:34:48Z"}}
in der UI sehe ich hingegen:

Code: Alles auswählen

10/20/2023, 16:04:40
16:04 könnte die lokale Uhrzeit auf dem System sein, bin mir nicht sicher ob ich mich um die Zeitzone gekümmert habe.

Re: SOC-Modul: CarState soc_timestamp

Verfasst: So Okt 22, 2023 10:40 am
von rleidner
Flocki hat geschrieben: Fr Okt 20, 2023 3:26 pm Hattest du inzwischen Erfolg?

Beim Kia-Modul hatte ich verschiedene Formate probiert und es dann sein lassen.
Soweit ich das sehe ist das Setzen des soc_timestamp aus einem SOC-Modul (momentan) nicht vorgesehen.
Ich bin nicht sicher aber die Intervallsteuerung des SOC-Moduls könnte damit zu tun haben.

In .../packages/modules/update_soc.py wird soc_timestamp hart auf die aktuelle Zeit gesetzt:

Code: Alles auswählen

                       # Es wird ein Zeitstempel gesetzt, unabhängig ob die Abfrage erfolgreich war, da einige
                        # Hersteller bei zu häufigen Abfragen Accounts sperren.
                        Pub().pub(f"openWB/set/vehicle/{ev.num}/get/soc_timestamp", timecheck.create_timestamp())
In .../packages/modules/common/store/_car.py werden soc und range aus dem von soc-Modul bereitgestellten CarState (self.state) übernommen, aber nicht der soc_timestamp:

Code: Alles auswählen

    def update(self):
        try:
            pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc", self.state.soc, 2)
            if self.state.range:
                pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/range", self.state.range, 2)
        except Exception as e:
            raise FaultState.from_exception(e)
            
Ich habe in diesem Zusammenhang schon mal PR https://github.com/openWB/core/pull/772 erstellt, der ein zusätzliches Feld "ev_timestamp" realisiert. Der PR wurde aber bisher nicht weiter behandelt.

IIRC gab es auch schon andere Diskussionen, solche vorhandenen EV-Daten sichtbar zu machen.
Das sollten wir mal wiederbeleben.

Günstig wäre ein generischer Ansatz, d.h. das SOC-Modul liefert in CarState in einer json Struktur "custom" den Inhalt und ein generischer vue - Modul stellt es - sodern vorhanden - im EV Status dar.