Change charge on off behavior
This commit is contained in:
parent
c4bda8ee68
commit
9f993bfc4d
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue