Automatisierungen 2.0 - oder denke ich nur zu kompliziert

Guten Abend,

ich komme von FHEM (und dem verdammt mächtigen DoIF) und habe auf Homeassistant umgestellt. Ich habe hier einen wilden mix aus
Zigbee,
ZWave,
Homematic (ohne IP),
MySensors,
Mqtt (u.a. mit eigens gelöteten Geräten),
WLAN Geräte (z.B. MagicLight)

Es wurde einiges anders (proxmox mit LXCs und VMs, zigbee2mqtt statt phoscon, raspberrymatic statt HM-CUL, …). Vieles hat funktioniert, bei manchen Dingen komme ich nicht weiter und habe ein oder zwei Fragen - besonders zu den Automatisierungen.

Frage 1: Wie kann ich von anderen Faktoren abhängige Zeitspannen angeben in denen ein Gerät z.B. eingeschaltet ist?
Beispiel: Die Steckdose mit TV im Wohnzimmer soll Werktags zwischen 12 Uhr und 22 Uhr eingeschaltet werden. Am Wochenende (Sa, So, Feiertag) schon ab 9 Uhr - aber nur, wenn der Bewegungsmelder im Wohnzimmer in dieser Zeit was erkennt. (Bedingung als DOIF:
(([12:00-21:59|AT] or [9:00-21:59|WE]) and [Bewegung] eq “On”) )

Ausgeschaltet werden soll die Steckdose zwischen 23 Uhr und 4 Uhr (Tageswechsel) wenn die Leistungsaufnahme unter 25W fällt. (Bedingung als DOIF:([23:00-04:00] and [Wz_sd_Media:power] < 25) )

Frage 2: Wie kann ich die Helligkeit eines Lichtsensors nutzen um die Nachtbeleuchtung im Flur entsprechend zu dimmen. Diese soll natürlich nur eingeschaltet werden, wenn Bewegung im Flur ist.
Beispiel: Ist es mitten in der Nacht sehr dunkel, soll der LED Stripe nur schwach leuchten. In der Dämmerung am Abend und am Morgen soll das Licht heller sein. In FHEM kann ich den Wert “einfach berechnen” und im weiteren Verlauf nutzen.

Es wäre super, wenn ihr mir auf die Sprünge helfen könnt. Mir ist klar, dass die Struktur von Homeassistant zulasten der flexibilität geht (im direkten Vergleich mit FHEM), aber evtl. ist mein Tellerrand aktuell auch nur zu hoch.

Hallo !

Zu Frage 1:
Das ist ganz einfach:
Du machst eine Automation mit
Trigger: Bewegungsmelder auf “ein”.
Bedingung Zeit nach 12 und vor 22 Uhr, Mo,Di,Mi,Do,Fr
Bedingung : oder
Bedingung: Zeit nach 09 und vor 22 Uhr, S, So
Aktion: Licht “ein” (Steckdose “ein”)

Ausschalten:
Trigger: Numerischer Wert von Leistung Deiner Steckdose unter 25
Bedingung: Zeit nach 23 und vor 04 Uhr
Aktion: Steckdose “aus”

Gruß
Speedy

PS: Soll beim Ausschalten nur die Leistung abgefragt werden, oder auch der Bewegungsmelder (keine Bewegung) ?

Willkommen in der Community @SirVolvic ,

Die Lösung von @Speedyhb sieht doch schon ganz gut aus.
Du könntest für die Bedingung aber auch einfach ein Zeitplan Helfer erstellen.

LG

Vielen Dank schonmal.

Das sollte funktioniert haben. Ich habe immer mit der Zeit anfangen wollen und da gibt’s kein vor X bzw. nach Y Uhr. Ist eben noch viel neues Land zu entdecken. :wink:

Ausschalten soll tatsächlich nur über die Leistungsaufnahme gesteuert werden. Sonst brechen z.B. Aufnahmen ab, wenn alle ins Bett gehen. Oder wenn jemand auf dem Sofa einpennt, geht der TV aus (und der jemand wacht davon auf).

Für Frage 2 bin ich soweit, dass ich ein Helfer vom Typ Template erstelle. Den kann ich berechnen und
dadurch mit dem gewünschten Helligkeitswert belegen. Jetzt müsste der LED Streifen (MagicLight) nur noch eine Möglichkeit haben diese zu setzen. Beim Gerät wird mir eine Karte mit Steuerelementen angezeigt. Wenn ich darauf klicke, kommt ein popup indem ich Farbe, Helligkeit, Effekt, etc. auswählen kann. Außerhalb dieser Karte hab ich noch nicht gefunden wie das geht.

Über den den Dienst light.turn_on kannst du die Helligkeit einstellen.

Mal so zum Verständnis…
Der Trigger wird jedesmal ausgeführt, wenn er zutrifft. In diesem Fall, wenn die Leistungsaufnahme der Steckdose unter 25w fällt.
Danach wird die Bedingung zum jetztigen Zeitpunkt mit dem Zustand des Systems verglichen.

Fällt in meinem Beispiel die Leistung bereits um 22 Uhr unter 25w (und bleibt unten). Wird der Trigger ausgelöst, die Bedingung trifft nicht zu → Steckdose bleibt an.

Um das zu lösen habe ich jetzt zwei Trigger eingefügt

  1. Verbrauch
  2. Zeit

In den Bedingungen prüfe ich welcher der beiden ausgelöst hat
UND
prüfe die jeweils andere Bedingung (Zeit oder Verbrauch)

Zum Schluss der Schaltvorgang.

alias: Steckdose TV ausschalten
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.sd_tv_anlage_electric_consumption_w
    for:
      hours: 0
      minutes: 1
      seconds: 0
    below: 30
    id: minWatt30TV
  - platform: time
    at: "23:00:05"
    id: Zeit2305TV
condition:
  - condition: and
    conditions:
      - condition: trigger
        id:
          - Zeit2305TV
      - type: is_power
        condition: device
        device_id: 87bba41cdf33c837ea766f843d059ced
        entity_id: 0a47db3178c271c6fcb0697ba19807fc
        domain: sensor
        below: 30
  - condition: and
    conditions:
      - condition: trigger
        id:
          - minWatt30TV
      - condition: time
        after: "23:00:00"
        before: "04:00:00"
action:
  - type: turn_off
    device_id: 87bba41cdf33c837ea766f843d059ced
    entity_id: 4334140cd53109e48cea63e840884ab4
    domain: switch
mode: single

Vielleicht stelle ich mich einfach ungeschickt an, aber als “einfach” würde ich das konstrukt nicht bezeichnen. :slight_smile: Geht das eleganter/einfacher?

Das UND brauchst du nicht extra angeben, da Bedingungen im Standard UND sind.
Du musst auch nicht prüfen welcher Trigger ausgelöst hat. Einfach beide Bedingungen eintragen und fertig.

Danke @totow. Das hat mich schonmal weiter gebracht.
Über die GUI kann ich dann nur feste Werte eintragen, mehr kontrolle bekomme ich dann über die yaml-Definition und kann dort auch mit variablen arbeiten.

Jetzt muss ich nurnoch etwas passendes finden um das aktuelle Lichtlevel (Beispiel: 1-2000 Lux) sinnvoll in 1 - 100 % Helligkeit zu wandeln.