Ein DOIF oder notify um mehrere Geräte zu überwachen

Begonnen von patlabor, 13 Dezember 2015, 10:36:36

Vorheriges Thema - Nächstes Thema

Stefan Scholz

#15
Hallo,

ich möchte dieses Thema gerne noch mal aufgreifen, da ich ebenso mehrere Geräte mit DOIF überwachen möchte.

Also fhem ist soeben auf 5.7 geupdatet und das FeatureLevel steht auch auf 5.7

Mir ist nicht klar geworden, wie ich die Schreibweise aus dem notify z.B.  TK_.*  im DOIF darstelle, damit ich nicht jeden Tür- bzw. Fensterkontakt einzeln benennen muss. Oder bleibt für dieses Problem nur die notify Lösung?

([TK_.*] eq "open" and [EMA_Int_Button] eq "on") (set Virtual_Rauchmelder_Team teamCall)

Es kommt dann immer noch die Fehlermeldung  DOIF: Wrong timespec TK_.*: either HH:MM:SS or {perlcode}: TK_.*

Gruß Stefan

CoolTux


([^TK_] eq "open" and [EMA_Int_Button] eq "on") (set Virtual_Rauchmelder_Team teamCall)


Sollte so gehen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Damian

Zitat von: CoolTux am 14 Juli 2016, 12:36:14

([^TK_] eq "open" and [EMA_Int_Button] eq "on") (set Virtual_Rauchmelder_Team teamCall)


Sollte so gehen.

wird nicht funktionieren, dann eher:

(["^TK_:open"] and [EMA_Int_Button] eq "on") (set Virtual_Rauchmelder_Team teamCall)

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

CoolTux

Jup hast Recht  ;D sorry. Hatte nur so aus dem Gedächtnis geraten.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Stefan Scholz

Hallo ihr zwei,

genau so funktioniert es. War ja wieder mal einfacher als gedacht.

VIELEN DANK!

Gruß
Stefan

lestat.le

Hallo,
ich wollte jetzt keinen neuen Thread, mein Thema passt eigentlich ganz gut rein.
Ich möchte mir in FTUI anzeigen lassen, ob ein Fenster geöffnet ist. Dabei interessiert mich gar nicht welches Fenster es ist. Soll nur ganz einfache ein Hinweis sein.

Also habe ich folgendes DOIF geschrieben:
(["^Fensterkontakt_"] and [$DEVICE:state] eq "open") DOELSE

Alle Fenster beginnen im Namen mit Fensterkontakt_.
Ich habe mir es so gedacht, das wenn irgendein Fenster geöffnet ist dann cmd_1. Falls nicht dann soll es auf cmd_2 springen.
Allerdings geben die Fensterkontakte in regelmäßigen Abständen ihren state an. Dann kommt also von irgendeinem anderen Fenster der state closed und das DOIF steht auf cmd_2, obwohl noch ein Fenster offen ist.

Im FTUI frage ich nur das DOIF nach cmd_1 oder cmd_2 ab.

Attr do always ist gesetzt.

Wo ist der Denkfehler und was könnte eine Lösung sein, das cmd_1 solange bleibt bis alle Fenster wirklich zu sind?

Grüße
Andreas

Damian

Zitat von: lestat.le am 17 Februar 2017, 15:18:13
Hallo,
ich wollte jetzt keinen neuen Thread, mein Thema passt eigentlich ganz gut rein.
Ich möchte mir in FTUI anzeigen lassen, ob ein Fenster geöffnet ist. Dabei interessiert mich gar nicht welches Fenster es ist. Soll nur ganz einfache ein Hinweis sein.

Also habe ich folgendes DOIF geschrieben:
(["^Fensterkontakt_"] and [$DEVICE:state] eq "open") DOELSE

Alle Fenster beginnen im Namen mit Fensterkontakt_.
Ich habe mir es so gedacht, das wenn irgendein Fenster geöffnet ist dann cmd_1. Falls nicht dann soll es auf cmd_2 springen.
Allerdings geben die Fensterkontakte in regelmäßigen Abständen ihren state an. Dann kommt also von irgendeinem anderen Fenster der state closed und das DOIF steht auf cmd_2, obwohl noch ein Fenster offen ist.

Im FTUI frage ich nur das DOIF nach cmd_1 oder cmd_2 ab.

Attr do always ist gesetzt.

Wo ist der Denkfehler und was könnte eine Lösung sein, das cmd_1 solange bleibt bis alle Fenster wirklich zu sind?

Grüße
Andreas

Deswegen musst du "Buch führen", welches Device "offen" gemeldet hat. Hier gibt es ein Beispiel für eine passende Meldung inklusive Fenstername:

https://forum.fhem.de/index.php/topic,66830.msg585465.html#msg585465

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

lestat.le

Danke für den Hinweis.
also ist es möglich umzusetzen.
Ich les dann dort weiter.
Kann leider erst in einer Woche weiter machen aber denk damit komm ich dann zum Ziel. Notfalls würde ich mich nochmal melden.

Danke und viele Grüße