Closed bennijamm closed 3 years ago
Bonjour, Avec un temps de polling à 1s ça m'étonne pas qu'il finisse par y avoir des erreurs. De mon côté je suis à 5s et je n'ai plus d'erreurs. J'ai des modifs à faire pour essayer de corriger ça, je vais essayer de faire ça ce week-end
Pour info, j'ai mis 5 secondes aussi et j'ai eu des erreurs de soir :
Logger: homeassistant.components.websocket_api.http.connection
Source: custom_components/ipx800v4/cover.py:75
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 6:57:11 (2 occurrences)
Last logged: 20:30:27
[139710264806944] ('IPX800 api request error, url: %s`r%s', 'http://10.0.4.200:80/api/xdevices.json?key=removed&SetVR08=0', {'product': 'IPX800_V4', 'status': 'Error'})
[139710264806944] ('IPX800 api request error, url: %s`r%s', 'http://10.0.4.200:80/api/xdevices.json?key=removed&SetVR06=100', {'product': 'IPX800_V4', 'status': 'Error'})
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 143, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1480, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1515, in _execute_service
await handler.job.target(service_call)
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 206, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 649, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 692, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 686, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/cover/__init__.py", line 281, in async_set_cover_position
await self.hass.async_add_executor_job(
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/ipx800v4/cover.py", line 75, in set_cover_position
self.control.set_level(kwargs.get(ATTR_POSITION))
File "/usr/local/lib/python3.8/site-packages/pypx800/__init__.py", line 351, in set_level
self._request_api(params)
File "/usr/local/lib/python3.8/site-packages/pypx800/__init__.py", line 37, in _request_api
raise Exception(
Exception: ('IPX800 api request error, url: %s`r%s', 'http://10.0.4.200:80/api/xdevices.json?key=removed&SetVR08=0', {'product': 'IPX800_V4', 'status': 'Error'})
Peux-tu tester avec la dernière version de la branche dev ?
Avec la dernière version, une mise à jour de l'état est faite automatiquement quand une actione st faite côté home assistant
super, je teste ça de suite !
Logger: homeassistant
Source: custom_components/ipx800v4/light.py:154
First occurred: 20:46:42 (1 occurrences)
Last logged: 20:46:42
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 130, in _handle_refresh_interval
await self.async_refresh()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 161, in async_refresh
await self._async_refresh(log_failures=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 235, in _async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 295, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 310, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 334, in _async_write_ha_state
sstate = self.state
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 704, in state
return STATE_ON if self.is_on else STATE_OFF
File "/config/custom_components/ipx800v4/light.py", line 154, in is_on
return self.coordinator.data[f"G{self._id}"]["Etat"] == "ON"
KeyError: 'G4'
Ca peut arriver qu'il y ait des erreurs, l'IPX800 ne répond pas toujours correctement aux requêtes, l'important c'est qu'il n'y en ait pas souvent et qu'il n'y ait pas d'erreurs lors d'actions
ok, par contre, si je mets 10 sec d'intervalle (ou plus), les binaries réagissent bizarrement. Ex : j'allume une lumière depuis HA, je passe donc de Off à On. Au bout de quelques secondes, le bouton repasse à off... puis à l'intervalle, quand l'IPX est lu, ça repasse à On... Est ce normal par rapport à la mise à jour de l'état qui est faite automatiquement quand une action est faite côté home assistant ?
Depuis la version https://github.com/Aohzan/ipx800/tree/2.1.1, ça ne devrait plus retourner à l'état d'avant (sauf si l'IPX met beaucoup de temps à répondre mais ça serait bizarre)
je viens de tester à l'instant avec la branche dev... tu veux une capture vidéo ?
Non je vois bien de quoi tu parles : https://community.home-assistant.io/t/state-not-keeping-updated-on-change/270891
Je comprends pas pourquoi ça fonctionne chez moi et pas chez toi. Est-ce que tu as d'autres équipements qui communiquent avec l'IPX800 en même temps ?
Oui, voilà, ça fait exactement ça ! Non, HA est le seul à interroger l'IPX. J'avais avant un Jeedom mais il est arrêté.
tu peux activer le debug des logs et regarder s'il y a bien un ipx800...fetching data
au moment où tu actionnes une lumière ?
logger:
default: warning
logs:
custom_components.ipx800v4: debug
yes, il y a bien un fetching data quand j'allume ou éteint une lumière. Par contre, au moment d'éteindre la lumière, la lumière s'éteint bien, le curseur passe en éteint puis revient aussitôt sur la position "allumée".
Est-ce que ça le fait sur toutes les lumières ? Sur quelles types d'extensions sont-elles branchées ? Tu peux faire le test sur des Virtual Output ou entrées virtuelles du genre ?
Est-ce que tu peux remplacer la ligne 141 du fichier __init__.py
par pour savoir qu'est ce qui est retournée comme valeur par l'IPX au moment où tu fais l'action :
data = await ipx.global_get()
_LOGGER.debug("### Debug data received: %s", data)
return data
Sans nouvelles je ferme
Bonjour, Je viens de passer la version de dev sur mon serveur HA et je rencontre toujours des bugs :
` Logger: homeassistant.components.websocket_api.http.connection Source: custom_components/ipx800v4/light.py:77 Integration: Home Assistant WebSocket API (documentation, issues) First occurred: 22:47:16 (2 occurrences) Last logged: 22:48:18
[139693602581328] ('IPX800 api request error, url: %s
r%s', 'http://10.0.4.200:80/api/xdevices.json?key=removed&SetR=26', {'product': 'IPX800_V4', 'status': 'Error'}) [139693602581328] ('IPX800 api request error, url: %s
r%s', 'http://10.0.4.200:80/api/xdevices.json?key=removed&SetR=4', {'product': 'IPX800_V4', 'status': 'Error'}) Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 143, in handle_call_service await hass.services.async_call( File "/usr/src/homeassistant/homeassistant/core.py", line 1480, in async_call task.result() File "/usr/src/homeassistant/homeassistant/core.py", line 1515, in _execute_service await handler.job.target(service_call) File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 206, in handle_service await self.hass.helpers.service.entity_service_call( File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 649, in entity_service_call future.result() # pop exception if have File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 692, in async_request_call await coro File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 686, in _handle_entity_call await result File "/usr/src/homeassistant/homeassistant/components/light/init.py", line 308, in async_handle_light_on_service await light.async_turn_on(params) File "/usr/src/homeassistant/homeassistant/components/group/light.py", line 239, in async_turn_on await self.hass.services.async_call( File "/usr/src/homeassistant/homeassistant/core.py", line 1480, in async_call task.result() File "/usr/src/homeassistant/homeassistant/core.py", line 1515, in _execute_service await handler.job.target(service_call) File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 206, in handle_service await self.hass.helpers.service.entity_service_call( File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 649, in entity_service_call future.result() # pop exception if have File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 692, in async_request_call await coro File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 686, in _handle_entity_call await result File "/usr/src/homeassistant/homeassistant/components/light/init.py", line 308, in async_handle_light_on_service await light.async_turn_on(params) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 717, in async_turn_on await self.hass.async_add_executor_job(ft.partial(self.turn_on, *kwargs)) File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run result = self.fn(self.args, **self.kwargs) File "/config/custom_components/ipx800v4/light.py", line 77, in turn_on self.control.on() File "/usr/local/lib/python3.8/site-packages/pypx800/init.py", line 95, in on self._request_api(params) File "/usr/local/lib/python3.8/site-packages/pypx800/init.py", line 37, in _request_api raise Exception( Exception: ('IPX800 api request error, url: %sr%s', 'http://10.0.4.200:80/api/xdevices.json?key=removed&SetR=26', {'product': 'IPX800_V4', 'status': 'Error'})
Que puis-je faire pour t'aider à les résoudre ?