doif, das von events getriggert wird.

Begonnen von Kurt77, 11 März 2022, 20:24:03

Vorheriges Thema - Nächstes Thema

Kurt77

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

Sany

#1
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....
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Kurt77

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Kurt77

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

TomLee

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 ?

Otto123

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 :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Kurt77

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