Sonos steuern

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

Vorheriges Thema - Nächstes Thema

Fixel2012

Zitat von: Mitch am 09 Januar 2018, 10:13:39
Klar, alles schon mehrfach probiert.

Die einzige Lösung ist im Moment, die IPs der SonosBoxen alle manuell ins Attribut usedonlyIPs einzutragen.

Habe ich auch schon so seit ich die Player eingerichtet habe. Mir wurde das Log ansonsten auch mit den Meldungen zugemüllt. Nachteil ist, dass ich den Playern eine feste IP geben musste.
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Reinerlein

Hi,

mittlerweile kann man bei den IP-Adressen auch reguläre Ausdrück angeben.

Du könntest mal versuchen mit

attr Sonos ignoredIPs /192.168.122.\d*/
den kompletten Sub-Bereich zu sperren.

Mich wundert es ein wenig, dass das mit dem Ignorieren nicht klappt. Das greift schon ziemlich früh ein, eigentlich bevor irgendein Zugriff erfolgt...

Grüße
Reinerlein

Mitch

Habs mal umgebaut..mal sehen...
FHEM im Proxmox Container

dev0

@Mitch: Die IP, die nicht zu Deinem lokalem Netz gehört, wird vmtl. von einem Router, Layer-3 Switch oder einem Server mit Virtualisierungs-Software kommen. Mit Wireshark etc. könntst Du das näher untersuchen...

Mitch

Ja, die Vermutung habe ich auch.

Interessant ist, wenn ich diese von intern pinge, dann geht der Ping nach draußen und ich bekomme eine Antwort aus dem Web.
Ich werde heute Abend nochmal mit anderen Tools (Danke für den Tip mit Wireshark) testen.

Wenn ich das ganze Subnetz wie vorgeschlagen als ignor definiere, dann geht Sonos gar nicht mehr. Hat dann als state disabled??
FHEM im Proxmox Container

Nobby1805

Zitat von: Mitch am 09 Januar 2018, 13:39:11
...wenn ich diese von intern pinge, dann geht der Ping nach draußen und ich bekomme eine Antwort aus dem Web.
Wie kommst du darauf? Das kann nicht sein, 192.168.x.y sind private Adressen die nicht ins Internet geroutet werden bzw. werden dürfen.
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

Mitch

wenn ich die Adresse anpinge, antwortet eine 65.x.x.x Adresse

Ich habe rausgefunden, dass die Adresse zu meinem Unifi USG gehört.
Warum Sonos darauf reagiert ist mir schleierhaft und sollte diese Adresse auch gar nicht sehen können.

Bin jetzt nicht gerade der Netzwerk-Profi und muß mir das nochmal in Ruhe ansehen.
FHEM im Proxmox Container

Nobby1805

kann es sein, dass die 65.x.x.x deine öffentliche IP ist?

Sonos reagiert auf Pakete die mit 192.168.122.1 als Absendeadresse aus dieser Umgebung aufgrund der Multicast-UPnP-Abfrage ausgelöst werden ... d.H. irgendetwas in diser Umgebung reagiert wie ein UPnP-Device

PS verwendest du USG um ein VPN aufzubauen? Kommt es evt. da her?
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

WumpE

Hi Leutz , habe vorhin 00_Sonos.pm upgedatet und nun folgenden Fehler

Zitat018.01.12 16:44:14 5: SONOS0: Received: 'SetValues:RINCON_B8E937E5C09C01400_MR:Treble=0|TruePlay=1|SleepTimerVersion=|getTitleInfoFromMaster=1|DirectControlIsSuspended=1|QueueVersion=1|currentTitle=stream.aac%3Far-distributor%3Df0a1|FavouritesVersion=RINCON_B8E937E5C09C01400%2C14|QueueHash=32868dbb06f17dbcd9b8d7ee4c3da44f|ZoneGroupName=K%C3%BCche|location=http%3A%2F%2F10.10.10.46%3A1400%2Fxml%2Fdevice_description.xml|roomIcon=kitchen|MasterPlayer=SONOS_Kueche|SlavePlayer=%5B%5D|AlarmListIDs=~~NotLoadedMarker~~|IsBonded=0|GroupMute=0|AlarmList=~~NotLoadedMarker~~|SubPolarity=0|NAME=SONOS_Kueche|PlaylistsVersion=RINCON_7828CA243DE201400%2C14|AlarmListVersion=~~NotLoadedMarker~~|currentStreamAudio=0|Loudness=1|ZoneGroupID=RINCON_B8E937E5C09C01400%3A__|SubGain=0|ZonePlayerUUIDsInGroup=RINCON_B8E937E5C09C01400|Volume=20|minVolume=0|DirectControlAccountID=accountId|currentArtist=|transportState=STOPPED|presence=~~NotLoadedMarker~~|HeadphoneConnected=0|currentAlbum=|Bass=0|OutputFixed=0|SubEnable=1|IsMaster=1|roomName=K%C3%BCche|DirectControlClientID=alexa.bridge|roomNameAlias=K%C3%BCche|RadiosVersion=RINCON_B8E937E5C09C01400%2C14|Balance=0|GroupVolume=20|getAlarms=1|fieldType=|Mute=0'
2018.01.12 16:44:14 5: SW: StartThread

2018.01.12 16:44:14 5: SONOS0: Received: 'StartThread'
2018.01.12 16:44:14 3: SONOS1: UPnP-Thread gestartet.
2018.01.12 16:44:14 4: SONOS1: SONOS_Client_Data_Retreive(SONOS, attr, bookmarkSaveDir, .) -> DEFAULT
2018.01.12 16:44:14 4: SONOS1: Calling SONOS_LoadBookmarkValues("undef", "undef") ~ SaveDir: "."
2018.01.12 16:44:14 2: SONOS1: Error during UPnP-Handling: Not a HASH reference at FHEM/lib/UPnP/ControlPoint.pm line 63, <$client> line 5.

2018.01.12 16:44:14 4: SONOS1: SONOS_Client_Data_Retreive(SONOS, attr, bookmarkSaveDir, .) -> DEFAULT
2018.01.12 16:44:14 4: SONOS1: Calling SONOS_SaveBookmarkValues("undef", "undef") ~ SaveDir: "."
2018.01.12 16:44:14 3: SONOS1: UPnP-Thread wurde beendet.
2018.01.12 16:44:14 4: SONOS2: SONOS_Client_Data_Retreive(SONOS, def, INTERVAL, 0) -> 30
2018.01.12 16:44:14 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 30 Sekunden...
2018.01.12 16:44:14 1: SONOS3: Restore-Thread gestartet. Warte auf Arbeit...
Thread 3 terminated abnormally: Not a HASH reference at FHEM/lib/UPnP/ControlPoint.pm line 63, <$client> line 5.
2018.01.12 16:45:14 5: SW: DoWork:undef:refreshProcessAnswer:

Das Sonos device steht auf Opened aber die Player verbinden sich nicht mehr !

Grüße WumpE
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9

cawe

Hallo WumpE,

hatte den gleichen Fehler nach dem Update. Ursache war, daß die Datei "ControlPoint.pm" unter FHEM/lib/UPnP nicht automatisch mit aktualisiert wurde. Nachdem ich das manuell nachgeholt hatte (aus dem SVN trunk heruntergeladen) hat wieder alles funktioniert.

aliate

#3115
Servus miteinander,
ich habe in meiner Wohnung mittlerweile 4 Sonos Play One (Sonos_Kueche, Sonos_Bad und Stereo-Paar Sonos_Wohnzimmer).

Zur normalen Steuerung (Play, Pause, nächster Titel) habe ich mir für jeden Raum DOIF's gebastelt damit ich bei langem Tastendruck auf einen KNX-Taster den Player im entsprechenden Raum starte. Beispiel für Wohnzimmer:
([Turm_Wohnen_Sonos_KNX:"-100"] and [Sonos_Wohnzimmer:state] ne "PLAYING")(set Sonos_Wohnzimmer Volume 0)(set Sonos_Wohnzimmer Play)(set Sonos_Wohnzimmer Volume 10 1)DOELSEIF([Turm_Wohnen_Sonos_KNX:"-100"] and [Sonos_Wohnzimmer:state] eq "PLAYING")(set Sonos_Wohnzimmer Volume 0 1)(set Sonos_Wohnzimmer Pause)(set Sonos_Wohnzimmer Volume 10)DOELSEIF([Turm_Wohnen_Sonos_KNX:"100"])(set Sonos_Wohnzimmer Next)

Wenn die Player starten, dann "dimme" ich die Lautstärke hoch bzw. beim ausschalten runter (siehe obiges DOIF).

Nun zu meinem Wunsch:
Ich möchte die Player gerne automatisch gruppieren, d.h. wenn bereits ein Player in der Wohnung läuft (z.B. Wohnzimmer) und ich ins Bad gehe und dort den Player starte, dann sollen Wohnzimmer und Bad gruppiert werden damit überall die gleiche Musik läuft. Wenn ich das Bad wieder verlasse und über den Taster den Player ausschalte/pausiere dann soll die Gruppe aufgelöst werden und nur noch Wohnzimmer weiterspielen. Das ganze soll dynamisch mit allen Playern in der Wohnung funktionieren. Der erste Player der spielt macht immer den Master und die anderen Räume werden "angruppiert". Wenn noch kein anderer Player läuft, dann soll der Raum einfach alleine spielen wie bisher.
Hat jemand einen Code-Vorschlag für mich (vorzugsweise mit DOIF)?
Dadurch dass es viele mögliche Konstellationen gibt komme ich selber auf keine Lösung  :-\

Danke und Gruß
Hermann

WumpE

Danke Cawe , das hat funktioniert.
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9

dev0

Zitat von: aliate am 13 Januar 2018, 15:29:23
Nun zu meinem Wunsch:
Ich möchte die Player gerne automatisch gruppieren
Dann mach das doch mit einem notify/DOIF, wie man das halt so macht... Verwende ich auch so.

aliate

Zitat von: dev0 am 14 Januar 2018, 15:51:52
Dann mach das doch mit einem notify/DOIF, wie man das halt so macht... Verwende ich auch so.

Dann poste doch bitte Deinen Code. :)

Danke und Gruß
Hermann

Otto123

Hallo Hermann,

hier mal was zum entgruppieren wenn der Fernseher angehtdefmod nty_SonosPlayerWZStop notify LG_WOL:on {my $temp = ReadingsVal("Sonos_Wohnzimmer","MasterPlayer","unbekannt") ;; \
fhem "set $temp RemoveMember Sonos_Wohnzimmer;;set $temp RemoveMember Sonos_Kueche;;set $temp RemoveMember Sonos_Bad;;set $temp RemoveMember Sonos_BadWanne"}


Und hier ein at was eine Gruppe bildet und eine Stream startet:
defmod a40 at *05:50:00 set Sonos Groups [Sonos_Bad, Sonos_BadWanne, Sonos_Kueche];;sleep 20;;set Sonos_Bad GroupMute 1;;sleep 5;;set Sonos_Bad,Sonos_BadWanne,Sonos_Kueche Volume 15;;set Sonos_Bad StartRadio Radio%20PSR%20102.9%20(Pop)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz