Hallo Zusammen,
ich habe hier ein DOIF welches eigentlich für den Staubsaug-Roboter gedacht ist...
Hier mal ein List
Internals:
DEF ([Eichenheim] eq "abwesend" and [?Staubsauger:workDone] eq "0")
(set Staubsauger start)
DOELSEIF ([Staubsauger:history_0] eq ".*finished.cleaning" and [?$SELF] eq "cmd_1")
(setreading Staubsauger workDone 1)
DOELSEIF ([01:00|8]) (setreading Staubsauger workDone 0)
FUUID 5c59298b-f33f-68f5-6c42-521086888c5c4c5d
MODEL FHEM
NAME DRmodeSwitch
NR 193
NTFY_ORDER 50-DRmodeSwitch
STATE telegram
TYPE DOIF
VERSION 18706 2019-02-23 21:48:22
Helper:
DBLOG:
cmd:
DbLog:
TIME 1553212800.00357
VALUE 3
cmd_event:
DbLog:
TIME 1553212800.00357
VALUE timer_1
cmd_nr:
DbLog:
TIME 1553212800.00357
VALUE 3
state:
DbLog:
TIME 1553447234.73022
VALUE telegram
READINGS:
2019-03-24 20:18:12 Device Eichenheim
2019-03-22 01:00:00 cmd 3
2019-03-22 01:00:00 cmd_event timer_1
2019-03-22 01:00:00 cmd_nr 3
2019-03-24 20:18:12 e_Eichenheim_STATE zuhause
2019-03-24 10:25:38 e_Staubsauger_history_0 2019-03-24 09:41:37: 44.84m² in 0.71h, finished cleaning
2019-02-07 17:52:56 lastRun 2019-02-07 17:51:00: 0.00m² in 0.00h, not finished
2019-03-07 09:32:26 mode enabled
2019-03-24 18:07:14 state telegram
2019-03-24 01:00:00 timer_01_c03 25.03.2019 01:00:00|8
Regex:
accu:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::InternalDoIf($hash,'Eichenheim','STATE') eq "abwesend" and ::ReadingValDoIf($hash,'Staubsauger','workDone') eq "0"
1 ::ReadingValDoIf($hash,'Staubsauger','history_0') eq ".*finished.cleaning" and ::InternalDoIf($hash,'DRmodeSwitch','STATE') eq "cmd_1"
2 ::DOIF_time_once($hash,0,$wday,"8")
days:
0 8
devices:
0 Eichenheim
1 Staubsauger
all Eichenheim Staubsauger
do:
0:
0 set Staubsauger start
1:
0 setreading Staubsauger workDone 1
2:
0 setreading Staubsauger workDone 0
3:
helper:
event durTimerPresence_cr: 4961,durTimerPresence: 82:41:22
globalinit 1
last_timer 1
sleeptimer -1
timerdev
timerevent timer_1
triggerDev Eichenheim
DOIF_eventas:
cmd_nr: 3
cmd: 3
cmd_event: timer_1
state: cmd_3
bm:
DOIF_Get:
cnt 4
dmx -1000
dtot 0
dtotcnt 0
mTS 24.03. 20:17:55
max 3.00407409667969e-05
tot 8.392333984375e-05
mAr:
HASH(0x8b4c378)
DRmodeSwitch
?
DOIF_Notify:
cnt 799491
dmx -1000
dtot 0
dtotcnt 0
mTS 24.03. 19:31:11
max 0.760765075683594
tot 42.0727698802948
mAr:
HASH(0x8b4c378)
HASH(0x6308aa8)
DOIF_Set:
cnt 25
dmx -1000
dtot 0
dtotcnt 0
mTS 24.03. 19:29:12
max 0.000272989273071289
tot 0.00190186500549316
mAr:
HASH(0x8b4c378)
DRmodeSwitch
?
timerevents:
timer_1
timereventsState:
durTimerPresence_cr: 922
durTimerPresence: 15:22:17
triggerEvents:
durTimerPresence_cr: 4961
durTimerPresence: 82:41:22
triggerEventsState:
durTimerPresence_cr: 4961
durTimerPresence: 82:41:22
internals:
0 Eichenheim:STATE
1 DRmodeSwitch:STATE
all Eichenheim:STATE DRmodeSwitch:STATE
interval:
intervalfunc:
itimer:
localtime:
0 1553472000
perlblock:
readings:
1 Staubsauger:history_0
all Staubsauger:history_0
realtime:
0 01:00:00
time:
0 01:00:00
timeCond:
0 2
timer:
0 0
timers:
2 0
trigger:
triggertime:
1553472000:
localtime 1553472000
hash:
uiState:
uiTable:
Attributes:
room 01-Schlafzimmer
Ich verstehe nicht wieso das DOIF meint sich das Telegram Symbol als Icon holen zu müssen...
Wie kann das sein?
Weil "state" = "telegramm"
Es gibt aber doch keinen state Telegram in diesem DOIF.
Ausserdem auch kein dveStateIcon...
Ja, warum state=telegramm kann ich mich auch nicht erklären.
Wahrscheinlich irgendwo anders gesetzt.
Mach mal ein set <dev> initialize und guck mal was dann passiert
Das Icon verschwindet - der state wird initialize
Wieso nimmt das DOIF den state eines anderen DOIFs an..?
Liegt es vielleicht am kopieren mit copy..?
Zitat von: der-Lolo am 24 März 2019, 20:43:55
Das Icon verschwindet - der state wird initialize
Wieso nimmt das DOIF den state eines anderen DOIFs an..?
Liegt es vielleicht am kopieren mit copy..?
Wenn Du die raw Definition inkl. setstate Befehle kopiert hast, dann ja.
nein, wenn dann kopiere ich mit dem fhem befehl copy...
ich bin zwar nicht sicher, glaube aber nicht das ich dieses DOIF überhaupt kopiert habe.
Naja. Der DOIF hat das nicht selbst gemacht, es gibt dafür überhaupt keinen Grund (wie Du es schon gemerkt hast)