dingo35 / SmartEVSE-3.5

Smart Electric Vehicle Charging Station (EVSE)
MIT License
44 stars 20 forks source link

Consumed EV power is not rounded off on display #27

Closed rhannink closed 6 months ago

rhannink commented 7 months ago

I have been running version 1.8.0 (Serki) and 3.5RC1 (dingo35) and with both firmware versions I have the same problem:

I am using an Eastron SDM72 Kwh meter to measure the power transfered to the EV. I feed the Kwh meter from the bottom so I have to usb the Eastron inverted profile.

On the display the value is not rondde off and very long, running through the schematisch drawing. (see the attached picture)

I use HA to sent the netmains values to the smartevse (REST API). Besides this cosmetic bug, everything is working fine. And my new Volvo EX30 is charged fine.

IMG_7064

This is the config of my SmartEVSE:

{"version":"v3.5.0-RC1","mode":"SMART","mode_id":3,"car_connected":true,"wifi":{"status":"WL_CONNECTED","ssid":"name-of-SSID","rssi":-65,"bssid":"AA:BB:CC:DD:EE:FF"},"evse":{"temp":27,"temp_max":65,"connected":true,"access":true,"mode":1,"loadbl":0,"pwm":272,"solar_stop_timer":0,"state":"Charging","state_id":2,"error":"None","error_id":0,"rfid":"Not Installed"},"settings":{"charge_current":160,"override_current":0,"current_min":6,"current_max":16,"current_main":25,"current_max_circuit":16,"current_max_sum_mains":75,"solar_max_import":2,"solar_start_current":4,"solar_stop_time":10,"enable_C2":"Not present","modem":"Not present","mains_meter":"API","starttime":0,"stoptime":0,"repeat":0},"mqtt":{"host":"xxx.xxxx.xxx.xxx","port":1883,"topic_prefix":"SmartEVSE-laadpaal","username":"","password_set":false,"status":"Connected"},"home_battery":{"current":0,"last_update":0},"ev_meter":{"description":"InvEastrn","address":12,"import_active_power":-10.2,"total_kwh":52.8,"charged_kwh":3.2,"currents":{"TOTAL":470,"L1":157,"L2":157,"L3":156},"import_active_energy":52.8,"export_active_energy":0},"mains_meter":{"import_active_energy":0,"export_active_energy":0},"phase_currents":{"TOTAL":470,"L1":160,"L2":150,"L3":160,"last_data_update":1709661440,"original_data":{"TOTAL":470,"L1":160,"L2":150,"L3":160}},"backlight":{"timer":120,"status":"ON"}}```

Here is a small part of the logfile:

(I) (printStatus)(C1) STATE: C Error: 0 StartCurrent: -4 ChargeDelay: 0 SolarStopTimer: 0 NoCurrent: 0 Imeasured: 16.0 A IsetBalanced: 16.0 A
(I) (printStatus)(C1) L1: 16.0 A L2: 15.0 A L3: 16.0 A Isum: 47.0 A
(D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x0034, token:0x0c040034, data: 0x0002.
(MBhandleError)(C0) Error response: E0 - Timeout, address: 0c, function: 04, reg: 0034.
(D) (Timer100ms)(C0) ModbusRequest 21: Request EVMeter Current Measurement Node 0
(D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x0006, token:0x0c040006, data: 0x000c.
(D) (ModbusDecode)(C0) Received packet (27 bytes) 0c 04 18 41 7b 13 a0 41 7b 2d 9f 41 7b 70 6d c5 56 9d ae c5 55 76 85 c5 57 0b 5b
q(V) (ModbusDecode)(C0)  valid Modbus packet: Address 0x0c Function 0x04 Register 0x0006 Response
(V) (CalcBalancedCurrent)(C0) Checkpoint 1 Isetbalanced=16.0 A Imeasured=16.0 A MaxCircuit=16 Imeasured_EV=15.7 A, Battery Current = 0.0 A, mode=1.
(V) (CalcBalancedCurrent)(C0) phaseLastUpdate=1709661020,processed=1709661020.
(V) (CalcBalancedCurrent)(C0) Checkpoint 2 Isetbalanced=16.0 A, Idifference=0.3, mod=0.
(V) (CalcBalancedCurrent)(C0) Checkpoint 4 Isetbalanced=16.0 A.
(V) (CalcBalancedCurrent)(C0) Checkpoint 5 Isetbalanced=16.0 A.
(I) (printStatus)(C0) STATE: C Error: 0 StartCurrent: -4 ChargeDelay: 0 SolarStopTimer: 0 NoCurrent: 0 Imeasured: 16.0 A IsetBalanced: 16.0 A
(I) (printStatus)(C0) L1: 16.0 A L2: 15.0 A L3: 16.0 A Isum: 47.0 A

Gr. Remco

dingo35 commented 7 months ago

End of March I'll have this EVMeter connected to my testbench, please have patience till then!

dingo35 commented 6 months ago

We had some code changes, not sure if this solves it?

05612caad1.zip

rhannink commented 6 months ago

I am afraid its not solving anything. Even worse, I get a red flashing button and display showing that EV meter could not be connected and I should check wiring and configuration. Returning back to 3.5-RC1 solved this problem of the red flashing button, but the non rounded value is still there..

Gr. Remco

dingo35 commented 6 months ago

Ok I don't have my kWh meter at my current location so I can't test it myself, does this version solve the red flashing button and/or the rounded value?

c9c27272a.zip

rhannink commented 6 months ago

Too bad, the screen not shows different (power loaded instead of current) But also the non rounded number.

I think you are almost there ;-) IMG_7085 2

dingo35 commented 6 months ago

Problem solved in current master.

rhannink commented 6 months ago

Thanks @dingo35, how can I test? Just wait for the 3.5 release or do you already have a binary I can test.

Gr. Remco

dingo35 commented 6 months ago

Sure you can test this:

c75748d34de8.zip

rhannink commented 6 months ago

@dingo35,

Thank you, the non rounded value is now gone. But is does not show the amount of loaded energy (kw) into the car at all. Is this the expected behaviour?

Kind regards, Remco

dingo35 commented 6 months ago

In Smart mode it toggles from the big font and also in small just above the feed line from the house to the EV. The per phase currents have been dropped due to aesthetics, you can still see them on the webserver.

rhannink commented 6 months ago

Ok,

I only see currents on the display. From grid to house current per phase. From house to car sum of currents and blow the schematisch also sum of current is toggling. But I was hoping to see the amount of energy sent to the car. Of course I can read it from the KWH meter but I was hoping to she it on the display of the smartEVSE.

Gr. Remco

dingo35 commented 6 months ago

20240401_194131 20240401_194056

rhannink commented 6 months ago

@Dingo35

Thats strange. I will sent you a screenshot of my smartEVSE tonight, but it only shows current to the car. No power in Kwh is shown on my display. Where your display shows 10KWh mine shows 16A. And the 18.29 and 18.3 KWh is not showing at all. Maybe it takes a while before it is showing/toggling the power values?

Gr. Remco

dingo35 commented 6 months ago

Are you sure your flash was succesful?

rhannink commented 6 months ago

The webinterfaces shows version: Version: 11:11:49 @Apr 1 2024 This is what my screen toggles between: IMG_7117 IMG_7118 IMG_7116

Gr. Remco

dingo35 commented 6 months ago

https://github.com/dingo35/SmartEVSE-3.5/assets/6104159/24341243-c8ac-4228-a3ed-89617b573daa

Im sorry, I built an SDM72 in my test rig, put it on Inverted Eastron, and this is what it does as soon as it starts charging:

https://github.com/dingo35/SmartEVSE-3.5/assets/6104159/da7c31ec-2d15-4209-a1a9-e4eab85d73c0

So unless you find out what magic is happening in your config, you will have to walk to your webserver screen.....

rhannink commented 6 months ago

Check,

I think I already discovered what is the problem. Or I disabled the EV meter or it happened during upgrade.

{"version":"11:11:49 @Apr 1 2024","mode":"OFF","mode_id":0,"car_connected":false,"wifi":{"status":"WL_CONNECTED","ssid":"hannink.org","rssi":-64,"bssid":"F6:9F:C2:F7:C5:23"},"evse":{"temp":23,"temp_max":65,"connected":false,"access":false,"mode":1,"loadbl":0,"pwm":1024,"solar_stop_timer":0,"state":"Ready to Charge","state_id":0,"error":"None","error_id":0,"rfid":"Not Installed"},"settings":{"charge_current":160,"override_current":0,"current_min":6,"current_max":16,"current_main":25,"current_max_circuit":16,"current_max_sum_mains":75,"solar_max_import":2,"solar_start_current":4,"solar_stop_time":10,"enable_C2":"Not present","modem":"Not present","mains_meter":"API","starttime":0,"stoptime":0,"repeat":0},"mqtt":{"host":"127.0.0.1","port":1883,"topic_prefix":"SmartEVSE-6828","username":"","password_set":false,"status":"Disconnected"},"home_battery":{"current":0,"last_update":0},"ev_meter":{"description":"Disabled","address":12,"import_active_power":0,"total_kwh":0,"charged_kwh":0,"currents":{"TOTAL":0,"L1":0,"L2":0,"L3":0},"import_active_energy":0,"export_active_energy":0},"mains_meter":{"import_active_energy":0,"export_active_energy":0},"phase_currents":{"TOTAL":20,"L1":10,"L2":0,"L3":10,"last_data_update":1712212710,"original_data":{"TOTAL":20,"L1":10,"L2":0,"L3":10}},"backlight":{"timer":0,"status":"OFF"}}

I will turn it on this evening and test again, sorry for the fuzz....

rhannink commented 6 months ago

Ah,

I just read the 3.5 RC2 release notes:

Because we added some kWh meters, the config of your MainsMeter or EVMeter might be changed to the wrong type; we prevent this for future releases by reserving some slots so we can add more meters without changing their config id.

This is probably what happened?

dingo35 commented 6 months ago

Ok mystery solved!

rhannink commented 6 months ago

@dingo35,

To bad, but the problem is still there. I enabled the inverted eastron meter again. Now the screens toggle between: IMG_7123 IMG_7124 IMG_7126

I also flashed the Smartevse with the latest 3.5-RC02 firmware, but still same result.

Gr. Remco

dingo35 commented 6 months ago

Flash RC2 in your SmartEVSE, and start actively charging, and then: 1) What does the Eastron show on Total Power on its OWN LCD screen? 2) What does at that moment, the webserver screen of the SmartEVSE show? 3) At that moment, dump the "Raw" output, so we can see what import_active_power reports

It looks like your meter reports some astronomical high power usage, which then is displayed as you report... If you want to investigate that further: 4) Make a verbose debug log through telnet so we can see what modbus message is sent to your EV meter, and what message is returned....

I can "sort of" reproduce your screen when simulating pumping several GW into the SmartEVSE, but even then the screen is not exactly like yours..... which points to your RC2 differs from my RC2 ?!?

rhannink commented 6 months ago

RC2 flashed and charging. 1- EV meter shows IMG_7127 IMG_7129

2- webserver shows:

image

3- raw output configuration is: {"version":"v3.5.0-RC2","mode":"SMART","mode_id":3,"car_connected":true,"wifi":{"status":"WL_CONNECTED","ssid":"hannink.org","rssi":-58,"bssid":"F6:9F:C2:F7:C5:23"},"evse":{"temp":40,"temp_max":65,"connected":true,"access":true,"mode":1,"loadbl":0,"pwm":272,"solar_stop_timer":0,"state":"Charging","state_id":2,"error":"None","error_id":0,"rfid":"Not Installed"},"settings":{"charge_current":160,"override_current":0,"current_min":6,"current_max":16,"current_main":25,"current_max_circuit":16,"current_max_sum_mains":75,"solar_max_import":2,"solar_start_current":4,"solar_stop_time":10,"enable_C2":"Not present","modem":"Not present","mains_meter":"API","starttime":0,"stoptime":0,"repeat":0},"mqtt":{"host":"127.0.0.1","port":1883,"topic_prefix":"SmartEVSE-6828","username":"","password_set":false,"status":"Disconnected"},"home_battery":{"current":0,"last_update":0},"ev_meter":{"description":"InvEastrn","address":12,"import_active_power":-10.5,"total_kwh":595.4000244,"charged_kwh":0.800000012,"currents":{"TOTAL":470,"L1":155,"L2":156,"L3":159},"import_active_energy":595.4000244,"export_active_energy":0},"mains_meter":{"import_active_energy":0,"export_active_energy":0},"phase_currents":{"TOTAL":440,"L1":150,"L2":140,"L3":150,"last_data_update":1712306915,"original_data":{"TOTAL":440,"L1":150,"L2":140,"L3":150}},"backlight":{"timer":120,"status":"ON"}}

4- Part of the telnet debugging shows:

(D) (Timer100ms)(C0) ModbusRequest 4: Request Energy Node 0 (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x004a, token:0x0c04004a, data: 0x0002. (D) (ModbusDecode)(C1) Received packet (7 bytes) 0c 04 04 44 14 a4 fe (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x004a Response (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x0034, token:0x0c040034, data: 0x0002. (D) (ModbusDecode)(C1) Received packet (7 bytes) 0c 04 04 c6 23 74 4b (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x0034 Response (D) (Timer100ms)(C0) ModbusRequest 20: Request EVMeter Current Measurement Node 0 (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x0006, token:0x0c040006, data: 0x000c. (D) (ModbusDecode)(C1) Received packet (27 bytes) 0c 04 18 41 76 29 71 41 78 6b 75 41 7e 8c 03 c5 58 60 23 c5 57 a3 78 c5 5d cd 91 (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x0006 Response (V) (CalcBalancedCurrent)(C0) Checkpoint 1 Isetbalanced=16.0 A Imeasured=15.0 A MaxCircuit=16 Imeasured_EV=15.9 A, Battery Current = 0.0 A, mode=1. (V) (CalcBalancedCurrent)(C0) phaseLastUpdate=1712306640. (V) (CalcBalancedCurrent)(C0) Checkpoint 2 Isetbalanced=16.0 A, Idifference=0.1, mod=0. (V) (CalcBalancedCurrent)(C0) Checkpoint 4 Isetbalanced=16.0 A. (V) (CalcBalancedCurrent)(C0) Checkpoint 5 Isetbalanced=16.0 A. (I) (printStatus)(C0) STATE: C Error: 0 StartCurrent: -4 ChargeDelay: 0 SolarStopTimer: 0 NoCurrent: 0 Imeasured: 15.0 A IsetBalanced: 16.0 A (I) (printStatus)(C0) L1: 15.0 A L2: 14.0 A L3: 15.0 A Isum: 44.0 A (D) (Timer100ms)(C0) ModbusRequest 4: Request Energy Node 0 (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x004a, token:0x0c04004a, data: 0x0002. (D) (ModbusDecode)(C1) Received packet (7 bytes) 0c 04 04 44 14 a5 60 (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x004a Response (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x0034, token:0x0c040034, data: 0x0002. (D) (ModbusDecode)(C1) Received packet (7 bytes) 0c 04 04 c6 23 82 86 (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x0034 Response (D) (Timer100ms)(C0) ModbusRequest 20: Request EVMeter Current Measurement Node 0 (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x0006, token:0x0c040006, data: 0x000c. (D) (ModbusDecode)(C1) Received packet (27 bytes) 0c 04 18 41 76 23 e0 41 78 7d 09 41 7e af cf c5 58 45 5e c5 57 b6 11 c5 5e 0e a7 (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x0006 Response (V) (CalcBalancedCurrent)(C0) Checkpoint 1 Isetbalanced=16.0 A Imeasured=15.0 A MaxCircuit=16 Imeasured_EV=15.9 A, Battery Current = 0.0 A, mode=1. (V) (CalcBalancedCurrent)(C0) Checkpoint 2 Isetbalanced=16.0 A, Idifference=0.1, mod=0. (V) (CalcBalancedCurrent)(C0) Checkpoint 4 Isetbalanced=16.0 A. (V) (CalcBalancedCurrent)(C0) Checkpoint 5 Isetbalanced=16.0 A. (I) (printStatus)(C0) STATE: C Error: 0 StartCurrent: -4 ChargeDelay: 0 SolarStopTimer: 0 NoCurrent: 0 Imeasured: 15.0 A IsetBalanced: 16.0 A (I) (printStatus)(C0) L1: 15.0 A L2: 14.0 A L3: 15.0 A Isum: 44.0 A (D) (Timer100ms)(C0) ModbusRequest 4: Request Energy Node 0 (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x004a, token:0x0c04004a, data: 0x0002. (D) (ModbusDecode)(C1) Received packet (7 bytes) 0c 04 04 44 14 a5 b2 (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x004a Response (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x0034, token:0x0c040034, data: 0x0002. (D) (ModbusDecode)(C1) Received packet (7 bytes) 0c 04 04 c6 23 7f ce (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x0034 Response (D) (Timer100ms)(C0) ModbusRequest 20: Request EVMeter Current Measurement Node 0 (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x0006, token:0x0c040006, data: 0x000c. (D) (ModbusDecode)(C1) Received packet (27 bytes) 0c 04 18 41 76 40 c9 41 78 89 0b 41 7e 9c 15 c5 58 95 82 c5 57 c4 51 c5 5d a5 64 (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x0006 Response (V) (CalcBalancedCurrent)(C0) Checkpoint 1 Isetbalanced=16.0 A Imeasured=15.0 A MaxCircuit=16 Imeasured_EV=15.9 A, Battery Current = 0.0 A, mode=1. (V) (CalcBalancedCurrent)(C0) phaseLastUpdate=1712306645. (V) (CalcBalancedCurrent)(C0) Checkpoint 2 Isetbalanced=16.0 A, Idifference=0.1, mod=0. (V) (CalcBalancedCurrent)(C0) Checkpoint 4 Isetbalanced=16.0 A. (V) (CalcBalancedCurrent)(C0) Checkpoint 5 Isetbalanced=16.0 A. (I) (printStatus)(C0) STATE: C Error: 0 StartCurrent: -4 ChargeDelay: 0 SolarStopTimer: 0 NoCurrent: 0 Imeasured: 15.0 A IsetBalanced: 16.0 A (I) (printStatus)(C0) L1: 15.0 A L2: 14.0 A L3: 15.0 A Isum: 44.0 A (D) (Timer100ms)(C0) ModbusRequest 4: Request Energy Node 0 (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x004a, token:0x0c04004a, data: 0x0002. (D) (ModbusDecode)(C1) Received packet (7 bytes) 0c 04 04 44 14 a6 14 (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x004a Response (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x0034, token:0x0c040034, data: 0x0002. (D) (ModbusDecode)(C1) Received packet (7 bytes) 0c 04 04 c6 23 89 ff (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x0034 Response (D) (Timer100ms)(C0) ModbusRequest 20: Request EVMeter Current Measurement Node 0 (D) (ModbusSend8)(C0) Sent packet address: 0x0c, function: 0x04, reg: 0x0006, token:0x0c040006, data: 0x000c. (D) (ModbusDecode)(C1) Received packet (27 bytes) 0c 04 18 41 76 54 99 41 78 b0 aa 41 7e c1 d4 c5 58 91 33 c5 57 ef 9a c5 5d a7 2f (V) (ModbusDecode)(C1) valid Modbus packet: Address 0x0c Function 0x04 Register 0x0006 Response (V) (CalcBalancedCurrent)(C0) Checkpoint 1 Isetbalanced=16.0 A Imeasured=15.0 A MaxCircuit=16 Imeasured_EV=15.9 A, Battery Current = 0.0 A, mode=1. (V) (CalcBalancedCurrent)(C0) Checkpoint 2 Isetbalanced=16.0 A, Idifference=0.1, mod=0. (V) (CalcBalancedCurrent)(C0) Checkpoint 4 Isetbalanced=16.0 A. (V) (CalcBalancedCurrent)(C0) Checkpoint 5 Isetbalanced=16.0 A.

dingo35 commented 6 months ago

Ok your negative power might be the problem here, I have to wait until my EV is back home to see what my production system is doing...

dingo35 commented 6 months ago

Does this improve things:

88d9d5c18.zip

rhannink commented 5 months ago

Yep,

This version is ok. The display now shows everything ok, it toggles through the different values without any rounding errors.

Thanks for the help. and keep up the good work on this nice project.

Gr. Remco

rhannink commented 1 week ago

Hello,

In version 3.6 of the SmartEVSE software, the not rounded off bug is re-introduced.

Gr. Remco Hannink

dingo35 commented 1 week ago

Thx for your report; that fix is still in there; ...unfortunately no Eastron here at my testsite so I need more info to try to simulate the error. Could you provide: -the display of the Eastron EV meter -the display of the webserver -the telnet log -the settings dump

rhannink commented 5 days ago

@dingo35

Here the requested information. I see that the meter shows a negative power in the webinterface. I was not able to load the debug version / telnet logs. I wil sent these later.

Gr. Remco

image

IMG_7777

{"version":"v3.6.10","serialnr":6828,"mode":"SMART","mode_id":3,"car_connected":true,"wifi":{"status":"WL_CONNECTED","ssid":"hannink.org","rssi":-64,"bssid":"F6:9F:C2:F7:C5:23"},"evse":{"temp":36,"temp_max":65,"connected":true,"access":true,"mode":1,"loadbl":0,"pwm":272,"solar_stop_timer":0,"state":"Charging","state_id":2,"error":"None","error_id":0,"rfid":"Not Installed"},"settings":{"charge_current":160,"override_current":0,"current_min":6,"current_max":16,"current_main":25,"current_max_circuit":16,"current_max_sum_mains":75,"max_sum_mains_time":0,"solar_max_import":2,"solar_start_current":4,"solar_stop_time":10,"enable_C2":"Not present","mains_meter":"API","starttime":0,"stoptime":0,"repeat":0},"mqtt":{"host":"127.0.0.1","port":1883,"topic_prefix":"SmartEVSE-6828","username":"","password_set":false,"status":"Disconnected"},"home_battery":{"current":0,"last_update":0},"ev_meter":{"description":"InvEastrn","address":12,"import_active_power":-10.39999962,"total_kwh":3100.100098,"charged_kwh":6.900000095,"currents":{"TOTAL":457,"L1":152,"L2":153,"L3":152},"import_active_energy":3100.100098,"export_active_energy":0},"mains_meter":{"import_active_energy":0,"export_active_energy":0},"phase_currents":{"TOTAL":410,"L1":140,"L2":130,"L3":140,"last_data_update":1727427540,"original_data":{"TOTAL":410,"L1":140,"L2":130,"L3":140}},"backlight":{"timer":120,"status":"ON"}}