Wifi Gerät überwachen (online/ offline) für eine Automatisierung

Ich möchte mich wegen dem Auto Pushover Code nochmal melden. Die Meldung kommt, die LED wird rot, die LED wird gelb, die LED wird grün doch nun wird die LED nicht wieder gelb wenn ich wieder aufschliesse.


Damit wird sie wieder gelb:
YAML:
alias: Auto noch auf/ Pushover
description: ""
trigger:
  - platform: state
    entity_id:
      - switch.tasmota2
      - switch.auto
    for:
      hours: 0
      minutes: 0
      seconds: 0
    alias: Wemos Online/Auto Zuhause
    id: Auto Zuhause
    from: unavailable
  - platform: state
    entity_id:
      - switch.tasmota2
      - switch.auto
    for:
      hours: 0
      minutes: 0
      seconds: 0
    alias: Wemos Offline/Auto nicht Zuhause
    id: Auto nicht Zuhause
    to: unavailable
  - platform: state
    entity_id:
      - switch.tasmota2
    for:
      hours: 0
      minutes: 0
      seconds: 0
    alias: Auto zu
    to: "on"
    id: Abgeschlossen
  - platform: state
    entity_id:
      - switch.auto
    for:
      hours: 0
      minutes: 0
      seconds: 0
    alias: Auto auf
    to: "on"
    id: Aufgeschlossen
condition: []
action:
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id: Auto Zuhause
            alias: Auto Zuhause
          - condition: trigger
            id: Aufgeschlossen
            alias: Auto aufgeschlossen
        alias: Auto kommt nach Hause oder wird aufgeschlossen
    then:
      - alias: LED an (gelb)
        service: mqtt.publish
        data:
          topic: cmnd/node1/led9
          payload: "010100"
      - delay:
          hours: 0
          minutes: 10
          seconds: 0
          milliseconds: 0
        alias: Warte 10 Minuten
      - service: notify.pushover
        data:
          message: Auto ist noch auf
          data:
            priority: 0
            sound: Auto
        alias: Benachrichtigung
    alias: "Wenn: Auto kommt nach Hause & offen"
  - if:
      - condition: trigger
        id: Auto nicht Zuhause
        alias: Auto nicht Zuhause
    then:
      - alias: LED an (rot)
        service: mqtt.publish
        data:
          topic: cmnd/node1/led9
          payload: "010000"
    alias: "Wenn: Auto weg"
  - if:
      - condition: trigger
        id: Abgeschlossen
        alias: Auto abgeschlossen
    then:
      - alias: LED an (grün)
        service: mqtt.publish
        data:
          topic: cmnd/node1/led9
          payload: "000100"
    alias: "Wenn: abgeschlossen"
mode: restart

Der Ablauf "Warte 10 Minuten und schick dann die Pushover" wird jetzt von "nach Hause kommen (mit offenem Auto, is ja logisch)" und von "aufschließen" getriggert.
Übrigens... Die Automation hat den Modus "neu starten". Das heißt, dass jedes mal, wenn einer der oben stehenden Trigger auslöst, die laufende Automation abgebrochen und neu gestartet wird. Je nachdem welcher Trigger das war, wird in den Actions anhand der ID wieder geguckt, was passieren soll.
Wenn du aufschließt, startet eine Wartezeit von 10 Minuten vor der Pushover. Schließt du innerhalb der 10 Minuten zu oder fährst weg (andere Trigger-ID), wird die laufende Automation neu gestartet und durch die andere ID mit anderen Actions wird die LED entsprechend rot/grün/gelb und es kommt keine Pushover.
 
Also nun schalten die Farben der LED. Grün, Gelb und Rot. Alle richtig nach Zustand. Wie es nun aussieht klappt alles. Ich beobachte das noch mal. Aber im Moment sieht es aus, als wäre alles so wie es soll.
Kann ich mich nun um weitere Regeln kümmern, die aus Pimatic in Automationen für HA übersetzt werden müssen :).



Hast du Erfahrung mit der UND bzw. ODER Funktion unter Bedingungen? Irgendwo hatte ich gelesen das funktioniert nicht so richtig. Ich will da zwei Fensterkontake verknüpfen. Nur nach deinem Muster in einer Automation. Aktuell habe ich dafür drei Automationen. Das funktioniert, aber dein Schema finde ich schöner ;)
 
Ah, hab ich dich überzeugen können? 😅

Ja, ich hab anfangs viel mit und/oder gearbeitet, aber da ich mal alle meine Automationen nach besagtem Schema neu geschrieben hab, ist das - für meinen Kram - entfallen.
Was ich aber weiß ist, dass bei richtiger Verwendung keine Probleme auftreten. Meist sind es Logikfehler des Anwenders, die Probleme machen.
Bedenke: alles, was du bei Bedingungen stehen hast, betrifft die gesamte Automation. Nichtmal die Trigger "feuern", dadurch gibt's auch kein Trace etc etc.
Wenn Bedingungen in den Aktionen stehen, "feuern" die Trigger noch, da sie erst später auf Bedingungen treffen.

Beispiel 1:
Code:
Trigger: Uhrzeit 10:00 Uhr
Bedingung: Uhrzeit zwischen 11:00 und 12:00 Uhr
Aktion: irgendwas.
Was passiert? Exakt gar nix! Kein Trace, Automation nie ausgeführt.

Beispiel 2:
Code:
Trigger: Uhrzeit 10:00 Uhr
Bedingung: Nix
Aktion:
   Bedingung: Uhrzeit zwischen 11:00 und                          12:00 Uhr
   Irgendwas:....
Was passiert? Trace verfügbar, Automation ausgeführt, aber in der Aktion abgebrochen, weil Bedingung nicht zutreffend.


Also... Was möchtest du wissen und wie kann ich helfen?
 
If ist das "wenn", also eine Bedingung, keine Action. Nach meinem Schema definierst du ganz oben deinen Trigger und gibst ihm ne eindeutige und sinnige ID, zb "Licht an" (die 3 Punkte rechts daneben, "ID bearbeiten").
Noch mal zurück zu diesem Thema. Wo finde ich den von mir festgelegten Namen? Als Entität?

Bildschirmfoto 2022-10-16 um 20.39.59.pngBildschirmfoto 2022-10-16 um 20.40.35.png
"Anbau_auf" festgelegt - taucht unter Aktionen aber nicht als Entität auf
 
Dem Namen gibt es nicht als Entität, den gibt es nur innerhalb deiner Automation. Finden kannst du den auch nur innerhalb Bedingungen, sowohl direkt bei Bedingungen, als auch bei Bedingungen in den Aktionen.


Code:
Auslöser:
  - XXX
      ID: Test 1
  - YYY
      ID: Test 2
(Bedingungen:
   - Ausgelöst durch:
       Test 1
   - Ausgelöst durch:
       Test 2)
Aktion:
   - Wenn:
       Ausgelöst durch:
         Test 1
     Dann
       XXXX
   - Bedingung:
       Wenn:
         Ausgelöst durch:
           Test 2
       Dann
           YYYY

Bei Bedingungen stehts in Klammern, weil es da nicht wirklich Sinn macht.

Anhand deines Vorhabens (als Aktion) :

YAML:
if:
  - condition: trigger
    id: Anbau_auf
then: []
 
Zuletzt bearbeitet:
So habe ich es in yaml gebastelt. Aber irgendwas ist falsch.
Kannst du mir sagen was?

YAML:
alias: Anbau auf/zu
description: ""
trigger:
  - platform: mqtt
    topic: "  cmnd/Kabelbruecke/POWER2"
    payload: "ON"
    ID: ANBAU AUF
  - platform: mqtt
    topic: "  cmnd/Kabelbruecke/POWER2"
    payload: "OFF"
    id: ANBAU ZU
condition: []
action:
  - if:
      - condition: state
        id: ANBAU AUF
    then:
      - service: mqtt.publish
        data:
          topic: cmnd/node1/led22
          payload: "010100"
  - if:
      - condition: state
        id: ANBAU ZU
    then:
      - service: mqtt.publish
        data:
          topic: cmnd/node1/led22
          payload: "010000"
mode: single
 
Zuletzt bearbeitet:
Falsch:
YAML:
action:
  - if:
      - condition: state
        id: ANBAU AUF
    then:
........

Richtig:
YAML:
action:
  - if:
      - condition: trigger
        id: ANBAU AUF
    then:
........

Gilt natürlich für den zweiten auch.
 
Hab meinen Fehler gefunden. In der 7. Zeile von unten :rolleyes:
Hab das nun so, es passt aber noch immer nicht.
Message malformed: extra keys not allowed @ data['action'][1]['if'][0]['entity_id']

YAML:
alias: Anbau auf/zu
description: ""
trigger:
  - platform: mqtt
    topic: "  cmnd/Kabelbruecke/POWER2"
    payload: "ON"
    id: Anbau_auf
  - platform: mqtt
    topic: "  cmnd/Kabelbruecke/POWER2"
    payload: "ON"
    id: Anbau_zu
condition: []
action:
  - if:
      - condition: trigger
        id: Anbau_auf
    then:
      - service: mqtt.publish
        data:
          topic: cmnd/node1/led22
          payload: "010100"
  - if:
      - condition: trigger
        entity_id: Anbau_zu
    then:
      - service: mqtt.publish
        data:
          topic: cmnd/node1/led22
          payload: "010000"
mode: single
 
Zuletzt bearbeitet:
In deinem zweiten If hast du entity_id statt id verwendet.

Nur aus Interesse, warum gehst du den schweren weg und schreibst in yaml, statt bequem über GUI?
 
In der GUI hab ich nicht gefunden was ich brauche 😩.
Und Code abkuppfern kann ich, wenn mir jemand sagt wie es richtig ist. 🤣
Dieses Ding funktioniert. Und nun weiß ich wie ich die anderen mqtt Geräte in eine Automatinon packe.
 
Habe ich inzwischen auch bemerkt. Ich brauche wohl beides. Erst hier machen und dort sehen und dann dort machen und hier sehen.

Die Automation mit Auto / Pushover funktioniert inzwischen hervorragend. Ich bekomme sogar eine Meldung aus Handy wenn ich das Auto kurtz aufschließe und dann nicht wieder verschließ.
Also ohne dass das Auto weg war. Einzig das verschließen verhindert die Nachricht. So soll es sein denke ich.
 
Ist das in deinem Sinne so?
Ich kann das noch ändern, dass du auch beim kurzen aufschließen Meldung bekommst

Nachtrag, falls du lieber keine Pushover bei kurzem aufschließen willst:
Damit bekommst die Pushover nurnoch, wenn du nach Hause kommst und nicht innerhalb von 10 Minuten verriegelst.
Wenn du zwischendurch mal kurz aufschließt geht die LED auf gelb, aber keine Pushover.

YAML:
alias: Auto noch auf/ Pushover
description: ""
trigger:
  - platform: state
    entity_id:
      - switch.tasmota2
      - switch.auto
    for:
      hours: 0
      minutes: 0
      seconds: 0
    alias: Wemos Online/Auto Zuhause
    id: Auto Zuhause
    from: unavailable
  - platform: state
    entity_id:
      - switch.tasmota2
      - switch.auto
    for:
      hours: 0
      minutes: 0
      seconds: 0
    alias: Wemos Offline/Auto nicht Zuhause
    id: Auto nicht Zuhause
    to: unavailable
  - platform: state
    entity_id:
      - switch.tasmota2
    for:
      hours: 0
      minutes: 0
      seconds: 0
    alias: Auto zu
    to: "on"
    id: Abgeschlossen
  - platform: state
    entity_id:
      - switch.auto
    for:
      hours: 0
      minutes: 0
      seconds: 0
    alias: Auto auf
    to: "on"
    id: Aufgeschlossen
condition: []
action:
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id: Auto Zuhause
            alias: Auto Zuhause
        alias: Auto kommt nach Hause oder wird aufgeschlossen
    then:
      - alias: LED an (gelb)
        service: mqtt.publish
        data:
          topic: cmnd/node1/led9
          payload: "010100"
      - delay:
          hours: 0
          minutes: 10
          seconds: 0
          milliseconds: 0
        alias: Warte 10 Minuten
      - service: notify.pushover
        data:
          message: Auto ist noch auf
          data:
            priority: 0
            sound: Auto
        alias: Benachrichtigung
    alias: "Wenn: Auto kommt nach Hause & offen"
  - if:
      - condition: trigger
        id: Auto nicht Zuhause
        alias: Auto nicht Zuhause
    then:
      - alias: LED an (rot)
        service: mqtt.publish
        data:
          topic: cmnd/node1/led9
          payload: "010000"
    alias: "Wenn: Auto weg"
  - if:
      - condition: trigger
        id: Abgeschlossen
        alias: Auto abgeschlossen
    then:
      - alias: LED an (grün)
        service: mqtt.publish
        data:
          topic: cmnd/node1/led9
          payload: "000100"
    alias: "Wenn: abgeschlossen"
  - if:
      - condition: trigger
        id: Aufgeschlossen
        alias: Auto aufgeschlossen
    then:
      - alias: LED an (gelb)
        service: mqtt.publish
        data:
          topic: cmnd/node1/led9
          payload: "010100"
    alias: "Wenn: aufgeschlossen (ohne Pushover)"
mode: restart
 
Zuletzt bearbeitet:
NEIN, alles gut wie es ist . Auch eine Nachricht wenn das Auto da ist und aufgeschlossen wurde. Das ist doch in Ordnung.
Ich verstehe zwar nach wie vor nicht was in dieser (deiner) Automation passiert. Aber es fdunktioniert..

Hast dich mal mit NFC Tags beschäftigt? Ich hatte mir ein paar in China bestellt. Die sind heute gekommen. Nur weiß ich im Moment noch nicht was ich damit machen kann.
Also sinnvoll nutzen kann..

;)
 
Ach Käse, dann hab ich meine Mission ja nur zur Hälfte erfüllt. Wie kann ich dir das bloß erklären 🤔

Ich hatte mal bisschen mit Nfc-Tags rumgespielt, mittlerweile aber alle bis auf einen komplett automatisiert oder durch Alexa-Befehle ersetzt. Der letzte Nfc-Tag, der noch existiert, klebt an meinem 3D-Drucker, um die entsprechende Steckdose zu schalten und den Drucker-Server zu starten.


Mögliche Szenarien für solche Tags, die mir spontan in den Kopf kommen:
- an die Haustür (innen) kleben. Beim kommen und gehen scannen um Alarmanlage, Radio, Licht zu schalten.
- auf den Nachtschrank kleben. Beim zu Bett gehen scannen, um alles im Haus auszuschalten
- im Badezimmer neben die Dusche, um fürs Duschen/Baden ein Radio anzumachen
- der Frau aufs Knie kleben, um sie stumm zu schalten? 🤔🤔
 
Die letzte Idee ist die beste, vielleicht als Option noch Bier holen 🤣.
Aber mal ehrlich, ich fand den Spielkram ja sehr interessant, aber so richtig fällt mir keine Sinnvolle Nutzung ein. Vielleicht das mit dem Nachtschrank… um an oder aus zu schalten…
Na mal sehen.
 
Und genau deswegen hab ich nur noch diesen einen Nfc-Tag. Alles andere läuft vollautomatisch und Bedarf höchstens einem Sprachbefehl. Handy rausholen, entsperren und was Scannen ist ja fast wie im Mittelalter 😂
 
@IvoryBalboa90
Kannst du mir noch mal einen Gefallen tun und darüber sehen?
Ich meine es sollte alles passen, scheint aber etwas falsch zu sein. Die LED reagiert nicht.


YAML:
alias: Küche Fenster 1 oder/und 2 auf/zu
description: Fenster auf/zu - Display
trigger:
  - platform: state
    entity_id:
      - binary_sensor.kuche_fenster_1_kontakt
    to: "on"
    id: Fenster1 auf
    alias: Fenster1 auf
  - platform: state
    entity_id:
      - binary_sensor.kuche_fenster_2_kontakt
    to: "on"
    id: Fenster2 auf
    alias: Fenster2 auf
  - platform: state
    entity_id:
      - binary_sensor.kuche_fenster_1_kontakt
    to: "off"
    id: Fenster1 zu
    alias: Fenster1 zu
  - platform: state
    entity_id:
      - binary_sensor.kuche_fenster_2_kontakt
    to: "off"
    id: Fenster2 zu
    alias: Fenster2 zu
condition: []
action:
  - if:
      - condition: and
        conditions:
          - condition: trigger
            id: Fenster1 auf
          - condition: trigger
            id: Fenster2 auf
    then:
      - service: mqtt.publish
        data:
          topic: cmnd/node1/led4
          payload: "010000"
        alias: LED rot
  - if:
      - condition: and
        conditions:
          - condition: trigger
            id: Fenster1 zu
          - condition: trigger
            id: Fenster2 zu
    then:
      - service: mqtt.publish
        data:
          topic: cmnd/node1/led4
          payload: "000100"
        alias: LED grün
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id: Fenster1 auf
          - condition: trigger
            id: Fenster2 zu
    then:
      - service: mqtt.publish
        data:
          topic: cmnd/node1/led4
          payload: "010100"
        alias: LED gelb
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id: Fenster1 zu
          - condition: trigger
            id: Fenster2 auf
    then:
      - service: mqtt.publish
        data:
          topic: cmnd/node1/led4
          payload: "010100"
        alias: LED gelb
mode: restart
 
Zuletzt bearbeitet:
Also vom Grundprinzip stimmt alles und du hast mein Schema auch richtig umgesetzt, hast aber einen Denkfehler drin.

Deine ersten beiden Actions haben im "if" einen Logikfehler.

So wie du es gemacht hast, müsstet du beide Fenster zeitgleich zu bzw aufmachen. Und selbst das geht nicht, weil die Automation im "restart" Modus ist. Das heißt dass jeder Trigger alles neu startet.

Was du vorhast, ist mit diesem Schema problemlos möglich, aber die Logik stimmt noch nicht (und kann einfacher gemacht werden).

Die trigger selbst kannst erstmal so lassen. Dann kommt bei den Actions:
Wenn:
- Fenster 1 offen
Dann:
- LED Farbe

"ist Offen" ist eine Bedingung, "wurde geöffnet" ein Trigger.


Nachtrag:
Ich hab dein Vorhaben heimlich schonmal umgeschrieben. Diesmal mach ich es dir aber nicht so leicht 😅
Ich schreib dir nachher nochmal was dazu, muss jetzt aber erstmal weiter arbeiten

Nachtrag 2:
Mit und/oder hast du grundsätzlich aber alles richtig gemacht. Dein Problem ist in diesem Fall das verwerten der Trigger. In meiner umgebauten Version gibt es einen einzigen Trigger und in den "if-then" nurnoch die Bedingungen "state" mit und/oder sinnvoll verknüpft. "trigger" hab ich gar nicht als condition benutzt.
Ich fürchte, das wird dich alles sehr verwirren (und das meine ich nicht böse).
 
Zuletzt bearbeitet:
Ich denke grundsätzlich verstehe ich was du meinst. Nur weiß ich im Moment nicht wie ich es ändern kann. Ich hätte gedacht im Trigger ein "wurde geöffnet" zu finden. Da gibts aber nur "offen" und "geschlossen". Also "on" oder "off". Wenn ich das Gerät und nicht die Entität als Triger nutzen würde, da wird mir "ist geöffnet" gegeben.
Aber du schriebst ja auch der Trigger wäre in Ordnung.
YAML:
trigger:
  - platform: state
    entity_id:
      - binary_sensor.kuche_fenster_1_kontakt
    to: "on"
    id: Fenster1 auf
    alias: Fenster1 auf
Und in der Aktion berufe ich mich doch auf den ursprünglichen Trigger. Wie kann ich das ändern? Das Problem kommt meiner Meinung nach von der "UND" Verknüpfung. Bei "ODER" ist das wohl egal.
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.549
Beiträge
46.548
Mitglieder
4.182
Neuestes Mitglied
DSanders
Zurück
Oben