Add PIDs for battery and inverter

This commit is contained in:
Carsten Schmiemann 2022-04-14 01:11:37 +02:00
parent f2ca6c0f18
commit 8356269dd6
2 changed files with 89 additions and 14 deletions

View file

@ -73,22 +73,33 @@ static const OvmsVehicle::poll_pid_t renault_zoe_polls[] = {
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x9244, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Energy discharged kWh
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x9246, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Energy regenerated kWh
//{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x21D9, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Charging State (1: Slow, 2: Fast, 3: Init Charging)
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x9007, { 0, 10, 60, 10 }, 0, ISOTP_EXTFRAME }, // Cell Max Voltage
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x9009, { 0, 10, 60, 10 }, 0, ISOTP_EXTFRAME }, // Cell Min Voltage
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x9014, { 0, 10, 60, 10 }, 0, ISOTP_EXTFRAME }, // Cell Max Temp
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x9013, { 0, 10, 60, 10 }, 0, ISOTP_EXTFRAME }, // Cell Min Min
{ 0x18dadbf1, 0x18daf1db, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x9018, { 0, 10, 60, 10 }, 0, ISOTP_EXTFRAME }, // Max Charge Power
//EVC-HCM-VCM
//{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIISESSION, SESSION_EXTDIAG, { 60, 60, 60, 60 }, 0, ISOTP_EXTFRAME }, // OBD Extended Diagnostic Session
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x2006, { 180, 10, 10, 300 }, 0, ISOTP_EXTFRAME }, // Odometer
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x21DF, { 0, 10, 5, 3 }, 0, ISOTP_EXTFRAME }, // 12Battery Current
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x29FD, { 0, 10, 5, 3 }, 0, ISOTP_EXTFRAME }, // 12Battery Current
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x2005, { 0, 10, 5, 3 }, 0, ISOTP_EXTFRAME }, // 12Battery Voltage
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x21D0, { 0, 10, 10, 3 }, 0, ISOTP_EXTFRAME }, // DCDC Temperature
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x21CF, { 0, 10, 10, 300 }, 0, ISOTP_EXTFRAME }, // Inverter Status
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x303D, { 0, 10, 10, 3 }, 0, ISOTP_EXTFRAME }, // HV Battery Insulation Resistance
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0xF446, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Ambient Temperature
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x2A09, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Power usage by consumer
{ 0x18dadaf1, 0x18daf1da, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x2191, { 0, 10, 10, 10 }, 0, ISOTP_EXTFRAME }, // Power usage by ptc
//Motor Inverter
//{ 0x18dadff1, 0x18daf1df, VEHICLE_POLL_TYPE_OBDIISESSION, SESSION_EXTDIAG, { 60, 60, 60, 60 }, 0, ISOTP_EXTFRAME }, // OBD Extended Diagnostic Session
{ 0x18dadff1, 0x18daf1df, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x700C, { 0, 10, 3, 10 }, 0, ISOTP_EXTFRAME }, // Inverter temperature
{ 0x18dadff1, 0x18daf1df, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x700F, { 0, 10, 3, 10 }, 0, ISOTP_EXTFRAME }, // Stator Temperature 1
{ 0x18dadff1, 0x18daf1df, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x7010, { 0, 10, 3, 10 }, 0, ISOTP_EXTFRAME }, // Stator Temperature 2
{ 0x18dadff1, 0x18daf1df, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x2001, { 0, 10, 3, 10 }, 0, ISOTP_EXTFRAME }, // Motor rpm
{ 0x18dadff1, 0x18daf1df, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x7090, { 0, 10, 3, 10 }, 0, ISOTP_EXTFRAME }, // Water temperature
{ 0x18dadff1, 0x18daf1df, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x2004, { 0, 60, 3, 60 }, 0, ISOTP_EXTFRAME }, // Battery voltage sense
{ 0x18dadff1, 0x18daf1df, VEHICLE_POLL_TYPE_OBDIIEXTENDED, 0x7049, { 0, 60, 3, 60 }, 0, ISOTP_EXTFRAME }, // Current voltage sense
//Navigation-UCC-ITM
{ 0x747, 0x767, VEHICLE_POLL_TYPE_OBDIISESSION, SESSION_DEFAULT, { 60, 60, 60, 60 }, 0, ISOTP_STD }, // OBD Extended Diagnostic Session
@ -136,7 +147,13 @@ OvmsVehicleRenaultZoePh2::OvmsVehicleRenaultZoePh2() {
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);
mt_inv_temp_water = MyMetrics.InitFloat("zph2.m.temp.water", SM_STALE_MID, 0, Celcius);
mt_aux_power_consumer = MyMetrics.InitFloat("zph2.c.aux.power.consumer", SM_STALE_MID, 0, Watts);
mt_aux_power_ptc = MyMetrics.InitFloat("zph2.c.aux.power.ptc", SM_STALE_MID, 0, Watts);
mt_inv_hv_voltage = MyMetrics.InitFloat("zph2.m.inverter.voltage", SM_STALE_MID, 0, Volts);
mt_inv_hv_current = MyMetrics.InitFloat("zph2.m.inverter.current", SM_STALE_MID, 0, Amps);
mt_bat_max_charge_power = MyMetrics.InitFloat("zph2.b.max.charge.power", SM_STALE_MID, 0, kW);
// init commands:
cmd_zoe = MyCommandApp.RegisterCommand("zoe-ph2", "Renault Zoe Ph2");
@ -247,6 +264,28 @@ void OvmsVehicleRenaultZoePh2::IncomingINV(uint16_t type, uint16_t pid, const ch
ESP_LOGD(TAG, "7010 INV mt_mot_temp_stator2: %f", float((CAN_UINT(0) - 40)));
break;
}
case 0x2001: { // Motor rpm
StandardMetrics.ms_v_mot_rpm->SetValue(float(CAN_UINT(0) - 16000));
ESP_LOGD(TAG, "2001 INV ms_v_mot_rpm: %f", float(CAN_UINT(0) - 16000));
break;
}
case 0x7090: { // Water temperature
mt_inv_temp_water->SetValue(float(CAN_UINT(0)));
ESP_LOGD(TAG, "7090 INV mt_inv_temp_water: %f", float(CAN_UINT(0)));
break;
}
case 0x2004: { // Battery voltage sense
mt_inv_hv_voltage->SetValue(float(CAN_UINT(0)), Volts);
ESP_LOGD(TAG, "2004 INV mt_inv_hv_voltage: %f", float(CAN_UINT(0)));
StandardMetrics.ms_v_inv_power->SetValue(float (mt_inv_hv_voltage->AsFloat() * mt_inv_hv_current->AsFloat()));
break;
}
case 0x7049: { // Battery current sense
mt_inv_hv_current->SetValue(float(CAN_UINT(0) - 500), Amps);
ESP_LOGD(TAG, "7049 INV mt_inv_hv_current: %f", float(CAN_UINT(0) - 500));
StandardMetrics.ms_v_inv_power->SetValue(float (mt_inv_hv_current->AsFloat() * mt_inv_hv_voltage->AsFloat()));
break;
}
}
}
/**
@ -268,9 +307,9 @@ void OvmsVehicleRenaultZoePh2::IncomingEVC(uint16_t type, uint16_t pid, const ch
break;
}
case 0x29FD: {
StandardMetrics.ms_v_charge_12v_current->SetValue((float) (CAN_UINT(0) * 0.01 - 327.675), Amps);
StandardMetrics.ms_v_charge_12v_current->SetValue((float) (CAN_UINT(0) - 327.675), Amps);
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);
ESP_LOGD(TAG, "29FD EVC ms_v_charge_12v_current: %f", CAN_UINT(0) - 327.675);
break;
}
case 0x2005: {
@ -300,15 +339,20 @@ void OvmsVehicleRenaultZoePh2::IncomingEVC(uint16_t type, uint16_t pid, const ch
}
break;
}
case 0x33F6: {
// ,7ec,24,31,1,40,0,°C,33F6,6233F6,ff,Temperature of the inverter given by PEB (CAN ETS)
ESP_LOGD(TAG, "7ec inv temp: %d", CAN_BYTE(0) - 40);
break;
}
case 0xF446: { // Ambient temperature
StandardMetrics.ms_v_env_temp->SetValue((float) (CAN_UINT(0) - 40) * 0.01, Celcius);
ESP_LOGD(TAG, "F446 EVC ms_v_env_temp: %f", (CAN_UINT(0) - 40) * 0.01);
break;
}
case 0x2A09: { // Power consumption by consumer
mt_aux_power_consumer->SetValue((float) CAN_UINT(0) * 10, Watts);
ESP_LOGD(TAG, "2A09 EVC mt_aux_power_consumer: %d", CAN_UINT(0) * 10);
break;
}
case 0x2191: { // Power consumption by ptc
mt_aux_power_ptc->SetValue((float) CAN_UINT(0) * 10, Watts);
ESP_LOGD(TAG, "2191 EVC mt_aux_power_ptc: %d", CAN_UINT(0) * 10);
break;
}
}
}
@ -409,6 +453,31 @@ void OvmsVehicleRenaultZoePh2::IncomingLBC(uint16_t type, uint16_t pid, const ch
ESP_LOGD(TAG, "9246 LBC ms_v_bat_energy_recd: %f", CAN_UINT32(0) * 0.001);
break;
}
case 0x9007: { //Cell Max Voltage
StandardMetrics.ms_v_bat_pack_vmax->SetValue((float) (CAN_UINT(0) * 0.001), Volts);
ESP_LOGD(TAG, "9007 LBC ms_v_bat_pack_vmax: %f", CAN_UINT(0) * 0.001);
break;
}
case 0x9009: { //Cell Min Voltage
StandardMetrics.ms_v_bat_pack_vmin->SetValue((float) (CAN_UINT(0) * 0.001), Volts);
ESP_LOGD(TAG, "9009 LBC ms_v_bat_pack_vmin: %f", CAN_UINT(0) * 0.001);
break;
}
case 0x9014: { //Cell Max Temp
StandardMetrics.ms_v_bat_pack_tmax->SetValue((float) (CAN_UINT(0) - 40), Celcius);
ESP_LOGD(TAG, "9014 LBC ms_v_bat_pack_tmax: %d", CAN_UINT(0) - 40);
break;
}
case 0x9013: { //Cell Min Temp
StandardMetrics.ms_v_bat_pack_tmin->SetValue((float) (CAN_UINT(0) - 40), Celcius);
ESP_LOGD(TAG, "9013 LBC ms_v_bat_pack_tmin: %d", CAN_UINT(0) - 40);
break;
}
case 0x9018: { //Max charge power
mt_bat_max_charge_power->SetValue((float) (CAN_UINT(0) * 0.01), kW);
ESP_LOGD(TAG, "9018 LBC mt_bat_max_charge_power: %f", CAN_UINT(0) * 0.01);
break;
}
case 0x04: {
for(int i=2; i<36; i+=3){
BmsSetCellTemperature( (i-2)/3, (INT)CAN_BYTE(i)-40 );

View file

@ -95,13 +95,19 @@ class OvmsVehicleRenaultZoePh2 : public OvmsVehicle {
OvmsCommand *cmd_zoe;
// Renault ZOE specific metrics
OvmsMetricFloat *mt_pos_odometer_start; // ODOmeter at Start
OvmsMetricBool *mt_bus_awake; // can-bus awake status
OvmsMetricFloat *mt_available_energy; // Available Energy
OvmsMetricFloat *mt_main_power_consumed; // Mains active power consumed
OvmsMetricString *mt_inv_status; //Inverter status string
OvmsMetricFloat *mt_pos_odometer_start; // ODOmeter at Start
OvmsMetricBool *mt_bus_awake; // can-bus awake status
OvmsMetricFloat *mt_available_energy; // Available Energy
OvmsMetricFloat *mt_main_power_consumed; // Mains active power consumed
OvmsMetricString *mt_inv_status; //Inverter status string
OvmsMetricFloat *mt_mot_temp_stator1;
OvmsMetricFloat *mt_mot_temp_stator2;
OvmsMetricFloat *mt_inv_temp_water;
OvmsMetricFloat *mt_aux_power_consumer; //Power usage by consumer
OvmsMetricFloat *mt_aux_power_ptc; //Power usage by PTCs
OvmsMetricFloat *mt_inv_hv_voltage; //Battery voltage sense
OvmsMetricFloat *mt_inv_hv_current; //Battery current sense
OvmsMetricFloat *mt_bat_max_charge_power; //Battery max charge power
public:
void WebInit();