Hauptmenü

(GELÖST) Syntaxfehler?

Begonnen von is2late, 02 Juli 2023, 11:59:27

Vorheriges Thema - Nächstes Thema

is2late

Hallo Zusammen,

ich bekomme ein DOIF nicht zur Funktion.
Es geht um Bewässerungssteuerung. Die Pumpe soll erst dann anlaufen, wenn ein Ventil der Bewässerung öffnet. Nutze dabei Hydrawise. Symbolisch für die Pumpe: Dummy TEST.
Die Readings eines Ventils lauten
l3_name  Tropfrohre
rl3_next Running (wenns läuft, sonst "idle")
rl3_relay 3

Habs ua mit folgender Zeile probiert:
defmod PumpeAN DOIF (rl3:next: "Running") (set TEST:on)  DOELSE##nothing
Da passiert  leider nichts ... eine Fehlermeldung gibt es auch nicht.

Weiß jemand Rat? Bin leider erst heute Abend wieder da...

LG Ingo

Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

is2late

Hier ein weiterer erfolgloser Versuch:

defmod PumpeAN DOIF ([myHydrawise:rl3_next] eq "Running")({fhem("set TEST on")}) DOELSE ## nothing
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

Frank_Huber

Hi, 

Poster doch mal ein List des DOIF und aller Beteiligten Geräte.

MadMax-FHEM

#3
Hast du das DOIF per Eventmonitor erstellen lassen?
https://wiki.fhem.de/wiki/Event_monitor
https://wiki.fhem.de/wiki/Event_monitor#Vorgehensweise_beim_Anlegen_eines_Ger%C3%A4tes

Und das
set TEST:onmüsste doch so:
set TEST on
Bei einem dummy nicht soooo wichtig, er zeigt halt dann (verm.) keine "leuchtende Lampe" an...
...aber es sollte sich "was tun"...

Ansonsten bin ich bei Frank...
EDIT: das solltest du doch mittlerweile kennen/wissen https://forum.fhem.de/index.php?topic=71806.0 ;)

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)

is2late

#4
Hallo Joachim und Frank,
vielen Dank für Eure Tipps!

Hier das List:
Internals:
   CFGFN     
   DEF        ([myHydrawise:rl3_next] eq "Running")({fhem("set TEST on")}) DOELSE ## nothing
   FUUID      64a143c0-f33f-8a5f-e164-9d3a08e1f58fd718
   MODEL      FHEM
   NAME       PumpeAN
   NOTIFYDEV  myHydrawise,global
   NR         4548
   NTFY_ORDER 50-PumpeAN
   STATE      cmd_2
   TYPE       DOIF
   eventCount 28
   READINGS:
     2023-07-03 11:13:16   Device          myHydrawise
     2023-07-03 11:13:16   cmd             2
     2023-07-03 11:13:16   cmd_event       myHydrawise
     2023-07-03 11:13:16   cmd_nr          2
     2023-07-03 11:13:16   e_myHydrawise_rl3_next idle
     2023-07-02 12:42:01   mode            enabled
     2023-07-03 11:13:16   state           cmd_2
   Regex:
     accu:
     bar:
     barAvg:
     collect:
     cond:
       myHydrawise:
         0:
           rl3_next   ^myHydrawise$:^rl3_next:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'myHydrawise','rl3_next') eq "Running"
   do:
     0:
       0          {fhem("set TEST on")}
     1:
       0         
   helper:
     NOTIFYDEV  myHydrawise,global
     event      rl3_next: idle
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   myHydrawise
     timerevent rl3_next: idle
     triggerDev myHydrawise
     timerevents:
       rl3_next: idle
     timereventsState:
       rl3_next: idle
     triggerEvents:
       rl3_next: idle
     triggerEventsState:
       rl3_next: idle
   hmccu:
   internals:
   readings:
     all         myHydrawise:rl3_next
   trigger:
   uiState:
   uiTable:
Attributes:
   room       Geräte,Hydrawise

Mit dem Eventmonitor habe ich es auch versucht, aber was herauskommt, scheint zumindest unvollständig zu sein:
defmod myHydrawise_DOIF_1 DOIF ([myHydrawise:"^rl3_run_minutes:.*$"]) ()Gehe ich recht in der Annahme, dass in die letzte Klammer dann die Anweisung gehört?
Hier also etwa "set TEST on"?
Mit "modify" komme ich nicht weiter, bediene es vermutlich falsch.

LG
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

is2late

Ha, es funktioniert!
Tausend Dank!
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

is2late

UNd schon das nächste Problem:

Möchte gern, dass die Pumpe (HUEDevice37) sich ausschaltet, wenn die Bewässerungszeit abgelaufen ist. Stand:
defmod d_PumpeAN DOIF ([myHydrawise:"^rl.*_run_minutes:.*$"]) (set HUEDevice37 on)Über den Eventmonitor komme ich nicht weiter. Hab Folgendes versucht:
defmod d_PumpeAN DOIF ([myHydrawise:"^rl.*_run_minutes:.*$"]) (set HUEDevice37 on) DOELSE (set HUEDevice37 off)Das führt allerdings dazu, dass sich HUE37 nach dem Einschalten gleich wieder ausschaltet.
Ein Wait ließe sich wohl nur mit Platzhalter einrichten, oder? Müsste da die Zeit .*$ (wie auch immer) übergeben werden oder gibt es eine einfachere/bessere Lösung?

Vielen Dank,
Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox