Hallo zusammen,
das Forum habe ich bereits soweit es ging durchsucht, aber bisher keinen Fred mit einer Lösung gefunden.
Aktuell arbeite ich daran mit einem Schalter per fhem per Harmony Hub meine Sonos einzusalten und einen bestimmten Sender zu starten.
Das Einschalten des System funktioniert, den Sender zu starten aber nicht, deshalb habe ich meine Testwiese mal nur auf den Senderstart reduktiert, damit ich die Anlage nicht dauern ein- und auschalten muss zum Testen:
([Haus_Schalter_Btn_02:.*]) (set Sonos_Gaestezimmer StartFavourite /Blues%20Rock/)
Gebe ich den code
set Sonos_Gaestezimmer StartFavourite /Blues%20Rock/
manuell ein, wird er auch brav abgedudelt (so teste ich, ob ich überhaupt die richtige Sytax habe, das müsste also passen. Andere Syntax ohne %20 geht auch, ebenso "StartRadio").
Schick ich den selben code per Befehl per Schalter wie ganz oben gepostet, passiert nichts.
Der Schaltbefehl des Schalters funktioniert auch, weil ich genau so z.B. die Harmony Hub Aktion auslösen kann (ich will das später kombinieren).
Aktuell bin ich da echt ratlos.
Hat jemand eine Idee, was ich falsch mache?
Sonos besteht ausschließlich aus S2-kompatiblen Komponenten.
Geschlauchte Grüße
Christian
Hi Christian,
ich würde sagen, dass bei deinem direkten Test nur der Start des bereits eingestellten Streams klappt. Das Umschalten auf den Stream aber nicht.
Die Schreibweise mit "/" leitet die Verarbeitung des Parameters als regulären Ausdruck ein. Dort geht die Angabe von "%20" für ein Leerzeichen nicht. Dort empfehle ich für Leerzeichen einfach den Wildmask ".", also:
set Sonos_Gaestezimmer StartFavourite /Blues.Rock/
oder halt:
set Sonos_Gaestezimmer StartFavourite Blues%20Rock
Grüße
Reinerlein
Hi Reinerlein,
danke für die schnelle Antwort.
Das ist ja das Rätsel. Ich habe jegliche Syntax ausprobiert (ich finde den Fred grad nicht) und immer dasselbe:
Schicke ich den Code manuell zum Sonos (das probiere ich immer zuerst, um sicher zu sein, dass es nicht daran liegt), geht es, mit dem Schalter nicht. Es scheint so irgendwie nicht anzukommen / falsch zu sein.
Bei deinen code-Vorschlägen ist es auch wieder so. Manuell geht. Schalter macht nix.
Viele Grüße
Christian
Hi Christian,
vielleicht schneidet das DoIf irgendwas weg...
Versuch doch mal zum Testen
([Haus_Schalter_Btn_02:.*]) ({
fhem("set Sonos_Gaestezimmer StartFavourite /Blues.Rock/");
})
Vielleicht hast du dann einen Hinweis, in welche Richtung du suchen musst...
Grüße
Reinerlein
Danke für den weiteren Hinweis. Damit hatte ich auch experimentert.
Die manuelle Eingabe von:
{fhem("set Sonos_Gaestezimmer StartFavourite /Blues.Rock/")}
funktioniert.
Dein code (oder meine obige Zeile) mit dem Schalter geht dann wieder nicht, seltsam.
Ich fummel mal weiter, habe aber der Verdacht, dass irgendwas nicht offensichtliches gerade klemmt.
Forscher-Grüße
Christian
Hi,
dein DoIf reagiert ja auf einen Zustand... so wie das klingt wolltest du doch bestimmt eher auf ein Event reagieren:
(["Haus_Schalter_Btn_02:.*"]) (
set Sonos_Gaestezimmer StartFavourite /Blues.Rock/
)
Außerdem solltest du schauen, dass du das auf ein spezielles Reading begrenzt, also sowas:
(["Haus_Schalter_Btn_02:^BtnReading:"]) (
set Sonos_Gaestezimmer StartFavourite /Blues.Rock/
)
Oder zumindest auf "state" begrenzen... oftmals werden mehrere Readings zu einem Tastendruck aktualisiert (oder auch mal andere Werte, wie Batteriestatus oder Temperaturen o.ä., ich kenne dein auslösendes Device ja nicht).
Grüße
Reinerlein
Hi,
was mich irritiert ist, dass diese Aktion so sauber schaltet:
([Haus_Schalter_Btn_02:.*]) (set Harmony activity Sonos-All)
Deshalb bin ich jetzt erst einmal davon ausgegangen, dass der Schalter was auslöst.
Es ist ein Homematic HM-DIS-EP-WM55 https://de.elv.com/homematic-funk-statusdisplay-mit-taster-hm-dis-ep-wm55-fuer-55er-rahmen-142408 (https://de.elv.com/homematic-funk-statusdisplay-mit-taster-hm-dis-ep-wm55-fuer-55er-rahmen-142408)
(set Sonos_Gaestezimmer StartFavourite /Blues.Rock/)
in die Kommandozeile eigegeben startet auch den Sender.
Auch
(set Sonos_Kueche StartFavourite Blues%20Rock)
und
(set Sonos_Kueche StartFavourite Blues Rock)
Nur susammen geht es nicht.
Sehr mysteriös.
Grüße
Christian
Hall Reinerlein,
so, Dein code hat jetzt funktioniert!
(["Haus_Schalter_Btn_02:.*"]) (
set Sonos_Gaestezimmer StartFavourite /Blues.Rock/
)
Damit geht es jetzt, BESTEN DANK!
Viele Grüße
Christian
Hi Christian,
schön, aber ich fürchte, jetzt startet der Stream auch, wenn irgendetwas an deinem Device aktualisiert wird (z.B. der Batteriestatus).
Du solltest das unbedingt auf das Reading einschränken, welches für den Tastendruck steht.
Sonst poste doch mal ein list von diesem Device. Dann können wir das passende raussuchen...
Grüße
Reinerlein
Hallo Reinerlein,
oha, das sollte ja nicht so sein, besten Dank für Deinen Hinweis!
Hier das List:
Internals:
DEF 5060BD
FUUID 5e626df4-f33f-f236-7504-f08ecfe6f08f8a59
Gateway_MSGCNT 158
Gateway_RAWMSG 0501004A4EA0105060BD8D0C2D0100000000
Gateway_RSSI -74
Gateway_TIME 2020-12-21 15:34:46
IODev Gateway
LASTInputDev Gateway
MSGCNT 317
NAME Haus_Schalter
NOTIFYDEV global
NR 964
STATE CMDs_done
TYPE CUL_HM
Zentrale_MSGCNT 159
Zentrale_RAWMSG E5060BD,0000,37D25935,FF,FFC8,4EA0105060BD8D0C2D0100000000
Zentrale_RSSI -56
Zentrale_TIME 2020-12-21 15:34:46
channel_01 Haus_Schalter_Btn_01
channel_02 Haus_Schalter_Btn_02
channel_03 Haus_Schalter_Dis
channel_04 Haus_Schalter_Key_01
channel_05 Haus_Schalter_Key_02
channel_06 Haus_Schalter_Key_03
channel_07 Haus_Schalter_Key_04
channel_08 Haus_Schalter_Key_05
lastMsg No:4E - t:10 s:5060BD d:8D0C2D 0100000000
protLastRcv 2020-12-21 15:34:46
protRcv 159 last_at:2020-12-21 15:34:46
protSnd 184 last_at:2020-12-21 15:34:46
protSndB 19 last_at:2020-12-21 15:34:45
protState CMDs_done
rssi_at_Gateway cnt:158 min:-87 max:-46 avg:-74.96 lst:-74
rssi_at_Zentrale cnt:159 min:-81 max:-51 avg:-59.54 lst:-56
READINGS:
2020-12-21 15:34:42 CommandAccepted yes
2020-12-21 12:58:37 D-firmware 1.1
2020-12-21 12:58:37 D-serialNr NEQ1594904
2020-12-21 13:50:45 PairedTo 0x8D0C2D
2020-03-07 08:50:26 R-pairCentral 0x8D0C2D
2020-03-06 17:28:09 R-powerSupply bat
2020-12-21 13:50:45 RegL_00. 00:00 02:01 05:80 08:01 0A:8D 0B:0C 0C:2D 14:03 21:07
2020-12-21 14:21:23 battery ok
2020-12-21 15:35:16 cfgState ok
2020-12-21 15:34:46 commState CMDs_done
2020-12-21 13:50:40 powerOn 2020-12-21 13:50:40
2020-03-31 12:35:50 sabotageAttack_ErrIoAttack cnt 1
2020-12-17 14:44:52 sabotageAttack_ErrIoAttack_cnt 3
2020-12-21 15:34:46 state CMDs_done
helper:
HM_CMDNR 78
PONtest 0
cSnd 018D0C2D5060BD01040000000001,018D0C2D5060BD0103
mId 00FB
peerFriend
peerOpt -:display
regLst 0
rxType 6
supp_Pair_Rep 0
ack:
cmds:
TmplKey :no:1608561844.51982
TmplTs 1608561844.51982
cmdKey 0:1:0::Haus_Schalter:00FB:00:
cmdLst:
assignHmKey noArg
clear [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
deviceRename -newName-
fwUpdate -filename- [-bootTime-]
getConfig noArg
getDevInfo noArg
getRegRaw (List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
raw -data- [...]
regBulk -list-.-peerChn- -addr1:data1- -addr2:data2-...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
reset noArg
tplDel -tplDel-
tplSet_0 -tplChan-
unpair noArg
lst:
condition slider,0,1,255
peer
peerOpt
tplChan
tplDel
tplPeer
rtrvLst:
cmdList [({short}|long)]
deviceInfo [({short}|long)]
param -param-
reg -addr- -list- [-peerChn-]
regList noArg
regTable noArg
regVal -addr- -list- [-peerChn-]
saveConfig [-filename-]
tplInfo noArg
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +5060BD,00,00,00
nextSend 1608561287.02292
rxt 0
vccu MasterGateway
p:
5060BD
00
00
00
prefIO:
Gateway
mRssi:
mNo 4E
io:
Gateway:
-72
-72
Zentrale:
-56
-56
prt:
bErr 0
sProc 0
rspWait:
q:
qReqConf
qReqStat
regCollect:
role:
dev 1
rpt:
IO Zentrale
flg A
ts 1608561286.72185
ack:
HASH(0x7a91708)
4E80028D0C2D5060BD00
rssi:
at_Gateway:
avg -74.9620253164557
cnt 158
lst -74
max -46
min -87
at_Zentrale:
avg -59.5408805031447
cnt 159
lst -56
max -51
min -81
shadowReg:
tmpl:
Attributes:
IODev Gateway
IOgrp MasterGateway:Gateway
alias Haus-Schalter
autoReadReg 4_reqStatus
expert defReg,rawReg
firmware 1.1
icon hm-dis-wm55
model HM-DIS-EP-WM55
msgRepeat 3
room Wohnbereich
serialNr NEQ1594904
subType display
webCmd getConfig:clear msgEvents
Hallo Reinerlein,
ich habe noch etwas getüftelt, was hältst Du davon?
(["Haus_Schalter_Btn_02:Short.*"]) (
set Harmony activity Sonos-All,
set Sonos_Gaestezimmer StartFavourite /Blues.Rock/
)
DOELSEIF
(["Haus_Schalter_Btn_01:Short.*"]) (
set Harmony activity Fernsehen
)
Das sollte es doch eindeutiger machen:
...
Haus_Schalter_Btn_02:Short.*
...
Hi Christian,
das sieht doch gut aus...
Du solltest auf jeden Fall auch das Attribut "do" auf "always" setzen (am DOIF), sonst klappt das nur einmal mit dem Tastendruck-Reagieren :)
Grüße
Reunerlein
Alles klar Reinerlein, erledigt, nochmals besten Dank!
Motivierte Grüße
Christian