Moin,
ich habe ein Problem mit einer Konstruktion aus HM-Taster 2fach (HM-PB-2-WM55), welcher mittels virtuellem Taster und einem DOIF ein Licht-Structure aus mehreren UP-Schaltern ansteuert.
Zusätzlich gibt es ein weiteres DOIF, welches die gleiche Structure nach verschiedenen zeitlichen Bedingungen schaltet.
Alles funktioniert soweit auch wie gewünscht, einzig ein Problem habe ich: hat das Zeit-DOIF geschaltet, muß ich am Taster einmal "in der gleichen Richtung" schalten (also aus, wenn das DOIF aus geschaltet hat und umgekehrt), danach kann ich ganz normal Schalten - bis zur nächsten Zeitschalte.
Dieses Verhalten würde ich gerne "normalisieren", d.h. die Zeitschalte soll "gleichwertig" neben den Tastern schalten, z.B. Zeitschalte aus, danach soll ein Handbetrieb direkt auf Ein schalten können.
Hier einmal die betroffenen Geräte etc:
Taster:
Internals:
CFGFN /opt/fhem/etc/garten.cfg
DEF 1F1D2D
FUUID 5c446523-f33f-378b-8ec6-6502ecf57a9335f0
HMLAN1_MSGCNT 36
HMLAN1_RAWMSG E1F1D2D,0000,0CE8ADB0,FF,FFD0,64A4401F1D2D1234570222
HMLAN1_RSSI -48
HMLAN1_TIME 2020-01-15 05:48:16
IODev HMLAN1
LASTInputDev HMLAN1
MSGCNT 36
NAME Taster.Treppe_Schlafen
NOTIFYDEV global
NR 381
NTFY_ORDER 50-Taster.Treppe_Schlafen
STATE Taster.Treppe_Schlafen_Btn2 Short
TYPE CUL_HM
channel_01 Taster.Treppe_Schlafen_Btn1
channel_02 Taster.Treppe_Schlafen_Btn2
lastMsg No:64 - t:40 s:1F1D2D d:123457 0222
protLastRcv 2020-01-15 05:48:16
protRcv 27 last_at:2020-01-15 05:48:16
protSnd 18 last_at:2020-01-12 16:29:49
protState CMDs_done
rssi_at_HMLAN1 cnt:36 min:-52 max:-36 avg:-44.33 lst:-48
READINGS:
2020-01-12 16:29:20 CommandAccepted yes
2020-01-12 16:29:46 D-firmware 1.1
2020-01-12 16:29:46 D-serialNr KEQ0033169
2020-01-12 16:29:46 PairedTo 0x13D2D1
2020-01-12 16:29:46 R-pairCentral 0x13D2D1
2020-01-12 16:29:46 RegL_00. 00:00 02:01 0A:13 0B:D2 0C:D1
2020-01-11 17:14:49 alive yes
2020-01-15 05:48:16 battery ok
2020-01-11 17:14:49 powerOn 2020-01-11 17:14:49
2020-01-11 17:14:49 recentStateType info
2020-01-15 05:48:16 state Taster.Treppe_Schlafen_Btn2 Short
helper:
HM_CMDNR 100
cSnd 0113D2D11F1D2D01041234570104,0113D2D11F1D2D02041234570204
mId 006B
peerFriend
peerOpt -:pushButton
regLst 0
rxType 28
supp_Pair_Rep 0
ack:
Taster.Treppe_Schlafen.virt Taster.Treppe_Schlafen_Btn2:64
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +1F1D2D,00,02,00
nextSend 1579063696.09231
rxt 2
vccu CCU
p:
1F1D2D
00
02
00
prefIO:
HMLAN1
mRssi:
mNo 64
io:
HMLAN1:
-40
-40
prt:
bErr 0
sProc 0
sleeping 1
try 1
rspWait:
q:
qReqConf
qReqStat
regCollect:
role:
dev 1
rpt:
IO HMLAN1
flg A
ts 1579063696.00362
ack:
HASH(0x4e551e8)
6480021234571F1D2D00
rssi:
at_HMLAN1:
avg -44.3333333333333
cnt 36
lst -48
max -36
min -52
shadowReg:
tmpl:
Attributes:
IODev HMLAN1
IOgrp CCU:HMLAN1
alias Flur oben: Lichtschalter Schlafzimmer (HM)
autoReadReg 0_off
event-on-change-reading .*
expert 2_full
firmware 1.1
group Schalter
icon li_wht_dimmer
model HM-PB-2-WM55
room Flur
serialNr KEQ0033169
sortby 05
subType pushButton
webCmd getConfig:clear msgEvents
Button1:
Internals:
CFGFN /opt/fhem/etc/garten.cfg
DEF 1F1D2D01
FUUID 5c446523-f33f-378b-c945-ec698b2f58e2b040
NAME Taster.Treppe_Schlafen_Btn1
NOTIFYDEV global
NR 386
NTFY_ORDER 50-Taster.Treppe_Schlafen_Btn1
STATE Short 1_40 (to Taster.Treppe_Schlafen.virt)
TYPE CUL_HM
chanNo 01
device Taster.Treppe_Schlafen
peerList Taster.Treppe_Schlafen.virt_Btn1,
READINGS:
2020-01-12 15:20:11 R-Taster.Treppe_Schlafen.virt_Btn1-expectAES off
2020-01-12 15:20:11 R-Taster.Treppe_Schlafen.virt_Btn1-peerNeedsBurst off
2020-01-12 15:20:09 R-sign off
2020-01-12 16:29:47 RegL_01. 00:00 04:10 08:00 09:00
2020-01-12 16:29:49 RegL_04.Taster.Treppe_Schlafen.virt_Btn1 00:00 01:00
2020-01-12 16:29:47 peerList Taster.Treppe_Schlafen.virt_Btn1,
2020-01-12 22:30:21 state Short 1_40 (to Taster.Treppe_Schlafen.virt)
2020-01-12 22:30:21 trigger Short_40
2020-01-12 22:30:21 triggerTo_Taster.Treppe_Schlafen.virt Short_40
2020-01-12 15:08:47 triggerTo_Taster.Treppe_Schlafen_Joschua.virt Short_26
2020-01-12 13:07:12 triggerTo_Taster.Treppenfenster_Joschua.virt Short_12
2020-01-12 13:01:52 triggerTo_db_SchalterDachbodenLicht Long_11
2020-01-12 22:30:21 trigger_cnt 40
helper:
BNO 40
BNOCNT 1
peerFriend peerAct,peerVirt
peerIDsRaw ,12345701,00000000
peerOpt 4:pushButton
regLst 1,4p
expert:
def 1
det 0
raw 1
tpl 0
regCollect:
role:
chn 1
shadowReg:
tmpl:
Attributes:
model HM-PB-2-WM55
peerIDs 00000000,12345701,
Virtueller Taster:
Internals:
DEF 123457
FUUID 5c65c588-f33f-378b-578d-deddc285cfea8635
IODev HMLAN1
NAME Taster.Treppe_Schlafen.virt
NOTIFYDEV global
NR 1665
NTFY_ORDER 50-Taster.Treppe_Schlafen.virt
STATE CMDs_done
TYPE CUL_HM
channel_01 Taster.Treppe_Schlafen.virt_Btn1
channel_02 Taster.Treppe_Schlafen.virt_Btn2
protSnd 13 last_at:2020-01-15 05:48:16
protState CMDs_done
READINGS:
2020-01-15 05:48:16 state CMDs_done
helper:
HM_CMDNR 104
mId FFF1
peerFriend peerSens,peerAct
peerOpt -:virtual
regLst 0
rxType 1
expert:
def 1
det 0
raw 1
tpl 0
io:
vccu CCU
prefIO:
HMLAN1
mRssi:
mNo
io:
HMLAN1:
prt:
bErr 0
sProc 0
rspWait:
q:
qReqConf
qReqStat
role:
dev 1
vrt 1
tmpl:
Attributes:
IODev HMLAN1
IOgrp CCU:HMLAN1
expert 2_raw
model VIRTUAL
subType virtual
webCmd virtual
Button1 Virtueller Taster:
Internals:
DEF 12345701
FUUID 5c65c5e3-f33f-378b-32f2-06f8d4d923f2e117
NAME Taster.Treppe_Schlafen.virt_Btn1
NOTIFYDEV global
NR 1667
NTFY_ORDER 50-Taster.Treppe_Schlafen.virt_Btn1
STATE OFF
TYPE CUL_HM
chanNo 01
device Taster.Treppe_Schlafen.virt
peerList Taster.Treppe_Schlafen_Btn1,2A75C901,
READINGS:
2020-01-12 15:58:37 peerList Taster.Treppe_Schlafen_Btn1,2A75C901,
2020-01-12 22:30:21 state OFF
2020-01-12 22:30:21 trigLast Taster.Treppe_Schlafen_Btn1:short
2020-01-12 22:30:21 trig_Taster.Treppe_Schlafen_Btn1 Short_40
2019-11-24 07:27:04 trig_Taster.Treppenfenster_Joschua_Btn1 Short_112
2020-01-12 22:30:21 virtActState OFF
2020-01-12 22:30:21 virtActTrigNo 40
2020-01-12 22:30:21 virtActTrigRpt 4
2020-01-12 22:30:21 virtActTrigType short
2020-01-12 22:30:21 virtActTrigger Taster.Treppe_Schlafen_Btn1
helper:
peerFriend peerSD,peerSens,peerAct
peerOpt -:virtual
regLst
trgLgRpt 4
expert:
def 1
det 0
raw 1
tpl 0
role:
chn 1
vrt 1
tmpl:
Attributes:
model VIRTUAL
peerIDs 1F1D2D01,2A75C901,
webCmd press short:press long
Btw. der Peer 2A75C901 ist ein alter Taster (hier Btn01), der leider wg. Totalausfall ersetzt werden mußte - ich bekomme ihn hier nur nicht weg, da ich immer den Fehler "2A75C901 not defined" bekomme - hat aber keine weiteren Auswirkungen...)
die Structure:
Internals:
ATTR room
CHANGEDCNT 56
DEF room Shelly.Treppe.Fenster Shelly.Diele.UP
FUUID 5c44652d-f33f-378b-717c-5724987a3a02972b
NAME Flur.Licht.Alle
NR 1514
NTFY_ORDER 50-Flur.Licht.Alle
STATE off
TYPE structure
READINGS:
2020-01-15 08:30:00 LastDevice Shelly.Treppe.Fenster
2020-01-15 08:30:00 LastDevice_Abs Shelly.Treppe.Fenster
2020-01-15 08:30:00 state off
Attributes:
alias Flur-Lichtgruppe Alle: Fenster-Licht, Schlüsselbord
group Licht
room Flur
verbose 3
Taster-Doif:
Internals:
DEF ([Taster.Treppe_Schlafen.virt_Btn1:"^trigLast:.Taster.Treppe_Schlafen_Btn1:short$"]) (
set Flur.Licht.Alle off
)
DOELSEIF ([Taster.Treppe_Schlafen.virt_Btn2:"^trigLast:.Taster.Treppe_Schlafen_Btn2:short$"]) (
set Flur.Licht.Alle on
)
FUUID 5c65ce58-f33f-378b-2aa3-78fe593310b1b37d
MODEL FHEM
NAME Taster.Treppe_Schlafen.virt_Btn1_DOIF_1
NOTIFYDEV Taster.Treppe_Schlafen.virt_Btn1,global,Taster.Treppe_Schlafen.virt_Btn2
NR 1671
NTFY_ORDER 50-Taster.Treppe_Schlafen.virt_Btn1_DOIF_1
STATE cmd_2
TYPE DOIF
VERSION 20929 2020-01-10 09:44:35
READINGS:
2020-01-15 05:48:16 Device Taster.Treppe_Schlafen.virt_Btn2
2020-01-15 05:48:16 cmd 2
2020-01-15 05:48:16 cmd_event Taster.Treppe_Schlafen.virt_Btn2
2020-01-15 05:48:16 cmd_nr 2
2020-01-12 22:30:21 e_Taster.Treppe_Schlafen.virt_Btn1_events OFF,trigLast: Taster.Treppe_Schlafen_Btn1:short,trig_Taster.Treppe_Schlafen_Btn1: Short_40,virtActState: OFF,virtActTrigNo: 40,virtActTrigRpt: 4,virtActTrigType: short,virtActTrigger: Taster.Treppe_Schlafen_Btn1
2020-01-15 05:48:16 e_Taster.Treppe_Schlafen.virt_Btn2_events OFF,trigLast: Taster.Treppe_Schlafen_Btn2:short,trig_Taster.Treppe_Schlafen_Btn2: Short_34,virtActState: OFF,virtActTrigNo: 34,virtActTrigRpt: 6,virtActTrigType: short,virtActTrigger: Taster.Treppe_Schlafen_Btn2
2020-01-12 15:04:58 mode enabled
2020-01-15 05:48:16 state cmd_2
Regex:
accu:
cond:
Taster.Treppe_Schlafen.virt_Btn1:
0:
&STATE ^Taster.Treppe_Schlafen.virt_Btn1$
1:
Taster.Treppe_Schlafen.virt_Btn2:
0:
1:
&STATE ^Taster.Treppe_Schlafen.virt_Btn2$
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('Taster.Treppe_Schlafen.virt_Btn1',$hash,'^trigLast:.Taster.Treppe_Schlafen_Btn1:short$',1)
1 ::EventDoIf('Taster.Treppe_Schlafen.virt_Btn2',$hash,'^trigLast:.Taster.Treppe_Schlafen_Btn2:short$',1)
do:
0:
0 set Flur.Licht.Alle off
1:
0 set Flur.Licht.Alle on
2:
helper:
DEVFILTER ^global$|^Taster.Treppe_Schlafen.virt_Btn2$|^Taster.Treppe_Schlafen.virt_Btn1$
NOTIFYDEV global|Taster.Treppe_Schlafen.virt_Btn2|Taster.Treppe_Schlafen.virt_Btn1
event trigLast: Taster.Treppe_Schlafen_Btn2:short
globalinit 1
last_timer 0
sleeptimer -1
timerdev Taster.Treppe_Schlafen.virt_Btn2
timerevent trigLast: Taster.Treppe_Schlafen_Btn2:short
triggerDev Taster.Treppe_Schlafen.virt_Btn2
timerevents:
OFF
trigLast: Taster.Treppe_Schlafen_Btn2:short
trig_Taster.Treppe_Schlafen_Btn2: Short_34
virtActState: OFF
virtActTrigNo: 34
virtActTrigRpt: 6
virtActTrigType: short
virtActTrigger: Taster.Treppe_Schlafen_Btn2
timereventsState:
state: OFF
trigLast: Taster.Treppe_Schlafen_Btn2:short
trig_Taster.Treppe_Schlafen_Btn2: Short_34
virtActState: OFF
virtActTrigNo: 34
virtActTrigRpt: 6
virtActTrigType: short
virtActTrigger: Taster.Treppe_Schlafen_Btn2
triggerEvents:
OFF
trigLast: Taster.Treppe_Schlafen_Btn2:short
trig_Taster.Treppe_Schlafen_Btn2: Short_34
virtActState: OFF
virtActTrigNo: 34
virtActTrigRpt: 6
virtActTrigType: short
virtActTrigger: Taster.Treppe_Schlafen_Btn2
triggerEventsState:
state: OFF
trigLast: Taster.Treppe_Schlafen_Btn2:short
trig_Taster.Treppe_Schlafen_Btn2: Short_34
virtActState: OFF
virtActTrigNo: 34
virtActTrigRpt: 6
virtActTrigType: short
virtActTrigger: Taster.Treppe_Schlafen_Btn2
internals:
perlblock:
readings:
trigger:
all Taster.Treppe_Schlafen.virt_Btn1 Taster.Treppe_Schlafen.virt_Btn2
uiState:
uiTable:
Attributes:
Zeit-Doif:
Internals:
DEF ([{sunrise("REAL",-5200,"05:30","06:00")}] and !$we) (
set Flur.Licht.Alle on;
set Shelly.GaesteWC.Fenster on
)
DOELSEIF ([8:30] and !$we) (
set Flur.Licht.Alle off;
set Shelly.GaesteWC.Fenster off
)
DOELSEIF ([{sunrise("REAL",0,"07:30","08:30")}] and $we) (
set Flur.Licht.Alle on;
set Shelly.GaesteWC.Fenster on
)
DOELSEIF ([9:00] and $we) (
set Flur.Licht.Alle off;
set Shelly.GaesteWC.Fenster off
)
DOELSEIF ([{sunset("REAL",-3600,"15:30","21:30")}]) (
set Flur.Licht.Alle on;
set Shelly.GaesteWC.Fenster on
)
DOELSEIF ([22:30]) (
set Flur.Licht.Alle off;
set Shelly.GaesteWC.Fenster off
)
FUUID 5c446523-f33f-378b-497a-5f57dd6fc6ecc70d
MODEL FHEM
NAME Flur.Licht.Alle.On_doif
NOTIFYDEV global
NR 1429
NTFY_ORDER 50-Flur.Licht.Alle.On_doif
STATE cmd_2
TYPE DOIF
VERSION 20929 2020-01-10 09:44:35
READINGS:
2020-01-15 08:30:00 cmd 2
2020-01-15 08:30:00 cmd_event timer_2
2020-01-15 08:30:00 cmd_nr 2
2019-12-05 11:14:41 mode enabled
2020-01-15 08:30:00 state cmd_2
2020-01-15 06:00:00 timer_01_c01 16.01.2020 06:00:00
2020-01-15 08:30:00 timer_02_c02 16.01.2020 08:30:00
2020-01-15 08:30:00 timer_03_c03 16.01.2020 08:30:00
2020-01-14 09:00:00 timer_04_c04 15.01.2020 09:00:00
2020-01-14 15:35:31 timer_05_c05 15.01.2020 15:37:07
2020-01-14 22:30:00 timer_06_c06 15.01.2020 22:30:00
Regex:
accu:
attr:
cmdState:
waitdel:
condition:
0 ::DOIF_time_once($hash,0,$wday) and !$we
1 ::DOIF_time_once($hash,1,$wday) and !$we
2 ::DOIF_time_once($hash,2,$wday) and $we
3 ::DOIF_time_once($hash,3,$wday) and $we
4 ::DOIF_time_once($hash,4,$wday)
5 ::DOIF_time_once($hash,5,$wday)
days:
do:
0:
0 set Flur.Licht.Alle on; set Shelly.GaesteWC.Fenster on
1:
0 set Flur.Licht.Alle off; set Shelly.GaesteWC.Fenster off
2:
0 set Flur.Licht.Alle on; set Shelly.GaesteWC.Fenster on
3:
0 set Flur.Licht.Alle off; set Shelly.GaesteWC.Fenster off
4:
0 set Flur.Licht.Alle on; set Shelly.GaesteWC.Fenster on
5:
0 set Flur.Licht.Alle off; set Shelly.GaesteWC.Fenster off
6:
helper:
DEVFILTER ^global$
NOTIFYDEV global
event timer_2
globalinit 1
last_timer 6
sleeptimer -1
timerdev
timerevent timer_2
triggerDev
DOIF_eventa:
cmd_nr: 2
cmd: 2
cmd_event: timer_2
cmd_2
DOIF_eventas:
cmd_nr: 2
cmd: 2
cmd_event: timer_2
state: cmd_2
timerevents:
timer_2
timereventsState:
timer_2
triggerEvents:
timer_2
triggerEventsState:
timer_2
interval:
intervalfunc:
localtime:
0 1579150800
1 1579159800
2 1579159800
3 1579075200
4 1579099027
5 1579123800
perlblock:
realtime:
0 06:00:00
1 08:30:00
2 08:30:00
3 09:00:00
4 15:37:07
5 22:30:00
time:
0 {sunrise("REAL",-5200,"05:30","06:00")}
1 8:30
2 {sunrise("REAL",0,"07:30","08:30")}
3 9:00
4 {sunset("REAL",-3600,"15:30","21:30")}
5 22:30:00
timeCond:
0 0
1 1
2 2
3 3
4 4
5 5
timer:
0 0
1 0
2 0
3 0
4 0
5 0
timers:
0 0
1 1
2 2
3 3
4 4
5 5
triggertime:
1579075200:
localtime 1579075200
hash:
1579099027:
localtime 1579099027
hash:
1579123800:
localtime 1579123800
hash:
1579150800:
localtime 1579150800
hash:
1579159800:
localtime 1579159800
hash:
uiState:
uiTable:
Attributes:
alias Flur- und Treppenlicht und GWC: Zeitgesteuerte Schalten abhängig von Wochenende und Dämmerungszeiten
comment Schalte das Flurlicht (Treppe und Schluesselbord) in Abhaengigkeit von WE sowie der Daemmerung an:
- kein Urlaub, kein WE: zw. 6:00 und 7:30, bis 8:30
- Urlaub oder WE: zw. 7:30 und 8:30, bis 9:00
- zw. 16:00 und 21:30 abhängig von Dämmerung
- 22:30 aus
do always
group at
room System->Logiken
verbose 3
Hat jemand eine Idee, was ich evtl. falsch mache bzw. besser machen könnte?
Danke.
Gruß, Christoph
PS: Da es weder ein HM- noch direkt ein DOIF-Problem ist, habe ich es erstmal hier einsortiert - wenn es in einem anderen Bereich besser aufgehoben ist, bitte schieben. Danke
Setze mal do always auf deinem Taster-DOIF
Hallo,
das scheint es geween zu sein, danke.Gruß, Christoph