Squeezebox Modul - erste Version

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

Vorheriges Thema - Nächstes Thema

ChrisD

Hallo,

Ich habe 98_SB_PLAYER aktualisiert, geändert wurden:

- wenn Player während TTS verschwindet Zustand zurücksetzen
- wenn Player während TTS ausgeschaltet wird nicht wieder einschalten
- ttsVolume auf volumeLimit begrenzen außer ignorevolumelimit ist in ttsOptions gesetzt
- ttsVolume bei synchronisierten Playern setzen

Zum Aktualisieren:
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt

Ich werde diese Version in den nächsten Tagen wieder nach Contrib einchecken wenn keine weiteren Fehler mehr auftreten. Ich werde auch versuchen die Dokumentation, insbesondere des Players, zu vervollständigen so dass die Module von Contrib nach FHEM verschoben werden können.

Grüße,

ChrisD

duke-f

Muss es jetzt einfach auch mal sagen: Echt tolles Modul!
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

vbs

Auch von mir nochmals danke für das Modul! Gefällt mir sehr gut!

Ich hatte bis gestern ein Problem:
Und zwar ist mir aufgefallen, dass der State der SB_PLAYER-Devices bei mir nicht im Hintergrund aktualisiert wird. Also wenn ich den Player einschalte, dann ändert sich der Status nicht automatisch auf "an". Ich musste immer erst F5 drücken, um den aktuellen Status zu bekommen.

Mir ist dann im Quellcode das Attribut "donotnotify" aufgefallen. Das hab ich aus meinen Geräten entfernt und nun funktioniert das Update des Status in der GUI wieder. Nur falls mal jemand das gleiche Problem haben sollte... Habe jetzt erstmal noch keine negativen Seiteneffekte durch das Entfernen des Attributs bemerkt.

RoBra81

Zitat von: vbs am 19 März 2015, 13:23:32
Mir ist dann im Quellcode das Attribut "donotnotify" aufgefallen. Das hab ich aus meinen Geräten entfernt und nun funktioniert das Update des Status in der GUI wieder.

Wenn du es nur entfernt hast (deleteattr) wird es beim Neustart von FHEM wiederkommen - du musst es korrekterweise auf false setzen...

vbs

Stimmt, danke für den Hinweis.

DJAlex

So bin jetzt auch endlich mal zum testen gekommen.

Der TTS Delay tut aber leider nicht das so wie ich mir das vorgestellt hab.
Also er funktioniert perfekt, aber das AV-Recieverproblem löst er nicht.

Anscheinend wird beim Delay nur die Ausgabe verzögert.
Um den Receiver-Delay zu überbrücken brauch ich aber ein Signal am Receiver.

ich hab jetzt mal umprobiert am besten funktioniert es wenn ich vor jeder Ausgabe "12" eingebe.
Aber das ist glaub ich nur eine Lösung für meinen Receiver.

Wäre es möglich per Attribut einen String zu setzen der in diesem Player für jeden talk Befehl vor den jeweiligen Text gesetzt wird?

Grüße

Alex

DJAlex

So und eine Frage zur Alarmfunktion hätte ich noch.

Ich setze meine Alarme entsprechend einiger if's mit einem Dummy und einem notify.
Leider habe ich keine Möglichkeit gefunden das repeat bei einem Alarm zu setzten.
Geht das? wenn ja wie?

Grüße

Alex

ChrisD

Hallo,

Wird der AV-Receiver beim Abspielen erst eingeschaltet und braucht dann seine Zeit bis er etwas ausgibt oder gibt es die Verzögerung immer ?

Ich habe in Version 0032 ein Attribut ttsPrefix hinzugefügt mit dem ein fester Text vor jede Ausgabe gehängt wird.

Zum Aktualisieren:
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt

Das repeat bei den Alarmen kannst du über
set meinPlayer alarm1 repeat 1einschalten (yes und on können auch statt 1 verwendet werden).

Grüße,

ChrisD

DJAlex

Die verzögerung gibt es immer.

Die SqueezeboxTouch hängt über nen optischen Eingang an dem Receiver.
Wenn kein Ton kommt schaltet der den Kanal ab. Wenn er den Kanal wieder anschaltet dauert das 2 Sekunden.
Und da verschluckts dann was von der Sprachaussage. Deshalb müsste ich am besten 2 Sekunden ein sehr leises Geräusch produzieren bevor die Ansage losgeht. Aber jetzt probier ichs erstmal mit dem Prefix.

Danke schon mal

Grüße

Alex

ChrisD

#669
Hallo,

Ich habe die Versionen 0014 von SB_SERVER und 0031 von SB_PLAYER nach contrib eingecheckt. Damit können die Links im 1. Beitrag benutzt werden um die 'offizielle' Version herunterzuladen.

In der aktuellen Testversion 0033 habe ich 'talk' um 2 Punkte erweitert:

1. Abspielen von mp3s:

Im talk-Aufruf können jetzt Dateinamen von mp3s mit angegeben werden, die Syntax ist die gleiche wie beim Sonos-Modul:
set meinPlayer talk |/mnt/audio/gong.mp3| Test |/mnt/audio/gong.mp3|
Mit Hilfe des Attributes 'ttsMP3FileDir' kann ein fester Pfad definiert werden aus dem die mp3s kommen:
attr meinPlayer ttsMP3FileDir /mnt/audio/
Damit lässt sich obige Zeile so schreiben:
set meinPlayer talk |gong.mp3| Test |gong.mp3|

2. Unterstützung von Text2Speech (experimentell)

Es ist jetzt möglich Text2Speech für das Erzeugen der Sprachdateien zu verwenden.
Vorteile:
- alle Optionen von Text2Speech können verwendet werden
- Dateien werden gecacht
Nachteile:
- Konfiguration komplizierter
- keine Sprachauswahl (immer 'de')
- die unter 1 beschriebene Möglichkeit mp3s abzuspielen funktioniert nicht

Zum Testen wird eine modifizierte Version von Text2Speech benötigt, diese gibt es hier. Es handelt sich dabei um die aktuelle Version 7588 von Tobias mit einigen Änderungen. Sie kann parallel zur offiziellen Version installiert weil ich den Namen geändert habe.

Definition:
define mySBTTS Text2SpeechSB SB_PLAYER
Anschließend können die Attribute von mySBTTS nach Bedarf gesetzt werden.

Beim Player der Text2Speech verwenden soll muss das Attribut ttslink geändert werden in:
Text2Speech:mySBTTS:<Pfad zum cache-Verzeichnis von mySBTTS aus Sicht des LMS>
Das Attribut besteht aus 3 Teilen, getrennt durch ':', der 1. Teil ist immer 'Text2Speech', der 2. enthält den Namen des Text2Speech-Gerätes (hier mySBTTS).

Der 3. Teil enthält den Verzeichnisnamen (mit abschließendem /) des Cache-Verzeichnisses von Text2Speech aus Sicht des LMS. Wenn LMS und FHEM auf dem gleichen Rechner laufen sollte dies kein Problem sein. Wenn sie auf unterschiedlichen Geräten laufen muss entweder ein Dateizugriff eingerichtet werden oder auf dem Rechner auf dem FHEM läuft muss ein Webserver laufen der die Sprachdateien ausliefern kann.

Die Module können mit
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt
aktualisiert werden, das modifizierte Text2Speech-Modul muss aber von Hand installiert werden.

Grüße,

ChrisD

Edit 21.09.2015 - Beispiel korrigiert

KernSani

Hi zusammen,

ich unternehme gerade meine ersten Gehversuche mit SB_SERVER und SB_PLAYER und funktioniert klasse, Danke, sehr coole Module. Nun zu meinen Fragen (ich habe die Suchfunktion und Google bemüht und post #1 intensiv studiert, alle 45 Seiten dieses posts durchzuklicken war mir dann aber doch zu viel, sorry also wenn die Antworten irgendwo zu finden sind).
1.) Hat sich schonmal jemand die Mühe gemacht (z.B. als myUtils sub) eine schöne Oberfläche mit coverart etc... zur Steuerung der SB_Player zu basteln?
2.) Coverart-URL kommt bei mir als http://www.mysqueezebox.com/public/... statt der lokalen (192.168.1...) Adresse
3.) Ich habe einen Internetradiosender als Favorit eingebunden. Wenn Radio läuft und ich  "talk" sende, bekomme ich "playlist add http://translate.google.com/translate_tts?ie=UTF-8&tl=de&q=Test", da die Internetradio-Playlist quasi endlos ist, werde ich mein "talk" wohl nie zu hören bekommen. Kann ich das irgendwie so steuern: Radio aus (am besten fade), talk, Radio wieder an "fade)?

Frohe Ostern,

Danke,

Grüße,

Oli   

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

marvin78

@KernSani: Das mit dem talk während des laufenden Radioprogramms, ist bei mir kein Problem. Bis auf das Fade (auch ziemlich unnötig) funktioniert das in der aktuellen Version genau, wie von dir gewünscht.

KernSani

Hi marvin,

Ich nutze die aktuelle Version aus dem contrib Verzeichnis. Sollte ich ein update direkt von Github machen?
Nach einem Neustart des RasPi (nicht nur FHEM) stoppt talk das Radioprogramm, setzt es aber nicht wieder fort...

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

ChrisD

#673
Hallo,

Zu 3.:

Beim 'talk' sollte automatisch die aktuelle Playlist gesichert und wieder hergestellt werden. Es kann aber passieren dass durch fehlende Berechtigungen das Speichern der Playlist fehlschlägt. Das kann dazu führen dass 'talk' nicht korrekt beendet wird. Den aktuellen Zustand vom 'talk' kannst du im Reading 'talkStatus' sehen. Dort sollte 'idle' stehen wenn die Sprachausgabe beendet ist. Falls dies nicht der Fall ist musst du über den Befehl resetTTS manuell zurücksetzen:
set meinPlayer resetTTS

Du kannst versuchen beim Player das Attribut 'ttsOptions' auf 'internalsave,debug,debugsaverestore' zu setzen. Dadurch wird versucht die aktuelle Playlist intern zu speichern und es werden im Log zusätzliche Ausgaben gemacht die du posten kannst.

Ein Update von Github dürfte nichts ändern da in der Zwischenzeit an diesem Teil nichts geändert wurde.

Zu 2.:

Die Herkunft der Cover hängt von mehreren Faktoren ab:
- bei lokalen Dateien kommen die Cover vom lokalen Server
- bei Streams hängt es von der Server-Version ab
   - bis 7.7 werden die Bilder über ein Proxy-Skript bei mysqueezebox abgeholt
   - ab 7.8 ist der Proxy im Server eingebaut und die Cover kommen über den lokalen Server (kann aber abgeschaltet werden)

Grüße,

ChrisD

KernSani

Danke Chris,

ich habe nun doch ein update force von github gemacht und siehe da, talk funktioniert.

zum Coverart-Problem: Das Problem tritt in der Tat nicht auf, wenn ich lokale Dateien abspiele, da kommt das Cover von lokal (sprich vom LMS). Bei Streaming (Webradio, Spotify) wird kommt die URL im SB_PLAYER als mysqueezebox.com (z.B. http://www.mysqueezebox.com/public/imageproxy?u=spotifyimage%2Fspotify%3Aimage%3A9ea93c43f9dc32146ce4b3d93bbe757da7a68bdf%2Fcover.jpg&h=50&w=50), obwohl das Cover, das im LMS selbst angezeigt wird, lokal abgelegt wird (also z.B.  http://192.168.1.133:9000/spotifyimage/spotify:image:9ea93c43f9dc32146ce4b3d93bbe757da7a68bdf/cover.jpg). Der mysqueezebox.com-link bringt einen Fehler. LMS Version ist 7.7.5.

Danke,

Grüße,

Oli



RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...