FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Kurt77 am 11 März 2022, 20:24:03

Titel: doif, das von events getriggert wird.
Beitrag von: Kurt77 am 11 März 2022, 20:24:03
Und ich scheitere mal gleich am Anfang.

Aus der commandref:
"["FS"] triggert auf alle Devices, die "FS" im Namen beinhalten"

Bei mir sieht das so aus:
"["fenster"] ( set Sonos_Buero speak 40 de Fenster ist offen)"

Meine Erwartung war, das dachfenster, badezimmerfenster usw. bei jedem event einen Trigger auslösen.
Funktioniert aber nicht.
Wo ist mein Denkfehler?

Danke und Gruß,
Kurt
Titel: Antw:doif, das von events getriggert wird.
Beitrag von: Sany am 11 März 2022, 21:07:43
ein list vom DOIF wäre aussagekräftiger....

Die Beschreibung in der commandref bezieht sich auf das, was in den eckigen Klammern stehen muss. Die "Grammatik" drumrum ist aber wie üblich zu schreiben....
Titel: Antw:doif, das von events getriggert wird.
Beitrag von: Kurt77 am 11 März 2022, 21:25:25
Hier ist also das list.

code:
----------------------------------
Internals:
   CFGFN     
   DEF        ["fenster"] ( set Sonos_Buero speak 40 de Fenster ist offen)
   FUUID      622b6298-f33f-6c85-676b-d89b726d20e7daa5
   MODEL      Perl
   NAME       do_fenster_offen
   NOTIFYDEV  global
   NR         331
   NTFY_ORDER 50-do_fenster_offen
   STATE      initialized
   TYPE       DOIF
   VERSION    25663 2022-02-09 17:05:11
   READINGS:
     2022-03-11 19:07:18   mode            enabled
     2022-03-11 19:07:18   state           initialized
   Regex:
     accu:
     collect:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
   helper:
     NOTIFYDEV  global
     globalinit 1
     last_timer 0
     sleeptimer -1
   perlblock:
   uiState:
   uiTable:
Attributes:
   do       
---------------

Danke und Gruß,
Kurt
Titel: Antw:doif, das von events getriggert wird.
Beitrag von: Otto123 am 11 März 2022, 21:42:17
Hallo Kurt,

die DEF ist falsch. Meiner Meinung nach müssen noch runde Klammern sein:
(["fenster"]) ( set Sonos_Buero speak 40 de Fenster ist offen)

Aber das triggert dann wirklich auf alle Events mit fenster! Kann sein das wird ein Dauerläufer ... Also auch auf fenster zu :)

Gruß Otto
Titel: Antw:doif, das von events getriggert wird.
Beitrag von: Kurt77 am 11 März 2022, 21:55:22
Ach Otto,
Du hast leider Recht!

Aber in der commandref wird wie folgt aufgelistet:

["FS"] triggert auf alle Devices, die "FS" im Namen beinhalten
["^FS"] triggert auf alle Devices, die mit "FS" im Namen anfangen
["FS:temp"] triggert auf alle Devices, die "FS" im Namen und "temp" im Event beinhalten
([":^temp"]) triggert auf beliebige Devices, die im Event mit "temp" beginnen
(["^FS$:^temp$"] triggert auf Devices, die genau "FS" heißen und im Event genau "temp" vorkommt
[""] triggert auf alles

Hier gibt es also fälschlicherweise eine Unterscheidung zwischen mit und ohne "()".

Danke und Gruß,
Kurt
Titel: Antw:doif, das von events getriggert wird.
Beitrag von: TomLee am 11 März 2022, 22:14:13
Eine Frage aus Interesse, wie bekommt man in einem DOIF ein leeres do-Attribut gesetzt ?

Selbst wenn ich das über die fhem.cfg direkt eingebe wird es zwar gespeichert (und mit Fehler-Meldung quittiert), aber in einem List wird es nicht mit aufgeführt wie hier gezeigt ?
Titel: Antw:doif, das von events getriggert wird.
Beitrag von: Otto123 am 11 März 2022, 22:18:50
naja zum einen hat Damian da mMn 3 fehler eingebaut, die runden Klammern gehören in dem Text nicht hin.
Aber was ich gesagt habe stimmt eventuell auch nicht - sondern triggert auf alle Events die fenster im Namen enhalten. Also nicht allein geeignet für das was Du vor hast.
@Tomlee eventuell ist das ein copy&paste Fehler. Das ist immer nicht so einfach für den Kurt mit seinem Screenreader :)
Titel: Antw:doif, das von events getriggert wird.
Beitrag von: Kurt77 am 12 März 2022, 09:06:51
Zitat von: Otto123 am 11 März 2022, 22:18:50
@Tomlee eventuell ist das ein copy&paste Fehler. Das ist immer nicht so einfach für den Kurt mit seinem Screenreader :)
ja, es war ein copy und paste-Fehler.
Das hier fehlte im list:
"do always".

nett von Dir, dass Du meinen Screenreader erwähnst, aber als Ausrede zieht das hier nicht.
Mein Screenreader ermöglicht es sehr wohl zu prüfen, ob vollständig eingefügt wurde.

Sorry und Gruß,
Kurt