Hello together,
i installed the openhab go eCharger Binding (Go-eCharger - Bindings | openHAB) a few weeks ago. Since them I had several times the issues that the bindings stops working which means the value of the linked items were not updated anymore. Deactivating and activating the thing always solved the issue.
After a while I increased the log level of the binding to trace and found the following results:
2023-03-08 13:44:18.115 [TRACE] [internal.handler.GoEChargerV2Handler] - GET URL = http://xxx.xxx.xxx.xxx/api/status?filter=mod,psm,trx,alw,tma,wh,dwo,frc,nrg,car,amp,err,cbl,eto,
fwv
2023-03-08 13:44:18.243 [TRACE] [internal.handler.GoEChargerV2Handler] - GET Response: {"alw":false,"dwo":20000,"eto":141722,"amp":10,"frc":0,"car":1,"err":0,"cbl":0,"wh":20001
.24,"trx":null,"fwv":"055.0","tma":[25.5,21],"nrg":[229.71,229.09,229.09,1.86,0,0,0,0,0,0,0,0,0,0,0,0],"psm":2}
2023-03-08 13:44:48.306 [TRACE] [internal.handler.GoEChargerV2Handler] - GET URL = http://xxx.xxx.xxx.xxx/api/status?filter=mod,psm,trx,alw,tma,wh,dwo,frc,nrg,car,amp,err,cbl,eto,fwv
2023-03-08 13:44:48.448 [TRACE] [internal.handler.GoEChargerV2Handler] - GET Response: {"alw":false,"dwo":20000,"eto":141722,"amp":10,"frc":0,"car":1,"err":0,"cbl":0,"wh":20001.24,"trx":null,"fwv":"055.0","tma":[25.5,21],"nrg":[229.71,229.09,229.4,1.86,0,0,0,0,0,0,0,0,0,0,0,0],"psm":2}
2023-03-08 13:45:18.531 [TRACE] [internal.handler.GoEChargerV2Handler] - GET URL = http://xxx.xxx.xxx.xxx/api/status?filter=mod,psm,trx,alw,tma,wh,dwo,frc,nrg,car,amp,err,cbl,eto,fwv
2023-03-08 13:45:18.660 [TRACE] [internal.handler.GoEChargerV2Handler] - GET Response: {"alw":false,"dwo":20000,"eto":141722,"amp":10,"frc":0,"car":1,"err":0,"cbl":0,"wh":20001.24,"trx":null,"fwv":"055.0","tma":[-16843.01],"nrg":[229.71,229.4,229.4,1.86,0,0,0,0,0,0,0,0,0,0,0,0],"psm":2}
2023-03-08 13:45:18.734 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at org.openhab.binding.goecharger.internal.handler.GoEChargerV2Handler.getValue(GoEChargerV2Handler.java:155) ~[?:?]
at org.openhab.binding.goecharger.internal.handler.GoEChargerV2Handler.lambda$1(GoEChargerV2Handler.java:383) ~[?:?]
at java.util.ArrayList.forEach(ArrayList.java:1541) ~[?:?]
at org.openhab.binding.goecharger.internal.handler.GoEChargerV2Handler.updateChannelsAndStatus(GoEChargerV2Handler.java:383) ~[?:?]
at org.openhab.binding.goecharger.internal.handler.GoEChargerBaseHandler.refresh(GoEChargerBaseHandler.java:126) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
For me it looks like the wallbox is answering with the wrong temperature array for the value tma
.
Does anybody else having this issue - in such a case I could open a Merge Request for the relative simple fix:
@@ -149,7 +149,7 @@ public class GoEChargerV2Handler extends GoEChargerBaseHandler {
}
return new QuantityType<>(goeResponse.temperatures[0], SIUnits.CELSIUS);
case TEMPERATURE_CIRCUIT_BOARD:
- if (goeResponse.temperatures == null) {
+ if (goeResponse.temperatures == null || goeResponse.temperatures.length < 2) {
return UnDefType.UNDEF;
}
return new QuantityType<>(goeResponse.temperatures[1], SIUnits.CELSIUS);
I am just evaluating this fix at the moment.
Best regards
Schogit