Because each entity has its own specific endpoint, it's better to do the polling for each individual entity. With the current coordinated polling, if any error occurs all entities become unavailable.
Also this change allows for simultaneously updates, resulting in a faster overall refresh. And loading the integration no longer waits for the refresh to complete.
It keeps trying to refresh unavailable entities (the error is only logged once).
There are no breaking changes.
Replace coordinated polling with individual polling. Remove code that is no longer needed.
Increase the update interval for binary sensors to 300 seconds and sensors to 60 seconds. Both were 30 seconds.
Refactor services.py and move all interaction with Grocy to the GrocyData class.
Because each entity has its own specific endpoint, it's better to do the polling for each individual entity. With the current coordinated polling, if any error occurs all entities become unavailable. Also this change allows for simultaneously updates, resulting in a faster overall refresh. And loading the integration no longer waits for the refresh to complete. It keeps trying to refresh unavailable entities (the error is only logged once).
There are no breaking changes.
Fixes #238, Fixes #245