Hallo,
ich habe in meinem Badezimmer einen RPI3 aufgestellt, den ich als Squeezeplayer betreibe, um dort Musik abzuspielen. Zur Steuerung verwende ich einen Eltako Schalter:
Internals:
DEF FEEED47E
FUUID 5f85db89-f33f-cd59-cdae-27455c9676fae4b2
IODev TCM_ESP3_0
LASTInputDev TCM_ESP3_0
MSGCNT 236
NAME Stat_SW_Bad
NR 348
NTFY_ORDER 50-Stat_SW_Bad
STATE AI
TCM_ESP3_0_DestinationID FFFFFFFF
TCM_ESP3_0_MSGCNT 236
TCM_ESP3_0_PacketType 1
TCM_ESP3_0_RSSI -92
TCM_ESP3_0_ReceivingQuality bad
TCM_ESP3_0_RepeatingCounter 1
TCM_ESP3_0_SubTelNum 2
TCM_ESP3_0_TIME 2020-11-08 09:55:10
TYPE EnOcean
READINGS:
2020-11-08 09:55:10 buttons released
2020-11-08 09:55:09 channelA AI
2020-11-07 18:41:03 channelB BI
2020-11-08 09:55:09 state AI
2020-10-13 18:53:29 teach RPS teach-in accepted EEP F6-02-01 Manufacturer: no ID
helper:
Attributes:
IODev TCM_ESP3_0
eep F6-02-01
manufID 7FF
room 2.2_Bad,EnOcean
subType switch
teachMethod RPS
Der Schalter hat zwei Taster und ich frage die einzelnen Stellungen mit drei Notifys (Lauter, Leiser, Aus) und einem DOIF (Ein, bzw. Umschalten) ab.
DOIF:
Internals:
DEF ##1: erstes Einschalten
([Stat_SW_Bad:"^A0$"] and $cmd=~"0|2")
(set Squeeze_Badezimmer play;
set Squeeze_Badezimmer favorites WDR2_Rheinland_1004_Pop;
set Squeeze_Badezimmer volume 15)
##2: nochmalige Schalterbetätigung
DOELSEIF
([Stat_SW_Bad:"^A0$"] and $cmd==1)
(set Squeeze_Badezimmer favorites Rock_Mix_-_FLAC_Interactive)
FUUID 5fa3d5e5-f33f-cd59-8915-cf257183cb577351
MODEL FHEM
NAME d_Musik_ein_Bad
NOTIFYDEV global,Stat_SW_Bad
NR 365
NTFY_ORDER 50-d_Musik_ein_Bad
STATE cmd_1
TYPE DOIF
VERSION 22913 2020-10-04 21:46:02
READINGS:
2020-11-08 09:55:10 Device Stat_SW_Bad
2020-11-07 18:40:40 cmd 1
2020-11-07 18:40:40 cmd_event Stat_SW_Bad
2020-11-07 18:40:40 cmd_nr 1
2020-11-08 09:55:10 e_Stat_SW_Bad_events buttons: released
2020-11-05 12:50:53 mode enabled
2020-11-07 18:40:40 state cmd_1
Regex:
accu:
cond:
Stat_SW_Bad:
0:
&STATE ^Stat_SW_Bad$
1:
&STATE ^Stat_SW_Bad$
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('Stat_SW_Bad',$hash,'^A0$',1) and $cmd=~"0|2"
1 ::EventDoIf('Stat_SW_Bad',$hash,'^A0$',1) and $cmd==1
do:
0:
0 set Squeeze_Badezimmer play; set Squeeze_Badezimmer favorites WDR2_Rheinland_1004_Pop; set Squeeze_Badezimmer volume 15
1:
0 set Squeeze_Badezimmer favorites Rock_Mix_-_FLAC_Interactive
2:
helper:
DEVFILTER ^global$|^Stat_SW_Bad$
NOTIFYDEV global|Stat_SW_Bad
event buttons: released
globalinit 1
last_timer 0
sleeptimer -1
timerdev Stat_SW_Bad
timerevent A0
triggerDev Stat_SW_Bad
timerevents:
buttons: pressed
channelA: A0
A0
timereventsState:
buttons: pressed
channelA: A0
state: A0
triggerEvents:
buttons: released
triggerEventsState:
buttons: released
internals:
perlblock:
readings:
trigger:
all Stat_SW_Bad
uiState:
uiTable:
Attributes:
icon helper_doif
room 2.2_Bad
Notify Musik aus:
Internals:
DEF Stat_SW_Bad:channelA:.AI
set Squeeze_Badezimmer volume 18;;
set Squeeze_Badezimmer off
FUUID 5f8d56be-f33f-cd59-31bf-11f98d280d90aea3
NAME n_Musik_aus_Bad
NOTIFYDEV Stat_SW_Bad
NR 353
NTFY_ORDER 50-n_Musik_aus_Bad
REGEXP Stat_SW_Bad:channelA:.AI
STATE 2020-11-08 09:55:09
TRIGGERTIME 1604825709.85554
TYPE notify
READINGS:
2020-11-07 11:37:58 state active
Attributes:
room 2.2_Bad
Notify Musik lauter
Internals:
DEF Stat_SW_Bad:channelB:.B0
set Squeeze_Badezimmer volumeUp
FUUID 5f8d570d-f33f-cd59-6bd3-212629832cebb901
NAME n_Musik_lauter_Bad
NOTIFYDEV Stat_SW_Bad
NR 354
NTFY_ORDER 50-n_Musik_lauter_Bad
REGEXP Stat_SW_Bad:channelB:.B0
STATE 2020-11-07 18:41:02
TRIGGERTIME 1604770862.17292
TYPE notify
READINGS:
2020-11-06 17:00:25 state active
Attributes:
room 2.2_Bad
Notify Musik leiser
Internals:
DEF Stat_SW_Bad:channelB:.BI
set Squeeze_Badezimmer volumeDown
FUUID 5f8d573e-f33f-cd59-a6ea-37d00579dfdc4f6f
NAME n_Musik_leiser_Bad
NOTIFYDEV Stat_SW_Bad
NR 355
NTFY_ORDER 50-n_Musik_leiser_Bad
REGEXP Stat_SW_Bad:channelB:.BI
STATE 2020-11-07 18:41:03
TRIGGERTIME 1604770863.67531
TYPE notify
READINGS:
2020-11-06 17:00:25 state active
Attributes:
room 2.2_Bad
Ich habe das Problem, dass die Funktion des Ausschaltens nicht funktioniert. Ich kann im Event Monitor sehen, dass die Taste Channel A AI betätigt wurde, aber der Squeezeplayer wird nicht ausgeschaltet. Momentan kann ich die Musik nur per Handy / Tablet oder Rechner ausschalten. Ich weiß irgendwie nicht mehr weiter.
Lauter und Leiser funktioniert, das Ein- und Umschalten per Schalter und DOIF funktioniert.
Viele Grüße
Stephan
Mach aus:
Zitat
set Squeeze_Badezimmer volume 18;;
set Squeeze_Badezimmer off
set Squeeze_Badezimmer volume 18;
set Squeeze_Badezimmer off
Wobei sich mir halt die Frage stellt, warum du hierfür 1 DOIF und 3 notify brauchst / hast... ;)
Aber wenn du es verstehst und es für dich tut (wenn es tut)...
...auch gut.
Gruß, Joachim
Danke!
Ich habe das nicht gesehen. Ich habe es gerade mal getestet und es funktioniert. War schon blöd.
ZitatWobei sich mir halt die Frage stellt, warum du hierfür 1 DOIF und 3 notify brauchst / hast...
Ich hatte ursprünglich pro Taststellung ein Notify, bin aber gerade dabei, dass ich durch wiederholtes Drücken "Ein" auch zwischen verschiedenen Programmen (Favoriten im Squeezeplayer) per DOIF umschalten kann.
Wahrscheinlich wird alles auf ein großes DOIF hinauslaufen...
Viele Grüße
Stephan