Squeezebox Modul - erste Version

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

Vorheriges Thema - Nächstes Thema

kvo1

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

RoBra81

#946
Hallo,

vielen Dank für die Antwort - ist eine interessante Lösung, aber leider genau anders herum: Ich würde gern im "Master" festlegen, welche Player ich hinzufügen/entfernen möchte - in der vorgestellten Lösung ist es so, dass der "Slave" sich an einen Master hängt bzw. von diesem löst. Ich habe aber öfter den Fall, dass gleich mehrere Player an einen Master hängen bzw. von einem Master lösen will...

Ronny

EDIT: Sorry, hatte einen Denkfehler, das funktioniert doch so!

Vielen Dank!

vbs

Frohes Fest alle!  ;D

Damit Weihnachten nicht zu langweilig wird, hab ich gestern meinen Squeezebox-Rechner neu installiert mit Windows 10. Ich hab nun komischerweise das Problem, dass FHEM nun alle 4 Minuten etwas hängt.
Apptime sagt folgendes:
                  name             function    max  count    total  average maxDly
                 tmr-SB_SERVER_Alive      HASH(0x35222d0)   2022      2     4040  2020.00     12 HASH(sbserver)
                            sbserver       SB_SERVER_Read     50      6       55     9.17      0 HASH(sbserver)

Scheint also an dem Squeezebox-Modul zu liegen. Den SB-Server hab ich mMn korrekt installiert und der läuft und funktioniert so weit: Die beiden SB-Radios sind zufrieden. Auch kann ich mich von außen per Telnet auf Port 9090 verbinden.
Das Problem scheint jedoch mit der Firewall zusammen zu hängen, denn das Problem tritt nicht mehr auf, wenn ich die Windows-Firewall mal testweise komplett deaktiviere. Port 9090 ist ja jedoch geöffnet. Muss ich noch einen weiteren Port öffen bzw. sonst eine Idee woran das liegen kann? An dem FHEm-Rechner hab ich nichts geändert, nur eben die Windows-Maschine neu gemacht.

Im FHEM-Log sieht das so aus (der SBSERVER scheint ständig die Verbindung zu verlieren):
2015.12.25 11:48:00 3: SB_SERVER_DoInit(sbserver): SB-Server is back again.
2015.12.25 11:48:00 3: SB_SERVER_Notify(sbserver): CONNECTED - STATE: opened power: off
2015.12.25 11:48:02 3: SB_SERVER_CheckConnection(sbserver): STATE: opened power: on
2015.12.25 11:50:00 1: Perfmon: possible freeze starting at 11:49:59, delay is 1.267
2015.12.25 11:50:02 1: Perfmon: possible freeze starting at 11:50:01, delay is 1.294
2015.12.25 11:52:00 3: SB_SERVER_Alive(sbserver): SB-Server in hibernate / suspend?.
2015.12.25 11:52:00 1: 192.168.2.232:9090 disconnected, waiting to reappear (sbserver)
2015.12.25 11:52:00 3: SB_SERVER_Notify(sbserver): DISCONNECTED - STATE: disconnected power: off
2015.12.25 11:52:00 1: Perfmon: possible freeze starting at 11:51:59, delay is 1.274
2015.12.25 11:52:00 1: 192.168.2.232:9090 reappeared (sbserver)
2015.12.25 11:52:00 3: SB_SERVER_DoInit(sbserver): STATE: opened power: off
2015.12.25 11:52:00 3: SB_SERVER_DoInit(sbserver): SB-Server is back again.
2015.12.25 11:52:00 3: SB_SERVER_Notify(sbserver): CONNECTED - STATE: opened power: off
2015.12.25 11:52:02 3: SB_SERVER_CheckConnection(sbserver): STATE: opened power: on
2015.12.25 11:54:00 1: Perfmon: possible freeze starting at 11:53:59, delay is 1.273
2015.12.25 11:54:02 1: Perfmon: possible freeze starting at 11:54:01, delay is 1.31
2015.12.25 11:56:00 3: SB_SERVER_Alive(sbserver): SB-Server in hibernate / suspend?.
2015.12.25 11:56:00 1: 192.168.2.232:9090 disconnected, waiting to reappear (sbserver)
2015.12.25 11:56:00 3: SB_SERVER_Notify(sbserver): DISCONNECTED - STATE: disconnected power: off
2015.12.25 11:56:00 1: Perfmon: possible freeze starting at 11:55:59, delay is 1.274
2015.12.25 11:56:00 1: 192.168.2.232:9090 reappeared (sbserver)
2015.12.25 11:56:00 3: SB_SERVER_DoInit(sbserver): STATE: opened power: off
2015.12.25 11:56:00 3: SB_SERVER_DoInit(sbserver): SB-Server is back again.
2015.12.25 11:56:00 3: SB_SERVER_Notify(sbserver): CONNECTED - STATE: opened power: off
2015.12.25 11:56:02 3: SB_SERVER_CheckConnection(sbserver): STATE: opened power: on
2015.12.25 11:58:00 1: Perfmon: possible freeze starting at 11:57:59, delay is 1.271
2015.12.25 11:58:02 1: Perfmon: possible freeze starting at 11:58:01, delay is 1.294
2015.12.25 12:00:00 3: SB_SERVER_Alive(sbserver): SB-Server in hibernate / suspend?.
2015.12.25 12:00:00 1: 192.168.2.232:9090 disconnected, waiting to reappear (sbserver)
2015.12.25 12:00:00 3: SB_SERVER_Notify(sbserver): DISCONNECTED - STATE: disconnected power: off
2015.12.25 12:00:00 1: Perfmon: possible freeze starting at 11:59:59, delay is 1.274
2015.12.25 12:00:00 1: 192.168.2.232:9090 reappeared (sbserver)
2015.12.25 12:00:00 3: SB_SERVER_DoInit(sbserver): STATE: opened power: off
2015.12.25 12:00:00 3: SB_SERVER_DoInit(sbserver): SB-Server is back again.
2015.12.25 12:00:00 3: SB_SERVER_Notify(sbserver): CONNECTED - STATE: opened power: off
2015.12.25 12:00:02 3: SB_SERVER_CheckConnection(sbserver): STATE: opened power: on
2015.12.25 12:02:00 1: Perfmon: possible freeze starting at 12:01:59, delay is 1.273
2015.12.25 12:02:02 1: Perfmon: possible freeze starting at 12:02:01, delay is 1.298
2015.12.25 12:04:00 3: SB_SERVER_Alive(sbserver): SB-Server in hibernate / suspend?.
2015.12.25 12:04:00 1: 192.168.2.232:9090 disconnected, waiting to reappear (sbserver)
2015.12.25 12:04:00 3: SB_SERVER_Notify(sbserver): DISCONNECTED - STATE: disconnected power: off
2015.12.25 12:04:00 1: Perfmon: possible freeze starting at 12:03:59, delay is 1.285
2015.12.25 12:04:00 1: 192.168.2.232:9090 reappeared (sbserver)
2015.12.25 12:04:00 3: SB_SERVER_DoInit(sbserver): STATE: opened power: off
2015.12.25 12:04:00 3: SB_SERVER_DoInit(sbserver): SB-Server is back again.
2015.12.25 12:04:00 3: SB_SERVER_Notify(sbserver): CONNECTED - STATE: opened power: off
2015.12.25 12:04:02 3: SB_SERVER_CheckConnection(sbserver): STATE: opened power: on
2015.12.25 12:06:00 1: Perfmon: possible freeze starting at 12:05:59, delay is 1.278
2015.12.25 12:06:02 1: Perfmon: possible freeze starting at 12:06:01, delay is 1.306
2015.12.25 12:08:00 3: SB_SERVER_Alive(sbserver): SB-Server in hibernate / suspend?.
2015.12.25 12:08:00 1: 192.168.2.232:9090 disconnected, waiting to reappear (sbserver)
2015.12.25 12:08:00 3: SB_SERVER_Notify(sbserver): DISCONNECTED - STATE: disconnected power: off
2015.12.25 12:08:00 1: Perfmon: possible freeze starting at 12:07:59, delay is 1.29
2015.12.25 12:08:01 1: 192.168.2.232:9090 reappeared (sbserver)
2015.12.25 12:08:01 3: SB_SERVER_DoInit(sbserver): STATE: opened power: off
2015.12.25 12:08:01 3: SB_SERVER_DoInit(sbserver): SB-Server is back again.
2015.12.25 12:08:01 3: SB_SERVER_Notify(sbserver): CONNECTED - STATE: opened power: off
2015.12.25 12:08:03 3: SB_SERVER_CheckConnection(sbserver): STATE: opened power: on

vbs

Scheint irgendwie am Ping zu liegen, das das Modul macht (2 Sek. Verzögerung nach dem Pink):
2015.12.25 15:43:19.201 4 : SB_SERVER_Alive(sbserver): called
2015.12.25 15:43:19.201 4 : SB_SERVER_Alive(sbserver): using internal ping
2015.12.25 15:43:21.205 5 : SB_SERVER_Alive(sbserver): RCC:off Ping:off
2015.12.25 15:43:21.205 5 : SW: 6668656d616c697665636865636b0a
2015.12.25 15:43:21.207 4 : SB_SERVER_Read(sbserver): called
2015.12.25 15:43:21.207 5 : +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.12.25 15:43:21.207 5 : New Squeezebox Server Read cycle starts here
2015.12.25 15:43:21.207 5 : +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.12.25 15:43:21.207 5 : SB_SERVER_Read: complete command received
2015.12.25 15:43:21.207 4 : SB_SERVER_DispatchCommandLine(sbserver): Line:fhemalivecheck...
2015.12.25 15:43:21.207 4 : SB_SERVER_ParseCmds(sbserver): called
2015.12.25 15:43:21.207 4 : SB_SERVER_ParseCmds(sbserver): alivecheck received
2015.12.25 15:43:21.207 5 : +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.12.25 15:43:21.208 5 : Squeezebox Server Read cycle ends here
2015.12.25 15:43:21.208 5 : +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.12.25 15:43:21.210 1 : Perfmon: possible freeze starting at 15:43:20, delay is 1.21
2015.12.25 15:43:21.225 4 : SB_SERVER_Alive(sbserver): called
2015.12.25 15:43:21.225 4 : SB_SERVER_Alive(sbserver): using internal ping
2015.12.25 15:43:23.229 5 : SB_SERVER_Alive(sbserver): RCC:off Ping:off
2015.12.25 15:43:23.229 5 : SW: 6668656d616c697665636865636b0a
2015.12.25 15:43:23.231 4 : SB_SERVER_Read(sbserver): called
2015.12.25 15:43:23.231 5 : +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.12.25 15:43:23.231 5 : New Squeezebox Server Read cycle starts here
2015.12.25 15:43:23.231 5 : +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.12.25 15:43:23.231 5 : SB_SERVER_Read: complete command received
2015.12.25 15:43:23.231 4 : SB_SERVER_DispatchCommandLine(sbserver): Line:fhemalivecheck...
2015.12.25 15:43:23.231 4 : SB_SERVER_ParseCmds(sbserver): called
2015.12.25 15:43:23.231 4 : SB_SERVER_ParseCmds(sbserver): alivecheck received
2015.12.25 15:43:23.231 5 : +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.12.25 15:43:23.231 5 : Squeezebox Server Read cycle ends here
2015.12.25 15:43:23.231 5 : +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.12.25 15:43:23.232 1 : Perfmon: possible freeze starting at 15:43:22, delay is 1.231


Ich kann den Windows-Rechner aber händisch ohne Probleme pingen vom FHEM-Server aus. Hab auch nochmal in der Windows-Firewall alle Ping-Regeln explizit freigegeben (auch öffentliche Netzwerke), hat aber nix geholfen :(

vbs

#949
Weiß wahrscheinlich jeder außer mir, aber nun weiß ich es auch  ;D
Das Modul macht keinen normalen ICMP-Ping sondern versucht stattdessen eine TCP-Verb. auf Port 7 (Echo) zu machen. Den Echo-Dienst gibts normalerweise nicht auf einem Windows, kann man aber unter Programme nachinstallieren (Einfache TCP-Dienste). Wenn man dann noch händisch die Firewall öffnet, dann funktioniert das auch mit dem Modul.

Ist das das "normale" Vorgehen, um das Modul benutzen zu können oder bin ich da irgendwo falsch abgebogen und das wäre auch viel einfacher gegangen?

ChrisD

Hallo,

Es gibt 2 Wege wie das Modul überprüfen kann ob der Rechner mit dem LMS noch erreichbar ist:

- interner Ping
Dieser verwendet wie du herausgefunden hast Echo und nicht ICMP. Der Grund hierfür ist dass es je nach OS nur mit root/Administrator-Rechten erlaubt ist ICMP-Pakete zu versenden. Der Nachteil dieser Methode ist dass FHEM dabei bis 2 s blockiert werden kann. Vorteil ist dass es einfach zu konfigurieren ist.

- externer Ping über das Presence-Modul
Das Modul verwendet den Zustand einer Presence-Instanz. Der große Vorteil ist dass das Presence-Modul das Anpingen ohne Blockieren macht. Nachteil ist die etwas kompliziertere Konfiguration:
define P_LMS PRESENCE lan-ping 192.168.2.232
define sbserver SB_SERVER 192.168.2.232 PRESENCE:P_LMS


Grüße,

ChrisD

snickers2k

Hey.
Absolut großartiges Modul. Vielen Dank dafür.

Ich suche jedoch gerade eine Möglichkeit den Snooze-Button auf einen Homematic-Schalter zu verlegen. Wie wäre denn der Befehl um ein Snooze (nicht SnoozeTime) auszulösen?

Vielen Dank!

ChrisD

Hallo,

Ich habe den snooze-Befehl hinzugefügt (set meinPlayer snooze), kannst du das Modul aktualisieren und damit testen ?

Grüße,

ChrisD

FHEm2005

Hallo Chris,

sehe ich das richtig, wenn ich den Befehl wie folgt beschreibe:

"Schaltet einen gerade laufenden Alarm aus und nach einer definierten Zeit (alarmsSnooze <0-30>) wieder ein."

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

Raven


Ich vermute mit doalivecheck = false schalte ich den internen PING ab.
Ich müsste aber dann, neben der externen PING Definition, auch noch eine Renew Methode implementieren. Richtig?
Aktuell habe ich den alivetimer erhöht, um den FHEM-Freeze zu minimieren.

Zitat von: ChrisD am 25 Dezember 2015, 21:47:44
Hallo,

Es gibt 2 Wege wie das Modul überprüfen kann ob der Rechner mit dem LMS noch erreichbar ist:

- interner Ping
Dieser verwendet wie du herausgefunden hast Echo und nicht ICMP. Der Grund hierfür ist dass es je nach OS nur mit root/Administrator-Rechten erlaubt ist ICMP-Pakete zu versenden. Der Nachteil dieser Methode ist dass FHEM dabei bis 2 s blockiert werden kann. Vorteil ist dass es einfach zu konfigurieren ist.

- externer Ping über das Presence-Modul
Das Modul verwendet den Zustand einer Presence-Instanz. Der große Vorteil ist dass das Presence-Modul das Anpingen ohne Blockieren macht. Nachteil ist die etwas kompliziertere Konfiguration:
define P_LMS PRESENCE lan-ping 192.168.2.232
define sbserver SB_SERVER 192.168.2.232 PRESENCE:P_LMS


Grüße,

ChrisD
Cubietruck-Prod: HM-LAN, Heizung, Rolläden, Schalter, Viessmann (optolink)
Cubietruck-DEV:
Fritzbox 7490

snickers2k

Vielen Dank für den Snooze-Button!
Werde es die Tage ausprobieren und berichten.

Raven

öhm...wo gibt es denn die neueste Version? Gemäß dem 1. Thread-Beitrag hatte ich die neuesten Versionen im Contrib Bereich vermutet.
Hier sehe ich aber, daß die letzten Änderungen vor 2mths statt gefunden haben.
Vielen Dank vorab.

ZitatDie jeweiligen Dateien zur Unterstützung von Squeezebox sind nun im Contrib Bereich von FHEM zu finden:
https://github.com/mhop/fhem-mirror/tree/master/fhem/contrib
97_SB_SERVER.pm und 98_SB_PLAYER.pm

Zitat von: ChrisD am 01 Januar 2016, 20:54:38
Hallo,

Ich habe den snooze-Befehl hinzugefügt (set meinPlayer snooze), kannst du das Modul aktualisieren und damit testen ?

Grüße,

ChrisD
Cubietruck-Prod: HM-LAN, Heizung, Rolläden, Schalter, Viessmann (optolink)
Cubietruck-DEV:
Fritzbox 7490

FHEm2005

#957
Hallo Raven,
ich würde nochmal einen Tag warten. Vielleicht hat Chris es nicht mehr in das nightly Update geschafft. Ich hatte es auch versucht und warte mal bis Morgen.

.... oder mal über
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt
in der Kommandozeile versuchen. Bei mir geht's

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

snickers2k

#958
Ich habe noch ein Problem mit dem setzen von Alarmen.
Bei mir wechseln die Alarme fleißig hin und her. Mal ist mein WE Alarm alarm1 und mein Weekdays Alarm alarm2, mal anders herum.
Auch ein {fhem("set SqueezeboxSchlafzimmer alarm1 set 1,2,3,4,5 06:00")} stellt auf einmal meinen WE-Alarm (eig alarm2), auf alarm1 und stellt den alarm2 auf 6:00  ???
So ist eine klare Identifikation unmöglich :(
Gibt es da eine Möglichkeit dass zu unterbinden?
Zur Not müsste ich mir einen Weg überlegen nur mit einem Wecker zu fahren.. Täglich löschen und neu setzen :/

Danke


Ps. Ich habe mal schnell ein SqueezeBox Icon gebaut. Ist zwar auch im Icons Thread. Aber damit es auch die richtigen erreicht, hier noch einmal im dazugehörigen Thread

FHEm2005

Hallo snickers2k,

versuche mal folgenden Befehl:
set SqueezeboxSchlafzimmer alarm1 wdays 1,2,3,4,5

und danach:
set SqueezeboxSchlafzimmer alarm1 time 06:00:00

dann werden die Alarme auch nicht mehr durcheinander gewürfelt.

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