Wildcards in der reading Abfrage ?

Begonnen von wendeling, 19 Juni 2020, 08:33:52

Vorheriges Thema - Nächstes Thema

wendeling

Hallo,
ich habe folgendes Problem:
Die Rollo sollen automatisch zu einem gewissen Ereignis (Tageszeit , Tag) automatisch hochfahren.
Jetzt kann es jedoch sein dass die Rollo schon vorher durch ein anderes Ereignis manuell oder automatisch in eine gewisse Position gefahren wurden. Deshalb habe ich für diese Fälle readings eingefügt. Alle zusätzlichen readigs beginnen mit Steuer_XXX. D.h. wenn keine zusätzlichen Steuerungen erfolgt sind sind alle readings auf off , oder wenn Steuerungen erfolgt auf on z.B. "Steuer_Sonne  on".

Ich habe nun versucht diese readings so abzufragen  (DOIF):


([TAGESZEIT] eq "Tag" and [?EG_Rollo_Wohnzimmer_g_Fenster:"Steuer_"] eq "off")
(set EG_Rollo_Wohnzimmer_g_Fenster open)


Als Hinweis : "Steuer_" habe ich so verwendet da readings gesucht werden sollten die 'Steuer_'  enthalten. Funktioniert aber leider nicht .

Wer kann mir da helfen ?

Danke

Gruß
Wendelin

Damian

Welches Reading soll hier gemeint sein?

[?EG_Rollo_Wohnzimmer_g_Fenster:"Steuer_"] eq "off"


So etwas kann nicht funktionieren.

Es gibt aber Aggregationsfunktionen: https://fhem.de/commandref_DE.html#DOIF_aggregation
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

wendeling

#2
Hallo,
habe die Hinweise gelesen, aber anscheinend bin ich zu blöd !!

Was will ich überprüfen :

Device :  EG_Rollo_Wohnzimmer_g_Fenster
Reading : Steuer_Sonne , Steuer_manuell , Steuer_...
Zusand der readings : on oder off

Befehl 'set EG_Rollo_Wohnzimmer_g_Fenster open' soll erfolgen wenn alle readings des genannten Devices mit dem Namen 'Steuer_' off  enthalten und die TAGESZEIT Tag enthält .


die bisherige lange Version die ich verkürzen will, da auch noch readings hinzu kommen können:


([TAGESZEIT] eq "Tag" and [EG_Rollo_Wohnzimmer_g_Fenster:Steuer_Sonne] eq "off" and [EG_Rollo_Wohnzimmer_g_Fenster:Steuer_Manuell] eq "off" and [EG_Rollo_Wohnzimmer_g_Fenster:Steuer_Beamer] eq "off" and [EG_Rollo_Wohnzimmer_g_Fenster:Steuer_TV] eq "off"    )
(set EG_Rollo_Wohnzimmer_g_Fenster open)




Gruß
Wendelin




MadMax-FHEM

Warum dann nicht ein "einfaches" notify!?


define nPruefung notify EG_Rollo_Wohnzimmer_g_Fenster:Steuer_.* {if(TAGESZEIT && $EVTPART1 eq "off"){fhem("set EG_Rollo_Wohnzimmer_g_Fenster open)}


KEIN!! copy&paste Code, weil ich ja nicht genau weiß WO TAGESZEIT her kommt!?

Evtl. ReadingsVal("TAGESZEIT","state","") ?
Oder Value("TAGESZEIT") ?
(ACHTUNG: Value "frägt" STATE und nicht state)

EDIT: wenn du "genauer" sein willst geht nat. auch:


define nPruefung notify EG_Rollo_Wohnzimmer_g_Fenster:(Steuer_Sonne|Steuer_manuell|Steuer_xyz).* {if(TAGESZEIT && $EVTPART1 eq "off"){fhem("set EG_Rollo_Wohnzimmer_g_Fenster open)}



Und du musst halt prüfen, ob in $EVTPART1 auch on/off kommt...
...evtl. vorher mal mit einer Logausgabe anfangen:


define nPruefung notify EG_Rollo_Wohnzimmer_g_Fenster:Steuer_.* {Log3(undef,1,"TestNotify Event: $EVENT     EVTPART1: $EVTPART1")}


Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

wendeling

Hallo Joachim,
das Device TAGESZEIT ist ein TEMP und wird automatisch gesetzt = Tag oder Nacht

Gruß
Wendelin

MadMax-FHEM

Zitat von: wendeling am 19 Juni 2020, 10:13:57
Hallo Joachim,
das Device TAGESZEIT ist ein TEMP und wird automatisch gesetzt = Tag oder Nacht

Gruß
Wendelin

Was ist ein TEMP!?

Aber egal: musst du halt anpassen...
...also das "Auslesen" von TAGESZEIT...
...solltest du notify nutzen (wollen)...

Ansonsten wäre nat. ein list deutlich hilfreicher gewesen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

wendeling

Zitat
Was ist ein TEMP!?

meinte DUMMY  :-(

Gruß
Wendelin

MadMax-FHEM

Bzgl. eines list ändert das aber nichts... ;)
...solltest du (weitere) Hilfe brauchen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

wendeling

Hallo,
hier mal ein list der DOIF :


Internals:
   CFGFN     
   DEF        ([TAGESZEIT] eq "Tag" and [?EG_Rollo_Wohnzimmer_g_Fenster:Steuer_Sonne] eq "off"  and [?EG_Rollo_Wohnzimmer_g_Fenster:Steuer_Beamer] eq "off")
(set EG_Rollo_Wohnzimmer_g_Fenster open)
   FUUID      5ee43e0b-f33f-8758-57aa-7656247765d693e6
   MODEL      FHEM
   NAME       ROLLO_Auto_AUF_Wohnzimmer_g_Fenster
   NOTIFYDEV  TAGESZEIT,global
   NR         2511
   NTFY_ORDER 50-ROLLO_Auto_AUF_Wohnzimmer_g_Fenster
   STATE      cmd_2
   TYPE       DOIF
   VERSION    22030 2020-05-25 14:10:16
   .attraggr:
   .attrminint:
   Helper:
     DBLOG:
       cmd:
         DBL:
           TIME       1592016395.50899
           VALUE      0
       mode:
         DBL:
           TIME       1592016395.50899
           VALUE      enabled
       state:
         DBL:
           TIME       1592016395.50899
           VALUE      initialized
   READINGS:
     2020-06-19 10:27:08   cmd             2
     2020-06-19 10:27:08   cmd_event       ROLLO_Auto_AUF_Wohnzimmer_g_Fenster
     2020-06-19 10:27:08   cmd_nr          2
     2020-06-19 10:27:00   mode            enabled
     2020-06-19 10:27:08   state           cmd_2
   Regex:
     accu:
     cond:
       TAGESZEIT:
         0:
           &STATE     ^TAGESZEIT$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'TAGESZEIT','STATE') eq "Tag" and ::ReadingValDoIf($hash,'EG_Rollo_Wohnzimmer_g_Fenster','Steuer_Sonne') eq "off"  and ::ReadingValDoIf($hash,'EG_Rollo_Wohnzimmer_g_Fenster','Steuer_Beamer') eq "off"
   do:
     0:
       0          set EG_Rollo_Wohnzimmer_g_Fenster open
     1:
   helper:
     DEVFILTER  ^global$|^TAGESZEIT$
     NOTIFYDEV  global|TAGESZEIT
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
   internals:
     all         TAGESZEIT:STATE
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*

MadMax-FHEM

Ein list vom DOIF ist aber auch kein list des dummy ;)

EDIT: wo hakt es eigentlich aktuell noch!? Schon was von den genannten Dingen probiert!? Setzt du nun DOIF um (da habe ich ja schon geschrieben: ich raus ;) ) oder notify!? Bzgl. notify steht ja eigentlich alles da bis auf WO/WIE in deinem dummy ist TAGESZEIT zu finden... (Vermutung und auch dafür habe ich Code-Beispiele geliefert: im state. Dann ReadingsVal oder Value / Anmerkungen siehe ebenfalls oben)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

wendeling

Hallo Joachim,
Danke für Deine Hilfe , da das Dummy TAGESZEIT nur Tag oder Nacht annimmt , kann ich Deine Lösungen leider nicht verwenden. Deshalb werde ich wohl übel bei meiner alten DOIF bleiben müssen. Der Nachteil ist halt das es nicht dynamisch ist , d.h. wenn weitere readings hinzukommen , müssen die halt manuell ergänzt werden. Ist zwar schade , aber so wie es aussieht nicht anders machbar. Und das mit der TAGESZEIT kann ich leider nicht ändern, da diese mehrfach im FHEM Verwendung findet .

Gruß
Wendelin

MadMax-FHEM

Warum soll das nicht mit meinem Beispiel gehen...

Aber solange kein list postest und zwar vom dummy kann ich nicht noch weiter helfen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)