Squeezebox Modul - erste Version

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

Vorheriges Thema - Nächstes Thema

ChrisD

Hallo,

@Heppel: Ergänzungen an der Dokumentation nehme ich gerne an. Die unvollständige Dokumentation ist im Moment der einzige Punkt der verhindert dass das Modul offiziell verteilt wird.

@derron: Dein Code setzt den Alarm im LMS, dieser kümmert sich anschließend selbstständig um die Weiterleitung an den Player. Mit dem Auslösen des Alarmes hat FHEM nichts mehr zu tun. Du kannst aber im Webinterface des LMS überprüfen ob der Alarm korrekt eingetragen wurde. Wenn du das Logging in FHEM für den Player aktiviert hast wäre es interessant die Meldungen beim Auslösen des Alarmes zu sehen.

Einen Weg die Box wiederzubeleben kenne ich leider nicht. Ich hätte zuerst auf das Netzteil getippt, aber das hast du ja schon getauscht.

Grüße,

ChrisD

Rince

Eine zugegeben OT-Frage, aber für mich interessant (vielleicht auch für andere?):

Ich habe die Playlist vom LMS per iFrame in das Webinterface von fhem eingebunden.
Damit kann ich zumindest halbwegs bequem durch meine Ordner oder Playlists zappen.

Am PC klappt das ganz gut, am Tab ist es etwas blöd, weil das Play-Icon erst kommt, wenn man auf die Datei getippt hat, was dann zunächst die Details zu der Datei anzeigt. Da ist der Play Button dann aber da.


Jetzt zu meiner eigentlichen Frage:
Ich würde ja gerne mit einem Arduino, einem Inkrementalgeber und einem ePaper Display (vielleicht noch mit einigen Tastern) Bedienteile für die Squeezebox Player basteln.

Da wäre es schlau, wenn man sich auf dem ePaper Display durch die Verzeichnisse wühlen könnte :)

Kennt wer ein passendes Framework für sowas, oder weiß wonach ich eigentlich suchen muss (welche Technik kann sowas)?
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)

bugster_de

@ChrisD: wollte mich mal bedanken, dass Du diese Module so toll weiter führst ! Ich habe mir neulich den neuesten Stand der Module installiert und ich bin beeindruckt, wie zuverlässig nun alles funktioniert. Ich habe in Summe 8 Player im Haus und das geht seit Wochen ohne Murren.

Was mir aber schon länger am Herzen lag: wenn ich die Player via iPENG App auf dem iPad steuere, dann kann ich dort nur Pause drücken. Eine Stop Taste gibt es nicht. Somit schalten sich die zugeordneten Verstärker nicht auf Off und ich muß dann in die FHEM Oberfläche wechseln und dort das Stop Kommando senden. Meinst es ist möglich, dass man auch bei Pause die Verstärker mit einem Delay auf Off schaltet? Momentan ist das ja mittels Attribut zeitverzögert möglich. Vielleicht kann man eine zweite, längere Zeitverzögerung auch bei Pause machen um die Verstärker auf Off gehen zu lassen?

Übrigens: ich habe im Zuge der Buddelarbeiten der Bewässerungsanlage auch Lautsprecher Kabel im Garten verlegt, so dass man nun auch auf der Terrasse sehr bequem Musik hören kann. Wir hatten neulich Freunde zum Grillen da und haben dann ein "Wer kennt dieses Lied" Spielchen gemacht. Jeder darf auf dem iPAD mal in der Musiksammlung suchen, das Lied anspielen und die anderen Raten lassen. Die Stories, was man als Erinnerung mit diesem Lied verbindet sind schon der Knüller :-)

Nebenbemerkung: ich habe auf dem RPi den squeezeslave als Player installiert und auf dem Linux Server im Keller den Squeezelite. Mit Squeezelite ist die Synchronisation von mehreren Playern wirklich taktgenau möglich. Die squeezeslave Player laufen bereits beim Start deutlich zeitversetzt. Hat jemand ähnliche Erfahrungen? Die squeezelite bekomme ich leider auf dem RPi nicht ans Laufen, da sie endlos viel Rechenpower ziehen und der RPi dann nichts anderes mehr macht

marvin78

Sync läuft nur mit squeezlite vernünftig. Deshalb nutze ich Cubietrucks dafür.

bugster_de

OK, danke! Dann sitzt das Problem also nicht vor der Tastatur  ;D

RoBra81

Hallo,

Zitat von: bugster_de am 21 Juli 2015, 12:23:10
Meinst es ist möglich, dass man auch bei Pause die Verstärker mit einem Delay auf Off schaltet? Momentan ist das ja mittels Attribut zeitverzögert möglich. Vielleicht kann man eine zweite, längere Zeitverzögerung auch bei Pause machen um die Verstärker auf Off gehen zu lassen?

Das würde ich mir auch wünschen :-)

Zitat von: bugster_de am 21 Juli 2015, 12:23:10
Die squeezelite bekomme ich leider auf dem RPi nicht ans Laufen, da sie endlos viel Rechenpower ziehen und der RPi dann nichts anderes mehr macht

Wenn du auf dem RPI nichts anderes machen willst, kannst du das nehmen:

https://sites.google.com/site/picoreplayer/home

Da habe ich problemlos sogar zwei Squeezelite-Instanzen auf einem RPI laufen. Wenn du den RPI noch für was anderes nutzen möchtest, kannst du es nach der Anleitung installieren, da laufen bei mir auch zwei Instanzen mit zusammen unter 10% CPU-Last und daneben u.A. lirc als FHEM-Fernbedienung...

Ronny

kvo1

Hi Ronny,
die Anleitung nach deinem Link ist aber auch nix anderes als squeezelite !

Gruß
Klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

bugster_de

Hi Ronny,

danke für den Link, aber wie schon geschrieben ist das squeezelite.

MeinRPi ist der FHEM Server. Und da er im Wohnzimmer steht, bot es sich an zwei USB Soundkarten dran zu machen und ihn nebenbei auch als SB Player laufen zu lassen. Das geht mit squeezeslave auch echt gut.

Für vernünftiges Multiroom wollte ich nun auf squeezelite umsteigen. Wir hören aber sehr viel Internetradio und da sind die Bitraten klein. Squeezelite  macht nun wohl ein Upsampling und das führt zu CPU Load von min 40% pro squeezelite Instanz. Sprich der arme RPi schuftet sich echt was weg und FHEM kommt dann gar nicht mehr zum Zuge. Ich hatte auch mal kurz den SBServer auf dem RPi, aber da bewegt sich dann gar nichts mehr

error500

Hallo zusammen,

ich habe mir heute auch mal die beiden Squeezebox-Module ins fhem geladen. Funktioniert auch alles gut soweit. Nur eine Sache ist mir aufgefallen:

Das Squeezebox Webinterface läuft bei mir auf Port 9001 (auf einem QNAP). Das habe ich im Server-Modul (httpport) eingestellt. Allerdings wird mir im Playermodul trotzdem der falsche Port für coverarturl angezeigt.

Hier zwei Readings aus dem Player:
COVERARTURL: http://192.168.113.3:9000/music/current/cover_50x50.jpg?player=00:04:20:2b:c9:99&x=67905
SBSERVER: 192.168.113.39000


Wenn ich den Port in der URL manuell anpasse wird das Cover korrekt angezeigt.

Folgendes ist definiert:
define sbServer SB_SERVER 192.168.113.3
attr sbServer alias Squeezebox Server
attr sbServer alivetimer 120
attr sbServer doalivecheck true
attr sbServer httpport 9001
attr sbServer maxcmdstack 200
attr sbServer maxfavorites 30

define SB_PLAYER_0004202bc999 SB_PLAYER 00:04:20:2b:c9:99
attr SB_PLAYER_0004202bc999 IODev sbServer
attr SB_PLAYER_0004202bc999 amplifier play
attr SB_PLAYER_0004202bc999 coverartheight 50
attr SB_PLAYER_0004202bc999 coverartwidth 50
attr SB_PLAYER_0004202bc999 donotnotify true
attr SB_PLAYER_0004202bc999 fadeinsecs 10
attr SB_PLAYER_0004202bc999 idismac true
attr SB_PLAYER_0004202bc999 serverautoon true
attr SB_PLAYER_0004202bc999 ttslanguage de
attr SB_PLAYER_0004202bc999 ttslink http://translate.google.com/translate_tts?ie=UTF-8
attr SB_PLAYER_0004202bc999 volumeLimit 100
attr SB_PLAYER_0004202bc999 volumeStep 10


Wobei ich nur den Server definiert habe. Die Attribute und der Player wurden dann automatisch generiert.

Könnt ihr mir weiterhelfen, dass die coverarturl den eingestellten port erkennt.

Danke und viele Grüße
Mark

RoBra81

Zitat von: bugster_de am 22 Juli 2015, 11:07:26
danke für den Link, aber wie schon geschrieben ist das squeezelite.

MeinRPi ist der FHEM Server. Und da er im Wohnzimmer steht, bot es sich an zwei USB Soundkarten dran zu machen und ihn nebenbei auch als SB Player laufen zu lassen. Das geht mit squeezeslave auch echt gut.

Für vernünftiges Multiroom wollte ich nun auf squeezelite umsteigen. Wir hören aber sehr viel Internetradio und da sind die Bitraten klein. Squeezelite  macht nun wohl ein Upsampling und das führt zu CPU Load von min 40% pro squeezelite Instanz. Sprich der arme RPi schuftet sich echt was weg und FHEM kommt dann gar nicht mehr zum Zuge. Ich hatte auch mal kurz den SBServer auf dem RPi, aber da bewegt sich dann gar nichts mehr

Wie geschrieben läuft bei mir Squeezelite mit laufendem Internetradio bei ca. 7% CPU-Last. Kannst du mir mal einen deiner Internetradiosender nennen, ich würde das gern mal bei mir testen...

Ronny

ChrisD

Hallo,

Ich habe eine neue Version der Module zum Testen erstellt, Änderungen:

97_SB_SERVER:
  - httpport bei Änderung an Clients übertragen

98_SB_PLAYER:
  - amplifierDelayOff erweitert, Verstärker auch bei Pause abschalten wenn 2. Zeit (durch , getrennt) gesetzt ist
  - FIX: teilweise wurde der Verstärker zu spät ausgeschaltet
  - bei Änderung des Attributes httpport beim Server Coverart-URL neu erstellen
  - interne Zustände bei shutdown abspeichern
  - Dokumentation überarbeitet und ergänzt (Heppel)

Heppel ist dabei die Dokumentation zu vervollständigen, vielen Dank dafür.

@bugster_de, @Ronny: Ich habe die Möglichkeit eingebaut bei Pause den Verstärker zeitverzögert abzuschalten. Realisiert habe ich es über eine Erweiterung des Attributes amplifierDelayOff. Es ist jetzt möglich eine 2. Zeit mit anzugeben die die Verzögerung bei Pause angibt. Ist diese Zeit nicht vorhanden wird wie bisher bei Pause nicht abgeschaltet. Voraussetzung ist dass das Attribut amplifier auf play steht.

set meinPlayer amplifierDelayOff 3,30
schaltet den Player bei Stop nach 3s und bei Pause nach 30s ab

set meinPlayer amplifierDelayOff 5
schaltet den Player bei Stop nach 5s ab und macht nichts bei Pause

@Mark: Die Änderung des Attributes httpport wird nur nach einem Neustart von FHEM oder einem Disconnect/Reconnect des LMS übernommen. Wenn du FHEM neu startest (nach save config) sollte es funktionieren. Ich habe in den neuen Versionen den Code geändert so dass es auch ohne Neustart funktioniert.

Die aktuelle Version kann mit
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt
installiert werden.

Grüße,

ChrisD


Navigator

#806
Hat noch jemand das Problem mit den nicht geladenen Favoriten und der Meldung  "not,yet,defined" ?

Update: Ich denke es hat sich erledigt. Ich habe nachträglich das ampl Attribut der Definition zugefügt und damit waren die Fav´s verschwunden. Ein "statusRequest" des Servers brachte dann Abhilfe.

bugster_de

@ChrisD: Danke dass Du die Verstärkeranforderung so schnell eingebaut hast. Habe ich auch gleich installiert aber bei mir geht das irgendwie nicht.
amplifierDelayOff 3,7
Das schaltet bei Stop schön brav nach 3 Sek aus. Aber bei Pause bleibt er dauerhaft an. Im CLI Fenster via Putty sehe ich, dass das Pause Kommando gesendet wurde.

Ich habe den Code der 0043 mal durchgesehen, aber auf die Schnelle jetzt kein Problem fest gestellt.h

Navigator

Hat jemand hier mit aktueller FHEM Installation und installiertem SB_Server_Modul eine oder mehrere "Use of uninitialized value in string eq at fhem.pl line 3379, <$fh> line 225." Meldung nach dem initialisieren von FHEM?
Ich bin mir nicht ganz sicher aber ich glaube es hängt irgendwie mit diesem Modul zusammen.

ChrisD

Hallo,

@bugster_de: Kannst du dir den Wert von {helper}{amplifierDelayOffPause} ansehen (z.B. {$defs{deinPlayerName}->{helper}{amplifierDelayOffPause}} oder list deinPlayerName in der FHEM-Kommandozeile eingeben) ? Dieser sollte auf 7 stehen.

@Dittel: Die Funktion zu der Zeile 3379 gehört ist für das Attribut eventMap zuständig. Es ist möglich dass die Fehlermeldung von den SB_*-Instanzen kommt wenn du dabei eventMaps definiert hast. Kannst du ggfs. den Inhalt der eventMap-Attribute posten ?

Grüße,

ChrisD