Squeezebox Modul - erste Version

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

Vorheriges Thema - Nächstes Thema

bugster_de

@ChrisD, @MarcoE: Danke für die Rückmeldungen. Ich schaue mir das diese Woche an. Ich bin zwar die ganze Woche beruflich unterwegs, habe aber abends dann im Hotel ggf. etwas Zeit

ChrisD

#436
Hallo,

Was das Problem mit dem statusRequest betrifft, so hatte ich dies bei meinen Tests nicht bemerkt. Ich habe das jetzt überprüft und festgestellt dass kein 'listen 1' an den Server geschickt wird wenn 'doalivecheck' aktiviert ist. Dadurch werden vom LMS keine Ereignisse an FHEM geschickt.

@MarcoE: Du kannst versuchen im Modulcode von 97_SB_SERVER 97_SB_PLAYER aus Beitrag 432 den Block (ab Zeile 646)
    if( AttrVal( $name, "doalivecheck", "false" ) eq "false" ) {
readingsSingleUpdate( $hash, "power", "on", 1 );
SB_SERVER_Broadcast( $hash, "SERVER",  "ON" );
SB_SERVER_LMS_Status( $hash );
return( 0 );
zu ersetzen durch            SB_SERVER_LMS_Status( $hash );
    if( AttrVal( $name, "doalivecheck", "false" ) eq "false" ) {
readingsSingleUpdate( $hash, "power", "on", 1 );
SB_SERVER_Broadcast( $hash, "SERVER",  "ON" );
return( 0 );


Weiterhin kannst du auch die Zeile 1472    if ( $n <= $SB_SERVER_CmdStack{$name}{first_n} ) {
umändern in    if ( $n <= $SB_SERVER_CmdStack{$name}{last_n} ) {
. Damit werden alle zwischengespeicherten Befehle nach einem Reconnect abgearbeitet.

Die von mir vorgeschlagene Änderung im Beitrag 433 ist eher 'kosmetischer' Natur. Sie sorgt nur dafür dass die Infos auf synchronisierten Playern mit dem Master zusammen aktualisiert werden.

Grüße,

ChrisD

Edit 25.11. Modulname korrigiert

MarcoE

Hallo ChrisD,
ich nehme an, Du meintest "97_SB_SERVER.pm". Die Zeile für den LMS Status hatte ich schon gefunden und auskommentiert. Aber wo muß der "listen 1" rein?
und: Danke für die nun sehr klaren Anweisungen, wo was wie zu ändern ist. Wenn man nur kleine Teile des Codings kennt und noch nie was mit perl gemacht hat ist es ansonsten sehr schwer.

Viele Grüße,
Marco

ChrisD

Hallo,

Du hast recht, ich habe den falschen Modulnamen verwendet, die Zeilen müssen in 97_SB_SERVER geändert werden.

Der Aufruf von SB_SERVER_LMS_Status darf nicht deaktiviert werden, da er dazu führt dass 'listen 1' an den Server geschickt wird. Die in Beitrag 436 vorgeschlagene Änderung führt dazu dass SB_SERVER_LMS_Status unabhängig davon ob 'doalivecheck' gesetzt ist ausgeführt wird. Ich habe dazu die Zeile 649
SB_SERVER_LMS_Status( $hash );vor die Zeile 646 verschoben.

Eine weitere Möglichkeit zumindest das 'listen 1' nachträglich abzusetzen ohne den Code zu ändern ist den Befehlset SB renewin der FHEM-Kommandozeile einzugeben, wobei SB der Name deines Server-Devices ist.

Grüße,

ChrisD


MarcoE

Hi ChrisD,
ja mein Fehler. Ich hatte nicht gesehen, daß du die Zeile nach oben verschoben hattest. Hab' mal ganz kurz angetestet und sieht recht gut aus.

Viele Grüße,
Marco

pc1246

Hallo
Ich habe jetzt mein fhem so langsam wieder am Leben! Allerdings will der SB_PLAYER die Favoriten nicht abholen, wobei er irgendwie den Server auch nicht kennt! Wie bringe ich die Beiden wieder zusammen? Ich muss zugeben, dass ich erst den Player definiert habe, und dann den Server! Loeschen und neu definieren hat aber auch nicht geholfen!
Habt Ihr einen Tipp?

Danke und Gruss
Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

siggi85

Gibt es momentan eine Version in der die Favoriten erkannt werden und das Reconnect Problem behoben ist? Ich habe momentan leider mit diesen beiden Problemen zu kämpfen, was das Modul für mich leider kaum benutzbar macht... :/

pc1246

Hallo Siggi
Seit wann ist das denn so? Bevor meine SD-Karte gestorben ist, war noch alles gut! Ich kann ja mal einen alten SB_PLAYER probieren! Oder liegt es am SERVER?
Grus  Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

siggi85

Zitat von: pc1246 am 26 November 2014, 19:21:14
Hallo Siggi
Seit wann ist das denn so? Bevor meine SD-Karte gestorben ist, war noch alles gut! Ich kann ja mal einen alten SB_PLAYER probieren! Oder liegt es am SERVER?
Grus  Christoph

Scheint am Server zu liegen. Der State ist oft disconnected und kommt auch nach einem renew und statusRequest nicht wieder. Und selbst wenn er connected ist und Kommandos funktionieren, zieht er sich keine Favoriten.
Die Dateien im Contrib sind vor 17 Tagen aktualisiert worden. Habe diese Versionen nun eingebaut, gerade ist der Server aber wieder disconnected. (der LMS läuft auf dem gleichen PI wie FHEM)
Die Versionen die ich vor ein paar Monaten genutzt habe funktionierten besser. Da ist der Server auch mal disconnected, das konnte ich bisher her mit einem Workaround abschwächen, indem ich FHEM jede Nacht seit dem neu starte. Die Dateiem im Contrib sind doch die aktuellsten, oder?

pc1246

Ich habe jetzt mal die Beta genommen! (siehe Post 432)
Damit kann ich den Player zumindest wieder starten!
Das ist ja man schade, das ist mein absolutes highlight gewesen, bis jetzt!
Ich glaube auch das mit den Favoriten haengt mit der Nomenklatur zusammen! Im Server bei mir Favoriten, im Player favorites!
Momentan bin ich noch zu unbeleckt, und Zeit habe ich erst ab dem 19.12. mal sehen, was bis dahin geht, meine Hoffnung liegt ja in ChrisD!
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

ChrisD

#445
Hallo,

@pc1246, @siggi85: Die von euch beschriebenen Probleme sind zum Teil bekannt und ich habe in den vorherigen Post einige Patches dazu vorgeschlagen. Da ich aber nicht die Übersicht über die ganzen Module habe und auch nur einen Teil der Funktionen nutze möchte ich es bugster_de überlassen zu entscheiden wie er das Problem löst. Mit der Beta aus Post 432 sollte die Probleme zum Teil (ohne Codeänderungen) behoben sein wenn im Server-Device das Attribut 'doalivecheck' auf false steht (oder nicht existiert). Könnt ihr versuchen das Attribut auf false zu setzen zu löschen, abzuspeichern und FHEM neu zu starten ?

Grüße,

ChrisD

Edit: 29.11. doalivecheck löschen hilft nicht da es bei einem Neustart automatisch wieder angelegt wird

pc1246

So
Da Fussball ja nicht so prickelnd ist, habe ich mich mal so ein wenig durch den Code gewuehlt! Als erstes Ergebnis sind die Favoriten wieder da! Einfach mal auf dem Server, im eigenen Webinterface, eine Favoriten hinzufuegen/editieren/loeschen, und schon werden Sie uebertragen! Das get im player sieht auch sehr leer aus!
@ChrisD: Welches Problem bringt denn das alivecheck? Bei mir ist es an! Wenn ich es aus mache was aendert sich?

Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

siggi85

Ich habe gestern auch noch die Beta Module eingespielt, sah erst mal gut aus bis auf die Favoriten. Ich werde heute abend mal schauen wie/ob das Attribut doalivecheck gesetzt ist.

ChrisD

Hallo,

@pc1246: Wenn das Attribut doalivecheck auf true steht werden bei der Beta aus Post 432 beim Verbindungsaufbau zum LMS keine Befehle an den LMS geschickt. Dadurch ist das Modul der Meinung die Verbindung wäre noch nicht vorhanden und speichert die Befehle der Player-Module zwischen. Nach einer konfigurierbaren Zeit wird ein Alive-Paket an den Server geschickt. Wenn dieser darauf antwortet geht das Modul davon aus dass die Verbindung zum Server in Ordnung ist und beginnt die zwischengespeichtern Befehle abzuarbeiten. Durch einen Fehler im Code wird allerdings nur der 1. Befehl geschickt, der Rest wird gelöscht. Dies erklärt wieso u.a. keine Favoriten erscheinen. Durch das Fehlen der Befehle beim Verbindungsaufbau werden auch keine Ereignisse vom LMS an FHEM übertragen.

Wenn doalivecheck auf false steht werden beim Verbindungsaufbau sofort Befehle an den LMS geschickt was dazu führt dass die Befehle der Player-Module nicht mehr zwischengespeichert werden sondern direkt weitergeschickt werden. Auch werden Ereignisse vom LMS an FHEM übertragen. Dadurch funktioniert die Kommunikation wie erwartet.

Wenn doalivecheck abgeschaltet ist wird die Verbindung zum Server nicht mehr überwacht (was aber sinnvoll ist). Da es in der Beta aber noch Problem mit dem Reconnect gibt, sollte das Abschalten im Moment keine zusätzlichen negativen Effekte haben.

Grüße,

ChrisD

pc1246

Hallo ChrisD

Ok, das ist ja fuer mich jetzt zu spaet, ich kann hoechstens den Player noch mal loeschen! Wobei der get Teil des Moduls doch sehr leer aussieht! Aber heute nicht mehr!
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly