Squeezebox Modul - erste Version

Begonnen von bugster_de, 17 Dezember 2013, 22:12:10

Vorheriges Thema - Nächstes Thema

RoBra81

Zitat von: Chris1540 am 11 Juni 2015, 21:27:14
Du hast ja bei Dir die Playlist eingebunden, ich würde aber gern zusätzlich die "favorites" mit einbinden. Ich verzweifel gerade an den Readingsgroup. Könntest Du mir bitte da helfen?

Das funktioniert genau wie bei den Playlists: Zunächst die Zeile in die ReadingsGroup einfügen (natürlich mit deinem Player):

OG.ez.RA.Player:favorites

Und dann noch das Kommando in commands in der ReadingGroup ergänzen:

'favorites' => 'favorites:'

Ich habe mich für die Playlists entschieden, da bei den Liste mit den Favorites kein leerer Eintrag vorhanden ist, der ausgewählt wird, wenn der Player gestoppt wird. Damit bleibt die Auswahlliste auf dem letzten Eintrag stehen und man muss zunächst einen anderen Eintrag wählen, wenn man den gleichen Favoriten erneut starten will...

Ronny

Chris1540



Ich habe mich für die Playlists entschieden, da bei den Liste mit den Favorites kein leerer Eintrag vorhanden ist, der ausgewählt wird, wenn der Player gestoppt wird. Damit bleibt die Auswahlliste auf dem letzten Eintrag stehen und man muss zunächst einen anderen Eintrag wählen, wenn man den gleichen Favoriten erneut starten will...

Das heißt du hast sonst für jeden z.B. Radiosender eine eigene Playlist angelegt?

Gruß Chris

RoBra81

Zitat von: Chris1540 am 11 Juni 2015, 21:49:36
Das heißt du hast sonst für jeden z.B. Radiosender eine eigene Playlist angelegt?

Ja, habe aber auch nur zwei Radiosender, die ich wechselnd höre...

ChrisD

Hallo,

@Rince: Ich bin etwas ratlos. Wie häufig passiert es ?
Der Zustand von 'state' sollte eigentlich immer gleich dem von 'power' sein. In deiner Ausgabe ist dies nicht der Fall:
Zitat2015-06-11 06:49:04   power           on
2015-06-10 22:48:46   state           off
Ich habe im Code noch eine Stelle gefunden an der 'power' und 'state' nicht parallel aktualisiert wurden, kannst du testen ob es mit der Version 0041 besser ist ?

@Chris1540: Möchtest den Verstärker parallel über Harmony und den Player steuern ?

Grüße,

ChrisD

Rince

#784
ZitatIch habe im Code noch eine Stelle gefunden an der 'power' und 'state' nicht parallel aktualisiert wurden, kannst du testen ob es mit der Version 0041 besser ist ?

Früher oder später bekommen wir das hin :)
Du machst das toll.

Eine Frage habe ich noch:
Du hattest mal testweise das TTS Modul angepasst, um dieses nutzen zu können.

Wird das noch unterstützt? Wenn ja, wäre es cool, wenn du evtl. das Modul auch auf deinen Github legst, zwecks einfacherer Installation. Wenn man es nicht weiß, findet man es hier nicht mehr (vor allem neue User haben keine Chance)

Ich würde gerne die Funktion mit dem Cache nutzen, da bei mir durchaus öfter zwar die gleichen TTS Ansagen kommen, mein Internet aber eher unstabil läuft ;)




Edit:
Ach ja, mit der 040 klappt die Ansage beim Start immer noch nicht
041 habe ich grade installiert, muss ich beobachten...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Chris1540

Zitat von: ChrisD am 11 Juni 2015, 22:53:50


@Chris1540: Möchtest den Verstärker parallel über Harmony und den Player steuern ?

Grüße,

ChrisD

Hallo ChrisD,

Mein Plan ist, wenn ich den Player einschalte bzw auf Play klicke, das die Harmony die activity Musik startet. Das heißt das der Verstärker eingeschaltet wird und ein bestimmter Eingang gewählt wird. Lautstärke Regelung läuft aber weiterhin über den Player.

Gruß Chris

Rince

Seit 7 Stunden alle "on"  ;D
Hoffentlich bleibt es so  ::)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

ChrisD

Hallo,

@Rince: Ich habe das Modul nochmal überarbeitet, kannst du testen ob damit die Ausgabe beim Start funktioniert ?

Die modifizierte Version von 98_Text2Speech befindet sich bereits auf GitHub. Sie sollte weiterhin funktionieren, allerdings habe ich das Modul wegen einer Reihe von Nachteilen seit einiger Zeit nicht mehr im Einsatz. Ich verwende jetzt ein php-Skript auf einem lokalen Webserver welches sich um das Cachen kümmert. Dies ist sowohl für FHEM wie auch für den LMS transparent.

@Chris1540: Du kannst die Anbindung an die Harmony mit einem 'notify' machen. Du kannst z.B. in Abhängigkeit des Readings 'playstatus' schalten:
define n_SB_an_Harmony notify mySBPlayer:playStatus.* {if($EVTPART1 eq 'playing') {fhem('set myHarmony activity Musik')} elsif ($EVTPART1 eq 'stopped') {fhem('set myHarmony off')}}(ungetestet). Alternativ sollte es auch mit DOIF gehen, dies habe ich aber bis jetzt noch nicht genutzt.

Grüße,

ChrisD

Rince

ZitatIch verwende jetzt ein php-Skript auf einem lokalen Webserver welches sich um das Cachen kümmert. Dies ist sowohl für FHEM wie auch für den LMS transparent.
Erster Impuls: "hä?"
Zweiter Impuls: "magst du das etwas ausführlicher beschreiben, bitte?"

;)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

ChrisD

#789
Hallo,

Wenn das Modul einen Text ausgeben möchte, übergibt es die URL an den LMS der sich um die Wiedergabe kümmert. Die URL wird dabei aus dem Attribut ttslink und dem Text zusammengebaut. Ein Aufruf von
set myPlayer talk Testführt zu der URL
http://translate.google.com/translate_tts?ie=UTF-8&tl=de&q=Test.
Der LMS ruft den Stream ab und gibt ihn wieder.

Da ich fast immer die gleichen Texte verwende wollte ich sie zwischenspeichern. Der erste Ansatz war der Einsatz des Text2Speech-Modules. Durch die Einschränkungen bei der Anbindung habe ich aber letztendlich einen anderen Weg gesucht. Da ich eh einen Webserver im lokalen Netz habe bin ich hingegangen und habe ein php-Skript von dieser Seite leicht abgeändert und auf dem Webserver abgelegt. Das Attribut ttslink habe ich in
http://192.168.37.110/ttsproxy.php?ie=UTF-8 abgeändert.

Dadurch führt einset myPlayer talk Test zu der URL
http://192.168.37.110/ttsproxy.php?ie=UTF-8&tl=de&q=Test.
Der LMS ruft diese Seite vom lokalen Server ab und das php-Skript überprüft ob die Datei schon vorhanden ist. Wenn dies der Fall ist wird sie direkt an den LMS zurückgegeben, andernfalls wird sie von Google abgeholt und zwischengespeichert.

Voraussetzung ist ein Webserver im lokalen Netz mit php, der LMS benötigt aber keinen Dateizugriff auf diesen Server. Der einzige Nachteil gegenüber Text2Speech ist das fehlende Zusammensetzen der Texte, bei längeren Texten kommt es, wie beim direkten Abruf von Google auch, zu einer kleinen Pause zwischen den Texten.

Grüße,

ChrisD


Rince

Zitat@Rince: Ich habe das Modul nochmal überarbeitet, kannst du testen ob damit die Ausgabe beim Start funktioniert ?

Mit der 042 klappt es :)

Prima :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

heppel

Hallo,

entschuldigt bitte die Newbie-Frage, aber wo finde ich die aktuellen Module ? Ich lese hier was von einem Github, kann den Link aber nicht finden. Das Modul in meinem "contrib"-Directory ist vom Oktober 2014, also wohl nicht mehr aktuell.

Gibt es eine aktuelle Dokumentation ? Im ersten Post dieses Threads steht ja einiges, aber stimmt das noch ?

Vielen Dank im Voraus,
  Heppel.

P.S.: Ich habe einen durchlaufenden Banana-Pi auf dem sowohl FHEM als auch der LMS und ein squeezelite laufen. Zusätzlich habe ich noch zwei Kodis mit XSqueeze-Plugin, die beide mit dem squeezelite als Multiroom-Lösung synchronisiert sind.

ChrisD

Hallo,

Die aktuelle Version der Module befindet sich sowohl auf Github wie auch im contrib-Verzeichnis. Bei einem Update von FHEM wird das contrib-Verzeichnis aber nicht aktualisiert, daher hast du noch die Module von 2014.

Wenn du den Befehl
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt
in FHEM eingibst wird die aktuelle Version der Module von Github heruntergeladen. Nach einem Neustart von FHEM können sie verwendet werden.

Die Dokumentation im 1. Beitrag ist bis auf wenige Ausnahmen (hauptsächlich Alarme) noch immer aktuell. Die Module verfügen inzwischen auch über eine integrierte (englische) Dokumentation die aber noch nicht ganz vollständig ist.

Grüße,

ChrisD

heppel

Hallo ChrisD,

Super. Vielen Dank.

Hat auf Anhieb funktioniert und die wichtigsten Dinge klappen auch. Die komplizierteren Pläne probiere ich dann nach und nach.

Wenn Interesse besteht, könnte ich am Wochenende mal ein paar alternative Formulierungen für die Doku vorschlagen. Per Mitteilung an Dich ?

Viele Grüße,
  Heppel

FHEMAN

Ich spiele seit einiger Zeit mit dem Modul rum und bin so begeistert, dass ich mir 3 "richtige" Squeezeboxen zugelegt hab. Die Dinger sind echt auch noch gut durchdacht, so dass ich das Gefühl habe, aufs richtige System zu setzen.
Nur ist jetzt eine Box defekt  :-\

Und zwar teste ich gerade die Alarmfunktionen. Dazu habe ich mit folgendem Code den Wecker einer Squeezebox gestellt:
ZitatWakeUp {
   fhem("set SqueezeboxRadio02 alarm1 delete");
    if ($EVENT ne "off") {
       fhem("set SqueezeboxRadio02 alarm1 set 1,2,3,4,5,6,7 $EVENT:00");
    }
}
Zitatset WakeUp 23:58
Ergebnis: zum Zeitpunkt des Weckbeginns schaltete sich die Squeezebox aus - und geht seitdem nicht wieder an.. Akku und Netzteiltausch hilft nichts.
Kann es irgendwie sein, dass das Modul in Verbindung mit diesem Code hier Murks an die Squeezebox sendet?
Evtl. durch das deutsche Uhrzeitformat?
Kennt jemand eine Resetmöglichkeit der Box oder wie ich die wiederbeleben könnte?
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB