Sonos steuern

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

Vorheriges Thema - Nächstes Thema

Reinerlein

Hi raspklaus,

du hast einen Tippfehler beim Attribut "usedOnlyIPs"!
Dort hast du einmal "102.200.100.170" angegeben, und meintest sicherlich "192.200.100.170".

Und das nächste mal so lange Logs bitte als Dateianhang. Das kann man im Browser sowieso nicht mehr lesen... egal ob es als Code markiert wurde, oder nicht...

Grüße
Reinerlein

dev0

#2371
Von dem Typo abgesehen hätte eIn Blick ins RFC1918 auch nicht geschadet ;)

raspklaus

ok,

manchmal sieht man wirklich den Wald vor lauter Bäumen nicht. Ich verwende die Player derzeitig nur für die Sprachausgabe.

Sorry

und vor allem

Danke

JoeALLb

Ich hoffe ich bin auch nicht gerade blind:
Habe ich irgendwie die Möglichkeit, herauszufinden, wie viele Player aktuell an sind also etwas spielen?
Mir fällt sonst nur ein, eine Userreadung beim SONOS-Device zu verwalten und mit Notifys hoch und runter zu zählen, wenn sich ein Player einschaltet oder gestoppt wird.
Das scheint mir jedoch etwas zu aufwendig/fehleranfällig?!?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

justme1968

auf perl ebene z.b. so:

{ my $count = scalar devspec2array("TYPE=SONOSPLAYER:FILTER=transportState=PLAYING") }

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

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

JoeALLb

Zitat von: justme1968 am 07 Januar 2016, 12:34:00
{ my $count = scalar devspec2array("TYPE=SONOSPLAYER:FILTER=transportState=PLAYING") }

Danke, klappt aber nur für nicht gruppierte Sonos. Die gruppierten sind immer im transportState Playing, auch wenn man "set Sonos StopAll" eingibt und somit gestoppt sind, da ihr "master" gestoppt ist. Der Status zeigt in dem Fall nur an, dass sie alles spielen würden, was ihr master spielt.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

justme1968

ich habe keine player gruppiert. wenn es ein reading gibt an dem du die master unterscheiden kannst bau es einfach mit in den filter ein.

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

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

dev0

Zitat von: JoeALLb am 07 Januar 2016, 12:42:36
Die gruppierten sind immer im transportState Playing
Das ist mir im Zusammenhang mit meinem fronthem/smartvisu Sonos Widget auch schon unangenehm aufgefallen. Allerdings erklärte Reiner weiter oben, dass das der state ist, den die Sonos Player melden. Also völlig korrekt. Um das zu lösen frage in meinem Code zusätzlich den "Gruppenstatus" ab.

JoeALLb

Zitat von: dev0 am 07 Januar 2016, 16:29:49
Also völlig korrekt. Um das zu lösen frage in meinem Code zusätzlich den "Gruppenstatus" ab.
Wie genau fragst Du den ab?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

dev0

Schau bitte selbst rein, ich müsste jetzt auch suchen. Link

JoeALLb

Danke für den Link!
currentTrackProvider war die gesuchte Antwort!
Dieser Code funktiooniert, vielen Dank euch beiden für die Hilfe!
{ my $count = scalar devspec2array("TYPE=SONOSPLAYER:FILTER=transportState=PLAYING:FILTER=currentTrackProvider!=Gruppenwiedergabe.*") }
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

CQuadrat

Zitat von: Reinerlein am 03 Januar 2016, 12:53:19
Hi Christoph,

das kann schon sein. Du könntest mal eine zusätzlich Fehlermeldung in der Datei ControlPoint.pm (im Ordner lib/UPnP) einbauen.
Such mal nach dem String "Loading Device description" (bei mir in Zeile 283), und füge mal folgende zusätzliche Ausgabe davor ein:

carp('400-URL-Absolute-Error! Location: "'.$location.'", Content: "'.$response->content.'"') if ($response->code == 400);
Das muss aber davor sein...

Damit erhältst du jetzt eine Ausgabe des relevanten Parameters und der inhaltlichen Antwort vom Player dazu.
Dann mal schauen, was da rauskommt. Das kann länger sein (oder auch nicht :) )...

Grüße
Reiner

Hallo Reiner,

ich habe den Übeltäter identifiziert. Die Meldungen sind wieder aufgetaucht und mit der zusätzlichen Log-Zeile erscheint jetzt:

400-URL-Absolute-Error! Location: "192.168.2.75:49167", Content: "400 URL must be absolute
" at ./FHEM/00_SONOS.pm line 3721 thread 1
Loading device description failed with error: 400 URL must be absolute at ./FHEM/00_SONOS.pm line 3721 thread 1
400-URL-Absolute-Error! Location: "192.168.2.75:49167", Content: "400 URL must be absolute
" at ./FHEM/00_SONOS.pm line 3721 thread 1
Loading device description failed with error: 400 URL must be absolute at ./FHEM/00_SONOS.pm line 3721 thread 1
400-URL-Absolute-Error! Location: "192.168.2.75:49167", Content: "400 URL must be absolute
" at ./FHEM/00_SONOS.pm line 3721 thread 1
Loading device description failed with error: 400 URL must be absolute at ./FHEM/00_SONOS.pm line 3721 thread 1
400-URL-Absolute-Error! Location: "192.168.2.75:49167", Content: "400 URL must be absolute
" at ./FHEM/00_SONOS.pm line 3721 thread 1
Loading device description failed with error: 400 URL must be absolute at ./FHEM/00_SONOS.pm line 3721 thread 1
400-URL-Absolute-Error! Location: "192.168.2.75:49167", Content: "400 URL must be absolute
" at ./FHEM/00_SONOS.pm line 3721 thread 1
Loading device description failed with error: 400 URL must be absolute at ./FHEM/00_SONOS.pm line 3721 thread 1


Schalte ich den Rechner 192.168.2.75 aus, verschwinden die Meldungen sofort. Sobald er aber wieder am Netz ist, tauchen die Meldungen wieder auf.
Ach ja: der 192.168.2.75 ist mein Firmennotebook (Windows 7 Professional), das mit WLAN und DHCP im Netz hängt. Sonst habe ich nur iOS-Geräte und Linux-Kisten; überall mit statischer IP.


Viele Grüße

Christoph
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue

Frank S.

Moin.

Ich habe nach einiger Zeit mal wieder einen Blick ins logfile gemacht. Dabei ist mir folgende Fehlermeldung aufgefallen. Was kann ich hier passiert sein. Sie taucht sehr häufig auf.

192.168.178.24:52323 (No route to host) at ./FHEM/00_SONOS.pm line 3721 thread 4
Loading device description failed with error: 500 Can't connect to


Schöne Grüße
Frank

ujaudio

Ich hatte seit längerer Zeit wieder mal einen Fehler im Log
Can't call method "kill" on an undefined value at ./FHEM/00_SONOS.pm line 8286.
Perl exited with active threads:
2 running and unjoined
1 finished and unjoined
0 running and detached
Current: "./FHEM/00_SONOS.pm", gPath: ""

??!?
Einen lieben Gruß
Jürgen

Jamo

Hallo Reiner,
doofe Frage: Ich rufe im fhem.cfg SONOS mit

    "define SonosServer SONOS 172.21.0.15:4711 30 12 5" auf,

wenn ich aber auf meine Raspberry Pi ein "ps -auxw ! grep SONOS" mache, sehe ich immer

    root      1130  7.7  4.5  74712 43268 ?        Sl   07:44   0:16 /usr/bin/perl ./FHEM/00_SONOS.pm 4711 1 0

Im Log steht:
2016.01.20 07:44:43 1: SONOS0: Kein UPnP-Server gefunden... Starte selber einen und warte 12 Sekunde(n) darauf...

Wo liegt der Fehler?

Gruss, Ingolf.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence