Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ID3 profile not working on Skoda Enyiaq iV 60 #234

Open
marten-lucas opened this issue Oct 17, 2024 · 24 comments
Open

ID3 profile not working on Skoda Enyiaq iV 60 #234

marten-lucas opened this issue Oct 17, 2024 · 24 comments

Comments

@marten-lucas
Copy link

Hi,

I tried the vehicle profile for the ID.3 on my Skoda Enyaq iv but it did not work. Both are MEB-Platform so they should work.
I confirmed the setting by switching to a vw up, which did work.

I did find some PIDs on the internet
https://www.goingelectric.de/forum/viewtopic.php?t=60894&start=10
and here:
https://github.com/nickn17/evDash/blob/master/src/CarVWID3.cpp
carscanner works as well (see exported pids attached)
custompids.txt

How can I help to improve the profile?

@meatpiHQ
Copy link
Owner

@marten-lucas Which firmware version are you on? Can you post a screenshot of your device configuration settigns page and automate page?

@marten-lucas
Copy link
Author

marten-lucas commented Oct 21, 2024

grafik

grafik

grafik

@meatpiHQ
Copy link
Owner

Try to disable the MQTT and change the cycle time to 5000ms

@cr0i
Copy link
Contributor

cr0i commented Oct 21, 2024

Hello @meatpiHQ ,
I think, like in my case, the init-string and the pid_init does not work in the Profile.
The ATSP6 or ATSP7 must be in the pid_init, not globally.
In my case with the custom config, it worked best, if the full init string is now in the init field, so it should be in the pid_init perhaps?

@meatpiHQ
Copy link
Owner

@cr0i are you able to add these to the profile and test? If it's successful please create a PR

@cr0i
Copy link
Contributor

cr0i commented Oct 22, 2024

Hello @meatpiHQ ,
I think the main problem is, that pid_init is not working in vehicle-Profiles.
With Custom PIDs I got it working with the Init field.
The same must be done with pid_init.
But this strings are ignored or are not working.
When I put the full String in the init value of the vehicle-Profiles, it works, but only for one of the three values.
So with one value (without pid_init) it would work.
But when there are multiple Values we want to request, then we need a working pid_init, because we need different init-Strings for every value.
If this is working, I can send you an example vehicle-Profile, but I don´t know anything how to create PR.
I only created an Github account for this discussion. :-)

@meatpiHQ
Copy link
Owner

@cr0i Sorry I might have miss understood.

The pid_init should be working in the latest firmware version, it was tested on other cars.

but I don´t know anything how to create PR.

Don't worry about PR I can add the changes once you confirm that it's working. I wanted you to do the PR so you'd be added as contributor to this project :)

@marten-lucas
Copy link
Author

@meatpiHQ donyou mean confirmation if it works with custom pids in the latest firmware? I can do this next week.

@cr0i : or did you already try it?

@cr0i
Copy link
Contributor

cr0i commented Oct 25, 2024

Hello @marten-lucas ,

with Custom PIDs it´s working, I use this in my solution, because I need different MQTT Topics per PID.
It´ll look like this, Type and Sent_to will be different at you:
image

I´ll try the vehicle-Profile again and give you feedback.
I think ID3 (My Cupra Born) and ID4 (Your Enyiaq) will be identically.

This vehicle-Profile should do the same as my working CustomIPDs:
{ "car_model": "VW: id-3 Test", "init": "ATST96;ATFCSD300000;ATFCSM1;", "pids": [ { "parameters": [ { "class": "battery", "expression": "((B4*51)/115)-6.4", "name": "SOC", "pid_init": "ATSP7;ATSHFC007B;ATCP17;ATCRA17FE007B;ATFCSH17FC007B;", "unit": "%" } ], "pid": "22028C1" }, { "parameters": [ { "class": "none", "expression": "(B5*256)+B6", "name": "Range", "pid_init": "ATSP6;ATSH710;ATCP18;ATCRA77A;ATFCSH710;", "unit": "km" } ], "pid": "222AB62" }, { "parameters": [ { "class": "none", "expression": "[B4:B6]", "name": "Odometer", "pid_init": "ATSP7;ATSHFC0076;ATCP17;ATCRA17FE0076;ATFCSH17FC0076;", "unit": "km" } ], "pid": "22295A" } ] }

But with this I only get Timeout errors for all 3 PIDs in MQTT-Explorer (i.e.):
others/wican/test/error {"error": "Timeout, pid: 22295A"}

@cr0i
Copy link
Contributor

cr0i commented Oct 25, 2024

Hello @meatpiHQ ,

I reduced the vehicle-Profile to only one PID with pid_init:
{ "car_model": "VW: id-3 Test", "init": "ATST96;ATFCSD300000;ATFCSM1;", "pids": [ { "parameters": [ { "class": "battery", "expression": "((B4*51)/115)-6.4", "name": "SOC", "pid_init": "ATSP7;ATSHFC007B;ATCP17;ATCRA17FE007B;ATFCSH17FC007B;", "unit": "%" } ], "pid": "22028C1" } ] }

with this I get only timeout.

But when I put the full init-String in init and don´t use pid_init it works (but only for one PID, because we need different Init-Strings:

{ "car_model": "VW: id-3 Test", "init": "ATST96;ATFCSD300000;ATFCSM1;ATSP7;ATSHFC007B;ATCP17;ATCRA17FE007B;ATFCSH17FC007B;", "pids": [ { "parameters": [ { "class": "battery", "expression": "((B4*51)/115)-6.4", "name": "SOC", "unit": "%" } ], "pid": "22028C1" } ] }

Answer:
others/wican/test {"SOC":58.35}

So I think pid_init is not working (with me).
I need only Custom PIDs, so I´m not worry in the moment about this,but I can go on testing, if something is to do.

I have to remove my working config for this every time. If you could add Backup of settings in the future, this would be nice?

I´m using Firmware 3.48.

@meatpiHQ
Copy link
Owner

@cr0i I you're intersted I suggest that you read about the ELM327 AT commands so you'd understand what do these commands do. For some PIDs you have change the protocol from ATSP6 which is 500K 11bit to ATSP7 500K 29bit and the set the receive filter. Check this document. https://www.elmelectronics.com/DSheets/ELM327DSH.pdf

What if you put the same string in init and pid_init? Does it work?

@cr0i
Copy link
Contributor

cr0i commented Oct 27, 2024

I'm interested how it works, but I accepted, that I can't understand the whole world.; -)
Some of this commands I think I understood. Setting beetween 11Bit and 29Bit and setting Request and Response filters, but I don't exactly the reason behind, for this I don't have in deepth protocol knowledge or programming.

But I thought, vehicle Profiles and Custom PIDs work similar:
Custom Initialisation String is send only once and then the Init Field before each PID.
In Vehicle Profiles init is send once and pid_init before each PID.
But it doesn't work so.

I'll try the same string in pid_init later and give you feedback.

@cr0i
Copy link
Contributor

cr0i commented Oct 27, 2024

Hello @meatpiHQ ,

When I put the same init String in init and pid_init it works, but only one value is correct. The other values are calculated wrong or get timeouts:
{"SOC":60.57,"Range":0,"Odometer":9895936}
(SOC OK, Range and odometer wrong)
So I think pid_init is not send like in Custom PIDs?
The JSON is like this (I tried 3 times with the correspondending init):
{ "car_model": "VW: id-3 Test", "init": "ATST96;ATFCSD300000;ATFCSM1;ATSP7;ATSHFC0076;ATCP17;ATCRA17FE0076;ATFCSH17FC0076;", "pids": [ { "parameters": [ { "class": "battery", "expression": "((B4*51)/115)-6.4", "name": "SOC", "pid_init": "ATST96;ATFCSD300000;ATFCSM1;ATSP7;ATSHFC007B;ATCP17;ATCRA17FE007B;ATFCSH17FC007B;", "unit": "%" } ], "pid": "22028C1" }, { "parameters": [ { "class": "none", "expression": "(B5*256)+B6", "name": "Range", "pid_init": "ATST96;ATFCSD300000;ATFCSM1;ATSP6;ATSH710;ATCP18;ATCRA77A;ATFCSH710;", "unit": "km" } ], "pid": "222AB62" }, { "parameters": [ { "class": "none", "expression": "[B4:B6]", "name": "Odometer", "pid_init": "ATST96;ATFCSD300000;ATFCSM1;ATSP7;ATSHFC0076;ATCP17;ATCRA17FE0076;ATFCSH17FC0076;", "unit": "km" } ], "pid": "22295A" } ] }

@meatpiHQ
Copy link
Owner

@cr0i Please try this profile.

So I think pid_init is not send like in Custom PIDs?

Yes you are right seems there is an issue with pid_init .

{
   "car_model":"VW: id-3 Test",
   "init":"ATST96;ATFCSD300000;ATFCSM1;",
   "pids":[
      {
         "parameters":[
            {
               "class":"battery",
               "expression":"((B4*51)/115)-6.4",
               "name":"SOC",
               "pid_init":"ATAR;ATCP18;ATSHDB33F1;ATSHFC007B;ATCP17;ATCRA17FE007B;ATFCSH17FC007B;ATFCSM1;",
               "unit":"%"
            }
         ],
         "pid":"22028C1"
      },
      {
         "parameters":[
            {
               "class":"none",
               "expression":"(B5*256)+B6",
               "name":"Range",
               "pid_init":"ATSP6;ATSH710;ATFCSH710;ATFCSM1;ATCRA77A;",
               "unit":"km"
            }
         ],
         "pid":"222AB62"
      },
      {
         "parameters":[
            {
               "class":"none",
               "expression":"[B4:B6]",
               "name":"Odometer",
               "pid_init":"ATSP7;ATSHFC0076;ATCP17;ATCRA17FE0076;ATFCSH17FC0076;ATFCSM1;",
               "unit":"km"
            }
         ],
         "pid":"22295A"
      }
   ]
}

@cr0i
Copy link
Contributor

cr0i commented Oct 30, 2024

Hello @meatpiHQ ,

with this Profile I get timeouts on all 3 values, i.e.:
{"error": "Timeout, pid: 22295A"}

@jeroen-github
Copy link

I also bought the Wican for my Enyaq 60, I have the same issues, as the topic starter, can someone from meatpi give us some more directions to get this working ?

@meatpiHQ
Copy link
Owner

meatpiHQ commented Nov 6, 2024

I'm going to make a new firmware update to address this issue.

@meatpiHQ
Copy link
Owner

@cr0i @jeroen-github please try this profile, i kept the SoC for now, we can add them one by one and see what breaks.

You can also directly sync the profile directly from the webpage

https://meatpihq.github.io/wican-fw/home-assistant/integration_setup#integration-device-setup

{
  "car_model": "VW: id-3",
  "init":"ATST96;",
  "pids":[
    {
       "parameters":[
          {
             "class":"battery",
             "expression":"((B4*51)/115)-6.4",
             "name":"SOC",
             "pid_init":"ATSP7;ATAR;ATCP18;ATSHFC007B;ATCP17;ATCRA17FE007B;ATFCSH17FC007B;ATFCSD300000;ATFCSM1;",
             "unit":"%"
          }
       ],
       "pid":"22028C1"
    }
 ]
}

@cr0i
Copy link
Contributor

cr0i commented Nov 10, 2024

With this profile I only get timeouts:
{"error": "Timeout, pid: 22028C1"}

In Monitor Tab there are no frames captured.

@meatpiHQ
Copy link
Owner

@cr0i I think I figured it out this time, the issue was that the pid_init was inside the parameters and was not being parsed

{
  "car_model":"VW: id-3",
  "init":"ATST96;",
  "pids":[
     {
        "pid":"22028C1",
        "pid_init":"ATSP7;ATAR;ATCP18;ATSHFC007B;ATCP17;ATCRA17FE007B;ATFCSH17FC007B;ATFCSD300000;ATFCSM1;",
        "parameters":[
           {
              "name":"SoC",
              "expression":"((B4*51)/115)-6.4",
              "unit":"%",
              "class":"battery"
           }
        ]
     }
  ]
}

@cr0i
Copy link
Contributor

cr0i commented Nov 10, 2024

Hello @meatpiHQ ,

strike, now it works. ;-)
I´ve tried the other value too:
{"SOC":36.17,"Range":109,"Odometer":22865}

"car_model":"VW: id-3 Test", "init":"ATST96;ATFCSD300000;ATFCSM1;", "pids":[ { "parameters":[ { "class":"battery", "expression":"((B4*51)/115)-6.4", "name":"SOC", "unit":"%" } ], "pid":"22028C1", "pid_init":"ATSP7;ATCP17;ATSHFC007B;ATFCSH17FC007B;ATCRA17FE007B;" }, { "parameters":[ { "class":"none", "expression":"(B5*256)+B6", "name":"Range", "unit":"km" } ], "pid":"222AB62", "pid_init":"ATSP6;ATCP18;ATSH710;ATFCSH710;ATCRA77A;" }, { "parameters":[ { "class":"none", "expression":"[B4:B6]", "name":"Odometer", "unit":"km" } ], "pid":"22295A", "pid_init":"ATSP7;ATCP17;ATSHFC0076;ATFCSH17FC0076;ATCRA17FE0076;" } ] }

@meatpiHQ
Copy link
Owner

@cr0i Great! Do you want to make a pull request to update the profile ?

@jeroen-github
Copy link

Thx for the update, I will try it wednesday, currently traveling for work.

@jeroen-github
Copy link

Hi just confirmed its working also over here, with MQTT explorer I can see that I receive the correct values.
{
"soc": 68.15,
"range": 218,
"odometer": 13223,
"capacity": 53.85
}

So now its up to us to add more info to the cars profile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants