avec le slider cela fonctionne.
tu pourrais me donner un exemple de push pour un volet? Je suis pas sur de ce que je doit mettre.
est-ce que tu as des erreurs dans les logs quand ça ne marche pas avec les boutons ?
pas besoin de push avec les volets, c’est utile avec les entrées digitales par exemple, pour déclencher un scénario immédiatement depuis hass par exemple
Logger: homeassistant.components.recorder
Source: components/recorder/__init__.py:379
Integration: Recorder ([documentation](https://www.home-assistant.io/integrations/recorder), [issues](https://github.com/home-assistant/home-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+recorder%22))
First occurred: 16:50:55 (1 occurrences)
Last logged: 16:50:55
Event is not JSON serializable: <Event platform_discovered[L]: service=load_platform.cover, platform=ipx800, discovered=[{'config': OrderedDict([('component', 'cover'), ('name', 'Fixe Terrasse'), ('type', 'x4vr'), ('ext_id', 1), ('id', 2), ('transition', 0.5)]), 'controller': <custom_components.ipx800.IpxController object at 0x7fb749972790>}, {'config': OrderedDict([('component', 'cover'), ('name', 'Chambre Terrasse'), ('type', 'x4vr'), ('ext_id', 2), ('id', 3), ('transition', 0.5)]), 'controller': <custom_components.ipx800.IpxController object at 0x7fb749972790>}, {'config': OrderedDict([('component', 'cover'), ('name', 'Chambre Jardin'), ('type', 'x4vr'), ('ext_id', 1), ('id', 4), ('transition', 0.5)]), 'controller': <custom_components.ipx800.IpxController object at 0x7fb749972790>}, {'config': OrderedDict([('component', 'cover'), ('name', 'Fixe TV'), ('type', 'x4vr'), ('ext_id', 2), ('id', 1), ('transition', 0.5)]), 'controller': <custom_components.ipx800.IpxController object at 0x7fb749972790>}, {'config': OrderedDict([('component', 'cover'), ('name', 'Baie 2m'), ('type', 'x4vr'), ('ext_id', 1), ('id', 1), ('transition', 0.5)]), 'controller': <custom_components.ipx800.IpxController object at 0x7fb749972790>}, {'config': OrderedDict([('component', 'cover'), ('name', 'Baie 3m'), ('type', 'x4vr'), ('ext_id', 1), ('id', 1), ('transition', 0.5)]), 'controller': <custom_components.ipx800.IpxController object at 0x7fb749972790>}, {'config': OrderedDict([('component', 'cover'), ('name', 'Cuisine'), ('type', 'x4vr'), ('ext_id', 2), ('id', 4), ('transition', 0.5)]), 'controller': <custom_components.ipx800.IpxController object at 0x7fb749972790>}, {'config': OrderedDict([('component', 'cover'), ('name', 'Baie Parentale'), ('type', 'x4vr'), ('ext_id', 1), ('id', 1), ('transition', 0.5)]), 'controller': <custom_components.ipx800.IpxController object at 0x7fb749972790>}, {'config': OrderedDict([('component', 'cover'), ('name', 'Pano Parentale'), ('type', 'x4vr'), ('ext_id', 1), ('id', 1), ('transition', 0.5)]), 'controller': <custom_components.ipx800.IpxController object at 0x7fb749972790>}, {'config': OrderedDict([('component', 'cover'), ('name', 'Fixe Entree'), ('type', 'x4vr'), ('ext_id', 1), ('id', 1), ('transition', 0.5)]), 'controller': <custom_components.ipx800.IpxController object at 0x7fb749972790>}, {'config': OrderedDict([('component', 'cover'), ('name', 'Sdb Parentale'), ('type', 'x4vr'), ('ext_id', 3), ('id', 4), ('transition', 0.5)]), 'controller': <custom_components.ipx800.IpxController object at 0x7fb749972790>}]>
le Event is not JSON serializable c’est un soucis qui n’a rien à voir que je dois résoudre
j’attends le retour de @boutXIII pour savoir si c’est général
j’ai l’impression qu’il y en un soucis de détection des volets sur différents x4vr.
J’ai bien deux id et ext-id différents et pourtant il gère le même volet…
Par ex:
- component: cover
name: Fixe Terrasse
type: x4vr
ext_id: 1
id: 2
- component: cover
name: Fixe TV
type: x4vr
ext_id: 2
id: 1
J’ai aussi ça comme erreur:
Unexpected error fetching ipx800 data: ('IPX800 api request error, url: %s`r%s', 'http://X.X.X.X:X/api/xdevices.json?key=removed&Get=XPWM%7C1-24', {'product': 'IPX800_V4', 'status': 'Error', 'PWM1': 0, 'PWM3': 0, 'PWM5': 0, 'PWM7': 0, 'PWM9': 0, 'PWM11': 0, 'PWM13': 0, 'PWM15': 0, 'PWM17': 0, 'PWM19': 0, 'PWM21': 0, 'PWM23': 0})
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 143, in async_refresh
self.data = await self._async_update_data()
File "/config/custom_components/ipx800/__init__.py", line 261, in _async_update_data
return await self.hass.async_add_executor_job(self.ipx.global_get)
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.8/site-packages/pypx800/__init__.py", line 60, in global_get
self._request_api({"Get": "XPWM|1-24"})
File "/usr/local/lib/python3.8/site-packages/pypx800/__init__.py", line 30, in _request_api
raise Exception(
Exception: ('IPX800 api request error, url: %s`r%s', 'http://X.X.X.X:X/api/xdevices.json?key=removed&Get=XPWM%7C1-24', {'product': 'IPX800_V4', 'status': 'Error', 'PWM1': 0, 'PWM3': 0, 'PWM5': 0, 'PWM7': 0, 'PWM9': 0, 'PWM11': 0, 'PWM13': 0, 'PWM15': 0, 'PWM17': 0, 'PWM19': 0, 'PWM21': 0, 'PWM23': 0})
En effet erreur dans le code, j’ai fix dans la version 1.6
Hello,
Avec la dernière version, le soucis des extension est bien réglé.
J’ai quelques messages d’erreurs de temps en temps par contre:
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 118, in _handle_refresh_interval
await self.async_refresh()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 192, in async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 281, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 305, in _async_write_ha_state
sstate = self.state
File "/usr/src/homeassistant/homeassistant/components/cover/__init__.py", line 192, in state
closed = self.is_closed
File "/config/custom_components/ipx800/cover.py", line 54, in is_closed
return int(self.coordinator.data[f"VR{self._ext_id}-{self._id}"]) == 100
KeyError: 'VR1-3'
('IPX800 api request error, url: %s`r%s', 'http:///api/xdevices.json?key=removed&SetVR12=101', {'product': 'IPX800_V4', 'status': 'Error'})
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 125, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1308, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1343, in _execute_service
await handler.func(service_call)
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 208, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 454, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 583, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 485, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/cover/__init__.py", line 287, in async_stop_cover
await self.hass.async_add_job(ft.partial(self.stop_cover, **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/ipx800/cover.py", line 70, in stop_cover
self.control.stop()
File "/usr/local/lib/python3.8/site-packages/pypx800/__init__.py", line 351, in stop
self._request_api(params)
File "/usr/local/lib/python3.8/site-packages/pypx800/__init__.py", line 30, in _request_api
raise Exception(
Exception: ('IPX800 api request error, url: %s`r%s', 'http:///api/xdevices.json?key=removed&SetVR12=101', {'product': 'IPX800_V4', 'status': 'Error'})
Et as-t-il possibilité de créer un bouton « Persienne » avec les boutons Monter/Descente/Stop ?
L’idée est de mettre les volets a 80% fermé par exemple, pour laisser passer la lumière entre les lames.
Ce genre d’erreur arrive quand l’IPX n’arrive pas à répondre à la requête (cpu trop chargé ou autres ![]()
Pour ça il suffit de faire un script qui met le volet à telle position, puis de créer un bouton qui l’appel
Hello
Depuis la mise à jour 0.115.1 l’intégration avec HA ne fonctionne plus
Dans le log [homeassistant.setup] Setup failed for ipx800: Unable to import component: cannot import name ‹ KEY_REAL_IP › from ‹ homeassistant.components.http.const › (/usr/src/homeassistant/homeassistant/components/http/const.py)
Sinon excellente intégration HA-IPX
Merci
Salut,
Je viens de publier la version 1.7 qui corrige ça ![]()
Cool… merci beaucoup
désoler du retard, si cela fonctionne parfaitement par le slider
Yes je me note de faire ça, je te tiens au courant pour tester
Bonjour,
Je suis en train de faire des tests pour passer des Jeedom à Hass & j’ai une IPX V4.
Sur un analogique, j’ai un TC100 & je n’arrive pas à récupérer le température, j’ai mis ça en config :
- component: sensor
name: Température Piscine
icon: mdi:coolant-temperature
type: « analog »
id: 1
unit_of_measurement: « °C »
J’ai réussi avec succès à récupérer 2 relais, ça c’est déjà top !
D’ailleurs, entre lka doc & l’exemple, il y a des ratés sur le nom des variables. Par exemple, c’est analog dans la doc & analogin dans l’exemple. Je ne sais pas si c’est normal.
en effet c’est analogin, ça sera corrigé dans la prochaine version, est-ce que la temp remonte bien avec le bon type du coup ?
Pour l’instant, non, j’ai juste indisponible. J’ai essayé avec analog & analogin.
Pour les relais, pas de soucis.
Mais je m’y prends peut-être mal, je ne suis pas encore très familier avec Hass.
- component: sensor
name: Température Piscine
icon: mdi:coolant-temperature
type: "analogin"
id: 1
unit_of_measurement: "°C"
Logger: homeassistant
Source: custom_components/ipx800/sensor.py:68
First occurred: 11:39:07 (1 occurrences)
Last logged: 11:39:07
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 118, in _handle_refresh_interval
await self.async_refresh()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 192, in async_refresh
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 296, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 320, in _async_write_ha_state
sstate = self.state
File "/config/custom_components/ipx800/sensor.py", line 68, in state
return self.coordinator.data[f"A{self._id}"]
KeyError: 'A1'
Ca veut dire qu’il fait la bonne requête mais que l’IPX ne renvoit pas le résultat pour l’entrée analogique 1 ![]()
Ca fonctionne sur la 2 ou la 3 ?