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

Oh, da hast du dir ja echt Arbeit gemacht 👍. Vielen Dank. Natürlich werde ich es testen. Heute nicht mehr, aber morgen Vormittag habe ich Zeit dafür.
Schon recht komplex finde ich. Heut Abend werde ich es mir noch ansehen und versuchen zu verstehen 😉😄.

Übg. nach dem Muster deiner letzten Hilfe „Post #47“ habe ich eine weitere funktionierende Automation erstellt. Der Rasenmäher vom Nachbar wird von mir überwacht. Mit einem Kontakt Sensor. Wenn er nach zwei Stunden nicht lädt (zu Hause ist), dann hat er irgendwo auf dem Gründstück ein Problem. Und es funktioniert 😄😄😄.
Ich melde mich morgen und danke.
 
Wenn ich es richtig verstehe muss/ sollte ich auch die Helfer deaktivieren!? Zumindest werden die in dem Fall nicht mehr gebraucht?
 
Zuletzt bearbeitet:
Die Helfer kannst erstmal so lassen, die werden auch nicht benutzt in der neuen Automation. Reicht schon, wenn du die "alten" Automationen testweise deaktivierst (aber noch nicht löschen 😂).
Die Automationen würden beim Testen sonst auslösen und somit wird nicht ersichtlich, ob die neue Automation läuft.

Wenn du morgen testest und was nicht funktioniert, bitte gleich nen Timeline Trace mit dazu posten.

Sehr geil, dass du schon was von deinen neuen Kenntnissen umsetzen konntest. Und den Rasenrobbi so zu überwachen ist natürlich clever. Daumen hoch dafür 😉


Tip für deine Abendlektüre:
Wenn du die neue Automation verstehen möchtest, lies sie !nicht! wie einen Text von oben nach unten.
Ich hab den Triggern Namen gegeben, die du bei den Actions entsprechend wieder findest (sogar in richtiger Reihenfolge).
Guck dir den ersten Trigger an, verstehe was er macht und guck dir dann die entsprechende Action dazu an. Behandle beim Lesen quasi jeden Trigger wie eine separate Automation.
 
Wenn ich nun etwas verstanden habe, dann das du die Condition in mit in die Aktion gepackt hast, richtig? Also keine Condition in dieser Automatisierung. Dafür Contitions per „if“ „then“ in Action, richtig?
Dennoch fehlt für mein Verständnis die Logik darin. Genau wie in dem ersten funktionierenden Code, den du mir gemacht hattest.
Vielleicht liegt es daran, dass ich Null Ahnung vom programmieren habe, dass mir die Grundlagen fehlen.
Wie auch immer, morgen teste ich das mal und melde mich dann.
 
Das ist richtig, ich hab die Conditions in den Actions in solchen Automationen.

Wenn du unter Conditions was stehen hast, sind die allgemeingültig für alle Trigger.
Wenn du nun aber zb mehrere Trigger hast, die verschiedene Conditions brauchen, macht man das mit "If Trigger X ausgelöst, dann Conditions Y und Action Z".

Simples Beispiel wäre ein Bewegungsmelder, der im hellen was anderes auslösen soll, als in dunklen. Wenn du in diesem Fall unter Condition "es muss dunkel sein" einstellst, passiert im hellen nix. Dann brauchst du:
Trigger: Bewegungsmelder
Action 1: wenn hell, dann irgendwas
Action 2: wenn dunkel, dann was anderes
 
Moin, so funktioniert es leider noch nicht. Ohne das Auto bewegt zu haben (bzw. ohne Wemos aus) habe ich erstmal nur auf und dann zu geschlossen. Auf das Verschliessen geagiert die Automation sofort mit der Pushover Nachricht. Die LED schaltet richtig, erst zu gelb - dann wieder rot.
Bildschirmfoto 2022-10-16 um 10.08.38.png
Wenn das Auto nicht zu Haus ist wird die LED rot.
Auto wieder zu Haus, LED wird gelb. Auto ist auf.
Nach Ablauf der Zeit kommt keine Pushover Meldung.
Bildschirmfoto 2022-10-16 um 10.40.19.png
 
Zuletzt bearbeitet:
Also die LED Farben sind so alle korrekt ja?
Das einzige ist, dass die Benachrichtigung beim falschen Zustand und sofort statt verzögert kommt, richtig verstanden?

Ich guck nachher nochmal drüber

Edit:
Fehler schon gefunden. Keine Ahnung, was mich da geritten hat 😂
Korrigier ich, wenn ich von der Arbeit nach Hause komme
 
So, Pause kurz überzogen und fertig gemacht 😂

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.auto
    for:
      hours: 0
      minutes: 0
      seconds: 0
    alias: Auto auf
    id: Auto auf
    to: "on"
  - platform: state
    entity_id:
      - switch.tasmota2
    for:
      hours: 0
      minutes: 0
      seconds: 0
    alias: Auto zu
    id: Auto zu
    to: "on"
condition: []
action:
  - if:
      - condition: trigger
        id: Auto Zuhause
        alias: Auto Zuhause
    then:
      - alias: LED an (gelb)
        service: mqtt.publish
        data:
          topic: cmnd/node1/led9
          payload: "010100"
    alias: "Wenn: Auto da"
  - 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: Auto auf
        alias: Auto auf
    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: 10 Minuten warten
      - service: notify.pushover
        data:
          message: Auto ist noch auf
          data:
            priority: 0
            sound: Auto
        alias: Benachrichtigung
    alias: "Wenn: Auto auf"
    else: []
  - if:
      - condition: trigger
        id: Auto zu
        alias: Auto zu
    then:
      - alias: LED an (grün)
        service: mqtt.publish
        data:
          topic: cmnd/node1/led9
          payload: "000100"
    alias: "Wenn: Auto zu"
    else: []
mode: restart
 
Hab es gerade nochmal getestet.
Wie gehabt, LED Anzeige funktionierrt.
Die Meldung kommt nicht mehr beim Zuschließen.
Leider kommt die Meldung aber auch nicht wenn die Zeit abgelaufen ist und die Conditionen passen.

Du musst heute arbeiten :oops:? Nicht dass du ärger bekommst wenn du da online in Forum gehst!
 
Hast mal alle Timeline Traces vom letzten versuch? Da kann eigentlich nur ein Trigger im Nachgang nochmal auslösen und die 10 Minuten dadurch abbrechen.

Wenn man der Vorgesetze auf der Baustelle ist, bekommt man keinen Ärger 😂
 
Das lief scheinbar nur bis zur gelben LED.
Dannach kam nichts mehr.

Bildschirmfoto 2022-10-16 um 13.46.12.png
Bildschirmfoto 2022-10-16 um 13.31.52.png

Beide Timelines sind zweimal abgelegt, jeweils mit dem gleichen Zeitstempel.



Du arbeitest auf einer Baustelle 😮? Ich dachte du bist Entwickler oder so.
Verstehe das bitte nicht abwertent ☺️, bin nur überrascht 🙂.
 
Zuletzt bearbeitet:
Das ist richtig, ich hab die Conditions in den Actions in solchen Automationen.

Wenn du unter Conditions was stehen hast, sind die allgemeingültig für alle Trigger.
Wenn du nun aber zb mehrere Trigger hast, die verschiedene Conditions brauchen, macht man das mit "If Trigger X ausgelöst, dann Conditions Y und Action Z".

Simples Beispiel wäre ein Bewegungsmelder, der im hellen was anderes auslösen soll, als in dunklen. Wenn du in diesem Fall unter Condition "es muss dunkel sein" einstellst, passiert im hellen nix. Dann brauchst du:
Trigger: Bewegungsmelder
Action 1: wenn hell, dann irgendwas
Action 2: wenn dunkel, dann was anderes
Das heißt ja ich kann meine Automationen fast halbieren :ROFLMAO:. Auf meinem Statusdisplay habe ich so einige LEDs, diese zeigen den jeweiligen Zustand von Fenster und Türen. Für jeden Zustandsänderung habe ich eine Automation erstellt, das kann ich ja nun jeweils in eine packen.
 
Umso öfter ich die Automation bearbeite, desto simpler wird der eigentliche Ablauf irgendwie 😂 ich hab das ganze nochmal halbiert, nurnoch zwei Trigger und zwei Actions.
Hab nen Denkfehler von mir noch entdeckt, der hat die Automation stillgelegt.
Wenn du nach Hause kommst wird das Auto ja gar nicht aufgeschlossen, also kann das auch kein Trigger sein. Fehler erkannt, Fehler behoben:

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
condition: []
action:
  - if:
      - condition: trigger
        id: Auto Zuhause
        alias: Auto Zuhause
    then:
      - alias: LED an (gelb)
        service: mqtt.publish
        data:
          topic: cmnd/node1/led9
          payload: "010100"
      - wait_for_trigger:
          - platform: state
            entity_id:
              - switch.tasmota2
            for:
              hours: 0
              minutes: 0
              seconds: 0
            alias: Auto zu
            to: "on"
            id: Abgeschlossen
        continue_on_timeout: true
        timeout:
          hours: 0
          minutes: 10
          seconds: 0
          milliseconds: 0
        alias: "Warte 10 Minuten auf Abschließen "
      - if:
          - condition: template
            value_template: "{{ trigger.id == \"Abgeschlossen\" }}"
            alias: Wurde abgeschlossen
        then:
          - alias: LED an (grün)
            service: mqtt.publish
            data:
              topic: cmnd/node1/led9
              payload: "000100"
        else:
          - service: notify.pushover
            data:
              message: Auto ist noch auf
              data:
                priority: 0
                sound: Auto
            alias: Benachrichtigung
        alias: Konsequenz
    alias: "Wenn: Auto da"
  - 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"
mode: restart


Nein nein, ich bin kein Entwickler, ich bin Rohrleitungsbauer 😅


Und korrekt, wenn du meinen "Stil" adaptiert bekommst, kannst du damit deine Automationen deutlich verringern. Ich "gruppiere" so halt sachen die zusammengehören. Zb alles was via Kalender getriggert wird, ist in einer elendig langen Automation
 
Der neue Code für Auto Pushover funktioniert wie es aussieht, nur die LED bleibt gelb beim Verschliessen.

Bildschirmfoto 2022-10-16 um 15.29.33.pngBildschirmfoto 2022-10-16 um 15.29.48.png

Und korrekt, wenn du meinen "Stil" adaptiert bekommst, kannst du damit deine Automationen deutlich verringern. Ich "gruppiere" so halt sachen die zusammengehören. Zb alles was via Kalender getriggert wird, ist in einer elendig langen Automation
Ich habe ein paar Kontaktsensoren die per mqtt ihren Zustand senden. Als Aktion kann ich einen Dienst auswählen, wenn ich "if" verwende habe ich diese Option nicht (in der GUI). Hast du eine Idee wie ich das machen kann?
Leider werden die GPIOs vom ESP auch nicht als Entität ausgegeben.
 
Zuletzt bearbeitet:
Ich schätze, du hast aber auch ne Pushover bekommen, als du verschlossen hast?

Neue Version:
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
condition: []
action:
  - if:
      - condition: trigger
        id: Auto Zuhause
        alias: Auto Zuhause
    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 da & 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

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").
Bei den Actions fügst du ein "Wenn-Dann" hinzu. Bei "Wenn" kommt "ausgelöst durch" rein. Dort findest du deine oben definierte Trigger-ID ("Licht an") wieder. Unter "Dann" schmeißt du jetzt fröhlich deine Actions rein.
Dieser "Wenn-Dann"-Strang wird jetzt nur ausgeführt, wenn der Trigger "Licht an" ausgeführt wurde.
Und so kannst dann den nächsten Trigger plus "wenn-dann"-Strang basteln.
Jeder Strang reagiert dann nur auf seinen zugehörigen Trigger.

Guck dir das mal in der GUI Ansicht an, Bilder sagen mehr als 1000 meiner Worte:
YAML:
description: ""
mode: single
trigger:
  - platform: mqtt
    topic: ""
    id: Licht an
  - platform: mqtt
    topic: ""
    id: Licht aus
condition: []
action:
  - if:
      - condition: trigger
        id: Licht an
    then: []
  - if:
      - condition: trigger
        id: Licht aus
    then: []
 
Zuletzt bearbeitet:
Das mit dem Code fürs Auto funktioniert immer noch nur die LED wird nicht grün beim Verschliessen.

Das andere... damit muss ich mich erstmal befassen.

Edit:
Diese ID, die man über die drei Punkte vergeben kann, die ist nur in dieser Automation gültig, oder? Oder ist die global im ganzen System verfügbar?
 
Zuletzt bearbeitet:
Ich glaub, du warst schneller als ich dachte. Ich hab in meinem letzten Post den Code nochmal aktualisiert, kurz nachdem ich ihn gepostet hab. Wahrscheinlich hattest den ersten schon kopiert. Sorry, hätte bescheid sagen sollen.
Ich kann mir nicht vorstellen, daß die LED nicht grün wird. Mir fällt nichts ein, was dagegen spricht. Probier den Code aus #75 gerne nochmal. Und sorry, dass das so eine Odyssee geworden ist 🙈

Die ID ist eine "Automation Variable" und ist nur innerhalb dieser Automation gültig. Gibt noch paar mehr dieser Variablen, die sind aber nur per Template erreichbar (zb. this, trigger.to_state, trigger.from_state...)
 
Ich war gerade noch kurz etwas besorgen und gerade wieder hier. Es scheint nun zu funktionieren. Vielen Dank für deine Hilfe. Eine Odyssee war es wohl eher für dich ;) . Ich werde das mal beobachte.

Das mit der ID habe ich mal ausprobiert und hat auf anhieb geklappt. Danke für den Tip.
Vielleicht kannst du mir bei Gelegenheit auch mal die Templates erklären. Ich wüsste im Moment zwa nicht wofür ich die brauche, ich weiß aber auch nicht wirklich was das ist. Eine Vorlage, so würde ich es definieren.
 
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.
 
Na das ist doch super, dass du den Tip umsetzen konntest. Wichtig wenn du mit IDs arbeitest ist, dass du für dich selbst ne Benennung findest, die für dich Sinn macht und nachvollziehbar ist. Ebenso das Umbenennen von Actions etc. Sonst stehste da mit wirrem Haar, wenn was nicht läuft. Daher hab ich in deiner Auto-Automation auch alles penibel nach Sinn und Zweck benannt, sonst wirds schwer Fehler zu finden.

Ui, das würde mich ja wirklich freuen, wenn das jetzt funktioniert. Dann kannst nämlich deine Helfer, Ping und NMAP Sensoren alle entfernen und hast dieses Projekt sauber im Kasten.
Und wenn dem wirklich so ist, können wir dir das ganze in Lovelace auch noch hübsch anzeigen lassen. Mit Templates zum Beispiel 😎


Tjaaa, also templates.... Wenn man sowas drauf hat, wäre die Definition wohl "das geilste was es gibt".
Wenn man das nicht drauf hat, dann wohl eher "um Gottes Willen, bitte nicht".

So ein Template geht von:
Code:
{{ states | list }}
Über:
Code:
"{{ iif (((trigger.to_state.attributes.last_called == true) and (trigger.to_state.attributes.last_called_summary != '')), (trigger.to_state.attributes.last_called_summary | replace('alexa', '')) , state_attr('sensor.letzte_alexa', 'letzter_befehl')) }}
Bis hin zu.... Naja, du kannst es dir ja denken 😅
Das lange Elend da oben hab ich vor paar Tagen geschrieben, danach brauchte ich Baldrian.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

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