Hallo zusammen,
was mache ich den nur verkehrt :-(. Ich habe einen Schalter definiert:
define ITW_852_Tania_01 IT 01001110100100011000000110 0 1010
attr ITW_852_Tania_01 IODev CUL433
attr ITW_852_Tania_01 icon it_remote
attr ITW_852_Tania_01 room Funkzentrale,Tania
define ITW_852_Tania_02 IT 01001110100100011000000110 0 1011
attr ITW_852_Tania_02 IODev CUL433
attr ITW_852_Tania_02 icon it_remote
attr ITW_852_Tania_02 room Funkzentrale,Tania
und zwei DOIF angelegt:
DOIF 1 für Musik
define Musik_SW_Tania_01 DOIF ([08:00-19:00] and [ITW_852_Tania_01] eq "on") (set Musik_Tania on-for-timer 7200, define ITW_852_Tania_01_off at +02:00:00 set ITW_852_Tania_01 off, set ITW_852_Tania_01 off room Tania, attr ITW_852_Tania_01_off attr ITW_852_Tania_01_off icon hourglass) DOELSEIF ([19:00-08:00] and [ITW_852_Tania_01] eq "on") (set Musik_Tania on-for-timer 3600, define ITW_852_Tania_01_off at +01:00:00 set ITW_852_Tania_01 off room Tania, attr ITW_852_Tania_01_off, attr ITW_852_Tania_01_off icon hourglass, setstate Musik off) DOELSEIF ([ITW_852_Tania_01] eq "off") (set Musik_Tania off, setstate Musik off, delete ITW_852_Tania_01_off)
attr Musik_SW_Tania_01 room Tania
attr Musik_SW_Tania_01 sortby 5
und DOIF 2 für eine Steckdose am Bett
define Bett_SW_Tania_02 DOIF ([08:00-19:00] and [ITW_852_Tania_02] eq "on") (set Bett_Tania on-for-timer 3600, define ITW_852_Tania_02_off at +01:00:00 set ITW_852_Tania_02 off, attr ITW_852_Tania_02_off room Tania, attr ITW_852_Tania_02_off icon hourglass) DOELSEIF ([19:00-08:00] and [ITW_852_Tania_02] eq "on") (set Bett_Tania on-for-timer 1800, define ITW_852_Tania_02_off at +00:30:00 set ITW_852_Tania_02 off, attr ITW_852_Tania_02_off room Tania, attr ITW_852_Tania_02_off icon hourglass) DOELSEIF ([ITW_852_Tania_02] eq "off") (set Bett_Tania off, delete ITW_852_Tania_02_off)
attr Bett_SW_Tania_02 room Tania
attr Bett_SW_Tania_02 sortby 6
Wenn ich:
1) ITW_852_Tania_01 über den Schalter betätige (on) wird Bett_Tania (unerwünscht) und Musik_Tania (erwünscht) auf on gesetzt am Status für ITW_852_Tania_01 ändert sich leider nichts. Wenn ich ITW_852_Tania_01 über das Webinterface betätigt wird es erst beim zweiten klick auf on gesetzt.
2) ITW_852_Tania_01 über den Schalter betätige betätige (off) wird Bett_Tania (unerwünscht) und Musik_Tania (erwünscht) auf off gesetzt am Status für ITW_852_Tania_01 ändert sich leider nicht.
3) ITW_852_Tania_02 über den Schalter betätige (on) wird Bett_Tania (erwünscht) und Musik_Tania (unerwünscht) auf on gesetzt, Der Status für ITW_852_Tania_02 ändert sich korrekt.
4) ITW_852_Tania_02 über den Schalter betätige (off) wird Bett_Tania (erwünscht) und Musik_Tania (unerwünscht) auf off gesetzt, Der Status für ITW_852_Tania_02 ändert sich korrekt.
list
Internals:
00 0
CUL433_MSGCNT 10
CUL433_RAWMSG i65a9965695569599
CUL433_RSSI -77.5
CUL433_TIME 2017-05-09 16:21:49
DEF 01001110100100011000000110 0 1010
IODev CUL433
LASTInputDev CUL433
MSGCNT 10
NAME ITW_852_Tania_01
NR 510
STATE off
TYPE IT
XMIT 0100111010010001100000011001010
XMITdimdown 00
XMITdimup 00
XMITon 1
Code:
1 0100111010010001100000011001010
Readings:
2016-07-05 21:37:06 group 0
2016-07-05 21:37:06 protocol V3
2017-05-09 16:21:49 state off
2016-07-05 21:37:06 unit 1010
Attributes:
IODev CUL433
icon it_remote
room Funkzentrale,Tania
Internals:
00 0
CUL433_MSGCNT 5
CUL433_RAWMSG i65a996569556959a
CUL433_RSSI -74.5
CUL433_TIME 2017-05-09 16:23:56
DEF 01001110100100011000000110 0 1011
IODev CUL433
LASTInputDev CUL433
MSGCNT 5
NAME ITW_852_Tania_02
NR 511
STATE off
TYPE IT
XMIT 0100111010010001100000011001011
XMITdimdown 00
XMITdimup 00
XMITon 1
Code:
1 0100111010010001100000011001011
Readings:
2016-07-05 21:37:06 group 0
2016-07-05 21:37:06 protocol V3
2017-05-09 16:23:56 state off
2016-07-05 21:37:06 unit 1011
Attributes:
IODev CUL433
icon it_remote
room Funkzentrale,Tania
log
2017.05.09 16:33:46 3: CUL433 IT: ITW_852_Tania_01 off->on
2017.05.09 16:33:46 3: CUL433 IT_set: Musik_Tania on
2017.05.09 16:33:47 3: CUL433 IT_set: ITW_852_Tania_01 off room Tania
2017.05.09 16:33:47 2: IT IODev device didn't answer is command correctly: raw => i65A99656955696990A
2017.05.09 16:33:47 3: ITW_852_Tania_01_off: unknown attribute attr. Type 'attr ITW_852_Tania_01_off ?' for a detailed list.
2017.05.09 16:33:47 2: Musik_SW_Tania_01: attr ITW_852_Tania_01_off attr ITW_852_Tania_01_off icon hourglass: ITW_852_Tania_01_off: unknown attribute attr. Type 'attr ITW_852_Tania_01_off ?' for a detailed list.
2017.05.09 16:33:48 3: CUL433 IT: message "is01001110100100011000000110001010" (34) too short!
2017.05.09 16:33:48 3: CUL433 IT: message "is01001110100100011000000110001010" (34) too short!
2017.05.09 16:33:48 3: CUL433: Unknown code is01001110100100011000000110001010, help me!
2017.05.09 16:33:54 3: CUL433 IT: ITW_852_Tania_01 off room Tania->off
2017.05.09 16:33:54 3: CUL433 IT_set: Musik_Tania off
2017.05.09 16:33:54 2: Musik_SW_Tania_01: setstate Musik off: Please define Musik first
2017.05.09 16:33:55 3: CUL433 IT: ITW_852_Tania_01 off->off
2017.05.09 16:34:06 3: CUL433 IT: ITW_852_Tania_02 off->on
2017.05.09 16:34:06 3: CUL433 IT_set: Bett_Tania on
2017.05.09 16:34:11 3: CUL433 IT: ITW_852_Tania_02 on->off
2017.05.09 16:34:11 3: CUL433 IT_set: Bett_Tania off
2017.05.09 16:34:12 3: CUL433 IT: ITW_852_Tania_02 off->off
Gruß
Micha
Sollte
define ITW_852_Tania_01_off at +02:00:00 set ITW_852_Tania_01 off room Tania, attr ITW_852_Tania_01_off attr ITW_852_Tania_01_off icon hourglass
nicht eher
define ITW_852_Tania_01_off at +02:00:00 set ITW_852_Tania_01 off,attr ITW_852_Tania_01_off room Tania,attr ITW_852_Tania_01_off icon hourglass
heissen? Entsprechend auch bei den anderen at.
Zitat von: Per am 10 Mai 2017, 21:29:53
Sollte
define ITW_852_Tania_01_off at +02:00:00 set ITW_852_Tania_01 off room Tania, attr ITW_852_Tania_01_off attr ITW_852_Tania_01_off icon hourglass
nicht eher
define ITW_852_Tania_01_off at +02:00:00 set ITW_852_Tania_01 off,attr ITW_852_Tania_01_off room Tania,attr ITW_852_Tania_01_off icon hourglass
heissen? Entsprechend auch bei den anderen at.
Warum benutzt man umständlich eine at-Definition im DOIF, wenn es genau für diesen Zweck wait gibt? at oder sleep macht im DOIF nur richtig Sinn, wenn man etwas generalisieren möchte, da reicht dann ein Timer (wait) nicht mehr aus.
z. B.
Auszug aus der Commandref:
Zitat
Verzögerte "Fenster offen"-Meldung
define di_window_open DOIF ["^window_:open|tilted"])
(defmod at_$DEVICE at +00:05 set send window $DEVICE open)
DOELSEIF (["^window_:closed"])
(delete at_$DEVICE)
attr di_window_open do always
Alternative mit sleep
define di_window_open DOIF ["^window_:open|tilted"])
(sleep 300 $DEVICE quiet;set send window $DEVICE open)
DOELSEIF (["^window_:closed"])
(cancel $DEVICE quiet)
attr di_window_open do always
In den obigen beiden Beispielen ist eine Verzögerung über das Attribut wait nicht sinnvoll, da pro Fenster ein eigener Timer (hier mit Hilfe von at/sleep) gesetzt werden muss.
Hallo Damian,
da ich im Interface ja auch anzeigen möchte, wann die Steckdosen wieder ausgeschaltet werden. Aber das ist denke ich nicht das eigentliche Problem, oder ?
Gruß
Micha