Correct and add more PIDs
This commit is contained in:
parent
9548b95ee0
commit
d904badf77
|
@ -66,7 +66,7 @@ static const OvmsVehicle::poll_pid_t renault_zoe_polls[] = {
|
|||
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIGROUP, 0x9021, { 0, 60, 600, 60 }, 0, ISOTP_EXTFRAME }, // Cell Bat Module 1-62
|
||||
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIGROUP, 0x9062, { 0, 60, 600, 60 }, 0, ISOTP_EXTFRAME }, // Cell Bat Module 63-96
|
||||
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x9005, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Battery Voltage
|
||||
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x900D, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Battery Current
|
||||
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x925D, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Battery Current
|
||||
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x91C8, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Battery Available Energy kWh
|
||||
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x9243, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Energy charged kWh
|
||||
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x9244, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Energy discharged kWh
|
||||
|
@ -79,9 +79,10 @@ static const OvmsVehicle::poll_pid_t renault_zoe_polls[] = {
|
|||
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x21DF, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // 12Battery Current
|
||||
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x2005, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // 12Battery Voltage
|
||||
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x21D0, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // DCDC Temperature
|
||||
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x21CB, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // DCDC Activation
|
||||
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x20B4, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // DCDC Activation
|
||||
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x21CF, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Inverter Status
|
||||
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x303D, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // HV Battery Insulation Resistance
|
||||
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0xF446, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Ambient Temperature
|
||||
|
||||
//Motor Inverter
|
||||
{ 0x18dadff1, 0x18daf1df, VEHICLE_POLL_TYPE_OBDIISESSION, SESSION_EXTDIAG, { 60, 60, 60, 60 }, 0, ISOTP_EXTFRAME }, // OBD Extended Diagnostic Session
|
||||
|
@ -131,7 +132,7 @@ OvmsVehicleRenaultZoePh2::OvmsVehicleRenaultZoePh2() {
|
|||
mt_bus_awake = MyMetrics.InitBool("zph2.v.bus.awake", SM_STALE_MIN, true);
|
||||
mt_available_energy = MyMetrics.InitFloat("zph2.v.avail.energy", SM_STALE_MID, 0, kWh);
|
||||
mt_main_power_consumed = MyMetrics.InitFloat("zph2.c.main.power.consumed", SM_STALE_MID, 0, kWh);
|
||||
mt_navi_volume = MyMetrics.InitFloat("zph2.c.radio.volume", SM_STALE_MID, 0, Percentage);
|
||||
mt_inv_status = MyMetrics.InitString("zph2.m.inverter.status", SM_STALE_MID, 0, Percentage);
|
||||
mt_mot_temp_stator1 = MyMetrics.InitFloat("zph2.m.temp.stator1", SM_STALE_MID, 0, Celcius);
|
||||
mt_mot_temp_stator2 = MyMetrics.InitFloat("zph2.m.temp.stator2", SM_STALE_MID, 0, Celcius);
|
||||
|
||||
|
@ -242,10 +243,15 @@ void OvmsVehicleRenaultZoePh2::IncomingPollReply(canbus* bus, uint16_t type, uin
|
|||
void OvmsVehicleRenaultZoePh2::IncomingINV(uint16_t type, uint16_t pid, const char* data, uint16_t len) {
|
||||
switch (pid) {
|
||||
case 0x700F: { // Motor temperature
|
||||
StandardMetrics.ms_v_mot_temp->SetValue(CAN_UINT(0), Celcius);
|
||||
ESP_LOGD(TAG, "700F INV ms_v_mot_temp: %d", CAN_UINT(0));
|
||||
StandardMetrics.ms_v_mot_temp->SetValue(float((CAN_UINT(0) - 40) * 0.001953125), Celcius);
|
||||
mt_mot_temp_stator1->SetValue(float((CAN_UINT(0) - 40) * 0.001953125), Celcius);
|
||||
ESP_LOGD(TAG, "700F INV ms_v_mot_temp: %f", float((CAN_UINT(0) - 40) * 0.001953125));
|
||||
break;
|
||||
}
|
||||
case 0x7010: {
|
||||
mt_mot_temp_stator2->SetValue(float((CAN_UINT(0) - 40) * 0.001953125), Celcius);
|
||||
ESP_LOGD(TAG, "7010 INV mt_mot_temp_stator2: %f", float((CAN_UINT(0) - 40) * 0.001953125));
|
||||
break;
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
@ -255,27 +261,45 @@ void OvmsVehicleRenaultZoePh2::IncomingEVC(uint16_t type, uint16_t pid, const ch
|
|||
switch (pid) {
|
||||
case 0x2006: { // Odometer (Total Vehicle Distance)
|
||||
StandardMetrics.ms_v_pos_odometer->SetValue((float) CAN_UINT24(0), Kilometers);
|
||||
ESP_LOGD(TAG, "2006 EVC ms_v_pos_odometer: %d", CAN_UINT(0));
|
||||
ESP_LOGD(TAG, "2006 EVC ms_v_pos_odometer: %d", CAN_UINT24(0));
|
||||
break;
|
||||
}
|
||||
case 0x21DF: {
|
||||
StandardMetrics.ms_v_charge_12v_current->SetValue((float) (CAN_UINT(0)));
|
||||
ESP_LOGD(TAG, "21DF EVC ms_v_charge_12v_current: %d", CAN_UINT(0));
|
||||
case 0x29FD: {
|
||||
StandardMetrics.ms_v_charge_12v_current->SetValue((float) (CAN_UINT(0) * 0.01 - 327.675));
|
||||
ESP_LOGD(TAG, "29FD EVC ms_v_charge_12v_current: %d", CAN_UINT(0));
|
||||
ESP_LOGD(TAG, "29FD EVC ms_v_charge_12v_current: %f", CAN_UINT(0) * 0.01 - 327.675);
|
||||
break;
|
||||
}
|
||||
case 0x2005: {
|
||||
StandardMetrics.ms_v_charge_12v_voltage->SetValue((float) (CAN_UINT(0)));
|
||||
ESP_LOGD(TAG, "2005 EVC ms_v_charge_12v_voltage: %d", CAN_UINT(0));
|
||||
StandardMetrics.ms_v_charge_12v_voltage->SetValue((float) (CAN_UINT(0) * 0.01));
|
||||
ESP_LOGD(TAG, "2005 EVC ms_v_charge_12v_voltage: %f", CAN_UINT(0) * 0.01);
|
||||
break;
|
||||
}
|
||||
case 0x21D0: {
|
||||
StandardMetrics.ms_v_gen_temp->SetValue((float) (CAN_UINT(0)));
|
||||
ESP_LOGD(TAG, "21D0 EVC ms_v_gen_temp: %d", CAN_UINT(0));
|
||||
StandardMetrics.ms_v_charge_12v_temp->SetValue((float) (CAN_UINT(0) - 40));
|
||||
ESP_LOGD(TAG, "21D0 EVC ms_v_charge_12v_temp: %d", CAN_UINT(0) - 40));
|
||||
break;
|
||||
}
|
||||
case 0x21CB: {
|
||||
StandardMetrics.ms_v_gen_state->SetValue((char*) (CAN_BYTE(0)));
|
||||
ESP_LOGD(TAG, "21CB EVC ms_v_gen_state: %d", CAN_UINT(0));
|
||||
case 0x20B4: {
|
||||
StandardMetrics.ms_v_env_charging12v->SetValue((bool) (CAN_BYTE(0)));
|
||||
ESP_LOGD(TAG, "20B4 EVC ms_v_env_charging12v: %d", CAN_UINT(0));
|
||||
break;
|
||||
}
|
||||
case 0x21CF: {
|
||||
ESP_LOGD(TAG, "21CF EVC mt_inv_status: %d", CAN_UINT(0));
|
||||
if CAN_UINT(0)) == 1 {
|
||||
mt_inv_status->SetValue("Inverter off");
|
||||
} else if CAN_UINT(0)) == 2 {
|
||||
mt_inv_status->SetValue("Inverter on");
|
||||
} else if CAN_UINT(0)) == 3 {
|
||||
mt_inv_status->SetValue("Inverter decharging");
|
||||
} else if CAN_UINT(0)) == 4 {
|
||||
mt_inv_status->SetValue("Inverter alternator mode");
|
||||
} else if CAN_UINT(0)) == 5 {
|
||||
mt_inv_status->SetValue("Inverter ready to sleep");
|
||||
} else {
|
||||
mt_inv_status->SetValue("Inverter state unknown");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 0x33F6: {
|
||||
|
@ -283,9 +307,9 @@ void OvmsVehicleRenaultZoePh2::IncomingEVC(uint16_t type, uint16_t pid, const ch
|
|||
ESP_LOGD(TAG, "7ec inv temp: %d", CAN_BYTE(0) - 40);
|
||||
break;
|
||||
}
|
||||
case 0x33dc: {
|
||||
// 7ec,24,47,0.001,1,0,kWh,33dc,6233dc,ff\n" // Consumed domestic energy
|
||||
//StdMetrics.ms_v_charge_kwh->SetValue(CAN_UINT24(0)*0.001);
|
||||
case 0xF446: {
|
||||
StandardMetrics.ms_v_env_temp->SetValue((float) (CAN_UINT(0) - 40));
|
||||
ESP_LOGD(TAG, "F446 EVC ms_v_env_temp: %d", CAN_UINT(0));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -347,23 +371,24 @@ void OvmsVehicleRenaultZoePh2::IncomingBCB(uint16_t type, uint16_t pid, const ch
|
|||
void OvmsVehicleRenaultZoePh2::IncomingLBC(uint16_t type, uint16_t pid, const char* data, uint16_t len) {
|
||||
switch (pid) {
|
||||
case 0x9005: {
|
||||
StandardMetrics.ms_v_bat_voltage->SetValue((float) (CAN_UINT(0)));
|
||||
ESP_LOGD(TAG, "20B6 LBC ms_v_bat_voltage: %d", CAN_UINT(0));
|
||||
StandardMetrics.ms_v_bat_voltage->SetValue((float) (CAN_UINT(0) * 0.1));
|
||||
ESP_LOGD(TAG, "9005 LBC ms_v_bat_voltage: %f", CAN_UINT(0) * 0.1);
|
||||
break;
|
||||
}
|
||||
case 0x900D: {
|
||||
StandardMetrics.ms_v_bat_current->SetValue((float) (CAN_UINT(0)));
|
||||
ESP_LOGD(TAG, "900D LBC ms_v_bat_current: %d", CAN_UINT(0));
|
||||
case 0x925D: {
|
||||
StandardMetrics.ms_v_bat_current->SetValue((float) ((CAN_UINT(0) - 1020) * 0.03125));
|
||||
ESP_LOGD(TAG, "925D LBC ms_v_bat_current: %d", CAN_UINT(0));
|
||||
ESP_LOGD(TAG, "925D LBC ms_v_bat_current: %f", ((CAN_UINT(0) - 1020) * 0.03125));
|
||||
break;
|
||||
}
|
||||
case 0x9002: {
|
||||
StandardMetrics.ms_v_bat_soc->SetValue((float) (CAN_UINT(0)) * 0.01);
|
||||
ESP_LOGD(TAG, "9001 LBC ms_v_bat_soc: %f", CAN_UINT(0) * 0.01);
|
||||
ESP_LOGD(TAG, "9002 LBC ms_v_bat_soc: %f", CAN_UINT(0) * 0.01);
|
||||
break;
|
||||
}
|
||||
case 0x9003: {
|
||||
StandardMetrics.ms_v_bat_soh->SetValue((float) (CAN_UINT(0) * 0.01));
|
||||
ESP_LOGD(TAG, "91BC LBC ms_v_bat_soh: %f", CAN_UINT(0) * 0.01);
|
||||
ESP_LOGD(TAG, "9003 LBC ms_v_bat_soh: %f", CAN_UINT(0) * 0.01);
|
||||
break;
|
||||
}
|
||||
case 0x9243: {
|
||||
|
@ -423,7 +448,7 @@ void OvmsVehicleRenaultZoePh2::IncomingLBC(uint16_t type, uint16_t pid, const ch
|
|||
}
|
||||
|
||||
/**
|
||||
* Handle incoming polls from the UBP Computer
|
||||
* Handle incoming polls from the UCH Computer
|
||||
*/
|
||||
void OvmsVehicleRenaultZoePh2::IncomingUCH(uint16_t type, uint16_t pid, const char* data, uint16_t len) {
|
||||
switch (pid) {
|
||||
|
@ -440,39 +465,6 @@ void OvmsVehicleRenaultZoePh2::IncomingUCH(uint16_t type, uint16_t pid, const ch
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle incoming polls from the PEB Computer
|
||||
*/
|
||||
void OvmsVehicleRenaultZoePh2::IncomingPEB(uint16_t type, uint16_t pid, const char* data, uint16_t len) {
|
||||
switch (pid) {
|
||||
case 0x3018: {
|
||||
// 77e,24,39,0.015625,0,2,ºC,3018,623018,ff\n" // DCDC converter temperature
|
||||
// zoe_dcdc_temp=CAN_UINT(4);
|
||||
break;
|
||||
}
|
||||
case 0x302b: {
|
||||
// 77e,24,31,0.015625,0,2,°C,302b,62302b,ff\n" // inverter temperature
|
||||
// 77e,24,39,1,0,0,°C,302B,62302B,ff,InverterTempOrder
|
||||
ESP_LOGI(TAG, "77e inv temp: %f", CAN_BYTE(0) * 0.015625);
|
||||
ESP_LOGI(TAG, "77e inv temp: %d", CAN_UINT(0));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle incoming polls from the navigation cluster
|
||||
*/
|
||||
void OvmsVehicleRenaultZoePh2::IncomingUCC(uint16_t type, uint16_t pid, const char* data, uint16_t len) {
|
||||
switch (pid) {
|
||||
case 0x2109: {
|
||||
mt_navi_volume->SetValue((float(CAN_UINT(0))));
|
||||
ESP_LOGD(TAG, "2109 navigation volume: %d", CAN_UINT(0));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Takes care of setting all the state appropriate when the car is on
|
||||
|
|
|
@ -99,7 +99,7 @@ class OvmsVehicleRenaultZoePh2 : public OvmsVehicle {
|
|||
OvmsMetricBool *mt_bus_awake; // can-bus awake status
|
||||
OvmsMetricFloat *mt_available_energy; // Available Energy
|
||||
OvmsMetricFloat *mt_main_power_consumed; // Mains active power consumed
|
||||
OvmsMetricFloat *mt_navi_volume; //Radio volume for debug only
|
||||
OvmsMetricString *mt_inv_status; //Inverter status string
|
||||
OvmsMetricFloat *mt_mot_temp_stator1;
|
||||
OvmsMetricFloat *mt_mot_temp_stator2;
|
||||
|
||||
|
|
Loading…
Reference in a new issue