Moin :)
Ich habe gerade irgendwie ein Problem, die folgende Anleitung umzusetzen:
ZitatAnwendungsbeispiel: Benachrichtigung "Waschmaschine fertig", wenn Verbrauch mindestens 5 Minuten unter 2 Watt (Perl-Code wird in geschweifte Klammern gesetzt):
define di_washer DOIF ([power:watt]<2) ({system("wmail washer finished")})
attr di_washer wait 300
Ich habe es in meinem DOIF so eingebaut umgesetzt - doch leider schaltet es immer sofort meine Hauptanwesenheitsinstanz auf absent statt 8 Minuten zu warten (ich fange damit Gänge zur Waschmaschine etc ab):
CFGFN
DEF ([Anwesenheit_Zwischenstufe] eq "present") (set Anwesenheit present)
DOELSEIF
([Anwesenheit_Zwischenstufe] eq "absent")
(set Anwesenheit absent)
NAME AnwesenheitZwischenstufe_DOIF
NR 139
NTFY_ORDER 50-AnwesenheitZwischenstufe_DOIF
STATE cmd_2
TYPE DOIF
READINGS:
2018-03-11 17:54:22 Device Anwesenheit_Zwischenstufe
2018-03-11 17:54:23 cmd 2
2018-03-11 17:54:23 cmd_event Anwesenheit_Zwischenstufe
2018-03-11 17:54:23 cmd_nr 2
2018-03-11 17:54:22 e_Anwesenheit_Zwischenstufe_STATE absent
2018-03-11 17:53:15 mode enabled
2018-03-11 17:54:23 state cmd_2
2018-03-11 17:28:53 wait_timer no timer
Regex:
condition:
0 InternalDoIf($hash,'Anwesenheit_Zwischenstufe','STATE') eq "present"
1 InternalDoIf($hash,'Anwesenheit_Zwischenstufe','STATE') eq "absent"
devices:
0 Anwesenheit_Zwischenstufe
1 Anwesenheit_Zwischenstufe
all Anwesenheit_Zwischenstufe
do:
0:
0 set Anwesenheit present
1:
0 set Anwesenheit absent
2:
helper:
DOIF_Readings_events
DOIF_eventas
event absent
globalinit 1
last_timer 0
sleeptimer -1
timerdev Anwesenheit_Zwischenstufe
timerevent absent
triggerDev Anwesenheit_Zwischenstufe
timerevents:
absent
timereventsState:
state: absent
triggerEvents:
absent
triggerEventsState:
state: absent
internals:
0 Anwesenheit_Zwischenstufe:STATE
1 Anwesenheit_Zwischenstufe:STATE
all Anwesenheit_Zwischenstufe:STATE
itimer:
readings:
trigger:
uiState:
uiTable:
Attributes:
room Technikraum
wait 0,480
wait 0:480
Verdammt... wie kam ich denn auf ein Komma.
:-D Ich danke wieder mal!
Wenn Du die Zweige tauschst sparts Du 0: und die Fehlerquelle.
So hab ich das nämlich, ich war am überlegen was bei Dir anders ist - Leon war schneller :)
Gruß Otto
Wenn du mehrere Befehle im Befehlsteil hast dann machst du das ja mit mehreren ( )
Und um zwischen diesen Befehlen eine Verzögerung zu bekommen machst du das mit Komma zwischen den Zahlwerten.
Ahh da hatte ich das her.. :-D
Stimt.
@Otto ja stimmt :-) aber lernen tut man ja erst durch Fehler ;D
Sauber nun fluppt es wundervoll durch. :-) THX
Und ich fand eine Weile den Übergang von der Waschmaschine zur Anwesenheit schwierig. ;D
;) Hehe okay nächste Mal ein par Worte mehr zur Erklärung.