Squeezebox Modul - erste Version

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

Vorheriges Thema - Nächstes Thema

trapperjohn

Zitat von: ChrisD am 19 Januar 2016, 21:43:07
Hallo,

Das Player-Modul startet die Playlist mit dem Befehl
playlistcontrol cmd:load playlist_id:<ID der Playlist>
Dass die Wiedergabe dabei beim zuletzt gespielten Track beginnt kommt vom LMS, das Modul greift hier nicht weiter ein.

So, ich hab's ausprobiert und erst nach diversen Tests rausgefunden, wie es funktioniert. Relevant ist vor allem, wie der Player *gestoppt* wird! Wenn man per "button power off" anhält, klappt es nicht, der Player startet immer beim ersten Titel. Wenn man dagegen mit "power 0" stoppt, startet der Player wieder korrekt mit dem zuletzt gehörten Track!

FHEm2005

Hallo,

bei mir laufen Squeezebox und SONOS unabhängig nebeneinander (Grund: Der WAF-Faktor  >:(). Aber leider melden sich meine SONOS Boxen als SB_player mit der Mac_ADresse an.

Frage an ChrisD:
Im SONOS Modul gibt es das Attribut ignoreIP. Wäre es möglich so etwas auch beim SB_PLAYER - Modul auch einzuführen?

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

hank40

Guten Abend,

ich habe eine FB7390 mit Version 06.04 (ich mache keine Updates, damit FHEM noch funktioniert) sowie einem CUL-Stick und der aktuellen FHEM-Version auf einem Windows7-Laptop.

Ich wollte nun die Steuerung meiner Squeezebox Boom in FHEM einbinden und habe [http://www.fhemwiki.de/wiki/Squeezebox_Modul]wie hier beschrieben[/url] zunächst die Module erstmalig heruntergeladen, dann ein Update der Module durchgeführt, und dann den Server mit der entsprechenden IP definiert. Das hat auch alles geklappt und der Client wurde automatisch erkannt. Allerdings ist dann nach ein paar Sekunden der FHEM-Server nicht mehr über die Weboberfläche erreichbar. Ich kann ihn zwar manuell über Telnet starten, aber danach verliert er sofort wieder die Verbindung. Im Anhang im Logfile sieht man ein Problem mit den beiden Squeezebox-PM-Dateien, aber ich weiß nicht, wie ich diese lösen kann. Ich habe dann nochmal ein funktionierendes Backup wiederhergestellt und den Ablaub nochmals so durchgeführt, aber mit dem gleichen Ergebnis.

Ich freue mich über jeden Hinweis, da ich gerne meine Squeezebox einbinden würde.

Hank40

ChrisD

Hallo,

@Eberhard: Es ist merkwürdig dass sich die Sonos-Geräte am Server anmelden. Verwendest du squeeze2upnp ? Ich werde versuchen das Attribut ignoreIP in SB_SERVER einzubauen.

@Hank40: Der Absturz von FHEM sollte sich vermeiden lassen wenn du entweder das Attribut doalivecheck auf false setzt (hat aber einige Nachteile) oder aber bei der Definition ein PRESENCE-Modul mit angibst:
define P_LMS PRESENCE lan-ping 192.168.2.232
define sbserver SB_SERVER 192.168.2.232 PRESENCE:P_LMS

Dadurch erfolgt der Ping nicht mehr intern im SB_SERVER-Modul sondern wird über das PRESENCE-Modul gemacht.

Die 3 anderen Meldungen kommen wahrscheinlich daher dass einer deiner Player keinen Namen hat, welchen Playernamen stehen im UI des Squeezeservers ?

Grüße,

ChrisD

FHEm2005

Hallo Chris,

ja - ich verwende Squeeze2UPnP, habe aber die 2 SONOS Boxen im Setup von squeeze2upnp ausgeschlossen. Es eilt nicht. ich lass einfach die Anmeldung drin und beachte sie nicht weiter.  Lass Dir also Zeit. Ich habe sie.

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

hank40

Hallo Chris,

im Squeezebox UI habe ich den Playernamen "Squeezebox Boom" vergeben. Muss ich diesen Namen noch irgendwo im Squeezebox-Modul angeben?

Viele Grüße, Peter

ChrisD

Hallo,

@Peter: Der Name ist ok, daran sollte es nicht liegen. Da ich den Fehler mangels FritzBox nicht reproduzieren kann habe ich eine neue Version des Server-Modules erstellt die einige kleinere Korrekturen sowie Debug-Ausgaben enthält. Kannst du mit dieser testen ?

@Eberhard: Ich habe das Attribut in die neue Serverversion eingebaut, kannst du es testen ?

Änderungen Version 0017:
- Attribute ignoredIPs, ignoredMACs und internalPingProtocol hinzugefügt
- Absturz auf FritzBox behoben
- nicht verwendete Tags aus Serverantwort herausfiltern

Zum Aktualisieren kann
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt
verwendet werden.

Grüße,

ChrisD

Firetic

#1027
Guten Morgen,

ich habe das Problem das meine Squeezebox ungewollte Events auslöst.

Ich habe beim attr "event-on-change-reading" folgendes definiert :"alarm1_time, alarm1_state, alarm1_wdays, alarmsEnabled, currentAlbum".

Es wird jetzt allerdings auch ein jeweils ein event bei mit "alarmSound 1" und "alarmEnd 1" ausgelöst. Ich vermute das dies einfach durch ON bzw OFF geschieht... Kann ich das irgendwie unterdrücken?

Hintergrund ist das ich mit dem folgendem notify darauf reagiere:
"Squeezebox_Schlafzimmer.alarm.*"

Hier möchte ich keine Auslösung beim Start bzw Ende des Weckers haben...

Vielen Dank
Gruß Firetic

FHEm2005

Hallo Chris,

ich kann mit dem Link kein Upgdate via FHEM-Eingabezeile machen. Der bekommt irgendwann ein Timeout.

Verwendung der neuen Attrbute richtig?:

attr <SB_Server> ignoredIPs <IP1[,IP2,IP3]>  Maximale Anzahl?
attr <SB_Server> ignoredMACs <MAC1[,MAC2,MAC3]> Maximale Anzahl?
attr <SB_Server> internalPingProtocol   Welche Angaben?

Gruß
Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

FHEm2005

@chrisD
Leise und von mir völlig unerkannt hat sich das Modul aktualisiert. Das habe ich übersehen.
Ich habe zwei Mac-Adressen nch dem obenstehenden Muster eingepflegt und die unerwünschten SONOS-Boxen gelöscht. Mal sehen, ob sich die Boxen nochmal anmelden können....
Nach einem restart waren sie jedenfalls nicht mehr drin. Das sieht gut aus. Vielen Dank.

@Firetic
Mit Deinem
define <device> notify Squeezebox_Schlafzimmer.alarm.*
reagierst Du auf alles was mit alarm beginnt. Notify erlaubt aber auch in dem pattern-Bereich multiple Angaben.
define <device> notify Squeezebox_Schlafzimmer:(alarm1_time|alarm1_state|alarm1_wdays|alarmsEnabled) <command>
Damit reagierst Du expilit auf bestimmte Ereignisse.

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

ChrisD

Hallo,

Eine neue Version des Player-Modules ist verfügbar. Ich möchte mich bei Eberhard herzlich bedanken für die Ergänzung der englischen und Erstellung der deutschen Dokumentation.

Änderungen 0054:
- deutsche Commandref hinzugefügt (Eberhard)
- englische Commandref ergänzt (Eberhard)
- event-on-change-reading beachten für alarm.*-Trigger
- TTS: iso-8859-1 Strings in utf-8 konvertieren

Zum Aktualisieren kann (wie üblich):
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txtverwendet werden.

@Firetic: Die Events kommen daher dass es keine Readings gibt die du unterdrücken könntest, die Events werden direkt vom Modul erzeugt. Ich habe versucht dies in der neuen Version zu korrigieren, kannst du nach einem Update testen ?

@Eberhard: Das Update dauert je nach Hardware relativ lange da die gesamte Commandref neu erstellt wird. Insbesondere auf 'schwachen' Geräten können dies einige Minuten sein. Dadurch kommt es zu einem Timeout im Browser.

Die Attribute ignoredIPs und ignoredMACs sind bereits in der Commandref enthalten, die Anzahl der IPs/MACs ist nicht durch das Modul begrenzt. Für internalPingProtocol sind tcp, udp, icmp, stream und syn möglich, diese Werte sind auch im UI auswählbar, Default ist tcp.

@chunter1: Das Problem mit den Zeichen konnte ich in der Zwischenzeit zum Teil nachstellen und habe das Modul modifiziert. Kannst du testen ob es jetzt funktioniert ? Das Perl-Modul Encode::Guess wird nicht mehr benötigt.

Grüße,

ChrisD

hank40

Zitat von: ChrisD am 28 Januar 2016, 21:20:39
Hallo,

@Peter: Der Name ist ok, daran sollte es nicht liegen. Da ich den Fehler mangels FritzBox nicht reproduzieren kann habe ich eine neue Version des Server-Modules erstellt die einige kleinere Korrekturen sowie Debug-Ausgaben enthält. Kannst du mit dieser testen ?

@Eberhard: Ich habe das Attribut in die neue Serverversion eingebaut, kannst du es testen ?

Änderungen Version 0017:
- Attribute ignoredIPs, ignoredMACs und internalPingProtocol hinzugefügt
- Absturz auf FritzBox behoben
- nicht verwendete Tags aus Serverantwort herausfiltern

Zum Aktualisieren kann
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt
verwendet werden.

Grüße,

ChrisD

Hi Chris, super vielen Dank, jetzt stürzt FHEM nicht mehr ab - jetzt werde ich mich mal näher mit den Modulmöglichkeiten beschäftigen. Vielen Dank nochmal für die Hilfe!
Peter

Firetic

Guten Morgen  :)

@FHEm2005

Danke für den Tipp - hat soweit funktioniert. Allerdings hat es mit "Squeezebox_Schlafzimmer:(alarm1_time|alarm1_state|alarm1_wdays|alarmsEnabled)" irgendwie nicht geklappt... Musste jedes Event einzeln aufführen also: "Squeezebox_Schlafzimmer:alarm1_time|Squeezebox_Schlafzimmer:alarm1_state etc.".

@ChrisD

Mit der aktullen Version funktioniert es jetzt auch wieder mit dem vereinfachten Define  :) Danke


Gruß Firetic

FHEm2005

Hallo Chris,

ich habe das Attribut  attr <SB_Server> internalPingProtocol noch nicht so richtig verstanden. Dass es  zwar in den Ebenen icmp|tcp|udp|syn|stream eingesetzt werden kann, habe ich noch begriffen. Danach ist aber auch Ende. Deshalb folgende Fragen:

Ist eine Zieladresse im Modul hinterlegt?
Wird damit PRESENCE in der Definition überflüssig?
Wo steht das Ergebnis des Pings?
Wie sieht ein pos/neg-Ergebnis aus?

Wahrscheinlich habe ich den Verwendungszweck nicht begriffen.  >:(
Über eine kleine Nachhilfestunde wäre ich dankbar. (BTW: Dieses Attr steht noch nicht in der commandRef des SB_SERVERS)

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

ChrisD

Hallo,

ZitatIst eine Zieladresse im Modul hinterlegt?
Die Zieladresse ist durch die Definition des Moduls vorgegeben.

ZitatWird damit PRESENCE in der Definition überflüssig?
Nein, der interne Ping wird nur verwendet wenn doalivecheck auf true steht und kein PRESENCE-Modul angegeben ist. Wenn doalivecheck auf true steht sollte alleine schon aus Performance-Gründen PRESENCE verwendet werden.

ZitatWo steht das Ergebnis des Pings?
Das Ergebnis ist nicht zu sehen da es nur intern benötigt wird (außer bei verbose 5).

ZitatWie sieht ein pos/neg-Ergebnis aus?
Positiv: Verbindung zum LMS öffnen falls nicht bereit vorhanden
Negativ: Verbindung schließen und positives Ergebnis abwarten

ZitatWahrscheinlich habe ich den Verwendungszweck nicht begriffen.
Sinn ist zu überprüfen ob der Rechner auf dem der LMS läuft überhaupt existiert bevor eine Verbindung aufgebaut wird.

ZitatDieses Attr steht noch nicht in der commandRef des SB_SERVERS
Da fehlen (leider) fast alle Attribute.

Grüße,

ChrisD