Sonos steuern

Begonnen von Will, 05 Januar 2013, 15:51:12

Vorheriges Thema - Nächstes Thema

2P4u

Hi Zusammen.
Ich habe folgende Frage:
Im Badezimmer steht ne Play1, diese hängt an einer PCA301 Steckdose. Nun möchte ich wenn die Dose aus ist, dass diese eingeschaltet wird und nach dem hochfahren ca. 40 sek später der Stream anfängt zu laufen. Ausserdem soll beim Tastendruck der Stream direkt starten, wenn die Steckdose schon an ist.
Folgendes habe ich schon getestet:
define bz_taster03NF notify bz_taster03.Short.* {
fhem ("set Sonos_Bad PlayURI http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi 10");;
fhem ("set bz_Sonos on")if (ReadingsVal("bz_Sonos", "state", "0") eq "off");;
fhem ("set Sonos_Bad at +00:00:40 PlayURI http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi 10");;
}


Allerdings bin ich mir mit der Position des at Befehls nicht sicher, da 40 sek nachdem die Steckdose angeht nichts mehr passiert.
Erst wenn ich den Taster nochmals betätige wird logischerweise der Stream gestartet.

Ich hoffe mir kann jemand helfen, oder es gibt ne andere Lösung dafür?
Vielen Dank für eure Hilfe

Daniel
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

Puschel74

#2026
Du bist dir bezüglich des at nicht sicher  ;)
Die Position passt schon.
fhem ("define Sonos_Bad_spaeter at +00:00:40 set Sonos_Bad PlayURI http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi 10");;
sollte besser passen.

Deine Anforderung passt aber so generell nicht zu deinem Code.

bz_taster03.Short.* {
  if (ReadingsVal("bz_Sonos", "state", "undef") eq "off") {
    fhem ("set bz_Sonos on");
    fhem ("define Sonos_Bad_spaeter at +00:00:40 set Sonos_Bad PlayURI http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi 10");
  }
  else {
    fhem ("set Sonos_Bad PlayURI http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi 10");
  }
}

Die ; musst du ;; aber da ich die fhem.cfg nicht direkt bearbeite bleibt dir das übrig.
Auch wirst du Zeilenumbrüche maskieren müssen, oder du kopierst meinen Code in das DEF des notify  ;)
Die Frage hat aber nicht wirklich was mit einem Sonos-Problem zu tun sondern ist eine Anfängerfrage  8) *duckundwech*

Edith: Den Ersatzwert im ReadingsVal würde ich aber nach undef ändern sonst gibts eine Hinweismeldung das der Vergleich mit eq fehlschlägt wenn das Reading nicht gelesen werden kann.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

2P4u

Hi Puschel, schon lange nichts mehr von dir gehört :(

ZitatDie Frage hat aber nicht wirklich was mit einem Sonos-Problem zu tun sondern ist eine Anfängerfrage
Soll ich denn dafür n eigenes Thema aufmachen ;)

Danke für dein Vorschlag, scheint super zu funktionieren.
Ich war ja schon auf dem richtigen weg. Wollte es erst mit DOIF ausprobieren aber das gefällt mir nicht so gut.

Jetzt muss ich mir mal Gedanken machen wie ich das dingens wieder ausschalte. Hab da schon was gefunden aber muss mir noch klar werden, ob das Sinn macht den Player auszuschalten wenn er mehr als 5 min nicht gespielt hat...
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

Puschel74

#2028
Ne, bei bereits 136 Seiten macht ein Beitrag mehr oder weniger das Kraut auch nicht fett  ;)
Ich schalte meine Sonos mit der selben Taste auch wieder aus.
Einfach prüfen ob Sonos läuft dann aus sonst ein  :P

Edith:
ZitatHi Puschel, schon lange nichts mehr von dir gehört
dito  ;)
Meine Zeit ist momentan etwas knapp bemessen.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

2P4u

Ja ich hab das aktuell so am laufen, da ich noch Ansagen über die Sonos laufen habe.
Wenn die Haustüre geschlossen wird, schalten sich die Dosen an denen die Sonos hängen einfach aus.
Das spart so an die 5W pro Lautsprecher. Müssen ja nicht laufen wenn niemand zuhause ist.
Schliesse ich die Türe wieder auf, gehen die Teile nach 5 min wieder an.
Da meine Frau aber morgens im Bad Musik hören möchte, ist es doch arg umständlich erst die Türe aufzuschliessen, daher jetzt der HM 6Fach Taster im Bad.
Der WAF steigt und ich hab meine Ruhe ;)

ZitatMeine Zeit ist momentan etwas knapp bemessen

Sieht bei mir genau gleich aus, daher seit langem mal wieder an FHEM "spielen".
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

Loredo

Hallo Reiner,


ich erhalte seit einiger Zeit beim Restart von FHEM einige Perl Warnungen und konnte diese nun mittels stacktrace auf das SONOS Modul zurückführen:



2015.09.07 10:06:36 0: SONOS0: Can't bind Port 4711: Bind failed: Address already in use at ./FHEM/00_SONOS.pm line 7856.


2015.09.07 10:06:36 0: SONOS0: Retries left (wait 30s): 8
2015.09.07 10:07:06 1: SONOS0: ./FHEM/00_SONOS.pm is listening to Port 4711
2015.09.07 10:07:15 1: localhost:4711 reappeared (Sonos)
2015.09.07 10:07:16 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 10 Sekunden...
2015.09.07 10:07:16 1: SONOS3: Restore-Thread gestartet. Warte auf Arbeit...
2015.09.07 10:07:19 1: PERL WARNING: Use of uninitialized value in string ne at fhem.pl line 3895.
2015.09.07 10:07:19 3: stacktrace:
2015.09.07 10:07:19 3:     main::__ANON__                      called by fhem.pl (3895)
2015.09.07 10:07:19 3:     main::readingsBulkUpdate            called by ./FHEM/00_SONOS.pm (7453)
2015.09.07 10:07:19 3:     main::SONOS_readingsBulkUpdateIfChanged called by ./FHEM/00_SONOS.pm (1210)
2015.09.07 10:07:19 3:     main::SONOS_Read                    called by fhem.pl (3057)
2015.09.07 10:07:19 3:     main::CallFn                        called by fhem.pl (651)



Hast du eine Idee, woran das liegen könnte?




Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

ujaudio

Ich bin zu doof über FHEM einen Radiosender zu spielen, der Befehl lautet doch:
set mm_sonos_Wohnzimmer StartRadio <Sender>
Nun sind die Radiosender ja ziehmlich aufwändig benannt, haben also jede Menge Sonderzeichen. Nehmen wir mal "ROCK ANTENNE". Wenn ich das Icon in meiner mm_sonos_WohnzimmerRG_Radios anklicke, dann spielt der Sender auch. Der Befehl
set mm_sonos_Wohnzimmer StartRadio ROCK%20ANTENNE
funktioniert aber nicht. Wenn ich das Element in der mm_sonos_WohnzimmerRG_Radios untersuche, dann steht dort "ROCK%2520ANTENNE", was aber mit
set mm_sonos_Wohnzimmer StartRadio ROCK%2520ANTENNE
auch nicht funktioniert.
Wie kann ich den korrekten Namen herausfinden?
Einen lieben Gruß
Jürgen

Capeghost

Hallo Jürgen,

ich mache es immer so, dass ich mir den gewünschten Radiosender als Favorit in Sonos anlege. Anschließend kannst Du Dir dann über get Favourites das entsprechend Reading anzeigen lassen. Dort siehst Du dann die hinterlegten Sendernamen. Dann noch die Leerzeichen ersetzen und dann müsste das Abspielen auch über StartRadio funktionieren. Favorit kannst Du ja dann wieder löschen.
Oder Du nutzt unter Verwendung des Favoriten direkt StartFavourite anstatt StartRadio.

Gruß

Capeghost

justme1968

am einfachsten geht es mit der regex variante:set mm_sonos_Wohnzimmer StartRadio /ROCK.ANTENNE/

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Elektrolurch

Hallo,

ich habe mal eine Frage zu den Covers. Für Radiosender  wird mir ein Cover angezeigt, für Alben jedoch nicht.
1. Besorgt Sonos das Cover aus dem Internet?
2. Was muss ich tun, um über fhem das Cover anzeigen zu lassen? Wie gesagt, für Radiosender wird das Cover auch angezeigt.
3. Für Covers gibt es da die Möglichkeit einen Proxy einzurichten. Leider habe ich aber nichts dazu gefunden, was der Proxy tun oder verbessern soll.

Kann mir jemand dazu einen Tipp geben? Danke.

Elektrolurch
configDB und Windows befreite Zone!

Reinerlein

Hallo Elektrolurch,

die Cover kommen meistens vom abspielenden Sonos-Player. Im Falle von Spotify-Titeln gehe ich direkt auf die Spotify-API (bei Spotify), um eine bessere Qualität des Covers zu erhalten.

Die Sache mit dem Proxy habe ich aus mehreren Gründen eingebaut:
- Manche haben sich einen Tunnel von aussen (aus dem Internet) zu ihrem Fhem gebaut (z.B. über einen Reverse-Proxy). Dort würden die lokalen Zugriffe auf die Sonos-Player ja nicht funktionieren, weshalb hier dann Fhem die Bilder liefern kann. Dabei fungiert das Modul nur als echter Proxy, der Aufruf wird also Life durchgeschleift zum Sonos-Player.
- Der Cover-Proxy kann auch cachen. Das hat wieder zwei Vorteile:
  1. Die Bilder werden nicht ständig beim Player angefragt. Der Zugriff auf eine Fhem-Seite bleibt auch in Fhem
  2. Wenn der Player ausgeschaltet ist, funkioniert natürlich auch keine Cover-Anfrage beim Player mehr. Allerdings könnte man ja trotzdem den Player in einer Raumübersicht haben, und dort auch z.B. die Favoritencover sehen wollen...

Wenn also die Cover nicht angezeigt werden, dann würde ich im ersten Schritt mal schauen, was das Reading "currentAlbumArtURL" enthält. Das ist das, was auf der Oberfläche angezeigt wird.
Wenn der Proxy im Modul aktiviert wurde, dann steht in diesem Reading immer eine relative URL zu Fhem, ansonsten direkt auf den Sonos-Player bzw. Spotify...

Grüße
Reiner

Elektrolurch

ok. Das hilft mir zum Verständnis schon mal weiter. Den Proxy brauche ich also nicht. Da das ja für die Radiostationen geht, muss ich es mal genauer beobachten. Hatte mir gerade die Suchfunktion in eine GUI eingebaut und getestet und da waren bei den Beispielen keine Covers. Ev. auch Zufall. Danke.
configDB und Windows befreite Zone!

Fischei

Ich bekomme andauernd folgenden Fehler im Log:
Odd number of elements in hash assignment at /usr/share/perl5/IO/Socket/IP.pm line 328, <$client> line 5.

Im Forum hab ich leider zu diesem Fehler noch keine Lösung gefunden.
Kann mir hier wer weiter helfen? Danke

krikan

Zitat von: Fischei am 09 September 2015, 14:17:18
Ich bekomme andauernd folgenden Fehler im Log:
Odd number of elements in hash assignment at /usr/share/perl5/IO/Socket/IP.pm line 328, <$client> line 5.

Im Forum hab ich leider zu diesem Fehler noch keine Lösung gefunden.
Kann mir hier wer weiter helfen? Danke
http://forum.fhem.de/index.php/topic,10033.msg259741.html#msg259741

justme1968

in diesem thread gibt es mindestens 5 posts dazu, eine lösung und zwei hinweise auf die lösung...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968