I habe a proxu switch itrm that trlls med if carcharger is allowed and that switch is controled via the heatpump spotprice optimization mentioned before ever whole hour and if it toggles it allows or prohibit ev car charger. Since I cant read my cars SoC into openhab anymore i hav a number item for hour of charging needed, when chargins is completed i still allow 6A output tl cover pre conditioning.
Understood, thanks!
I think I probably know why sometimes command fails, I saw some errors in debug message like following:
2024-07-03 13:55:00.939 [DEBUG] [asee.internal.connector.WebInterface] - Could not add command to command queue because queue is already full. Maybe Easee Cloud is down?
2024-07-03 13:55:01.640 [DEBUG] [asee.internal.connector.WebInterface] - run queued commands, queue size is 20
For some reason the queue size is always around 20 in my setup, even I donāt send in any command.
Edit: it turns out that I set update frequency to often, notice each polling is 5 commands, and there are 20 in the queue. I changed it to update every minute and looks better now. The binding sends HTTP command every 5 seconds.
Seems like you could be on track of something. Is the binding supposed to send hhtp command every 5 seconds if polling intervall is 60? Have you tried to restart openHAB after changing polling time hence if you had 5 seconds before?
Hi sorry for late reply!
Based on my interpretation of the log, the polling is based on several (4-5 canāt remember) HTTP requests with 5 second interval. So each polling in my setup takes minimal 30 seconds. If I set the frequency too high, the queue will delay/reject requests, that seems to explain why I sometimes send command but nothing happens.
I currently still have the communication error ever noun and then, when it happens, the Thing is offline for a while until recovered. Has anybody experienced similar? Thanks
Hi, are there plans to integrate Easee Equalizer Amp ?
Hi all:
I have recently observed lots of errors like the below:
2025-01-12 11:54:24.691 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/ap
i/chargers/XXXXXXXX/sessions/latest - code: [429 Too Many Requests] - result: null
I tried to adjust polling interval to 300 (5 minutes) but still have them in log. Anybody experience similar issue? Maybe there has been some changes in version 4.3.1?
Many thanks
Same here. It looks like the sessions endpoint is now very limited. However this does not occour for the other API endpoints. The binding itself is not changed so this is a change by Easee.
For me it works as soon as I set the polling interval to 180 seconds. I wonder that this does not work for you.
I will change the binding and implement a dedicated polling interval just for that API endpoint. It is mainly used to retrieve the current sessionās energy which in fact does not need to be updated that often.
Hi @AlexF : Iām in dialogue with Easee but according to them there hasnāt been any changes to limit. Anyways I set the polling to 300 seconds and I can still see the errors occasionally. Iām using cellular connection so maybe there is more restrictive limit there. Anyways thanks for looking into it!
same here. polling is set to 360 seconds since one year. see my log entries.
2025-01-14 16:27:36.669 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHW28ZYE/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 16:30:32.298 [INFO ] [rg.openhab.core.model.script.myRules] - aktuelle solarproduktion : 36 W
2025-01-14 16:33:32.574 [INFO ] [rg.openhab.core.model.script.myRules] - aktuelle solarproduktion : 23 W
2025-01-14 16:33:36.695 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHW28ZYE/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 16:36:32.760 [INFO ] [rg.openhab.core.model.script.myRules] - aktuelle solarproduktion : 13 W
2025-01-14 16:39:32.959 [INFO ] [rg.openhab.core.model.script.myRules] - aktuelle solarproduktion : 17 W
2025-01-14 16:39:36.799 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHW28ZYE/sessions/latest - code: [429 Too Many Requests] - result: null
I am currently testing with my modified version:
dataPollingInterval 30
sessionDataPollingInterval 300
and it looks like this:
2025-01-14 00:56:48.335 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 01:26:49.035 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 01:56:48.586 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 02:26:47.910 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 02:56:48.387 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 03:26:48.852 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 03:56:48.552 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 04:26:47.893 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 04:56:48.326 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 05:26:48.522 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 05:56:48.991 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 06:26:47.210 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 06:56:48.623 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 07:26:48.549 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 07:56:48.212 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 08:26:48.377 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 08:56:48.122 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 09:26:48.598 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 09:56:47.576 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 10:26:47.745 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 10:56:47.281 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 11:26:48.922 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 11:56:48.839 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 12:26:48.252 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 12:56:48.456 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 13:26:48.877 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 13:56:47.189 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 14:26:47.176 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 14:56:48.178 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 15:26:47.249 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 15:56:47.980 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 16:26:48.362 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 16:56:47.613 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 17:26:49.908 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 17:56:49.655 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 18:26:48.656 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 18:56:49.693 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
2025-01-14 19:26:49.341 [INFO ] [see.internal.command.AbstractCommand] - command failed, url: https://api.easee.com/api/chargers/EHNBJJCG/sessions/latest - code: [429 Too Many Requests] - result: null
So it works in general but twice per hour the error still occours. I will test a little bit more but in general it seems to be a good idea to have a dedicated polling setting just for that endpoint.
Hi @AlexF : I have observe my automation to start charging based on schedule doesnāt work anymore. Do you think this issue can cause the binding not sending command to Easee to start/stop charging?
Edit:
In the log for example:
2025-01-14 22:26:51.714 [DEBUG] [internal.handler.EaseeChargerHandler] - command for easee:mastercharger:home:EaseeCharger:commands#pauseResume: ON
2025-01-14 22:26:53.233 [DEBUG] [asee.internal.connector.WebInterface] - run queued commands, queue size is 1
2025-01-14 22:26:54.477 [DEBUG] [see.internal.command.AbstractCommand] - received content, length: 63
2025-01-14 22:26:54.558 [DEBUG] [see.internal.command.AbstractCommand] - HTTP response 202
2025-01-14 22:26:54.558 [DEBUG] [see.internal.command.AbstractCommand] - JSON String: {"device":"XXXXXXXX","commandId":48,"ticks":638724868162506890}
2025-01-14 22:26:54.558 [DEBUG] [see.internal.command.AbstractCommand] - success
2025-01-14 22:26:58.233 [DEBUG] [asee.internal.connector.WebInterface] - run queued commands, queue size is 0
I send resume command when operation mode is 2 (awaiting start), however the charge doesnāt seem to start charging despite the command was sent. No other error spot in the log.
Edit 2:
Ok it now starts to charge. Iām not sure why there is such a huge delay (more than 5 minutes):
2025-01-14 22:32:14.665 [INFO ] [org.openhab.core.model.script.Easee ] - Receive operation mode change from EaseeHomecloud Charging
Was the start charging command sent right away or based on polling interval (which I set 5 minutes)? During the period my Easee App showed the charger was paused and the car didnāt receive power until 5 minutes laterā¦
Edit 3:
Would like to report another finding. I have connected commands#pauseResume to a HomeKit switch (more precisely the active state of a fan). If I start charging from Easee app, charge will start almost immediately, however after 2-5 minutes, the binding sends OFF command to pause charging. I have experienced this several times during my test in the last couple of days. If I disable Easee thing, the charge will continue and not interrupted.
Could this behaviour be explained by out of sync state? My theory is that the update from Easee is delayed, and hence it thinks the charger is still in pause, and for some reason it triggers the pause command from the binding?
Thanks
Hi sorry to keep posting, the schedule automation hasnāt been working well so would very much like to find a solution as right now I had to set an alarm to get up at midnight to check if charging has started or not.
Iād like to request for a feature to implement āSet Basic Charge Planā. At the moment I use OH to schedule to charge during off peak hours (based on lowest EL price), and then when the time comes OH sends āstart chargingā command. It used to work rock solid until Autumn but since then it became unstable. I observed the case that command was sent but charging didnāt start. I have a retry in my rules to send 5 times but even thought it failed multiple times.
The āSet Basic Charge Planā as I understand will set a delayed charging in Easee, so the timer is controlled by Easee, which Iām hoping more stable. Furthermore it allows to set a range so that stop charging at expensive hours is also possible. Appreciate if you can consider in the future version.
Hi @AlexF
I have now received the following reply from Easee about the limit:
āAll endpoints under /api/sessions/ and /api/charging-sessions/ are now capped with a token bucket policy. Each bucket has 10 tokens and 1 token is replenished every 6 minutes. When a request is capped, you can check the response headers to get a snapshot of the capping status, bucket capacity, remaining requests and retry after the timeout.ā
Iām not sure I understand how it works but think I would post here maybe it helps you to understand the limit.
Best regards
Thanks this means you have 10 requests per hour. It is up to the API user how He makes usw of it. Either 1 request every 6 minutes or for example 5 requests every 30 minutes.
Currently I have Set my config to polly every 300 seconds = 12/hour which results in 2 errors per hour.
What data is polled from the session endpoint?
Those with the group prefix ālatestSessionā, which are 3 in total.
I am not sure about this. In my opinion the idea of openHAB is to integrate different smart home systems and move the logic/intelligence into rules @ openHAB. Managing rules, schedules and automation in 3rd party systems is quite complicated.
I have a charging rule that triggers every minute and checks conditions to start charging e.g. enough solar energy available, car battery below a defined level or a manual override switch to start charging immediately. As long as charging conditions are met and charging did not start (of course a car needs to be connected as a condition as well) it will try to start charging. This way it is fail safe because it will retry every 60 seconds.
Ok thanks, I agree it is not very important to poll as frequent as other data from Easee. Look forward to the new version and please let me know if you want to test the change.
Thanks for considering my request, I think I have much simpler use-case (I donāt have solar panels). I know the electricity price in advance, and hence when the car is connected I can easily calculate when to charge to optimise the cost, and the time to start charging doesnāt really change (because electricity price is known in advance and never changes). So basically I need some simple schedule that can start/stop charging (in theory I donāt even need to stop charging as I set limit on my car).
I have slightly different views on this though: OH does add smartness and interoperability of devices from different platforms, however I tend to use the smart feature of device (if provided) instead of implementing the same in OH. The reason is reliability, in my very simple use-case if Easee support scheduling, why add complexity and more boxes/software to do the same (hence my feature request)? I have observed instability with my setup and it also adds more points of failures (server, software, network etc). Anyways appreciate you looked at it
Have a great weekend all!
I changed the polling rate to 400 sec. Now everything is fine. No errors from easee till now. Thanks for your work on this binding.
Nice weekend
Hi Alex, I will receive next week my electrical car and to be ready I installed the Easee up with the Equalizer. This combination gives the possibility to charge only on solar. There are a couple of settings but I donāt believe they exist in the binding. Can you confirm this. Is this a limitation of the binding our is this missing in the Easee cloud API.
PS Thans for the binding!