Change charge on off behavior

This commit is contained in:
Carsten Schmiemann 2022-04-17 01:03:46 +02:00
parent c4bda8ee68
commit 9f993bfc4d
2 changed files with 20 additions and 31 deletions

View File

@ -80,12 +80,12 @@ void OvmsVehicleRenaultZoePh2::IncomingEVC(uint16_t type, uint16_t pid, const ch
break;
}
case 0x2B85: { // Charge plug preset
ESP_LOGD(TAG, "2B85 EVC Charge plug present: %d", CAN_NIB(7));
if (CAN_NIB(7) == 1) {
ESP_LOGD(TAG, "2B85 EVC Charge plug present: %d", CAN_NIBL(0));
if (CAN_NIBL(0) == 1) {
StandardMetrics.ms_v_charge_pilot->SetValue(true);
ESP_LOGD(TAG, "Charge cable plugged in");
}
if (CAN_NIB(7) == 0) {
if (CAN_NIBL(0) == 0) {
StandardMetrics.ms_v_charge_pilot->SetValue(false);
ESP_LOGD(TAG, "Charge cable plugged out");
}
@ -96,7 +96,9 @@ void OvmsVehicleRenaultZoePh2::IncomingEVC(uint16_t type, uint16_t pid, const ch
if (CAN_NIBL(0) == 0) {
StandardMetrics.ms_v_charge_state->SetValue("stopped");
StandardMetrics.ms_v_charge_substate->SetValue("stopped");
StandardMetrics.ms_v_charge_inprogress->SetValue(false);
ESP_LOGD(TAG, "2B6D Charge MMI States : No Charge");
POLLSTATE_ON;
}
if (CAN_NIBL(0) == 1) {
StandardMetrics.ms_v_charge_state->SetValue("timerwait");
@ -106,22 +108,30 @@ void OvmsVehicleRenaultZoePh2::IncomingEVC(uint16_t type, uint16_t pid, const ch
if (CAN_NIBL(0) == 2) {
StandardMetrics.ms_v_charge_state->SetValue("done");
StandardMetrics.ms_v_charge_substate->SetValue("stopped");
StandardMetrics.ms_v_charge_inprogress->SetValue(false);
ESP_LOGD(TAG, "2B6D Charge MMI States : Ended charge");
POLLSTATE_ON;
}
if (CAN_NIBL(0) == 3) {
StandardMetrics.ms_v_charge_state->SetValue("charging");
StandardMetrics.ms_v_charge_substate->SetValue("onrequest");
StandardMetrics.ms_v_charge_inprogress->SetValue(true);
ESP_LOGD(TAG, "2B6D Charge MMI States : Charge in progress");
POLLSTATE_CHARGING;
}
if (CAN_NIBL(0) == 4) {
StandardMetrics.ms_v_charge_state->SetValue("stopped");
StandardMetrics.ms_v_charge_substate->SetValue("interrupted");
StandardMetrics.ms_v_charge_inprogress->SetValue(false);
ESP_LOGD(TAG, "2B6D Charge MMI States : Charge failure");
POLLSTATE_ON;
}
if (CAN_NIBL(0) == 5) {
StandardMetrics.ms_v_charge_state->SetValue("stopped");
StandardMetrics.ms_v_charge_substate->SetValue("powerwait");
StandardMetrics.ms_v_charge_inprogress->SetValue(false);
ESP_LOGD(TAG, "2B6D Charge MMI States : Waiting for current charge");
POLLSTATE_ON;
}
if (CAN_NIBL(0) == 6) {
StandardMetrics.ms_v_door_chargeport->SetValue(true);
@ -130,7 +140,9 @@ void OvmsVehicleRenaultZoePh2::IncomingEVC(uint16_t type, uint16_t pid, const ch
if (CAN_NIBL(0) == 8) {
StandardMetrics.ms_v_charge_state->SetValue("prepare");
StandardMetrics.ms_v_charge_substate->SetValue("powerwait");
StandardMetrics.ms_v_charge_inprogress->SetValue(false);
ESP_LOGD(TAG, "2B6D Charge MMI States : Charge preparation");
POLLSTATE_CHARGING;
}
break;
}

View File

@ -81,6 +81,10 @@ OvmsVehicleRenaultZoePh2::OvmsVehicleRenaultZoePh2() {
BmsSetCellDefaultThresholdsVoltage(0.030, 0.050);
BmsSetCellDefaultThresholdsTemperature(4.0, 5.0);
//My car has only AC, will later read out for other users
StandardMetrics.ms_v_charge_mode->SetValue("standard");
StandardMetrics.ms_v_charge_type->SetValue("type2");
#ifdef CONFIG_OVMS_COMP_WEBSERVER
WebInit();
#endif
@ -119,34 +123,7 @@ void OvmsVehicleRenaultZoePh2::IncomingFrameCan1(CAN_frame_t* p_frame) {
StandardMetrics.ms_v_env_charging12v->SetValue(true);
POLLSTATE_ON;
}
if (mt_bus_awake->AsBool() && !CarIsCharging && data[2] == 0x92 && data[3] == 0x10) { //received 0x9210 from LBC, only sent freely on starting charge so far
ESP_LOGI(TAG,"Zoe stared charging");
StandardMetrics.ms_v_env_on->SetValue(false);
StandardMetrics.ms_v_charge_inprogress->SetValue(true);
StandardMetrics.ms_v_charge_pilot->SetValue(true);
StandardMetrics.ms_v_charge_mode->SetValue("standard");
StandardMetrics.ms_v_charge_type->SetValue("type2");
StandardMetrics.ms_v_charge_state->SetValue("charging");
StandardMetrics.ms_v_charge_substate->SetValue("onrequest");
POLLSTATE_CHARGING;
}
if (mt_bus_awake->AsBool() && CarIsCharging && data[2] == 0x92 && data[3] == 0x43) { //received 0x9243 from LBC, only sent freely on stopping charge so far
ESP_LOGI(TAG,"Zoe stopped charging");
StandardMetrics.ms_v_charge_pilot->SetValue(false);
StandardMetrics.ms_v_charge_inprogress->SetValue(false);
StandardMetrics.ms_v_charge_mode->SetValue("standard");
StandardMetrics.ms_v_charge_type->SetValue("type2");
if (StandardMetrics.ms_v_bat_soc->AsInt() < 95) {
ESP_LOGI(TAG,"Zoe charge session was interrupted");
StandardMetrics.ms_v_charge_state->SetValue("stopped");
StandardMetrics.ms_v_charge_substate->SetValue("interrupted");
} else {
ESP_LOGI(TAG,"Zoe charge session completed");
StandardMetrics.ms_v_charge_state->SetValue("done");
StandardMetrics.ms_v_charge_substate->SetValue("onrequest");
}
POLLSTATE_ON;
}
if (mt_bus_awake->AsBool() && !CarIsDriving && StandardMetrics.ms_v_pos_gpsspeed->AsFloat() > 5) { //If GPS speed bigger than 5km/h then assume Vehicle driving, later I used OBD speed for that
ESP_LOGI(TAG,"Zoe is driving");
StandardMetrics.ms_v_env_on->SetValue(false);