EVNotiPi

Auflistung von gewünschten Features, Ausschreibung zur Umsetzung
Heavendenied
Beiträge: 611
Registriert: Do Feb 20, 2020 1:16 pm

Re: EVNotiPi

Beitrag von Heavendenied »

Nachdem EVNotiPi ja mit unserem Ioniq nun seit langer Zeit einwandfrei läuft würde ich gerne auch unseren "neuen" Peugeot iOn damit auslesen.
Ich hab schon rausgefunden, dass man in den EVNotiPi Sourcen auch weitere Fahrzeuge anlegen kann.
Allerdings hab ich mich noch nie wirklich mit Canbus beschäftigt udn bin daher mit PID, Transmit CAN ID etc etwas überfordert.
Es gibt bereits den Outlander_EV als Car in EVNotiPi und ich würde eigentlich davon ausgehen, dass der dem iOn recht ähnlich ist.
Aber soweit ich das verstanden habe wird bei EVNotiPi immer eine "Anfrage" über CANbus an das Fahrzeug geschickt und das was zurück kommt dann ausgewertet, während andere Tools wie Canion wohl einfach "mithören". Beim mithören ist dann wohl die 0x374 der Wert für den SOC.
Weiterhin habe ich für die BErechnung des SOC aus dem Wert von 0x374 diese Formel gefunden:
SOC1 = { payload: (data[0] - 10) / 2 }

Jetzt würde ich also gerne versuchen mir die Abfrage des Outlander so anzupassen, dass sie für meinen iOn passt. Aber ich verstehe einfach nicht, was da alles in der OUTL_EV.py passiert...

Code: Alles auswählen

from car import *

# This is OUTLANDER interface

cmd = bytes.fromhex('2101')         # PID command
canIDtx=0x761                       # Transmit CAN ID
canIDrx=0x762                       # Receive CAN ID
index=2                             # index of SoC in received message

class OUTL_EV(Car):

    def __init__(self, config, dongle, gps):
        Car.__init__(self, config, dongle, gps)
        self.dongle.setProtocol('CAN_11_500')

    def readDongle(self, data):
        now = time()
        raw = {}

        cmds = (('ATFCSH761','OK'),
                ('ATFCSD300000','OK'),
                ('ATFCSM1','OK'))

        for c,r in cmds:
            self.dongle.sendAtCmd(c, r)

        raw[cmd] = self.dongle.sendCommandEx(cmd, canrx=canIDrx, cantx=canIDtx)

# test print for soc raw value
#       print(hex(raw[cmd][index]))

        data.update({
            'SOC_DISPLAY':              raw[cmd][index] / 2.0 - 5,
         })
Kann mir da jemand helfen?
Gruß,
Jürgen
Johny
Beiträge: 18
Registriert: So Dez 18, 2022 9:12 am

Re: EVNotiPi

Beitrag von Johny »

Hallo,
ich bin nun auf die neue SW 2.1 umgestigen. Leider kommt nun der SoC nicht mehr in der oWB an.
Ich habe schon das topic in der config.yaml geändert in:

Code: Alles auswählen

topic: openWB/set/vehicle/0/get/soc
in der evSoc.py habe ich die topics auch geändert:

Code: Alles auswählen

client.subscribe("openWB/internal_chargepoint/0/get/charge_state")
client.subscribe("openWB/internal_chargepoint/0/get/plug_state")
Hat leider alles nichts gebracht. Die topics funktionieren aus FHEM heraus.
Hat schon jemand EVNotiPi unter oWB 2 am laufen?
Vielen Dank und Gruß, Johny
Heavendenied
Beiträge: 611
Registriert: Do Feb 20, 2020 1:16 pm

Re: EVNotiPi

Beitrag von Heavendenied »

Keiner da der mir hier helfen kann im Post zwei über diesem helfen kann?
Würde gerne vermeiden, dass der iOn dauernd auf 100% geladen wird. Aber mit Dingen wie Manuellem SOC etc ist meine Frau etwas überfordert und die fährt/lädt das Auto meist...
Gruß,
Jürgen
Heavendenied
Beiträge: 611
Registriert: Do Feb 20, 2020 1:16 pm

Re: EVNotiPi

Beitrag von Heavendenied »

So ich habe nun dann doch mal etwas Zeit und einen erfahrenen "Canbus User" gefunden der mir etwas geholfen hat.
Tatsächlich kann man die Config für den Outlander PHEV direkt auch für die Drillinge (iMiev, iOn und C-Zero) nutzen.
Mein Problem war letztlich das selbe was Jonny hier mit seinem Outlander auch hatte.
Ich hatte Anfangs mit meinem Tonwon Dongle getestet der einwandfrei mit dem Ioniq läuft. Aber leider eben in Verbindung mit dem iOn (wohl wie auch beim Outlander) die Nachrichten nach 6 von 46 Bytes einfach abschneidet...
Nach einem Wechsel zu einem VGate Dongle läuft es nun einwandfrei. (Vgate iCar Pro Wi-Fi OBD2)
Falls also noch jemand mit den alten Drillingen das SOC auslesen nutzen möchte... Einfach die Oulander Config benutzen und auf einen passenden Dongle achten.

Für mich tut sich damit leider ein neues Problem auf, denn der iOn hängt an LP3 und der unterstützt keine SOC Module.
Nun muss ich mich wohl doch bei Gelegenheit auf ein Upgrade auf die 2.1x Version der openWB Software machen und hoffen, dass das schreiben des SOC mit dem MQTT Modul dann funktioniert. Das scheint ja hier bei andern Usern schon Probleme gemacht zu haben.
Gruß,
Jürgen
aiole
Beiträge: 6896
Registriert: Mo Okt 08, 2018 4:51 pm

Re: EVNotiPi

Beitrag von aiole »

Du wirst sw2 nach dem Umstieg zügig schätzen lernen. Sämtliche men (und women)-power geht dort hinein. Wenn was noch nicht läuft, sind immer mehr sw2-Supporter:innen unterwegs.

btw
Dank SDC-Wechsel kannst du immer gefahrlos zurück (softdown vorausgesetzt).
Heavendenied
Beiträge: 611
Registriert: Do Feb 20, 2020 1:16 pm

Re: EVNotiPi

Beitrag von Heavendenied »

Ich hab die Software 2.x ja schon mehrfach ausprobiert, aber es gab halt immer noch diverse Gründe, die mich vom Wechsel abgehalten haben, aber das ist ein anderes Thema.

Nun habe ich versucht evSoc mit der openWB Software 2.x zum laufen zu bekommen.
Voraussetzung ist natürlich, dass das Topic in der config.yaml auf die neue Syntax angepasst wird.
Das hat dann auch geklappt, solange ich evSoc per Hand starte, aber nicht bei Start als Service.
Ich vermute aktuell, dass es was mit Plugstat bzw chargestat zu tun hat. Beides ist in der evSoc.py "hardcoded" hinterlegt.
Ich versuche mich gerade mal daran das auf die Syntax der openWB 2.x anzupassen, aber ich verstehe nicht ganz was da passiert, bin halt kein Programmierer...

@ragnaroek:
Hast du evtl Interesse das nochmal anzupassen und evtl auch dahingehend variabler zu machen, dass diese Parameter in der config.yaml anpassbar drin stehen und von dort ausgelesen werden? Damit könnte man das Tool recht einfach sowohl für openWB 1.9x wie auch für 2.x nutzbar machen. Außerdem auch für den Fall, dass jemand es nicht für LP1 nutzen will (was ja in openWB 2.x ohnehin ganz anders ist).
Ich würde mich darüber sehr freuen und natürlich auch im Rahmen meiner Möglichkeiten dabei gerne unterstützen.

EDIT:
Und noch eine Frage:
Weiß jemand wohin evSoc das Logging schreibt wenn es als Service läuft?
Hab nun versucht die Anpassungen in der evSoc.py zu machen, aber es läuft trotzdem nicht. Sobald ich evSoc aber per Hand starte wird sofort der richtige Wert in die openWb geschrieben...
Gruß,
Jürgen
Antworten