meatpiHQ / wican-fw

GNU General Public License v3.0
288 stars 54 forks source link

No data on can/rx over MQTT #91

Open Mathopenevse opened 7 months ago

Mathopenevse commented 7 months ago

hi, i have sent different Json with different PIDs but without success : I have Nissan Leaf with ISO 15765-4 protocol and ID 11 bits, 500 [kBd] so I have tried with a Json like this :

{"bus":"0","type":"tx","frame":[{"id":2015,"dlc":8,"rtr":false,"extd":false,"data":[2,1,91,170,170,170,170,170]}]}

Capture d’écran 2024-02-16 à 11 50 57

I'm in 11 bits, so I have to use id 2015 with different PIDs and length but I receive no answer on "can/rx" even if the car I turn on... it's work well with car scanner and I receive data over MQTT on topic ELM327 but I would like to ask the car over MQTT.

do you have some ideas?

michi741 commented 7 months ago

Hallo. Ich hab die selben Probleme. Wenn ich {"bus":"0","type":"tx","frame":[{"id":2015,"dlc":8,"rtr":false,"extd":false,"data":[2,1,91,170,170,170,170,170]}]} sende, bekomme ich keine rx Rückmeldung. Ich möchte den SoC meines Genesis GV60 auslesen. Mit dem Car Scanner funktioniert die Rückmeldung.

meatpiHQ commented 7 months ago

@Mathopenevse @michi741

I suggest you have a look at this example, you can log the CAN frames in the mqtt format.

https://github.com/meatpiHQ/wican-fw/wiki/EV-Battery-SoC-in-Home-Assistant-%E2%80%90-Example

michi741 commented 7 months ago

Das hab ich schon viele Male versucht, leider kein Erfolg. Die rx Meldung kommt einfach nicht.

meatpiHQ commented 7 months ago

If it works well with car scanner, then it should log the Rx frames.

@michi741 can you please open a new issue, so we don't hijack this one. It might be a different problem. In the new issue please post logs from carscanner and the mqtt logs.

michi741 commented 7 months ago

Ich weiß nicht genau was ich machen soll?

Beim MQTT Explorer kommen diese Daten bei der Verbindung mit dem Car Scanner an.

{"bus":"0","type":"tx","ts":57528,"frame":[{"id":2015,"dlc":8,"rtr":false,"extd":false,"data":[2,1,0,170,170,170,170,170]}]} {"bus":"0","type":"rx","ts":56838,"frame":[{"id":2028,"dlc":8,"rtr":false,"extd":false,"data":[6,65,0,128,0,0,1,170]}]}

image image
meatpiHQ commented 7 months ago

Disable mqtt logging and try to send the frame again.

michi741 commented 7 months ago

Nach dem deaktivieren der Protokollierung kommen keine Daten an.

image
meatpiHQ commented 7 months ago

@michi741 Ok, please open a new issue.

michi741 commented 7 months ago

Es wird nur tx gesendet, aber rx kommt nicht zurück.

michi741 commented 7 months ago

Welche Ausgabe öffnen und wo soll ich diese öffnen.

michi741 commented 7 months ago

Meine Einstellung in Home Assistant

image image

Das kommt an.

image
meatpiHQ commented 7 months ago

@michi741

Please delete all MQTT filters and disable the "elm327 log". And try again with MQTT explore, don't use Home assistant for now.

Also note that the filter values you entered are incorrect.

image

Beim MQTT Explorer kommen diese Daten bei der Verbindung mit dem Car Scanner an.

{"bus":"0","type":"tx","ts":57528,"frame":[{"id":2015,"dlc":8,"rtr":false,"extd":false,"data":[2,1,0,170,170,170,170,170]}]} {"bus":"0","type":"rx","ts":56838,"frame":[{"id":2028,"dlc":8,"rtr":false,"extd":false,"data":[6,65,0,128,0,0,1,170]}]}

Please post the complete log from carscanner and mqtt explorer.

michi741 commented 7 months ago

Hallo. Habe das Log deaktiviert und Filter gelöscht. Ich weiß nicht, wie ich die gesamten Protokolle ausgeben kann. Ich habe im MQTT Explorer den Folgenden TX String gesendet. {"bus":"0","type":"tx","frame":[{"id":2015,"dlc":8,"rtr":false,"extd":false,"data":[2,1,91,170,170,170,170,170]}]} das kommt zurück:

image
michi741 commented 7 months ago

Nun sind auch die ID`s 2030 und 2028 gekommen.

image
meatpiHQ commented 7 months ago

@michi741 Now please enable the "elm327 log".

I usually select the messages and copy.

image

Please don't add any filters just yet.

michi741 commented 7 months ago

Nun kommen die Werte auch von Homeassistent. Es sind 4 ID`s 1497, 1513,2028 und 2030. Was kann ich machen, dass nur die ID 2028 zurückgemeldet wir, aus der kann ich dann den SoC berechnen. Wie im Beispiel.^

image
meatpiHQ commented 7 months ago

@michi741 Prefect! that's all you need.

Now, set your filter to:

ID: 2024 Name: BatterySOC PID: 91 Start bit: 0 Bit Length: 1 Expression: (B3*100)/255 Cycle: 100

For reference, the PID here is 91. B3 refers to byte 3 in the message that 170. Start bit, Bit Length here are not used since we are not using V in the expression we're only using B.

michi741 commented 7 months ago

Hab ich gemacht. Sobald ich den Filter aktiviere kommen keine RX Werte zurück.

image

Die benötigte ID wäre die 2028 nicht die 2024. Habe beide getestet, aber es kommt kein RX Wert.

michi741 commented 7 months ago

image

Er ist diese RX Nachricht: {"bus":"0","type":"rx","ts":17329,"frame":[{"id":2028,"dlc":8,"rtr":false,"extd":false,"data":[3,65,91,202,170,170,170,170]}]}

michi741 commented 7 months ago

Hab es nochmal versucht. Es funktioniert. image Besten Dank für die Unterstützung. Langsam verstehe ich auch den ganzen Aufbau. Super, Danke nochmal!! Michael

meatpiHQ commented 7 months ago

@michi741 Great! :)

just for the record, what did you change?

michi741 commented 7 months ago

Eigentlich nichts bis auf die ID. Bei nochmaligem Versuch hat es funktioniert. Könnte sein, das ich beim Ändern nicht gespeichert hatte. Danke für die tolle Unterstützung! :-)

Mathopenevse commented 7 months ago

i don't understand german my problem is still there... elm327 log are disable and i have reboot the wican ; i have connected car scanner and i have lot's of data on can/rx but when i send a json with mqtt-explorer on can/tx like this `{"bus":"0","type":"tx","frame":[{"id":2015,"dlc":8,"rtr":false,"extd":false,"data":[2,1,91,170,170,170,170,170]}]}

nothing happen and i receive no data... maybe it's depend of the car PIDs but i try with many other without success

Capture d’écran 2024-02-17 à 18 45 39 Capture d’écran 2024-02-17 à 18 47 07

Mathopenevse commented 7 months ago

now i have on rx data from car scanner :

Capture d’écran 2024-02-17 à 18 59 13 Capture d’écran 2024-02-17 à 18 55 56 i tried to delete it but i can't

meatpiHQ commented 7 months ago

@Mathopenevse

i don't understand german my problem is still there...

I don't understand German either :)

nothing happen and i receive no data... maybe it's depend of the car PIDs but i try with many other without success

You need to find the correct PID for your vehicle. Can you read the SoC from carscanner?

meatpiHQ commented 7 months ago

@Mathopenevse have a look at this link, it's dedicated for Leaf PIDs

https://leaf-obd.readthedocs.io/en/latest/index.html

Mathopenevse commented 7 months ago

@Mathopenevse have a look at this link, it's dedicated for Leaf PIDs

https://leaf-obd.readthedocs.io/en/latest/index.html

yes I have already read it and find 5B3 for SOC PIDs, so in decimal it's 1459 and should send this Json on can/tx if I follow your instructions :

{"bus":"0","type":"tx","frame":[{"id":2015,"dlc":8,"rtr":false,"extd":false,"data":[2,1,1459,170,170,170,170,170]}]}

but nothing happened !

with car scanner I have the current value for each cells but I don't see SoH.

Mathopenevse commented 7 months ago

this is sensors log from car scanner :

OBD-II Protocole de l'UCE 6) ISO 15765-4 CAN (11 bit ID, 500 kbaud) Unité de commande ABS Application data identification: 0101 Manufacturer spare part number: 476605SD0C Manufacturer ECU software number: 476605SD2D System supplier identifier: A604 ECU serial number: 2020202020202020202020202020202020202020 VIN: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF Manufacturer ECU hardware number: 476605SD0C System supplier ECU software number: 02000081FF System supplier ECU software version: 01 Programming date (HEX): 34373636303553443043 ECU Idents: A4 ECU Idents: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ECU Idents: 41363034 ECU Idents: 30323030303038314646 ECU Idents: 3031

SRS/Airbags (11 bit) Application data identification: =f`j Manufacturer spare part number: 988205SL0A Manufacturer ECU software number: 285A45SL5A System supplier identifier: A597 ECU serial number: ZE5SL19X220313 VIN: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF Manufacturer ECU hardware number: hM-Z100000 System supplier ECU software number: 0285014575 System supplier ECU software version: NID04 Programming date (HEX): 684D2D5A313030303030 ECU Idents: 31 ECU Idents: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ECU Idents: 413539372020 ECU Idents: 3032383530313435373520202020202020202020202020202020202020202020 ECU Idents: 084E490344301004340403202020202020202020202020202020202020202020

BCM (11 bit) ECU Idents: 355348314255420517052817011007440779085400000080 ECU Idents: 000000000000000000 ECU Idents: 355348314155420517000000000007440000000000000080

Dashboard/Instrument cluster (11 bit) Manufacturer spare part number: 248105SH2C System supplier identifier: B961 ECU serial number: 24831198I080C300B961 Manufacturer ECU hardware number: 00000003.3 System supplier ECU software number: SNMV098_A_010001 System supplier ECU software version: SNMV099_A_010000 Programming date (HEX): 30303030303030332E33 ECU Idents: 25 ECU Idents: 42393631 ECU Idents: 534E4D563039385F415F30313030303100000000000000000000000000000000 ECU Idents: 534E4D563039395F415F30313030303000000000000000000000000000000000

Adaptive cruise control (11 bit) ECU Idents: 35534E3742754106040000000002A27B098B000700000080 ECU Idents: 0000000000FF0000000000000000000000000000 ECU Idents: 35534E3742754106040000000002A27B098B000700000080

All-round vision camera (11 bit) ECU Idents: 35534134410A410403001025011101550001000200010080 ECU Idents: 355454334109410403000000000000000000000000000080

Active steering (DAST3) (11 bit) ECU Idents: 3553483243B74105024E3132334615A30000000000000080 ECU Idents: 3553585858B74105024E3132334615A30000000001000080

Hill start assist (11 bit) Manufacturer spare part number: 00000000000000000000 ECU Idents: 30303030303030303030303030303030303030 ECU Idents: 355341304232420418000000000000020000000000000080 ECU Idents: 355341304232420418000000000000020000000000000080

Heater & air conditioning (11 bit) ECU Idents: 35534530423A420325000000000003300000000000000080 ECU Idents: 353B3622353B0034210000009D000000000000000000000000347E000000060060000810000000000000002D2D2D2E0028000000

Chassis (11 bit) Manufacturer spare part number: 476A05SJ0A Manufacturer ECU software number: 476A05SJ1D System supplier identifier: A701 ECU serial number: 47628E0RT1505835A701 VIN: 0000000000000000000000000000000000 Manufacturer ECU hardware number: 14NIDMSTD. System supplier ECU software number: IAA3228 System supplier ECU software version: 00 Programming date (HEX): 31344E49444D5354442E ECU Idents: 12 ECU Idents: 0000000000000000000000000000000000 ECU Idents: 41373031 ECU Idents: 49414133323238 ECU Idents: 3030

Multi audio/video control unit (11 bit) Manufacturer spare part number: 0000000000 Manufacturer ECU software number: 283C32311E System supplier identifier: BOSCH ECU serial number: 00000000NH00BCH VIN: SJNFAAZE1U0090535 Manufacturer ECU hardware number: 259155SR0B System supplier ECU software number: I_PRJ_RN_AIVI_18.17V04 System supplier ECU software version: 3454_221223 Programming date (HEX): 32353931353553523042 ECU Idents: 25 ECU Idents: 534A4E4641415A45315530303930353335 ECU Idents: 424F534348 ECU Idents: 495F50524A5F524E5F414956495F31382E3137563034 ECU Idents: 333435345F323231323233

Electric vehicle battery (11 bit) ECU Idents: 35534633415A420517000000000010011311000000000080 ECU Idents: FFFF00 ECU Idents: 35534633415A420517000000000010011311000000000080

Lane-keeping assist (11 bit) ECU Idents: 35534833424442041800000000005F2D3F0491F200000080 ECU Idents: 35534833424442041800000000005F2D3F0491F200000080

EV motor control (11 bit) ECU Idents: 35534E30410730000030414B414231443541303100000080 ECU Idents: 35534E30410730000030414B414231443541303100000080

Battery charging (11 bit) ECU Idents: 355348314212410701000000002312010000000000000080 ECU Idents: 355348314212410701000000002312010000000000000080

Intelligent brake assist (11 bit) Manufacturer spare part number: 0000000000 System supplier identifier: 1L92 ECU serial number: 585010000219B1903427 VIN: 0000000000000000000000000000000000 Manufacturer ECU hardware number: 284385SA2C System supplier ECU software number: 02.20.21 System supplier ECU software version: 2018CW50 Programming date (HEX): 32383433383553413243 ECU Idents: 43 ECU Idents: 0000000000000000000000000000000000 ECU Idents: 314C3932 ECU Idents: 30322E32302E3231 ECU Idents: 3230313843573530

Shift control unit (11 bit) ECU Idents: 355341324204414207310380125002034400020600000080 ECU Idents: D00000000000060835259E535455190100FF98060005FFFD02000801000008000007080A190936FFFF03FFFF03FF000000 ECU Idents: 355341324204414207310380125002034400020600000080

Blind spot warning (left) (11 bit) ECU Idents: 355341304108314C39A2C758316003030100010232202083 ECU Idents: 355341304108314C39A2C758316003030100010232202083

Blind spot warning (right) (11 bit) ECU Idents: 355341304108314C39A2C758318003030100010232202083 ECU Idents: 355341304108314C39A2C758318003030100010232202083

Sonar (11 bit) ECU Idents: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ECU Idents: 355341314110443631303030303100010020100237000083 ECU Idents: 10

Intelligent power distribution module (IPDM) (11 bit) ECU Idents: 355341334212440807000102030510040002000100000080 ECU Idents: 020042640000000008000000000000000000

Vehicle control module (11 bit) ECU Idents: 534A4E4641415A453155303039303533350000 ECU Idents: 355356344103414207355356344150534547343100000080

Vehicle stability control (11 bit) ECU Idents: 35534B304100410701006000000002500000010000000080 ECU Idents: 35534B304100410701000000000002500000010000000080

e-ACT brake controller (11 bit) ECU Idents: 355352314402410604090009020452AA66C9000000000080 ECU Idents: 355342304302410604000000000052AA66C9000000000080

Inter-vehicle communication module (11 bit) Application data identification: 00000000000000000000 Manufacturer spare part number: 0000000000 Manufacturer ECU software number: 0000000000 System supplier identifier: Continental ECU serial number: 200701201942269983 Manufacturer kit assembly part number: 0000000000 VIN: SJNFAAZE1U0090535 Manufacturer ECU hardware number: 282755SN0E System supplier ECU software number: SW9 System supplier ECU software version: 2020202020202020202020202020202020202020202020202020202020202020 Programming date (HEX): 323832373535534E3045 ECU Idents: 30 ECU Idents: 534A4E4641415A45315530303930353335 ECU Idents: 436F6E74696E656E74616C2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020 ECU Idents: 5357392020202020202020202020202020202020202020202020202020202020 ECU Idents: 2020202020202020202020202020202020202020202020202020202020202020

Lithium-ion battery controller (11 bit) ECU Idents: 35534633415A4205170000000000100113B1000000000080 ECU Idents: 35534633415A4205170000000000100113B1000000000080

TPMS (11 bit) ECU Idents: 355A45304121410109FFFFFFFFFF0A21FFFFFFFF00000080 ECU Idents: 000000000000F8550000000000

meatpiHQ commented 7 months ago

@Mathopenevse 5B3 is actually the can message ID. Looks like it's continuously transmitted on the bus, so no need for making a PID request. You should be able to directly add a filter and set the PID to -1. Maybe try first to monitor the bus see if you can find this CAN id.

Mathopenevse commented 7 months ago

@Mathopenevse 5B3 is actually the can message ID. Looks like it's continuously transmitted on the bus, so no need for making a PID request. You should be able to directly add a filter and set the PID to -1. Maybe try first to monitor the bus see if you can find this CAN id.

i have try with the filter like this : Capture d’écran 2024-02-18 à 16 26 21 unfortunately, after submit changes and reboot, the line disappear : Capture d’écran 2024-02-18 à 16 27 01

I can't remove can ID 1979...maybe it's possible to reset the wican?

meatpiHQ commented 6 months ago

@Mathopenevse your filter expression is invalid. The expression should be: B1/2

Mathopenevse commented 6 months ago

B1/2

thanks it a little bit better now and submit changes are ok! but i have nothing on can/rx maybe the PID is incorrect?

![Uploading Capture d’écran 2024-02-19 à 15.25.09.png…]()

HaareistNase commented 6 months ago

I do understand german, but I do not understand the whole case. How you translate the car-scanner data to the data you need. Maybe its possible to build a little database from successfull working Cars, so non-programmer like me can gather usefull information^^ I guess you should write a little tutorial for beginners like me :-)

I found a example to get the soc from my e-up which fits for me, but I fail to translete it to my Kia EV.

meatpiHQ commented 6 months ago

@Mathopenevse I suggest you read the discussion

https://github.com/meatpiHQ/wican-fw/discussions/93#discussioncomment-8583799

Mathopenevse commented 6 months ago

@Mathopenevse I suggest you read the discussion

#93 (comment)

thanks! I have try to send 2 requests with delay 200ms like this : Capture d’écran 2024-02-26 à 12 03 22 but I don't see the soc (actually 93%) ; maybe it's (232*100)/255=90%? the car should be turn on to receive data?

meatpiHQ commented 6 months ago

@Mathopenevse after you send both frames you will receive 8 frames back see the comment below. This also tells you how to calculate the SoC

https://github.com/meatpiHQ/wican-fw/discussions/93#discussioncomment-8568659

Mathopenevse commented 6 months ago

@Mathopenevse after you send both frames you will receive 8 frames back see the comment below. This also tells you how to calculate the SoC

#93 (reply in thread)

thx but I have already see it, I receive only one trame after request.

meatpiHQ commented 6 months ago

@Mathopenevse How much delay do you have between the 2 frames?

One thing you can try is wait until you receive the first frame then you send the 2nd one.

Mathopenevse commented 6 months ago

the delay is 200ms ; I have already tried to send the 2nd frame when I receive the first response
this is exactly what I do :

1) I send this frame on can/tx : {"bus":"0","type":"tx","frame":[{"id":1947,"dlc":8,"rtr":false,"extd":false,"data":[2,33,1,0,0,0,0,0]}]}

and i reveive :

{"bus":"0","type":"rx","ts":28189,"frame":[{"id":1947,"dlc":8,"rtr":false,"extd":false,"data":[16,53,97,1,0,0,15,35]}]}

Capture d’écran 2024-02-29 à 12 23 39

2) after I send a 2nd frame : {"bus":"0","type":"tx","frame":[{"id":1979,"dlc":8,"rtr":false,"extd":false,"data":[48,0,0,0,0,0,0,0]}]}

and I receive nothing more :

Capture d’écran 2024-02-29 à 12 26 32

Mathopenevse commented 6 months ago

@Mathopenevse How much delay do you have between the 2 frames?

One thing you can try is wait until you receive the first frame then you send the 2nd one.

I think I understand : the response is publish on topic can/rx but each frame erase the frame it was publish before ; i think I need a process to catch the frame?

meatpiHQ commented 6 months ago

@Mathopenevse just for you to know how this works. The first frame you send is the request, and the first response you receive from the car tells you to expect multiple frames. Then your response tells the car that you're ready to receive multiple frames.

Mathopenevse commented 6 months ago

@Mathopenevse just for you to know how this works. The first frame you send is the request, and the first response you receive from the car tells you to expect multiple frames. Then your response tells the car that you're ready to receive multiple frames.

Yes, it's exatly that i had understood! Mqtt explorer show only the Last frame from the response but i receive 8 frame in the history! So i think i have to translate with the filter now!

meatpiHQ commented 6 months ago

@Mathopenevse This is great.

You won't be able to use the filters here because the SoC is on 2 different frames. I'm working on way to make this easier but it will take me few weeks to finish it.

image

Mathopenevse commented 6 months ago

ok thanks! I wait have a good day