Sonos StartFavourite / StartRadio

Begonnen von Gidiano, 20 Dezember 2020, 11:54:19

Vorheriges Thema - Nächstes Thema

Gidiano

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
Grüße,
Christian

Reinerlein

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

Gidiano

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
Grüße,
Christian

Reinerlein

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

Gidiano

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
Grüße,
Christian

Reinerlein

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

Gidiano

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
(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
Grüße,
Christian

Gidiano

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
Grüße,
Christian

Reinerlein

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

Gidiano

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
Grüße,
Christian

Gidiano

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.*
...

Grüße,
Christian

Reinerlein

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

Gidiano

Alles klar Reinerlein, erledigt, nochmals besten Dank!

Motivierte Grüße
Christian
Grüße,
Christian