Du coup j’ai un petit peu avancé !
J’ai acheté un dongle zigbee (sonoff) et je l’ai mis sur un NuC ou j’ai installé HAOS.
J’ai acheté le détecteur de mouvement et une prise connectée Ikea pour me faire la main (franchement vue le prix !)
En parallèle j’ai commandé deux actionneurs on/off chez sonoff (un avec et un sans neutre [j’ai un neutre qui arrive dans ma prise mais comme c’est pour le voyant lumineux de l’interrupteur j’ai un doute que ce soit le même neutre que les ampoules). Et lui est toujours en attente de livraison, donc en attendant je me fais la main avec le capteur de mouvement et une prise connectée.
Du coup j’ai mes premières automation sous HA, et j’ai quelques questions :
J’ai donc deux automations, une qui allume une prise si il y a détection et une qui ferme la prise quand le capteur se ferme.
J’essaye de simuler ce qui pourrait se passer avec mon éclairage d’extérieur et je vous (et j’ai reproduis) un problème.
Si j’allume l’éclairage avec un interrupteur et que je souhaite que cet éclairage reste allumé, alors que quelqu’un passe devant le capteur de mouvement, la fermeture du capteur va provoquer l’extinction de la lumière.
Est ce que vous sauriez quelles conditions rajouter sur les automations pour ne pas que cette situation arrive ?
Quand je parle d’interrupteur, en effet je fais référence a une action manuelle d’allumer la prise.
Donc j’allume la prise manuellement, et je passe devant le capteur. Lorsque le capteur se ferme , cela éteint la prise.
Or je voudrais que la prise ne s’éteigne pas sur ordre du capteur si elle a été allumé au préalable par autre chose (en l’occurrence une action manuelle d’allumage de la prise )
Est ce plus clair ?
Merci de prendre le temps de me répondre , c’est vraiment cool !
Voilà deux solutions « Merci chatgpt » qui peut bien aider pour HA. A valider
Solution 1 : Utiliser un « input_boolean » pour suivre l’état manuel
Créer un input_boolean :
Va dans Paramètres > Appareils et services > entrée > + Ajouter une entrée.
Choisis Interrupteur (input_boolean) et nomme-le par exemple prise_allumage_manuel.
Automatisation de l’allumage manuel :
Détecte quand la prise est allumée manuellement (via son bouton physique ou l’application).
Mets l’input_boolean.prise_allumage_manuel à « On » lorsqu’elle est allumée manuellement.Exemple d’automatisation YAML :
yaml
Copier le code
alias: "Prise allumée manuellement"
trigger:
- platform: state
entity_id: switch.prise
from: 'off'
to: 'on'
condition:
- condition: template
value_template: "{{ trigger.to_state.context.user_id is not none }}"
action:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.prise_allumage_manuel
Cette automatisation détecte si la prise a été allumée manuellement (en vérifiant si le changement a un user_id, ce qui n’est pas le cas des automatisations).
Modification de l’automatisation qui éteint la prise :
Ajoute une condition qui vérifie si l’input_boolean.prise_allumage_manuel est « off » avant d’éteindre la prise.Exemple d’automatisation YAML :
yaml
Copier le code
alias: "Éteindre la prise après non-détection de mouvement"
trigger:
- platform: state
entity_id: binary_sensor.detecteur_mouvement
to: 'off'
for: '00:01:00' # Temps à attendre après l'absence de mouvement
condition:
- condition: state
entity_id: input_boolean.prise_allumage_manuel
state: 'off'
action:
- service: switch.turn_off
target:
entity_id: switch.prise
Réinitialiser l’input_boolean lorsqu’on éteint la prise :
Ajoute une automatisation pour éteindre l’input_boolean.prise_allumage_manuel lorsque la prise s’éteint.Exemple d’automatisation YAML :
yaml
Copier le code
alias: "Réinitialiser l'état d'allumage manuel"
trigger:
- platform: state
entity_id: switch.prise
from: 'on'
to: 'off'
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.prise_allumage_manuel
Solution 2 : Vérifier la "cause" de l'activation
Si tu n'as pas envie d'utiliser un input_boolean, tu peux vérifier si l'activation de la prise a été faite par une automatisation ou manuellement. Ce contrôle se fait via la variable context.user_id.
Automatisation de l'extinction uniquement si la prise a été allumée par automatisation :
yaml
Copier le code
alias: "Éteindre la prise après non-détection de mouvement"
trigger:
- platform: state
entity_id: binary_sensor.detecteur_mouvement
to: 'off'
for: '00:01:00'
condition:
- condition: template
value_template: >
{{ state_attr('switch.prise', 'context').user_id is none }}
action:
- service: switch.turn_off
target:
entity_id: switch.prise
Cette automatisation vérifie que l'utilisateur à l'origine de l'allumage est "aucun utilisateur" (donc Home Assistant lui-même) avant d'éteindre la prise.
Et booooooooom
J’ai reçu mon commutateur sonoff SBMINIL2, et ça marche su feu de dieu !!!
Je peux enfin piloter mes lampes extérieurs avec soit un détecteur de présence, soit un interrupteur physique ! C’est vraiment dingue (et je sais que je suis encore loin d’avoir tout vue)
Bon maintenant je suis dans les derniers réglages.
Je vois que la capteur de mouvement remonte plusieurs choses notamment:
Si il est ouvert ou fermé
Si il y’a une présence ou non
(Et la luminosité)
Je pensais que ouvert et fermé correspondaient à la fenêtre de temps réglable sur le dévice physique (1min ou 5min) a partir du moment où une présence est détectée.
Mais ça n’a pas l’air d’être QUE ça. Puisque je viens de le passer en mode nuits et il s’avère que le jour , il y’a bien le « présence detecté » qui est bien remontée mais le capteur semble toujours « fermé ».
Donc de ce que je comprends de mes tribulations : l’attribut « opening » qui peut être fermé ou ouvert et en fait bien lié à la configuration hardware du sensor.
Dans le cas où le dévice est configuré pour une détection de jour l’attribut « Opening » ne devient ouvert que le jour si il détecte une présence et reste fermé la nuit. Et inversement si le dévice est configuré pour détecter la nuit.
En rêvevanche, le moment où "opening " se ferme , c’est bien le timer (1min ou 5min sur le modèle d’Ikea ) défini la encore sur le dévice entre le moment où il y a eu une premier détection depuis la dernière fermeture.