Sonos steuern

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

Vorheriges Thema - Nächstes Thema

det.

Hallo Reiner,
Ich bin fest überzeugt, dass Du wie immer sehr gute Arbeit geleistet hast und das außerdem keiner der aktiven Leser dieses Beitrags die Module aus dem normalen Pfad nutzt. Also check sie ein und wir nutzen sie, bis es Neues zu Testen gibt.
LG
det.

JoeALLb

nein, nichts dagegen, vorallem, da sie für mich deutlich stabiler ist wie die nicht dev version! Vielen dank für deine ganze Arbeit!!

Gesendet von meinem Xperia Pro mit Tapatalk

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

JoeALLb

Frage:
Ich kann im Sonos ja aktivieren, dass der Ton direkt auf den Eingang umgeschalten wird, wenn dort Musik übertragen wird.
Gibt es die Möglichkeit, dafür (den Start und das Ende der Musikübertragung am Eingang) als Notify erhalten? Auch ohne die Sonos-Funktion zum Umschalten der
Musik zu nutzen?
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

Reinerlein

Hi JoeAllb,

aber natürlich :-)

Du bekommst doch ein normales Event über die Änderung des Readings "currentTrackURI". Dort steht dann drin, dass gerade ein Eingang eines Players verwendet wird (auch, wenn er selber der Lieferant sein sollte).
Das fängt dann mit "x-rincon-stream:" an, gefolgt von der UDN des Quellplayers (aber ohne die Angabe von '_MR' am Ende).
Bei einer Playbar fängt das ganze mit "x-sonos-htastream:" an, gefolgt von der UDN.

Wobei du natürlich kein Ende mitgeteilt bekommst. Das ist dasselbe Konzept wie bei der Gruppenwiedergabe. Der spielende Player weiss nicht, ob noch was läuft oder nicht, und zeigt immer "PLAYING" an...

Wenn du allerdings mitbekommen möchtest, ob am Eingang Musik anliegt, obwohl der Player nicht dahinschaltet, dann muss ich dich (vermutlich) enttäuschen. Diese Information liegt, meines Wissens nach, nicht vor...

Grüße
Reiner

JoeALLb

Zitat von: Reinerlein am 07 März 2014, 10:30:15
Wenn du allerdings mitbekommen möchtest, ob am Eingang Musik anliegt, obwohl der Player nicht dahinschaltet, dann muss ich dich (vermutlich) enttäuschen. Diese Information liegt, meines Wissens nach, nicht vor...

Das genau wollte ich eigentlich erreichen, um beispielsweise mitzubekommen, ob der Fernseher noch läuft ;-)
Auch das ENDE davon bekommt Sonos selbst mit...

Der Controller zeigt doch solche Eingangsquellen nur an, wenn tatsächlich ein Kabel eingesteckt ist. Wenn der Controller diese Info mitbekommt, sollte sie dann nicht auch per UPNP verfügbar sein?
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

Reinerlein

Hi JoeAllb,

ups, asche auf mein Haupt...

Man kann es zwar nicht aktiv abfragen, sich aber liefern lassen. Deshalb habe ich das übersehen, da ich immer erstmal die Methoden durchgehe, die ich an den Player senden kann, um Informationen abzufragen.

Ich baue das mal ein...
Es wird dann also ein Reading "LineInConnected" geben. Das liefert aber anscheinend nur, ob etwas angeschlossen ist, nicht ob etwas läuft, zumindest ist diese Info bei meinem Sonos:Connect auf 1 beim LineIn-Eingang, der garantiert gerade nicht aktiv ist, sondern nur physikalisch angeschlossen...
Ich werde da aber mal forschen, ob ich irgendwo sonst eine solche Info zusätzlich herbekommen kann...

Grüße
Reiner

JoeALLb

Reiner, du bist der HIT! Vielen Dank!!!
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

djhans

Hallo Reiner,
auch ich nutze die dev-Version. Sie läuft sehr stabil. Die Abstürze aus dem Betrieb heraus sind weg!

Eine Anmerkung habe ich aber doch noch dazu:

Wenn man fhem beendet (z.B. nach einem Update) und es dann wieder neu startet, bleibt es manchmal hängen und läuft mit 98% Prozessorlast. Dann muss ich es zwei, drei Mal killen und dann klappt es wieder....

Nach mehreren Neustarts hintereinander kommt es teilweise auch zu einem  "perl: -out of memory-Fehler-" Dann muss ich den raspberry komplett neu starten. Da bislang nur das Sonos-Modul läuft, vermute ich, es hängt irgendwie damit zusammen... (den out of Memory Fehler habe  ich weiter vorne  im Thread schon mal beschrieben..). Wenn fhem aber einmal läuft, läuft es....

djhans

Capeghost

Hallo,
scheinbar kann man wirklich einiges falsch machen...komme auch mit den Anwendungsbeispielen nicht weiter. Der Radiosender wird richtig gewählt, die Lautstärke (laut Last Action im Player) gesetzt aber der Sender wird nicht gestartet.

So sieht die Definition meines Notifys aus:


Fern1Taste3rechts:toggle { \
fhem "set Sonos_Buero LoadRadio hr3";; \
fhem "set Sonos_Buero Volume 21";; \
fhem "set Sonos_Buero Play" \
}


Fehlermeldung im Log: Fern1Taste3rechts_Notify return value: syntax error at (eval 588) line 1, near ""set Sonos_Buero Play" \"
Was ist falsch bzw fehlt da?

Danke.

Gruß

Capeghost


Reinerlein

Hallo Capeghost,

das ist ganz einfach :-)
Du hast hinter dem Backslash in der Play-Zeile ein Leerzeichen. Der Backslash maskiert nur (und nur dann) einen (heißt: genau einen) direkt folgenden Zeilenumbruch.
Du hast jetzt also eine zerbrochende Befehlszeile, die er nicht meht sauber interpretieren kann...

Grüße
Reiner

der-Lolo

@Capeghost
ich komme einfach nicht drumrum jetzt zu sagen - mach es doch ohne {}
eine geschweifte klammer sagt ja nur jetzt Perl - du sagst also perl das es bitte fhem sagen soll es soll set Sonos play ausführen...
vielleicht liest du doch mal das Einsteiger pdf und versuchst etwas sinnvoller zu agieren...

Perl brauchst du an dieser stelle wirklich nicht. Wenn du dir dann noch ein bisschen das handling über die DEF spalte der details angewöhnst stolperst du weniger über solche / fehler - fhem übernimmt das nämlich gerne für dich.

Reinerlein

Hi JoeAllb,

soo, hier das Ergebnis meiner Untersuchung/Arbeit:
Das Reading "LineInConnected" gibt es jetzt. Er ist/geht auf 1, wenn ein Gerät eingesteckt ist/wird.
Leider meldet ein Sonos-Gerät nicht, wenn am Eingang plötzlich ein Musik-Pegel zu verzeichnen ist, bzw. wenn er wieder weg ist.

Ich habe bei mir die Autoplay-Sache mal deaktiviert und mit einem Netzwerk-Sniffer gelauscht, ob etwas passiert, wenn ich am CD-Player auf Start drücke... Stille auf der Leitung... Also keine direkte Information, ob am Eingang Musik anliegt, nur über den Umweg Autoplay anschalten -> currentTrackURI mit Status auf Playing bzw. Paused...

Grüße
Reiner

Capeghost

@der-Lolo: Ok, hast mich überzeugt, werde mir wirklich nochmal die komplette Einsteiger-Doku zu FHEM zu Gemüte führen und nicht nur den Anfang.

Ob es jetzt wirklich nach Entfernen des Leerzeichens klappt, konnte ich noch nicht testen, da nach einem shutdown restart sich alle meine Sonos-Geräte im Status 'Initialized' befinden. Wie bekomme ich da wieder einen Status mit dem man arbeiten kann (Grund für restart war das Nichterkennen einiger Tasten meiner FS20 - die sind tatsächlich jetzt alle da).

Ich verspreche, weitere Fragen, wenn dann überhaupt noch erforderlich, wird es erst nach dem Studium der Doku geben.

Gruß

Capeghost

Reinerlein

Hallo Capeghost,

dafür kann es mehrere Gründe geben. Der einfachste ist, dass es eine Weile dauert, bis sich alle Player gemeldet haben und bei Fhem aktualisiert wurden, das würde bedeuten, einfach zu warten.

In allen anderen Fällen musst du mal in die Konsolen-Log-Ausgabe gucken, um die Ausgaben des Subprozesses zu sehen. Meist steht dort etwas Aufschlußreiches.

Meist hilft aber auch ein sauberes Beenden von Fhem (prüfen, ob auch alle Perl-Prozesse beendet sind z.B. mittels "sudo ps -aux | grep perl" unter Linux) mit anschließendem normalen Start von Fhem...

Grüße
Reiner

JoeALLb

Danke Reiner, schade!!! Das hätte ich echt verwenden können!!
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