Dank der Anleitung von Simon in seinem YT-Video konnte ich recht einfach eine Automation mit YAMA erstellen.
Das klappt auch wunderbar, bei näherer Betrachtung werden sich aber ein paar Probleme ergeben:
Im Moment habe ich nur einen Sensor im Aussenbereich, der mir das Licht auf der Terrasse des Gartenhauses schaltet.
Wenn nun der Sensor das Licht einschaltet (und nach 120 sec ausschaltet), ich aber auf der Terrasse sitzen möchte, sitz ich im Dunkeln.
Schalte ich das Licht per Shelly oder manuellem Lichtschalter ein und gehe dann am Bewegungssensor vorbei, ist wohl das Licht wieder nach 120 sec weg.
Ich bräuchte also wohl einen “Automation Blocker”, habe aber keine Ahnung, wie ich das realisieren soll. Ich stells mir so vor, dass der Bewegungssensor inaktiv sein soll, wenn ich das Licht bereits manuell oder per Shelly eingeschaltet habe.
Allerdings steuert ja der Bewegungsmelder gerade diesen Shelly.
Und wenn ich das geschafft habe, würde mich noch interessieren, wie ich einen zweiten Bewegungssensor einbinde (vermutlich am einfachsten mit einer zweiten Automation)?
Bei mir geht es um das Eingangslicht + Außenbeleuchtung, welches der BM schalten soll.
Wenn wir aber auf der Terrasse sitzen und uns als Ambientelicht die Außenbeleuchtung einschalten und dann läuft jemand beim BM vorbei, schaltet sich nach x Sek die Außenbeleuchtung aus und sie muss manuell wieder eingeschaltet werden.
Zusätzlich sollte der BM nur schalten, wenn es dunkel ist. Dazu habe ich mir einen Schwellwertsensor als Helfer erstellt: Helligkeit <20 dann true.
Hi Patrei!
Ich hab jetzt etwas über das Problem nachgedacht und bin zum Schluß gekommen, dass das so nicht möglich ist.
Wie soll eine Automation in Home Assistant wissen, dass ich den Lichtschalter manuell betätigt habe? Eine Statusabfrage, ob das Licht an oder aus ist, wird nicht reichen. Auch nicht, ob es schon an war, wenn der Bewegungsmelder auslöst.
Ich löse das jetzt anders, indem ich eine zusätzliche Aussenbeleuchtung (Fluter) mit Shelly montieren werde und nur dieses eine Licht über zwei Bewegungsmelder schalten werde. Der Fluter bekommt keinen Lichtschalter.
Ich denke schon, dass es möglich ist. Die Frage ist eben nur wie .
Vielleicht haben ja die Gurus noch ein paar Tipps und Tricks, wie wir das richtig konfigurieren müssen .
Ich habe eine Automation mit Bewegungsmelder und Licht, so wie du.
Zusätzlich habe ich eine Automation, wenn ich den Schalter manuell betätige. Diese Automation deaktiviert die Automation mit dem Bewegungsmelder und schaltet das Licht ein. Beim Ausschalten das gleiche nur umgekehrt.
@sirector
Die Automation ausser Kraft setzen, wenn ich den Lichtschalter manuell (oder per Shelly-Steuerung) betätige, kann ich gut nachvollziehen.
Aber wie sage ich meinem Homeassistant, dass der Lichtschalter betätigt wurde?
Nun, der Schalter selbst ist nicht smart, der wird physisch betätigt. Smart ist nur der integrierte Shelly plus 1, den ich auch in HA eingebunden habe. Sonst könnt ich ja dem Bewegungsmelder kein Ziel mitteilen
Wird das Licht physisch per Schalter eingeschaltet, kann man die Automatisierung über den BM deaktivieren.
Direkt oder über einen Helfer.
Und wird das Licht über den Schalter wieder ausgeschaltet, wird die die Automatisierung über den BM wieder aktiviert.
Kannst du mir da weiterhelfen, wie ich das umsetze? Vorzugsweise ein Helfer, den ich als Automation Blocker in YAMA einsetzen kann.
Nun, die Unterscheidung durch die einzelnen context-ids funktioniert ja bestens.
Danke, Osorkon!
Es macht keinen Unterschied, ob ich den Schalter manuell betätige oder ihn über die Anwendung (Schalter-Entität in HA) schalte.
Und das passt auch so.
Jedenfalls kann man anhand der context-ids unterscheiden, wer geschaltet hat.
Nur muss ich das noch in der YAMA-Automation umsetzen.
Um am Beispiel von @Osorkon zu bleiben, könntest du doch mit dieser Abfrage {% if ident == (true, false, false) %}
einen input_boolean-Helfer schalten und diesen als Blocker in YAMA nutzen.
Ich habe nun eine Lösung gefunden, die für meinen Usecase passend ist, dank euch und mithilfe von ChatGPT.
Die Aufgabe war, ein Licht mit einem Bewegungsmelder so zu steuern, dass es nur bei Dunkelheit einschaltet und nach einer gewissen Zeit ohne Bewegung wieder ausschaltet, ohne es auszuschalten, wenn es bereits vor der Bewegungserkennung eingeschaltet war.
Ziel der Automatisierung:
Das Licht soll nur eingeschaltet werden, wenn es dunkel ist (Dazu habe ich einen Helfer “Schwellenwertsensor” angelegt binary_sensor.dunkel = on).
Wenn das Licht durch die Bewegungserkennung eingeschaltet wird, soll es nach einer gewissen Zeit ohne Bewegung wieder ausgeschaltet werden.
Wenn das Licht vor der Bewegungserkennung bereits eingeschaltet war, soll es nicht automatisch ausgeschaltet werden.
Lösung:
Vorbereitung: Als erstes wurde eine input_boolean Hilfsfunktion namens input_boolean.licht_durch_bewegung_eingeschaltet erstellt. Diese dient als Marker, um zu verfolgen, ob das Licht durch die Bewegungserkennung eingeschaltet wurde.
Automatisierung:
alias: Bewegungsmelder schaltet Licht an und aus
description: ""
trigger:
- platform: state
entity_id: binary_sensor.pir_eingang_occupancy
from: "off"
to: "on"
id: einschalten
- platform: state
entity_id: binary_sensor.pir_eingang_occupancy
from: "on"
to: "off"
id: ausschalten
for:
hours: 0
minutes: 0
seconds: 30
condition: []
action:
- choose:
- conditions:
- condition: trigger
id: einschalten
- condition: state
entity_id: binary_sensor.dunkel
state: "on"
sequence:
- condition: state
entity_id: light.battletron_led_strip
state: "off"
- service: input_boolean.turn_on
entity_id: input_boolean.licht_durch_bewegung_eingeschaltet
- service: light.turn_on
target:
entity_id: light.battletron_led_strip
- conditions:
- condition: trigger
id: ausschalten
sequence:
- condition: state
entity_id: input_boolean.licht_durch_bewegung_eingeschaltet
state: "on"
- service: light.turn_off
target:
entity_id: light.battletron_led_strip
- service: input_boolean.turn_off
entity_id: input_boolean.licht_durch_bewegung_eingeschaltet
mode: single
Erklärung:
Die Automatisierung nutzt zwei Trigger, basierend auf dem Zustand des Bewegungssensors.
Das Licht wird nur eingeschaltet, wenn es dunkel ist und das Licht zuvor ausgeschaltet war.
Die input_boolean Hilfsfunktion dient dazu, zu verfolgen, ob das Licht durch die Bewegung eingeschaltet wurde. Sie wird aktiviert, wenn das Licht eingeschaltet wird, und zurückgesetzt, wenn es ausgeschaltet wird.
Das Licht wird nur ausgeschaltet, wenn die input_boolean aktiviert ist, was bedeutet, dass das Licht durch die Bewegung eingeschaltet wurde.
Ich bin wirklich beeindruckt von der Unterstützung, die ChatGPT bei der Lösung dieses Problems geleistet hat. Ich hoffe, diese Lösung hilft auch anderen in der Community, die ähnliche Herausforderungen mit ihren Smart-Home-Setups haben. Ein großes Dankeschön an ChatGPT und alle, die mit ihren Ideen beigetragen haben!
Das heißt Du schaltest das Licht auch manuell ein und möchtest nicht das es dann automatisch ausgeschaltet wird?
In dem Fall würde ich beim einschalten, zusätzlich noch die Bedingung Licht ist aus verwenden. Sonst wird bei Erkennung der Bewegung dein Helfer input_boolean.licht_durch_bewegung_eingeschaltet trotzdem eingeschaltet. Und somit das Licht automatisch ausgeschaltet.
Auch funktioniert das Konstrukt nur, wenn Du mit dem Finger auf dem Schalter schneller bist als der BM.
Nur wenn der Lux Sensor so schnell auch den Wert anpasst. Gehe mal davon aus. Das zwischen Lichtschalter betätigen und BM erkennt Bewegung, nur wenige Sekunden verstreichen.
Korrekt, wir schalten uns oft die Außenbeleuchtung als Ambientelicht ein, wenn wir auf der Terrasse sitzen, nicht nur über den physischen Schalter sonder auch übers Dashboard.
Dazu muss man wissen, dass die Terrasse außerhalb von der Erkennungszone des BM liegt.
Ja, ich habe es mit einem Testaufbau im Büro erfolgreich getestet.
Hat niemand eine Idee für YAMA?
Im Prinzip bräuchte ich nur einen boolean switch, der mit dem shelly verknüpft ist.
Den Helfer erstellen ist kein Problem, aber wie verbinde ich ihn mit dem Shelly?
Wenn ich also die Lampe via Button (switch.shelly) einschalte, soll der Helfer auf true stehen und somit ist die Automation in YAMA deaktiviert. Gleiches gilt dann auch für den motion blocker.