Sonos steuern

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

Vorheriges Thema - Nächstes Thema

raspklaus

Hier noch der Auszug aus dem Log:

2014.11.04 19:51:30 3: SONOS1: Load Google generated MP3 from "http://translate.google.com/translate_tts?tl=de&q=Morgen%20wird%20die%20Papiertonne%20geleert" to "./RINCON_B8E9378B251401400_MR_Speak.mp3"
2014.11.04 19:51:31 3: SONOS1: Start temporary playing of "/RINCON_B8E9378B251401400_MR_Speak.mp3"
Argument "\\45" isn't numeric in numeric ne (!=) at FHEM/00_SONOS.pm line 2546.
2014.11.04 19:51:35 3: SONOS1: Event: Received Rendering-Event for Zone "Sonos_B__ro".
2014.11.04 19:51:35 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_B__ro".
2014.11.04 19:51:35 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_B__ro".
2014.11.04 19:51:36 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_B__ro".
2014.11.04 19:51:36 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_B__ro".
2014.11.04 19:51:36 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_B__ro".
2014.11.04 19:51:41 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_B__ro".
2014.11.04 19:51:41 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_B__ro".


Die Samba Freigabe ist von Windows aus erreichbar

der-Lolo

Ein / wird in der fhem.cfg zum Zeilenumbruch, ich vermute hier liegt das problem...
Versuch mal den Aufruf anders aufzubauen evtl in "" oder '' zu setzen...

raspklaus

Wie baust Du den Aufruf auf ?

Ich habe das Beispiel aus dem Wiki genommen

der-Lolo

ich habe aktuell keinen Aufruf - aber ich hatte es beim einrichten konfiguriert, und auch in Funktion.

Reinerlein

Hallo raspklaus,

wie der-lolo bereits geschrieben hat, ist der Backslash das Problem. Dieser ist in meinen Beispielen enthalten, da diese über mehrere Zeilen gehen, und damit in Fhem der unmittelbar folgende Zeilenumbruch maskiert wird.
Wenn jetzt an dieser Stelle kein Zeilenumbruch folgt, dann wird das als Maskierung für das folgende Zeichen verwendet, was nicht immer zum gewünschten Ergebnis führen dürfte...

Nimm das mal weg.

Der Befehl um z.B. im Eingabefeld der Weboberfläche eine Sprachausgabe in der Küche zu erzeugen (wenn sonst alles korrekt konfiguriert ist):

set Sonos_Kueche Speak 30 de Dies ist ein Test


Grüße
Reiner

raspklaus

Wenn ich

set Sonos_B__ro Speak 45 de Morgen wird die Papiertonne geleert

eingebe

steht dies im Log

2014.11.05 17:10:02 3: SONOS2: Restorethread has found a job. Waiting for stop playing...
2014.11.05 17:10:02 3: SONOS2: Restoring playerstate...
2014.11.05 17:10:04 3: SONOS2: Playerstate restored!
2014.11.05 17:10:04 3: SONOS1: Start temporary playing of "/RINCON_B8E9378B251401400_MR_Speak.mp3"
2014.11.05 17:10:08 3: SONOS1: SleepTimer berechnet die Laufzeit des Titels selber, da keine Wartezeit uebermittelt wurde!
2014.11.05 17:10:08 1: SONOS1: Da keine Endzeit ermittelt werden konnte, wird kein Restoring durchgef�hrt werden!
2014.11.05 17:10:08 3: SONOS1: Load Google generated MP3 from "http://translate.google.com/translate_tts?tl=de&q=Morgen%20wird%20die%20Papiertonne%20geleert" to "./RINCON_B8E9378B251401400_MR_Speak.mp3"
2014.11.05 17:10:12 3: SONOS1: Start temporary playing of "/RINCON_B8E9378B251401400_MR_Speak.mp3"
2014.11.05 17:10:15 3: SONOS1: SleepTimer berechnet die Laufzeit des Titels selber, da keine Wartezeit uebermittelt wurde!
2014.11.05 17:10:15 1: SONOS1: Da keine Endzeit ermittelt werden konnte, wird kein Restoring durchgef�hrt werden!
2014.11.05 17:10:15 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_B__ro".
2014.11.05 17:10:15 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_B__ro".
2014.11.05 17:10:15 3: SONOS1: Event: Received Rendering-Event for Zone "Sonos_B__ro".
2014.11.05 17:10:15 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_B__ro".
2014.11.05 17:10:15 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_B__ro".
2014.11.05 17:10:15 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_B__ro".
2014.11.05 17:10:15 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_B__ro".
2014.11.05 17:10:15 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_B__ro".
2014.11.05 17:10:19 3: SONOS1: Event: Received Rendering-Event for Zone "Sonos_B__ro".
2014.11.05 17:10:19 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_B__ro".
2014.11.05 17:10:19 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_B__ro".
2014.11.05 17:10:19 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_B__ro".[code]

aber der Sonos bleibt stumm

Reinerlein

Hi raspklaus,

da scheint mindestens das Reading "targetSpeakDir" nicht (oder auf einen relativen Pfad) gesetzt zu sein.

Folgendes muss/kann gesetzt werden
- targetSpeakDir
- targetSpeakURL
- targetSpeakFileTimestamp (Optional)
- targetSpeakFileHashCache (Optional)

Grüße
Reinerlein

raspklaus

was meinst du damit ?

TargetSpeakDir steht auf /media/platte/SonosSpeak

Siehe Screendump

Also ich bin der Meinung es ist alles richtig eingestellt


Reinerlein

Hi raspklaus,

laut deiner Log-Ausgabe

2014.11.05 17:10:08 3: SONOS1: Load Google generated MP3 from "http://translate.google.com/translate_tts?tl=de&q=Morgen%20wird%20die%20Papiertonne%20geleert" to "./RINCON_B8E9378B251401400_MR_Speak.mp3"
2014.11.05 17:10:12 3: SONOS1: Start temporary playing of "/RINCON_B8E9378B251401400_MR_Speak.mp3"

steht da aber nix drin (bzw. ein "."). Der Pfad würde in dem MP3-Dateinamen mit auftauchen, da dies der "echte" Dateiname ist, den Fhem verwendet...
Beim Herunterladen des MP3s ist das noch kein Problem, da dein System ja immer ein aktuelles Verzeichnis hat. Es liegt nur nicht dort, wo es für die Wiedergabe vermutet wird.

Sind die Attribute denn auf der Weboberfläche auch zu sehen?

Schon mal einen Neustart nach dem Konfigurieren dieser Attribute gemacht?
Durch die komplizierte Modulstruktur (extra Prozess mit mehreren Threads) werden solche Attribute nur beim Start des Moduls übertragen. Änderungen im laufenden Betrieb durch Fhem danach werden nicht "rüberaktualisiert".

Grüße
Reiner

raspklaus

#1149
Ich hatte jetzt mal einen Neustart durchgeführt

Ergebnis immer noch kein Ton

Im Eventmonitor steht:

2014-11-06 19:06:50 SONOSPLAYER Sonos_B__ro Speak 45 de Morgen wird die Papiertonne geleert
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro LastActionResult: PlayURITemp: Error! UPnP-Fault-Fields: Code: "s:Client", String: "UPnPError", Actor: "-", Detail: "{UPnPError => {errorCode => 701}}"
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro numberOfTracks: 1
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro currentTrackURI: //192.200.100.166/SonosSpeak/RINCON_B8E9378B251401400_MR_Speak_20141106-190651.mp3
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro currentTrackDuration: 0:00:00
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro currentTitle: RINCON_B8E9378B251401400_MR_Speak_20141106-190651.mp3
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro nextTrackDuration:
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro nextTrackURI:
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro nextTitle:
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro nextArtist:
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro nextAlbum:
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro nextAlbumArtist:
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro nextOriginalTrackNumber:
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro infoSummarize1: 'RINCON_B8E9378B251401400_MR_Speak_20141106-190651.mp3'
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro infoSummarize2: STOPPED => 'RINCON_B8E9378B251401400_MR_Speak_20141106-190651.mp3'
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro STOPPED => 'RINCON_B8E9378B251401400_MR_Speak_20141106-190651.mp3'
2014-11-06 19:06:55 SONOSPLAYER Sonos_B__ro infoSummarize3: Lautstaerke: 45 ~ Ton An ~ Balance: Mitte ~ Kein Kopfhoerer
2014-11-06 19:07:34 SONOSPLAYER Sonos_B__ro Speak 45 de Morgen wird die Papiertonne geleert
2014-11-06 19:07:36 SONOSPLAYER Sonos_B__ro LastActionResult: PlayURITemp: Error! UPnP-Fault-Fields: Code: "s:Client", String: "UPnPError", Actor: "-", Detail: "{UPnPError => {errorCode => 701}}"
2014-11-06 19:07:36 SONOSPLAYER Sonos_B__ro currentTrackURI: //192.200.100.166/SonosSpeak/RINCON_B8E9378B251401400_MR_Speak_20141106-190735.mp3
2014-11-06 19:07:36 SONOSPLAYER Sonos_B__ro currentTitle: RINCON_B8E9378B251401400_MR_Speak_20141106-190735.mp3
2014-11-06 19:07:36 SONOSPLAYER Sonos_B__ro infoSummarize1: 'RINCON_B8E9378B251401400_MR_Speak_20141106-190735.mp3'
2014-11-06 19:07:36 SONOSPLAYER Sonos_B__ro infoSummarize2: STOPPED => 'RINCON_B8E9378B251401400_MR_Speak_20141106-190735.mp3'
2014-11-06 19:07:36 SONOSPLAYER Sonos_B__ro STOPPED => 'RINCON_B8E9378B251401400_MR_Speak_20141106-190735.mp3'
2014-11-06 19:07:47 FHEMWEB FHEMWEB:192.200.100.81:49155 rereadicons
2014-11-06 19:07:49 FHEMWEB FHEMWEB:192.200.100.81:49155 rereadicons


Die Konfiguration:

define Sonos SONOS localhost:4711 30
attr Sonos room Sonos
attr Sonos targetSpeakDir /media/Platte/SonosSpeak
attr Sonos targetSpeakFileTimestamp 1
attr Sonos targetSpeakURL \\192.200.100.166\SonosSpeak
define Sonos_B__ro SONOSPLAYER RINCON_B8E9378B251401400_MR
attr Sonos_B__ro generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
attr Sonos_B__ro generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
attr Sonos_B__ro generateInfoSummarize3 <Volume prefix="Lautstaerke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhoerer aktiv" ifempty=" ~ Kein Kopfhoerer" emptyval="0"/>
attr Sonos_B__ro getAlarms 1
attr Sonos_B__ro group B__ro
attr Sonos_B__ro icon icoSONOSPLAYER_icon-S1.png
attr Sonos_B__ro minVolume 0
attr Sonos_B__ro model Sonos_S1
attr Sonos_B__ro room Sonos
attr Sonos_B__ro stateVariable InfoSummarize2
attr Sonos_B__ro webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
define AlbumArt_B__ro weblink image /fhem/icons/SONOSPLAYER/Sonos_B__ro_AlbumArt
attr AlbumArt_B__ro group B__ro
attr AlbumArt_B__ro htmlattr width='200'
attr AlbumArt_B__ro room Sonos


yetiman

Hallo,

erstmal zu raspklaus. Das allergleiche Problem hatte ich Anfangs auch! Das hat sich in Luft aufgelöst und funktioniert jetzt.
Vielleicht hing es ein irgendeinem Update? Das ist zumindest meine Vermutung...versuchs doch mal...

Jetzt zu meinem eigentlichen Problem:
Ich mache vom Prinzip das gleiche wie raspklaus. Ich möchte mich an z.B. den Müll erinnern lassen.
Also wird zu einem definierten Zeitpunkt sowas hier aufgerufen:

sub CheckEventToday() {
my $Eventname;
my $EventHeute;
$EventHeute=fhem("get events today");
print $EventHeute;
if ($EventHeute ne "none"){
$Eventname="Ereignis: $EventHeute";
        fhem ("set Sonos_Wohnzimmer Speak 40 de Erinnerung an $Eventname");
}
}


Funktioniert von der Sprachansage erstmal super und schnell.

Die sonos auf der das läuft ist eine Playbar und hängt an einem Fernseher.
Der Fernseher läuft und spielt zuvor den Ton vom Fernsehen ab.
Dann kommt die Ansage. Danach wechselt der Fernseher nicht mehr in das TV Audio, sondern spielt die noch hinterlegte Playliste (Musik) ab :-((

Kann ich da was machen?

Ingo

MartinMuc

Halo,

Nachdem bei mir keine Devices gefunden wurden habe ich mal auf die Konsole geschaut.

Ich hoffe jemand hat eine Idee was mir dieser Fehler sagen müsste. Mit der Zeile habe ich leider nichts passendes per Suche gefunden.

Pakete habe ich alle wie beschrieben installiert.

2014.11.14 18:27:18 5: SONOS0: Received: 'StartThread'
2014.11.14 18:27:18 3: SONOS1: UPnP-Thread gestartet.
2014.11.14 18:27:19 4: SONOS2: SONOS_Client_Data_Retreive(SONOS, def, INTERVAL, 0) -> 30
2014.11.14 18:27:19 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 30 Sekunden...
2014.11.14 18:27:19 1: SONOS3: Restore-Thread gestartet. Warte auf Arbeit...
2014.11.14 18:27:19 2: SONOS1: Error during UPnP-Handling: invalid attribute method: ->descriptionDocument() at FHEM/00_SONOS.pm line 2968 thread 1

2014.11.14 18:27:19 4: SONOS1: ControlPoint is successfully stopped!
2014.11.14 18:27:19 3: SONOS1: UPnP-Thread wurde beendet.
^C


Danke schon mal im Vorraus

Martin
Cubietruck mit CUL und HM USB

Reinerlein

Hi Martin,

da scheint sich bei dir eine UPnP-Komponente als Sonosplayer auszugeben :-)
Diese Komponente hat aber bestimmte Methoden nicht, die ich auf dem UPnP-Device abfrage (in diesem Fall "->descriptionDocument()").

Ich habe hier im Code mal eine Überprüfung dazu reingebaut. Ich denke, dass ich am Wochenende eine neue Developer-Version veröffentliche, damit ich hier mal einiges vom Tisch bekomme. Dann sollten wir da noch mal rangehen.

Wenn du vorher was probieren möchtest, kannst du ja mit einem UPnP-Client wie dem "Intel Device Spy" schauen, was sich bei dir im Netz alles so meldet, und das fragwürdige Element vielleicht kurz deaktivieren (zum Testen oder vielleicht sogar dauerhaft).

Grüße
Reinerlein

MartinMuc

#1153
Danke Reinerlein dann schau ich mal wer da stört und wie ich ihn still kriegen :)

Ok es laufen drei  Einträge von der Fritzbox meine 3 Sonos Komponenten die Philips Hue und Mediatomb.

Aber keiner davon hat den Sonos  Device Typ (außer die 3 die ihn haben solten)

Jetzt schau ma mal wie man die alle still bekommt.
Cubietruck mit CUL und HM USB

Reinerlein

#1154
Hallo zusammen,

ich habe jetzt eine neue Developerversion hochgeladen. Diese hat eine ganze Menge Dinge der letzten 6 Monate drin, die sich hier leider etwas angehäuft haben.

Es sind die Änderungen von Marco drin (bis auf eine, wo ich meine, dass die nicht benötigt wird), die für eine bessere Resistenz gegen Playerabschaltungen sorgen.
Außerdem sollte das Thema von Marcus drin sein. Bitte probieren, ob es was hilft...
Das Thema von Ingo mit der Playbar sollte auch enthalten sein..

Auch wenn ich hier normalerweise noch keinen Changelog hinschreibe (das tue ich normalerweise erst beim eigentlichen Release), hier eine Liste der eingebauten Dinge zur Erinnerung:

  • Die Zeichenkodierung bei Datenübernahme vom Zoneplayer kann nun über das Attribut characterDecoding eingestellt werden
  • Bei Gruppen-/LineIn-/SPDIF-Wiedergabe wird wieder die liefernde Zone angezeigt (als Albumname)
  • SetCurrentPlaylist hatte einen Tippfehler, und konnte dementsprechend nicht ausgeführt werden
  • Unter Ubuntu gibt es die SHA1-Library nicht mehr, sodass man dort eine andere einbinden muss (SHA)
  • Wenn bei den Methoden zum heraussuchen der FHEM-Devices etwas nicht gefunden wurde, dann wird jetzt eine Fehlermeldung mit dem gesuchten Merkmal ausgegeben
  • Es können jetzt IP-Adressen von der UPnP-Verarbeitung ausgeschlossen werden
  • Es wird nun ein fester Mimetype 'jpg' für Google Music und Simfy festgelegt
  • Beim Alarm-Reading-Setzen wurde etwas doppelt gesetzt, was u.U. zu Fehlern führen konnte
  • Die Read-Function wurde robuster gegen Übertragungsprobleme gemacht
  • Das Wiederherstellen des Playerzustands nach einem PlayURITemp sieht nun auch den PlayBar-Eingang vor
  • Es wird nun anstatt der WebCmd-Auflistung ein RemoteControl beim Erstellen der Komponenten erzeugt
  • Wenn sich doch noch ein UPnP-Device als Player ausgibt, dann wird dies nun etwas sicherer erkannt
  • Der Eingang einer Playbar kann nun auf anderen Playern wiedergegeben werden (mittels des Fhem-Namens)
Bitte mal probieren, und Feedback geben, damit diese Version 2.6 bald offiziell released werden kann...

Nachtrag: Sorry, vergessen, die Update Anweisung dazuzuschreiben:

update all http://fhem.lmsoft.de/sonos_dev/controls_sonos.txt


Grüße
Reinerlein