Hauptmenü

doif funktioniert nicht

Begonnen von rhoffm34, 15 Februar 2020, 16:09:23

Vorheriges Thema - Nächstes Thema

rhoffm34

Hallo zusammen, mein DOIF tut nicht was es soll. Es reagiert nicht auf den trigger.

{
if ([HM_WT_Buero_Climate:controlMode] eq "auto")
{
fhem("set Flag_Hzg_Buero_manVSauto auto");
}
if ([HM_WT_Buero_Climate:controlMode] ne "auto")
{
fhem("set Flag_Hzg_Buero_manVSauto manuell");
}
}


was habe ich übersehen?

Gruß

KernSani

Bitte erstmal ein komplettes list des DOIF.


Gesendet von iPhone mit Tapatalk
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

rhoffm34


Gerne KernSani


Internals:
   CFGFN     
   DEF        {
if ([HM_WT_Buero_Climate:controlMode] eq "auto")
{
fhem("set Flag_Hzg_Buero_manVSauto auto");
}
if ([HM_WT_Buero_Climate:controlMode] ne "auto")
{
fhem("set Flag_Hzg_Buero_manVSauto manuell");
}
}

   FUUID      5e480064-f33f-a99d-60cc-67722869222ea64d
   MODEL      Perl
   NAME       Modul_Hzg_Buero_manVSauto
   NOTIFYDEV  HM_WT_Buero_Climate,global
   NR         56503
   NTFY_ORDER 50-Modul_Hzg_Buero_manVSauto
   STATE      cmd_2
   TYPE       DOIF
   VERSION    20929 2020-01-10 09:44:35
   READINGS:
     2020-02-15 16:08:20   mode            enabled
     2020-02-15 15:38:17   state           cmd_2
   Regex:
     accu:
     cond:
       HM_WT_Buero_Climate:
         0:
           controlMode ^HM_WT_Buero_Climate$:^controlMode:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0         
if (::ReadingValDoIf($hash,'HM_WT_Buero_Climate','controlMode') eq "auto")
{
fhem("set Flag_Hzg_Buero_manVSauto auto");
}
if (::ReadingValDoIf($hash,'HM_WT_Buero_Climate','controlMode') ne "auto")
{
fhem("set Flag_Hzg_Buero_manVSauto manuell");
}

     1         
   helper:
     DEVFILTER  ^global$|^HM_WT_Buero_Climate$
     NOTIFYDEV  global|HM_WT_Buero_Climate
     globalinit 1
     last_timer 0
     sleeptimer -1
   perlblock:
     0         
     1         
   readings:
     all         HM_WT_Buero_Climate:controlMode
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   room       InUse,modul

KernSani

Sollte statt dem zweiten ,,if" nicht ein else bzw. elsif stehen?
Wieso verwendest du überhaupt den Perl-Modus?



Gesendet von iPhone mit Tapatalk
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

rhoffm34

Weder else noch elsif funktionieren.

Warum Perl-Modus? Weil ich mich ein bisschen mit Perl auseinander setzten möchte.

Otto123

#5
Hi,
Also ich kenn mich mit dem Perl DOIF nicht aus. ;)
Aber Du sagst es reagiert nicht. Würde mich so bestätigen, schau mal im Eventmonitor. Bei mir wirft die Änderung die Du überwachen willst keinen Event. Damit wird DOIF auch nicht triggern.

Was Du machen kannst einen Eventrigger ([HM_WT_Buero:"^CMDs_done$"]) auf das Hauptdevice und in Deiner if Abfrage das Reading abfragen, das sollte ev. gehen.

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

rhoffm34

Also würde auch ein DOIF im FHEM-Modus nicht getriggert werden?

Wo platziere ich

([HM_WT_Buero:"^CMDs_done$"])

?

Otto123

#7
Wenn kein Event kommt kann nichts in FHEM triggern.

Ich vermute so?
if ([HM_WT_Buero:"^CMDs_done$"] and [HM_WT_Buero_Climate:controlMode] eq "auto")

Also dieser Event reagiert immer auf die entsprechende Änderung (setzen von Registern)  im Device HM_WT_Buero!
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

rhoffm34

habs gerade so probiert

([HM_WT_Buero:"^CMDs_done$"] or [HM_WT_Buero_Climate:controlMode] eq "auto")

(set Flag_Hzg_Buero_manVSauto auto)

DOELSEIF ([HM_WT_Buero:"^CMDs_done$"] or [HM_WT_Buero_Climate:controlMode] ne "auto")

(set Flag_Hzg_Buero_manVSauto manuell)


Ist das so technisch i.O.?

rhoffm34

So funktioniert es....

Vielen Dank.

Otto123

Nein dass ist falsch, or ist an der Stelle falsch. Und jetzt ist wieder kein Perl mehr  ???
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

rhoffm34

okay, dann ändere ich das noch in "and"