Cela fait bien longtemps que je ne suis pas venu sur le forum et je m’en excuse.
Je me permets de vous solliciter pour obtenir votre aide en espérant que mon sujet soi au bon endroit.
En effet, j’ai un IPX800v3 qui tourne depuis de longue année sans soucis (très bonne machine) pour la gestion de mon éclairage extérieur. Depuis peu, j’ai installé une box domotique home assistant afin de pouvoir suivre d’autres choses. Mais c’est là que les choses se corsent. En effet, j’ai réussi à intégrer l’IPX800v3 dans HA mais je n’arrive pas à avoir un retour d’état immédiat des entrées lors d’appui sur ces dernières, je n’ai un retour qu’au bout de 15s. Est ce que vous auriez des idées ou des exemples?
je vous remercie par avance.
Bonjour,
pour ma part, j’ai intégré l’ipx 800 V3 via l’intégration command_line, et le changement d’état est instantané…
Je viens d’avoir des soucis avec cette intégration car j’utilisais l’ancien formatage des commandes qui a été mis à jour et n’était plus utilisable depuis la version 2023.12.2.
voici ce que j’ai modifié pour que cela fonctionne :
dans le fichier configuration.yaml : ajout de la ligne command_line: !include command_line.yaml
dans le fichier command_line.yaml :
# Commandes relais IPX800V3 Relais 1-->16
- switch:
unique_id: ipx800V3_r1
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set1=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set1=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led0>(.*)</led0>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r2
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set2=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set2=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led1>(.*)</led1>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r3
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set3=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set3=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led2>(.*)</led2>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r4
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set4=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set4=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led3>(.*)</led3>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r5
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set5=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set5=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led4>(.*)</led4>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r6
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set6=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set6=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led5>(.*)</led5>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r7
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set7=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set7=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led6>(.*)</led6>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r8
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set8=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set8=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led7>(.*)</led7>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r9
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set9=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set9=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led8>(.*)</led8>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r10
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set10=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set10=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led9>(.*)</led9>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r11
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set11=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set11=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led10>(.*)</led10>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r12
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set12=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set12=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led11>(.*)</led11>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r13
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set13=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set13=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led12>(.*)</led12>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r14
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set14=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set14=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led13>(.*)</led13>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r15
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set15=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set15=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led14>(.*)</led14>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
- switch:
unique_id: ipx800V3_r16
command_on: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set16=1 >/dev/null'
command_off: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/preset.htm?set16=0 >/dev/null'
command_state: 'curl http://votre_login:votre_password@ip_de_l'ipx:port_de _connection_ipx/status.xml'
value_template: '{% set status = value | regex_findall_index("<led15>(.*)</led15>") %} {% if status == "1" %} true {%- endif -%}'
name: 'Le nom que vous souhaitez voir apparaitre dans HA'
remplacer les champs :
votre_login
votre_password
ip_de_l'ipx
port_de _connection_ipx
Le nom que vous souhaitez voir apparaitre dans HA
par vos propres champs de configuration.
J’ai 16 relais car une extension x8r dessus, vous pouvez ne garder que les 8 premiers si vous n’avez que l’ipx800 seule.
PS, n’oubliez pas que le yaml est très tatillon sur " l’identité " du code, un espace manquant ou remplacé par une tabulation et plus rien va…
Bonjour @Mike02 ,
Merci infiniment pour tout ces détails, je vais essayer ça rapidement, je commence à désespérer de pouvoir le faire fonctionner.
J’ai également une question pour bien comprendre le fonctionnement et si j’ai tout compris. Le retour d’état immédiat se fait via la commande rest? Mais comment l’Ipx envoie l’info de changement d’état à HA?
Merci par avance.
J’ai oublié de le préciser , en effet, ma config est particulière, car j’ai aussi une V4, sur le réseau, et grâce à celle-ci qui est couplée à la 3 par push, les capteurs sont maj grâce à un scénario , via l’intégration IPXv4 sur HA.
Dans votre cas, il faudrait, je pense, créer un binary sensor par relais,
qui lui-même serait maj par un push de l’ipx
(réglable dans le menu relais, appui sur « édit », à la fin de la ligne « output », en haut de la page de l’ipx, ensuite choisir le relais voulu et cliquer sur « push settings ».
Mais je ne suis pas assez expert en JSON pour savoir quelle commande mettre en push pour updater un binary sensor en « 0 » ou « 1 ».
Peut-être sur le forum hacs.fr il y aurait des réponses ou pistes de réponses
Une autre piste serait de passer par Node-Red et updater le statut des switchs dans HA via celui-ci, et updater les nodes par push depuis l’ipx lorsqu’on change d’état d’un switch depuis une source externe à HA.
Merci pour les informations @Mike02 .
J’avais trouvé une solution d’intégration de la v3 sur le forum hacf mais cette dernière date de 2021 et impossible de la mettre en place. Elle était basé sur un endpoint nodered mais je n’arrive pas à le faire fonctionner ( le retour d’état était toujours de 15s) j’ai peur que la mise a jour est fait modifier la solution et vu mon faible niveau sur HA. Vu les modifications que vous avez apporté sur votre système, je vais essayer de les mettre en place avec le point nodered, faire un mix des 2. Vu que c’est bientôt Noël cela peut peut être marcher