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ß
Bitte erstmal ein komplettes list des DOIF.
Gesendet von iPhone mit Tapatalk
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
Sollte statt dem zweiten ,,if" nicht ein else bzw. elsif stehen?
Wieso verwendest du überhaupt den Perl-Modus?
Gesendet von iPhone mit Tapatalk
Weder else noch elsif funktionieren.
Warum Perl-Modus? Weil ich mich ein bisschen mit Perl auseinander setzten möchte.
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
Also würde auch ein DOIF im FHEM-Modus nicht getriggert werden?
Wo platziere ich
([HM_WT_Buero:"^CMDs_done$"])
?
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!
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.?
So funktioniert es....
Vielen Dank.
Nein dass ist falsch, or ist an der Stelle falsch. Und jetzt ist wieder kein Perl mehr ???
okay, dann ändere ich das noch in "and"