FHEM Forum

FHEM => Automatisierung => Thema gestartet von: TobiasR am 02 Dezember 2018, 10:18:17

Titel: Nach Veränderung Zustend prüfen und Mail versenden
Beitrag von: TobiasR am 02 Dezember 2018, 10:18:17
Hallo,

ich möchte eine EMai Nachricht sobald sich an meinem Hühnerhaus die Tür geöffnet/geschlossen wurde.
Ich habe dafür  einen Reedkontakt an einem HM485 Eingang angeschlossen und erhalte jetzt auch diese Nachricht im Event Monitor:

2018-12-02 09:56:45 HM485 K_Huehner_Tuer sensor: open
2018-12-02 09:56:45 HM485 K_Huehner_Tuer auf

Nun habe ich versucht mit diesem Programm eine Email zu erzeugen:


(
[K_Huehner_Tuer:"^$"]
)

(

IF
   ([K_Huehner_Tuer] eq "auf")

   ({DebianMail('name@adresse.de',
             'Hühnerhaus wurde geöffnet');})
ELSE
   ({DebianMail('name@adresse.de',
             'Hühnerhaus wurde geschlossen');})

)


Mein erster Fehler ist wohl dass ich mit "^$" nicht auf eine Zustandsänderung reagiert. Es passiert nämlich nichts. Was muss ich da anders machen?
Den zweiten Fehler kann ich nicht eingrenzen. Prüfe ich z.B. auf "auf", kommt ebenfalls keine Mail. Wie muss die IF Prüfung anders aussehen?
Titel: Antw:Nach Veränderung Zustend prüfen und Mail versenden
Beitrag von: amenomade am 02 Dezember 2018, 10:40:58
DOIF ([ K_Huehner_Tuer] eq "auf") {Debianmail geöffnet} DOELSE {Debianmail geschlossen}

oder
DOIF ([ K_Huehner_Tuer:"auf"]) {Debianmail geöffnet} DOELSEIF ([ K_Huehner_Tuer:"zu"]) {Debianmail geschlossen}
Titel: Antw:Nach Veränderung Zustend prüfen und Mail versenden
Beitrag von: TobiasR am 02 Dezember 2018, 10:59:56
Hallo,

das hatte ich auch schon mal versucht. Hat auch geklappt.

Problem war aber dass der Reedkontakt häufig prellt und somit immer beide Meldung (auf und zu) kamen.
Aus dem Grund habe ich mich entschlossen es mit einer Prüfung des Status nach Änderung zu versuchen.
Deshalb die IF-Abfrage.
Zur Not könnte ich dann dort auch noch eine Wartesekunde einbauen.

Leider bekomme ich es im Moment nicht einmal hin auf jede Änderung zu reagieren.
Habe es jetzt mit [K_Huehner_Tuer:"*"]versucht.

Die Fehlermeldung lautet dann
Zitat2018-12-02 10:51:13 DOIF K_Huehner_Tuer error: condition c01: Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE / at ./FHEM/98_DOIF.pm line 939.
Titel: Antw:Nach Veränderung Zustend prüfen und Mail versenden
Beitrag von: amenomade am 02 Dezember 2018, 11:13:21
Dann wäre es eher [K_Huehner_Tuer:".*"]
Wobei ich nicht ganz verstehe was Du meinst:
DOIF ([ K_Huehner_Tuer:"auf"]) {Debianmail geöffnet} DOELSEIF ([ K_Huehner_Tuer:"zu"]) {Debianmail geschlossen} ist besser als dein IF Konstrukt mit trigger .* : reagiert nur auf bestimmte Events "auf" und "zu".

Mit deinem If Konstrukt mit .* Trigger reaggiert das DOIF auf allen Events (inkl. z.B. Batterie Event), und prüft dann den Zustand => DU kriegst den Zustand in der Email bei jedem Event des Geräts. Es sei denn, Du hast auf dem Device event-on-change-reading gesetzt.
Titel: Antw:Nach Veränderung Zustend prüfen und Mail versenden
Beitrag von: TobiasR am 02 Dezember 2018, 12:12:42
Hallo,

habe es hinbekommen!
Es war ein simpler Tippfehler und kein Prellen.

Die Lösung ist:

(
[K_Huehner_Tuer:"^sensor:.open$"]
)
(
{DebianMail('Mailadresse',
             'Hühnerhaus ist jetzt auf');
}
)


Ein zweiter DOIF mit zu melden dann das Schließen