Hallo,
ich habe das problem, das mein DOIF leider immer nur CMD_1 triggert....
eigentlich soll wie die Logik schon vermuten lässt, eine Erinnerung losschicken, wenn ich oder meine Frau losgeht/Nachhause kommt (insbesondere ab 20 uhr bis morgens früh, das der entsprechende Müll ruas muss...
jetzt dachte ich, ich ab schon einiges verstanden.. aber leider wohl noch nicht so gut, wie gedacht....
anbei mein DOIF:
(([?WEB_Abfall:next_days] == 1 and [?10:30-24:00]) or ([?WEB_Abfall:now_text] ne "" and [?00:00-07:00]) and [Zerbster:lastActivity] eq "absent")
(IF ([WEB_Abfall:next_days] == 1)
((msg push @[Zerbster:lastActivityByDev] |Abfall| Denk daran, Morgen ist Abholung von [WEB_Abfall:next_text]))
ELSE ((msg push @[Zerbster:lastActivityByDev] |Abfall| Denk daran, Heute/Morgen früh ist Abholung von [WEB_Abfall:next_text]))
)
DOELSEIF(([?WEB_Abfall:next_days] == 1 and [?10:30-24:00]) or ([?WEB_Abfall:now_text] ne "" and [?00:00-07:00]) and [Zerbster:lastActivity] eq "home")
((msg push @[Zerbster:lastActivityByDev] |Abfall| Stell [WEB_Abfall:next_text][WEB_Abfall:now_text] raus, wenn er noch nicht draußen ist))
leider klappt das nicht.. hier das List wo normalerweise der CMD_2 getriggert werden müsste..
Internals:
DEF (([?WEB_Abfall:next_days] == 1 and [?10:30-24:00]) or ([?WEB_Abfall:now_text] ne "" and [?00:00-07:00]) and [Zerbster:lastActivity] eq "absent")
(IF ([WEB_Abfall:next_days] == 1)
((msg push @[Zerbster:lastActivityByDev] |Abfall| Denk daran, Morgen ist Abholung von [WEB_Abfall:next_text]))
ELSE ((msg push @[Zerbster:lastActivityByDev] |Abfall| Denk daran, Heute/Morgen früh ist Abholung von [WEB_Abfall:next_text]))
)
DOELSEIF(([?WEB_Abfall:next_days] == 1 and [?10:30-24:00]) or ([?WEB_Abfall:now_text] ne "" and [?00:00-07:00]) and [Zerbster:lastActivity] eq "home")
((msg push @[Zerbster:lastActivityByDev] |Abfall| Stell [WEB_Abfall:next_text][WEB_Abfall:now_text] raus, wenn er noch nicht draußen ist))
FUUID 5cc377a4-f33f-787c-031d-7e6404c508613aba
MODEL FHEM
NAME di_Muelltonne
NR 228
NTFY_ORDER 50-di_Muelltonne
STATE cmd_1
TYPE DOIF
VERSION 19303 2019-05-01 08:47:16
READINGS:
2019-05-09 22:24:27 Device Zerbster
2019-05-09 22:24:27 cmd 1
2019-05-09 22:24:27 cmd_event Zerbster
2019-05-09 22:24:27 cmd_nr 1
2019-05-09 22:24:27 e_Zerbster_lastActivity home
2019-05-09 22:23:17 mode enabled
2019-05-09 22:24:27 state cmd_1
2019-05-09 22:23:17 timer_01_c01 10.05.2019 10:30:00
2019-05-09 22:23:17 timer_02_c01 10.05.2019 00:00:00
2019-05-09 22:23:17 timer_03_c01 10.05.2019 00:00:00
2019-05-09 22:23:17 timer_04_c01 10.05.2019 07:00:00
2019-05-09 22:23:17 timer_05_c02 10.05.2019 10:30:00
2019-05-09 22:23:17 timer_06_c02 10.05.2019 00:00:00
2019-05-09 22:23:17 timer_07_c02 10.05.2019 00:00:00
2019-05-09 22:23:17 timer_08_c02 10.05.2019 07:00:00
Regex:
accu:
attr:
cmdState:
wait:
waitdel:
condition:
0 (::ReadingValDoIf($hash,'WEB_Abfall','next_days') == 1 and ::DOIF_time($hash,0,1,$wday,$hms)) or (::ReadingValDoIf($hash,'WEB_Abfall','now_text') ne "" and ::DOIF_time($hash,2,3,$wday,$hms)) and ::ReadingValDoIf($hash,'Zerbster','lastActivity') eq "absent"
1 (::ReadingValDoIf($hash,'WEB_Abfall','next_days') == 1 and ::DOIF_time($hash,4,5,$wday,$hms)) or (::ReadingValDoIf($hash,'WEB_Abfall','now_text') ne "" and ::DOIF_time($hash,6,7,$wday,$hms)) and ::ReadingValDoIf($hash,'Zerbster','lastActivity') eq "home"
days:
devices:
0 Zerbster
1 Zerbster
all Zerbster
do:
0:
0 IF ([WEB_Abfall:next_days] == 1) ((msg push @[Zerbster:lastActivityByDev] |Abfall| Denk daran, Morgen ist Abholung von [WEB_Abfall:next_text])) ELSE ((msg push @[Zerbster:lastActivityByDev] |Abfall| Denk daran, Heute/Morgen früh ist Abholung von [WEB_Abfall:next_text]))
1:
0 (msg push @[Zerbster:lastActivityByDev] |Abfall| Stell [WEB_Abfall:next_text][WEB_Abfall:now_text] raus, wenn er noch nicht draußen ist)
2:
helper:
event residentsTotalRoommatesPresent: 2,residentsTotalRoommatesPresentDevs: rr_Himi,rr_Miepel,residentsTotalRoommatesPresentNames: Himi, Miepel,residentsTotalRoommatesAbsent: 0,residentsTotalRoommatesAbsentDevs: -,residentsTotalRoommatesAbsentNames: -,residentsTotalPeoplePresent: 2,residentsTotalPeoplePresentDevs: rr_Himi,rr_Miepel,residentsTotalPeoplePresentNames: Himi, Miepel,residentsTotalPeopleAbsent: 0,residentsTotalPeopleAbsentDevs: -,residentsTotalPeopleAbsentNames: -,residentsTotalPresent: 2,residentsTotalPresentDevs: rr_Himi,rr_Miepel,residentsTotalPresentNames: Himi, Miepel,residentsTotalAbsent: 0,residentsTotalAbsentDevs: -,residentsTotalAbsentNames: -,residentsHome: 2,residentsHomeDevs: rr_Himi,rr_Miepel,residentsHomeNames: Himi, Miepel,residentsAbsent: 0,residentsAbsentDevs: -,residentsAbsentNames: -,durTimerPresence_cr: 285,durTimerPresence: 04:44:58,lastActivity: zuhause,lastActivityBy: Himi,lastActivityByDev: rr_Himi
globalinit 1
last_timer 8
sleeptimer -1
timerdev Zerbster
timerevent residentsTotalRoommatesPresent: 2,residentsTotalRoommatesPresentDevs: rr_Himi,rr_Miepel,residentsTotalRoommatesPresentNames: Himi, Miepel,residentsTotalRoommatesAbsent: 0,residentsTotalRoommatesAbsentDevs: -,residentsTotalRoommatesAbsentNames: -,residentsTotalPeoplePresent: 2,residentsTotalPeoplePresentDevs: rr_Himi,rr_Miepel,residentsTotalPeoplePresentNames: Himi, Miepel,residentsTotalPeopleAbsent: 0,residentsTotalPeopleAbsentDevs: -,residentsTotalPeopleAbsentNames: -,residentsTotalPresent: 2,residentsTotalPresentDevs: rr_Himi,rr_Miepel,residentsTotalPresentNames: Himi, Miepel,residentsTotalAbsent: 0,residentsTotalAbsentDevs: -,residentsTotalAbsentNames: -,residentsHome: 2,residentsHomeDevs: rr_Himi,rr_Miepel,residentsHomeNames: Himi, Miepel,residentsAbsent: 0,residentsAbsentDevs: -,residentsAbsentNames: -,durTimerPresence_cr: 285,durTimerPresence: 04:44:58,lastActivity: zuhause,lastActivityBy: Himi,lastActivityByDev: rr_Himi
triggerDev Zerbster
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: Zerbster
state: cmd_1
timerevents:
residentsTotalRoommatesPresent: 2
residentsTotalRoommatesPresentDevs: rr_Himi,rr_Miepel
residentsTotalRoommatesPresentNames: Himi, Miepel
residentsTotalRoommatesAbsent: 0
residentsTotalRoommatesAbsentDevs: -
residentsTotalRoommatesAbsentNames: -
residentsTotalPeoplePresent: 2
residentsTotalPeoplePresentDevs: rr_Himi,rr_Miepel
residentsTotalPeoplePresentNames: Himi, Miepel
residentsTotalPeopleAbsent: 0
residentsTotalPeopleAbsentDevs: -
residentsTotalPeopleAbsentNames: -
residentsTotalPresent: 2
residentsTotalPresentDevs: rr_Himi,rr_Miepel
residentsTotalPresentNames: Himi, Miepel
residentsTotalAbsent: 0
residentsTotalAbsentDevs: -
residentsTotalAbsentNames: -
residentsHome: 2
residentsHomeDevs: rr_Himi,rr_Miepel
residentsHomeNames: Himi, Miepel
residentsAbsent: 0
residentsAbsentDevs: -
residentsAbsentNames: -
durTimerPresence_cr: 285
durTimerPresence: 04:44:58
lastActivity: zuhause
lastActivityBy: Himi
lastActivityByDev: rr_Himi
timereventsState:
residentsTotalRoommatesPresent: 2
residentsTotalRoommatesPresentDevs: rr_Himi,rr_Miepel
residentsTotalRoommatesPresentNames: Himi, Miepel
residentsTotalRoommatesAbsent: 0
residentsTotalRoommatesAbsentDevs: -
residentsTotalRoommatesAbsentNames: -
residentsTotalPeoplePresent: 2
residentsTotalPeoplePresentDevs: rr_Himi,rr_Miepel
residentsTotalPeoplePresentNames: Himi, Miepel
residentsTotalPeopleAbsent: 0
residentsTotalPeopleAbsentDevs: -
residentsTotalPeopleAbsentNames: -
residentsTotalPresent: 2
residentsTotalPresentDevs: rr_Himi,rr_Miepel
residentsTotalPresentNames: Himi, Miepel
residentsTotalAbsent: 0
residentsTotalAbsentDevs: -
residentsTotalAbsentNames: -
residentsHome: 2
residentsHomeDevs: rr_Himi,rr_Miepel
residentsHomeNames: Himi, Miepel
residentsAbsent: 0
residentsAbsentDevs: -
residentsAbsentNames: -
durTimerPresence_cr: 285
durTimerPresence: 04:44:58
lastActivity: zuhause
lastActivityBy: Himi
lastActivityByDev: rr_Himi
triggerEvents:
residentsTotalRoommatesPresent: 2
residentsTotalRoommatesPresentDevs: rr_Himi,rr_Miepel
residentsTotalRoommatesPresentNames: Himi, Miepel
residentsTotalRoommatesAbsent: 0
residentsTotalRoommatesAbsentDevs: -
residentsTotalRoommatesAbsentNames: -
residentsTotalPeoplePresent: 2
residentsTotalPeoplePresentDevs: rr_Himi,rr_Miepel
residentsTotalPeoplePresentNames: Himi, Miepel
residentsTotalPeopleAbsent: 0
residentsTotalPeopleAbsentDevs: -
residentsTotalPeopleAbsentNames: -
residentsTotalPresent: 2
residentsTotalPresentDevs: rr_Himi,rr_Miepel
residentsTotalPresentNames: Himi, Miepel
residentsTotalAbsent: 0
residentsTotalAbsentDevs: -
residentsTotalAbsentNames: -
residentsHome: 2
residentsHomeDevs: rr_Himi,rr_Miepel
residentsHomeNames: Himi, Miepel
residentsAbsent: 0
residentsAbsentDevs: -
residentsAbsentNames: -
durTimerPresence_cr: 285
durTimerPresence: 04:44:58
lastActivity: zuhause
lastActivityBy: Himi
lastActivityByDev: rr_Himi
triggerEventsState:
residentsTotalRoommatesPresent: 2
residentsTotalRoommatesPresentDevs: rr_Himi,rr_Miepel
residentsTotalRoommatesPresentNames: Himi, Miepel
residentsTotalRoommatesAbsent: 0
residentsTotalRoommatesAbsentDevs: -
residentsTotalRoommatesAbsentNames: -
residentsTotalPeoplePresent: 2
residentsTotalPeoplePresentDevs: rr_Himi,rr_Miepel
residentsTotalPeoplePresentNames: Himi, Miepel
residentsTotalPeopleAbsent: 0
residentsTotalPeopleAbsentDevs: -
residentsTotalPeopleAbsentNames: -
residentsTotalPresent: 2
residentsTotalPresentDevs: rr_Himi,rr_Miepel
residentsTotalPresentNames: Himi, Miepel
residentsTotalAbsent: 0
residentsTotalAbsentDevs: -
residentsTotalAbsentNames: -
residentsHome: 2
residentsHomeDevs: rr_Himi,rr_Miepel
residentsHomeNames: Himi, Miepel
residentsAbsent: 0
residentsAbsentDevs: -
residentsAbsentNames: -
durTimerPresence_cr: 285
durTimerPresence: 04:44:58
lastActivity: zuhause
lastActivityBy: Himi
lastActivityByDev: rr_Himi
internals:
interval:
0 -1
1 0
2 -1
3 2
4 -1
5 4
6 -1
7 6
intervalfunc:
itimer:
localtime:
0 1557477000
1 1557439200
2 1557439200
3 1557464400
4 1557477000
5 1557439200
6 1557439200
7 1557464400
readings:
0 Zerbster:lastActivity
1 Zerbster:lastActivity
all Zerbster:lastActivity
realtime:
0 10:30:00
1 00:00:00
2 00:00:00
3 07:00:00
4 10:30:00
5 00:00:00
6 00:00:00
7 07:00:00
time:
0 10:30:00
1 24:00:00
2 00:00:00
3 07:00:00
4 10:30:00
5 24:00:00
6 00:00:00
7 07:00:00
timeCond:
0 0
1 0
2 0
3 0
4 1
5 1
6 1
7 1
timer:
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
trigger:
triggertime:
1557439200:
localtime 1557439200
hash:
1557464400:
localtime 1557464400
hash:
1557477000:
localtime 1557477000
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
do always
room Logik
Die Bedingungen werden nur geprüft, wenn Zerbster:lastActivity ein Event liefert. Bau einen Log-Befehl in die Bedingung ein, um zu prüfen, ob die nicht triggernden Operatoren wahr sind, wenn die Bedingung geprüft wird.
Hi,
zusätzlich zu dem was Ellert gesagt hat: sind die Klammern richtig gesetzt?
Du musst bedenken dass erst and und dann or aufgelöst/abgearbeitet wird.
Du hast sowas gemacht: ((eins and zwei) or (drei and vier) and fünf)
Die Klammern werden aufgelöst (einzwei or dreivier and fünf)
Dann ist der gesamte Ausdruck wahr wenn dreivier und fünf wahr sind oder bloß einszwei wahr ist.
Wenn einszwei wahr ist spielt fünf keine Rolle.
Gruß Otto
Also wäre
((Eins and zwei or drei and vier) and fünf
sinnvoller wenn ich
Eins zwei and fünf oder dreivier and fünf als Bedingung haben möchte?
Genau das würde ja zum Verhalten passen das am Abend davor immer nur cmd-1 kam, wenn er fünf dann nicht prüfen muss. Da sind sie sich ja veide gleich.. und CMD_1 vor CMD_2
Ich denke ja. ((Eins and zwei or drei and vier) and fünf)
Jetzt dominiert fünf.
Der Ausdruck kann nur wahr werden wenn fünf wahr ist.
Wenn fünf war ist, dann muss zusätzlich entweder eins und zwei wahr sein oder drei und vier wahr sein.
Zitat von: Ellert am 10 Mai 2019, 08:40:05
Die Bedingungen werden nur geprüft, wenn Zerbster:lastActivity ein Event liefert. Bau einen Log-Befehl in die Bedingung ein, um zu prüfen, ob die nicht triggernden Operatoren wahr sind, wenn die Bedingung geprüft wird.
wie soll ich ein Logbefehl einbauen, um das zu testen? das wäre ja auch für zukünftige Projekte interessant?
@Otto123 --> Genau das was das Problem... das ich das nicht gesehen habe... oh man..
Danke dir dafür
Zitat von: kotaro am 10 Mai 2019, 10:49:55
wie soll ich ein Logbefehl einbauen, um das zu testen? das wäre ja auch für zukünftige Projekte interessant?
https://wiki.fhem.de/wiki/DOIF/Tools_und_Fehlersuche#Operatoren_loggen.2C_die_keine_Bedingungspr.C3.BCfung_ausl.C3.B6sen_.28triggern.29