du scheinst auf der richtigen Spur zu sein!
Ich füge dir hier ein Template TEMP_EV.py bei, das ich an meinem KONA getestet habe und das soweit entrümpelt ist, dass eine Anpassung dir leichter fallen sollte. Ich hatte seinerzeit an den Modulen von evNotiPi keinerlei Änderungen vorgenommen, da ich erwartete, dort zusätzlich auftauchende Module dann problemlos in evSoc übernehmen zu können.
Schieb die Datei ins Unterverzeichnis cars und wähle dann in der config.yaml TEMP_EV aus. Mit eingeschaltetem DEBUG sollte das dann etwa so aussehen:
Code: Alles auswählen
loglevel: 10 # Debug
#loglevel: 20 # Inf0
#loglevel: 30 # Warning
car:
#type: IONIQ_BEV
type: TEMP_EV
#type: KONA_EV
#type: NIRO_EV
#type: ZOE_Q210
Code: Alles auswählen
systemctl stop evSoc
Code: Alles auswählen
sudo ./evSoc.py
Code: Alles auswählen
pi@openwb:/opt/evSoc $ sudo ./evSoc.py
INFO:evSoc:MQTT subscribed
INFO:evSoc:Charging started
INFO:evSoc:Plugged
INFO:evSoc:bindBT passed
ELM INIT
INFO:EVNotiPi/AtBaseDongle:Initializing PiOBD2Hat
DEBUG:EVNotiPi/AtBaseDongle:Send command: ATZ
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'\r\rELM327 v1.5\r\r')
DEBUG:EVNotiPi/AtBaseDongle:Send command: ATE0
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'ATE0\rOK\r\r')
DEBUG:EVNotiPi/AtBaseDongle:Send command: ATL1
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'OK\r\n\r\n')
DEBUG:EVNotiPi/AtBaseDongle:Send command: ATS0
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'OK\r\n\r\n')
DEBUG:EVNotiPi/AtBaseDongle:Send command: ATH1
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'OK\r\n\r\n')
DEBUG:EVNotiPi/AtBaseDongle:Send command: ATSTFF
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'OK\r\n\r\n')
DEBUG:EVNotiPi/AtBaseDongle:Send command: ATFE
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'OK\r\n\r\n')
DEBUG:evSoc:BT link is open
DEBUG:EVNotiPi/AtBaseDongle:Send command: ATSP6
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'OK\r\n\r\n')
DEBUG:EVNotiPi/AtBaseDongle:Send command: ATSH7E4
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'OK\r\n\r\n')
DEBUG:EVNotiPi/AtBaseDongle:Send command: ATCF7EC
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'OK\r\n\r\n')
DEBUG:EVNotiPi/AtBaseDongle:Send command: ATCM7FF
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'OK\r\n\r\n')
DEBUG:EVNotiPi/AtBaseDongle:Send command: 220105
DEBUG:EVNotiPi/AtBaseDongle:Received: bytearray(b'7EC102E620105003FFF\r\n7EC2190000000000000\r\n7EC22000016937B0142\r\n7EC2368426800496414\r\n7EC248803E800000000\r\n7EC25880000C2C20100\r\n7EC261500000000AAAA\r\n\r\n')
DEBUG:EVNotiPi/AtBaseDongle:7EC102E620105003FFF first frame
DEBUG:EVNotiPi/AtBaseDongle:7EC2190000000000000 consecutive frame
DEBUG:EVNotiPi/AtBaseDongle:7EC22000016937B0142 consecutive frame
DEBUG:EVNotiPi/AtBaseDongle:7EC2368426800496414 consecutive frame
DEBUG:EVNotiPi/AtBaseDongle:7EC248803E800000000 consecutive frame
DEBUG:EVNotiPi/AtBaseDongle:7EC25880000C2C20100 consecutive frame
DEBUG:EVNotiPi/AtBaseDongle:7EC261500000000AAAA consecutive frame
0x88
INFO:evSoc:SoC=68.0
Vermutlich müsste canIDtx=0x761, canIDrx=0x762 sein.
Weiter würde ich cmd=bytes.fromhex('2101') versuchen.
index müsste dann wohl =3 sein, gezählt wird ab 1 unmittelbar hinter der Länge (hier 0x3D).
Bei mir selektiert index=34 die '88' in 7EC25880000C2C20100.
Mich würde wundern wenn der Soc in mehr als einem (1) Byte stände. In https://www.myoutlanderphev.com/forum/v ... =10&t=1796 steht:Laut Forum muss man jetzt nur noch den hex Wert z.B. 01 5E in dez umrechnen und durch 10 teilen.
EDIT: Du müsstest aus deinemSOC in % would be:
Request address = 761
Response address = 762
Mode + PID = 2101
Relevant Data Items = 0
Formula = Total / 2 - 5
also mit index=3 den Wert 5D auswählen. hex(5d)/2-5 = 93/2-5=41.5[%];2101 2101 762 10 3D 61 01 5D 5C 0F 34
denn
Und das wäre dann 5D für den QoS-Rohwert.0x762 is the 'reply' address of the BMU. 0x10 means something like first line. 0x37 is the length of the message. 0x61 is an indicator (this is always requested MODE + 0x40 on success). 0x01 is the requested PID. Then the actual data follows.
Viel Erfolg.