YAMA mit Schalter, Shelly + 2 Sensoren

Hi!

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)?

Danke!

Hallo.

Ich stehe vor einem ähnlichen Anwendungsfall.

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.

Wie man das richtig in die Automatisierung einpflegt, dazu brauche ich Hilfe.

Ich habe meine Automatisierung nicht über Yama gemacht, sondern lt. einer Vorlage von @Osorkon .

Danke und beste Grüße aus Österreich.
Patrei

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.

Hi purewhitedesign.

Ich denke schon, dass es möglich ist. Die Frage ist eben nur wie :slight_smile: .
Vielleicht haben ja die Gurus noch ein paar Tipps und Tricks, wie wir das richtig konfigurieren müssen :wink:.

Patrei

Wer hat das Licht eingeschaltet? :grinning:

Gruß
Osorkon

2 „Gefällt mir“

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.

1 „Gefällt mir“

Vielen Dank!
Das hilft mir sicher weiter - wenn ich da mal durchgeblickt habe :rofl:

@Osorkon
Sieht ziemlich kompliziert aus. :see_no_evil:

@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?

Hast du keinen smarten Schalter?

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 :wink:

@Osorkon

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.

Ich nutze selber Shelly nicht, aber ich habe das gefunden

Man muss doch irgendwie am Shelly unterscheiden, ob manuell betätigt wurde :thinking:

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.

Hallo zusammen,

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:

  1. 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.

  2. 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!

Ich bin auf euer Feedback gespannt!

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.

Gruß
Osorkon

Automation sieht gut aus. Konntest du es auch schon testen?

Das wird in der Aktion abgefragt, binary_sensor.dunkel. Bei Licht an wäre es nicht dunkel.

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.

Gruß
Osorkon

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.

Was meinst Du eigentlich mit YAMA
An der Stelle kann ich Dir leider nicht folgen?!

Gruß
Osorkon

Das machst du über eine separate Automation.