Aohzan / ipx800

IPX800 V4 integration for Home-Assistant
Apache License 2.0
20 stars 12 forks source link

Push vers HA #45

Closed matnoublanche closed 7 months ago

matnoublanche commented 8 months ago

Bonjour,

Après avoir cherché dans la doc et dans le code source, je n'arrive pas à trouver comment faire un toggle sur un groupe de lumières.

J'ai tenté d'appeler cette URL mais cela ne fonctionne pas comme attendu : /api/ipx800v4/light.chambre_parents/toggle

Le principe est de pouvoir changer l'état toggle des lumières plutôt que du ON/OFF car l'IPX ne connait pas l'état des lumières à l'avance, et je voudrais éviter les envois de type ON alors que la lumière est déjà sur ON sur HA.

Merci bien !

Mathieu

LHommeQuAVuLOurs commented 8 months ago

Bonjour, Qu'est-ce que vous essayez de faire exactement ? Déclencher un service dans hass sur un changement de digital input de l'IPX ? J'ai peut être mal compris le usecase.

Bonne journée

matnoublanche commented 8 months ago

Bonjour @LHommeQuAVuLOurs

Oui c'est exactement ça, quand j'appuie sur un digital input de mon IPX, je veux déclencher un PUSH qui va toggle une lumière qui n'est pas sur un relais de l'IPX mais qui est sur le pont Hue.

Comme le pont n'est pas compatible directement avec la V4, je voudrais passer par HASS pour déclencher le toggle en passant par l'API spécifique du plugin.

Bonne journée.

LHommeQuAVuLOurs commented 7 months ago

ok j'ai exactement le même scénario chez moi, et ce que tu dois mettre à jour sur hass c'est le statut de ton entrée digitale IPX. Ensuite tu as une automatisation HASS qui toggle ton groupe sur trigger changement de ton input IPX.

Attention moi j'ai mis 2 triggers : [Actif -> Inactif] ou [Inactif -> Actif] pour éviter que ça allume ou éteigne ma lumière en cas d'indisponibilité (sinon ça trig aussi quand ça fait [Actif -> Indispo -> Actif] et c'est relou)

image

matnoublanche commented 7 months ago

Ok merci pour ton retour.

Ma frayeur de procéder de la sorte c'est que ce n'est pas l'IPX qui pousse l'état directement sur HA mais plutôt HA qui tire l'update de l'IPX, puis qu'après ça selon le changement d'état le trigger se déclenche. Du coup cela veut dire que tu perds en réactivité entre le moment où tu appuies sur l'interrupteur et le moment où le trigger se déclenche.

J'imagine que tu as mis la fréquence des mise à jour toutes les secondes ou 2 secondes ?

Sinon en parallèle je suis en train de regarder comment faire avec des requêtes TCP que je catche sur NodeRed.

J'aurais pu me servir de l'API de HA, mais le problème c'est que sur l'IPX V4 tu ne peux pas faire de requêtes HTTP complexes.

LHommeQuAVuLOurs commented 7 months ago

Non, avec la nouvelle version de l'intégration IPX tu peux "push" la valeur de tes entrées et relais IPX en temps réel avec des scénarios IPX.

En gros ça donne :

Dans les faits quant tout marche bien c'est quasi instantané

matnoublanche commented 7 months ago

Ok merci à toi, je vais tenter tel quel pour voir si niveau réactivité cela correspond bien à ce que j'ai en ce moment avec Jeedom.

Bonne journée.

matnoublanche commented 7 months ago

Hello,

Bon en fait ça ne va pas de cette manière.

J'explique le problème.

Les digitaux sont tous des boutons poussoirs.

Quand on appuie sur le BP, un PUSH est envoyé vers HA lui demandant de faire un GET. Le temps que HA fasse le GET, quand il contrôle l'état du BP, on a déjà enlevé le doigt de celui-ci, il garde donc l'état éteint.

Pour que ça fonctionne, il faut rester appuyé plus d'une seconde sur le BP pour que HA aie le temps de comprendre que l'état est appuyé. Ce qui fait donc qu'on loupe l'état de cette manière.

Ou alors il faut qu'à la main, je fasse un push manuel vers chaque entité de HA, ce qui n'est pas pratique.

@Aohzan : Du coup je re-demande si c'est possible de faire un toggle sur une lumière en direct ?

Merci de ton retour. Bonne journée.

LHommeQuAVuLOurs commented 7 months ago

Tu as la possibilité d'envoyer l'état sans demander de get à hass, et c'est instantané :

"You can update values of multiple entities with one request (see official wiki: http://gce.ovh/wiki/index.php?title=API_V4#Inclure_des_.C3.A9tiquettes_dans_les_notifications_.28mail.2C_push_et_GSM.29)

You have to set the entity_id=$XXYY separate by a &, example : /api/ipx800v4_data/binary_sensor.presence_couloir=$VO005&light.spots_couloir=$XPWM06."

Pour ta question de faire un toggle en direct, ça ne dépend pas de l'intégration IPX mais des capacités API de hass, c'est donc côté documentation de homeassistant que tu trouveras la réponse. Une fois que tu sais comment contrôler une lumière de hass par API, tu peux configurer l'appel via un périphérique"push" de l'ipx en natif, rien ne passera pas l'intégration d'aohzan du coup j'ai un peu l'impression que tu réinventes un peu la roue ;)

Connaissant maintenant ta contrainte de contact sec coté IPX je ne suis pas sur de pouvoir t'aider, car je n'utilise pas ce type d'inter. La seule chose que je saurai faire c'est que ton contact sec "toggle" une sortie virtuelle, et que c'est l'état de cette sortie virtuelle que tu transmets en push à hass (et là on revient dans le scénario initial) mais ça commence à faire beaucoup de zig-zag pour quelque chose de droit lol. Pour récapituler tu as deux options :

Option 1 : Scénario de push toggle depuis l'IPX vers un device HASS via REST

Option 2 : Scénario de push state depuis l'IPX vers HASS via intégration Aohzan

Peut-être que quelqu'un d'autre aura une meilleure option, de mon coté c'est ce que je vois.

Aohzan commented 7 months ago

Merci pour tes réponses @LHommeQuAVuLOurs Je confirme, ton besoin @matnoublanche, n'est pas intégrable ici, je te conseille l'option 2 pour rester "simple"

linkweaver commented 7 months ago

Merci à tous les deux pour vos éclaircissements.

J'ai trouvé une solution qui me permet de couvrir mon besoin, que je détaille ici.

1/ On crée le PUSH dans l'IPX

Capture d’écran 2023-11-13 à 21 25 26

2/ On crée une scène en ON/OFF selon l'entrée digitale qui va bien faire le PUSH

Capture d’écran 2023-11-13 à 21 26 09

3/ Dans HA, on fait l'automatisation qui va faire le toggle.

Capture d’écran 2023-11-13 à 21 29 43

Ça fait faire un PUSH et une scène par bouton dans l'IPX, mais côté réactivité c'est plus rapide et plus fiable que de faire un PUSH qui fait un GET dans HA. Ça laisse aussi entrevoir des possibilité comme le fait de gérer les appuis longs dans HA, et ça c'est cool.

Bonne soirée.

matnoublanche commented 7 months ago

Je close l'issue, je me suis trompé de compte (!)