Knoppenrij programmeren voor de bediening van Sonos Play
Freek-Jan Buijsman
Administrator
*Let op: Het opzoeken van radiozenders werkt niet meer en hierdoor kunnen de URI's die aan de knoppen gekoppeld moeten worden niet meer worden opgezocht.
Echter, vanaf firmware versie 2.8.0 beschikt xxter over een volledige Sonos integratie. Het Sonos element waarmee dit mogelijk is kan in het profiel op een pagina worden toegevoegd.
Dit voorbeeld zal blijven staan ter inspiratie.
Iets om rekening mee te houden is dat Sonos bij updates zaken kan veranderen waardoor eea ineens niet meer werkt.
Ter voorbereiding moeten eerst de benodigde uris/links worden opgezocht.
Deze links zijn nodig bij het maken van het script in stap 2.
Ga vervolgens naar de Sonos via zijn lokale IP: http://XXXX:1400/status/radiolog (vul bij XXXX het ip adres van de Sonos in)
Er verschijnt dan een lijstje met informatie:
Timestamp Type URI
371045 playlist http://legato.radiotime.com/Tune.ashx?id=s25548&partnerId=Sonos&serial=00-0E-58-86-D5-B6:5version=31.9
371046 stream x-rincon-mp3radio://icecast.omroep.nl/radio4-bb-mp3
371046 stream aac://icecast.omroep.nl/radio4-bb-aac
371047 stream x-rincon-mp3radio://icecast.omroep.nl/radio4-sb-mp3
In dit voorbeeld is voor de kortste uri gekozen namelijk: aac://icecast.omroep.nl/radio4-bb-aac.
Bewaar deze link ergens en voer vervolgens bovenstaande stappen opnieuw uit voor iedere zender die aan een knop moet worden toegewezen.
Maak vervolgens 4x een byte waarde zenden component aan. Vul hier hetzelfde groepsadres in als bij de Byte waarde: 5/7/1.
In dit voorbeeld werken we met 4 knoppen, dus hebben we 4 waardes nodig. In dit voorbeeld zijn dat: 0, 1, 2, 3. Deze zijn ingevuld in de kolom "Waarde".
De 0 zal worden gekoppeld aan de uit knop, de 1 aan radio 4 etc.
Let op: De dikgedrukte regels zijn apparaten die lokaal gebruikt worden. Deze moeten dus nog worden aangepast zodat ze overeenkomen met de apparaten in de configuratie.
De regels IF BYTE(16/Radio zender kiezen)=0,1,2,3 verwijzen naar de componenten die bij stap 1 zijn aangemaakt. De bytewaarde kan worden geselecteerd uit het lijstje met BYTES (klik op het pijltje naast COMMANDS).
Nogmaals, de apparaten hierboven (dikgedrukte tekst) zijn bij het maken van dit voorbeeld gebruikt. In een andere configuratie hebben deze dus andere namen en nummers.
Bij Status Component kiezen we het component dat in stap 1 is aangemaakt "Radio zender kiezen". De voorwaarde =0 en bij "Sturen bij indrukken" komt op "Radio uit" te staan.
(Voorwaarde 0 en Radio uit verwijzen naar de waarde die is gekozen bij byte waarde zenden in stap 1)
Voor de overige knoppen gebruiken we dezelfde instellingen, behalve voor de "Voorwaarde" en "Sturen bij indrukken"
Knop 2 krijgt "Voorwaarde" 1 en "Sturen bij indrukken" Radio 4.
Knop 3 krijgt "Voorwaarde" 2 en "Sturen bij indrukken" Radio Veronica.
Knop 4 krijgt "Voorwaarde" 3 en "Sturen bij indrukken" Radio 3.
De laatste stap is het updaten van het profiel in de app. Nu zou de knoppenrij moeten werken.
Echter, vanaf firmware versie 2.8.0 beschikt xxter over een volledige Sonos integratie. Het Sonos element waarmee dit mogelijk is kan in het profiel op een pagina worden toegevoegd.
Dit voorbeeld zal blijven staan ter inspiratie.
Introductie
Aan de hand van dit voorbeeld kan een knoppenrij met 4 knoppen worden geconfigureerd in de xxter app. Met de knoppen kunnen vervolgens op een Sonos(Play) verschillende radiozenders worden gestart.Iets om rekening mee te houden is dat Sonos bij updates zaken kan veranderen waardoor eea ineens niet meer werkt.
Ter voorbereiding moeten eerst de benodigde uris/links worden opgezocht.
Deze links zijn nodig bij het maken van het script in stap 2.
De voorbereiding
Start de Sonos software en start een radiozender die straks aan een knop moet worden toegewezen.Ga vervolgens naar de Sonos via zijn lokale IP: http://XXXX:1400/status/radiolog (vul bij XXXX het ip adres van de Sonos in)
Er verschijnt dan een lijstje met informatie:
Timestamp Type URI
371045 playlist http://legato.radiotime.com/Tune.ashx?id=s25548&partnerId=Sonos&serial=00-0E-58-86-D5-B6:5version=31.9
371046 stream x-rincon-mp3radio://icecast.omroep.nl/radio4-bb-mp3
371046 stream aac://icecast.omroep.nl/radio4-bb-aac
371047 stream x-rincon-mp3radio://icecast.omroep.nl/radio4-sb-mp3
In dit voorbeeld is voor de kortste uri gekozen namelijk: aac://icecast.omroep.nl/radio4-bb-aac.
Bewaar deze link ergens en voer vervolgens bovenstaande stappen opnieuw uit voor iedere zender die aan een knop moet worden toegewezen.
Stap 1
We beginnen met het aanmaken van één byte waarde component. Vul bij het byte waarde component een leeg groepsadres in, bijvoorbeeld 5/7/1.Maak vervolgens 4x een byte waarde zenden component aan. Vul hier hetzelfde groepsadres in als bij de Byte waarde: 5/7/1.
In dit voorbeeld werken we met 4 knoppen, dus hebben we 4 waardes nodig. In dit voorbeeld zijn dat: 0, 1, 2, 3. Deze zijn ingevuld in de kolom "Waarde".
De 0 zal worden gekoppeld aan de uit knop, de 1 aan radio 4 etc.
Stap 2
Maak een script, zie screenshot. Onder de screenshot staat de benodigde code om te kopiëren en plakken. De schuin gedrukte regels bij de sourceuris moet worden vervangen voor de links van de in de voorbereiding gekozen voorkeurszenders.Let op: De dikgedrukte regels zijn apparaten die lokaal gebruikt worden. Deze moeten dus nog worden aangepast zodat ze overeenkomen met de apparaten in de configuratie.
De regels IF BYTE(16/Radio zender kiezen)=0,1,2,3 verwijzen naar de componenten die bij stap 1 zijn aangemaakt. De bytewaarde kan worden geselecteerd uit het lijstje met BYTES (klik op het pijltje naast COMMANDS).
IF BYTE (16/Radio zender kiezen)=0 EXECUTE ON UPNPDEVICE (UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) STOP IF BYTE (16/Radio zender kiezen)=1 BEGIN EXECUTE ON UPNPDEVICE (UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) SOURCEURI aac://icecast.omroep.nl/radio4-bb-aac EXECUTE ON UPNPDEVICE (UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) PLAY EXECUTE ON UPNPDEVICE (UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) UNMUTE END IF BYTE( 16/Radio zender kiezen)=2 BEGIN EXECUTE ON UPNPDEVICE (UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) SOURCEURI aac://8633.live.streamtheworld.com:80/VERONICAAAC_SC EXECUTE ON UPNPDEVICE (UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) PLAY EXECUTE ON UPNPDEVICE (UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) UNMUTE END IF BYTE (16/Radio zender kiezen)=3 BEGIN EXECUTE ON UPNPDEVICE (UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) SOURCEURI aac://icecast.omroep.nl/3fm-bb-aac EXECUTE ON UPNPDEVICE (UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) PLAY EXECUTE ON UPNPDEVICE (UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) UNMUTE ENDKopieer en Plak bovenstaande scriptregels in het daarvoor bestemde veld en druk op opslaan en controleren. Wanneer het script niet in orde is word de foutieve tekst rood.
Nogmaals, de apparaten hierboven (dikgedrukte tekst) zijn bij het maken van dit voorbeeld gebruikt. In een andere configuratie hebben deze dus andere namen en nummers.
Stap 3
Het aanmaken van een actie om het eerder gemaakte script mee te starten. Bij Voorwaarde -->Component "Radio zender kiezen" invullen (gemaakt in stap1). Bij Actie-->Script "Radio zender kiezen sonos" invullen (gemaakt in stap 2).Stap 4
Maak op een pagina in het profiel een element "Knoppenrij" aan. Kies bij het aantal knoppen voor 4. Begin met het instellen van Knop 1, dit wordt de uit knop.Bij Status Component kiezen we het component dat in stap 1 is aangemaakt "Radio zender kiezen". De voorwaarde =0 en bij "Sturen bij indrukken" komt op "Radio uit" te staan.
(Voorwaarde 0 en Radio uit verwijzen naar de waarde die is gekozen bij byte waarde zenden in stap 1)
Voor de overige knoppen gebruiken we dezelfde instellingen, behalve voor de "Voorwaarde" en "Sturen bij indrukken"
Knop 2 krijgt "Voorwaarde" 1 en "Sturen bij indrukken" Radio 4.
Knop 3 krijgt "Voorwaarde" 2 en "Sturen bij indrukken" Radio Veronica.
Knop 4 krijgt "Voorwaarde" 3 en "Sturen bij indrukken" Radio 3.
De laatste stap is het updaten van het profiel in de app. Nu zou de knoppenrij moeten werken.
Reacties
-
Mogelijk dat niet alle opgezochte Streams meer werken dus hierbij een kleine aanvulling op bovenstaande
In plaats van te verwijzen naar de Stream kan sinds enige tijd met xxter ook worden verwezen naar een favoriet of een afspeellijst. In dit voorbeeld gebruiken we een favoriet, PLAYFVNAME.
Let op: de favorieten mogen geen vreemde karakters bevatten en als een spatie gebruikt wordt in de favorietnaam moet in het script in plaats van een spatie een underscore gebruikt worden.
538 Non Stop wordt dus 538_Non_Stop in het script, mits 538 Non Stop als favoriet in de Sonos app is toegevoegd. Check dus wel even de favorietnaam.
Het script wordt dan dus als volgt:IF BYTE(16/Radiozenderkiezen)=1 EXECUTE ON UPNPDEVICE(UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) STOP # IF BYTE(16/Radiozenderkiezen)=2 BEGIN EXECUTE ON UPNPDEVICE(UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) PLAYFVNAME 538_Ibiza EXECUTE ON UPNPDEVICE(UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) PLAY EXECUTE ON UPNPDEVICE(UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) UNMUTE END # IF BYTE(16/Radiozenderkiezen)=3 BEGIN EXECUTE ON UPNPDEVICE(UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) PLAYFVNAME Fresh_FM EXECUTE ON UPNPDEVICE(UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) PLAY EXECUTE ON UPNPDEVICE(UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) UNMUTE END # IF BYTE(16/Radiozenderkiezen)=4 BEGIN EXECUTE ON UPNPDEVICE(UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) PLAYFVNAME 538_Non_Stop EXECUTE ON UPNPDEVICE(UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) PLAY EXECUTE ON UPNPDEVICE(UPNPUUID:RINCON_000E5886D5B601400_MR§/Woonkamer - Sonos PLAY:5 Media Renderer) UNMUTE END
Na het commando PLAYFVNAME wordt ook nog een PLAY en een UNMUTE toegevoegd, dit is niet gewijzigd verder. -
In het voorbeeld hierboven wordt er gesproken over de zender "538_Non_Stop". Echter wilde ik "Radio 538 Non-Stop 40" laten afroepen via een script via de Xxter. Deze heb ik eerst toegevoegd aan de "Sonos favorieten". Echter omdat de naam in het script geen "rare tekens" mag bevatten wordt dit in het script: "Radio_538_NonStop_40" (dus wordt het - teken geheel verwijderd en hier achter meteen het restant gezet). Dit is volgens mij ook van toepassing bij andere zenders waar "rare tekens" in staan en men deze graag in een script toe zou willen voegen.
-
Zojuist ook geprobeerd bij de zender "100% NL". Deze wordt als favoriet in een script "100_NL".
-
Dank voor je toevoegingen en het testen MarkMark Roks zei:Zojuist ook geprobeerd bij de zender "100% NL". Deze wordt als favoriet in een script "100_NL".
-
Is er bij Sonos wat gewijzigd? Als ik onderstaande (met juiste IP adres) probeer op te vragen blijft het scherm leeg. Eerder werden de gevraagde gegevens wel getoond.
Ga vervolgens naar de Sonos via zijn lokale IP: http://XXXX:1400/status/radiolog (vul bij XXXX het ip adres van de Sonos in)
Er verschijnt dan een lijstje met informatie:
-
Hallo Jan,
Het lijkt erop dat dit inderdaad niet meer werkt.
Waar dit aan ligt heb ik nog niet kunnen achterhalen.
Het eerder geboden alternatief om de radiozenders toe te voegen via de favorieten werkt nog wel.
Zie hier
Categorieën
- 361 Alle Categorieën
- 28 Release notes
- 8 Release notes - Pairot
- 20 Release notes - xxter
- 12 Pairot
- 48 Algemeen
- 5 Device
- App
- 1 Project
- 3 Voice assistants
- 10 xxter
- 126 Algemeen
- 47 Algemeen
- 34 Nieuwe functionaliteiten en nieuwe features
- 21 Apps
- 20 Apps algemeen
- 1 Apps Beta release
- 24 Profielen
- 7 Profiel algemeen
- 16 Pagina's en pagina elementen
- 1 Waarschuwingsservice
- 94 Project
- 6 Logica
- 2 Aanwezigheidsdetectie
- 12 Acties
- 3 BREEAM
- 14 Cameras
- 16 Componenten
- 1 Config Tool
- 6 Opdrachten
- 28 Native scripts
- 3 LUA scripts
- 3 Statistieken
- 50 Device
- 42 Device algemeen
- 3 Toegangsrechten en lokale gebruikers
- 4 Aanwezigheidssimulatie / Presence simulation