Squeezebox Modul - erste Version

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

Vorheriges Thema - Nächstes Thema

FHEMAN

#1170
Ich habe das Update über FHEM Update gezogen.
Das Ergebnis scheint das selbe (ich hab zur Sicherheit mehrfach neugestartet):

2016.09.04 20:25:05 0: SB_PLAYER_SetTTSState: SB.Essen: ttsstate: wait for power on
2016.09.04 20:25:05 0: SB_PLAYER_Set: SB.Essen: no utf-8
2016.09.04 20:25:05 0: SB_PLAYER_Set: SB.Essen: utf-8
2016.09.04 20:25:05 0: SB_PLAYER_Set: SB.Essen: add to ttsqueue: http://api.voicerss.org/?key=xxx&src=Küche.&hl=de-de&f=48khz_16bit_stereo
2016.09.04 20:25:06 0: SB_PLAYER_SetTTSState: SB.Essen: ttsstate: save state
2016.09.04 20:25:06 0: SB_PLAYER_SetTTSState: SB.Essen: ttsstate: set volume
2016.09.04 20:25:06 0: SB_PLAYER_SetTTSState: SB.Essen: ttsstate: load playlist
2016.09.04 20:25:06 0: SB_PLAYER_SetTTSState: SB.Essen: ttsstate: wait for play
2016.09.04 20:25:07 0: SB_PLAYER_SetTTSState: SB.Essen: ttsstate: playing
2016.09.04 20:25:10 0: SB_PLAYER_SetTTSState: SB.Essen: ttsstate: stopped
2016.09.04 20:25:10 0: SB_PLAYER_SetTTSState: SB.Essen: ttsstate: restore state
2016.09.04 20:25:10 0: SB_PLAYER_SetTTSState: SB.Essen: ttsstate: idle


// edit, da es mir beim Test gerade auffiel:
Im currenTitle Attribut steht nach wie vor src=K%FCche, falls das von Bedeutung ist.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

ChrisD

Hallo,

Die Daten werden vom Modul im richtigen Format an den LMS weitergeschickt, dieser scheint dann aber Probleme bei der Umwandlung der Umlaute zu haben.

Was steht im Web-Interface des LMS unter Einstellungen-Informationen als Versionsnummer und Betriebssystem ? Mit welchem CHARSET-Parameter wird der LMS gestartet (sollte in /etc/init.d/logitechmediaserver stehen) ?

%FC entspricht einem ü, allerdings nach ISO-8859-x. Leider kann VoiceRSS damit nichts anfangen da es utf-8 erwartet.

Grüße,

ChrisD

heppel

Hallo ChrisD,

die Fehlermeldung wegen des nichtnumerischen Wertes in einer Addition ist seit dem Patch nicht wieder aufgetaucht. Ich denke, dass Du das Ticket jetzt schließen kannst.

Vielen Dank,
  Heppel


FHEMAN

Hi ChrisD
Zitat von: ChrisD am 05 September 2016, 22:19:46
Was steht im Web-Interface des LMS unter Einstellungen-Informationen als Versionsnummer und Betriebssystem ?
Logitech Media Server Version: 7.9.0 - 1470801836 @ Wed Aug 10 04:43:33 UTC 2016
Hostname: cubie
IP-Adresse des Servers: 192.168.2.10
Server-HTTP-Portnummer: 9000
Betriebssystem: Debian - DE - utf8
Plattformarchitektur: armv7l-linux
Perl-Version: 5.20.2 - arm-linux-gnueabihf-thread-multi-64int
Audio::Scan: 0.95
Datenbankversion: DBD::SQLite 1.34_01 (sqlite 3.7.7.1)
Anzahl erkannter Player: 6
Zitat
Mit welchem CHARSET-Parameter wird der LMS gestartet (sollte in /etc/init.d/logitechmediaserver stehen) ?
CHARSET=utf8

Kann die LMS Version buggy sein?
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Raven

Kurz gefragt: ich habe PRESENCE:P_LMS definiert und im Falle eines disconnects setze ich alivetimer auf 3600 statt 120 für den "normalen Betrieb", aber im Log sehe ich immer noch die Meldungen "SB_SERVER_Notify(squeezer): ping_LMS changed to absent presence: absent" im 2min Takt, so ist nämlich das Presence-Interval definiert.
D.h. doch alivetimer wird nicht berücksichtigt, wenn ich das PRESENCE-Modul verwende. Richtig?

Auch habe ich hier im Thread gelesen, daß doalivecheck = False auch Nachteile hat, aber welche genau?

Mein Vorhaben: Sollte der LMS ausfallen, liegt bei mir auf einem anderen Server, möchte ich die LMS Überprüfung deaktivieren, weil ich bpsw. im Urlaub bin und die Systemresourcen reduzieren will. Daher mein Bestreben im Falles eines disconnects die Überprüfung zu deaktivieren bzw. das Überprüfungsintervall zu vergrößern.

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

Raven

Darf ich noch eine Frage stellen?  :o

Mein LMS-Server läuft wieder einfwandfrei durch. Aber warum bekomme ich nun immer noch regelmäßig die Meldung "2016.09.17 08:03:34.780 2: SB_SERVER_Notify(squeezer): ping_LMS changed to present presence: present". Ich hätte jetzt erwartet, daß diese nur einmalig kommt, wenn der LMS-Server nicht erreichbar war, aber nicht in regelmäßigen Abständen wenn alle System verfügbar sind. Könnte man evtl. Verbose Level auf 3 setzen für diese Status-Meldugen?
Cubietruck-Prod: HM-LAN, Heizung, Rolläden, Schalter, Viessmann (optolink)
Cubietruck-DEV:
Fritzbox 7490

l2r

Bei mir kommt die Meldung auch


Gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

ChrisD

Hallo,

Die Meldungen
ZitatSB_SERVER_Notify(squeezer): ping_LMS changed to xxx presence: xxx
werden durch Events vom PRESENCE-Modul generiert. Wenn das Attribut event-on-change-reading beim PRESENCE-Modul nicht gesetzt ist kommen die Meldungen regelmäßig. Dies ist völlig unabhängig vom alivetimer und lässt sich durch diesen auch nicht beeinflussen. Könnt ihr versuchen das Attribut event-on-change-reading zu setzen, z.B.
attr ping_LMS event-on-change-reading .*, dadurch sollte nur noch eine Meldung im Log stehen wenn sich der Zustand des PRESENCE-Modules ändert.

Ich kann den Loglevel auf 3 setzen, dies behebt aber nicht das Problem.

Zitatalivetimer wird nicht berücksichtigt, wenn ich das PRESENCE-Modul verwende
alivetimer wird weiterhin berücksichtigt, das Attribut legt fest wie oft der (interne) Zustand des PRESENCE-Modules abgefragt wird. Wenn aber über das notify ein Event vom PRESENCE-Modul erzeugt wird, wird nicht gewartet bis alivetimer abgelaufen ist sondern es wird sofort darauf reagiert. Ich habe das Server-Modul jetzt so angepasst (0023) dass es auch bei fehlendem event-on-change-reading funktioniert. Verbose habe ich auch auf 3 gesetzt.

Wenn alivetimer nicht verwendet wird kann es passieren dass nach einem Ausfall des Servers die Verbindung nicht mehr aufgebaut wird.

Grüße,

ChrisD

Raven

Danke Danke ChrisD für die sehr ausführlichen Infos bzgl. alivetimer und der neuen Version mit angepassten Log-Level; klappt alles nun wunderbar.
Cubietruck-Prod: HM-LAN, Heizung, Rolläden, Schalter, Viessmann (optolink)
Cubietruck-DEV:
Fritzbox 7490

FHEMAN

#1179
Ich würde gerne durch die LMS Server Favoriten "favorites" zappen - hat dafür evtl. jemand schon eine Funktion oder Dummy gebaut? Oder sollte es sogar via prev/next funktionieren (tut bei mir nicht)?

Da sich hier so viele LMS User rumtummeln, ma eine grundsätzliche Frage:
Ich habe die aktuellste LMS Version installiert und Stream über Proxy installiert. Auf einem performanten Cubietruck. Trotzdem habe ich immer wieder Unterbrechungen der Musik, und das auf beliebigen Sendern und beliebigen Geräten. Da ich als Radiowecker ein original Squeezebox Radio verwende, ist es sehr uncool, wenn nach wenigen Minuten sanften Nachrichten diese laute Standardmucke ertönt.

Einen schönen Montag!
Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

FHEMAN

Zitat von: FHEMAN am 19 September 2016, 09:08:16
Ich würde gerne durch die LMS Favoriten "favorites" zappen - hat dafür evtl. jemand schon eine Funktion oder Dummy gebaut? Oder sollte es sogar via prev/next funktionieren (tut bei mir nicht)?

OK, ich habe mal zwei userReadings nextTrack und prevTrack gebaut, die man für Taster etc. gut und schnell nutzen kann:

nextTrack {
my $favsel = InternalVal("$NAME", "FAVSELECT", "-1");
my @favs = (split(",", InternalVal("$NAME", "FAVSTR", "-1")));
return $favs[ $_ + 1 ] for grep { $favs[ $_ ] eq $favsel } 0 .. $#favs-1;
},
prevTrack {
my $favsel = InternalVal("$NAME", "FAVSELECT", "-1");
my @favs = (split(",", InternalVal("$NAME", "FAVSTR", "-1")));
return $favs[ $_ - 1 ] for grep { $favs[ $_ ] eq $favsel } 1 .. $#favs;
}


Alternativ für einen einzelnen Taster quasi als Endlosschleife, so wie ich ihn einsetze:

nextTrack {
my $favsel = InternalVal("$NAME", "FAVSELECT", "-1");
my @favs = (split(",", InternalVal("$NAME", "FAVSTR", "-1")));
my ($idx) = grep { $favs[ $_ ] eq $favsel } 0 .. $#favs;
return ($idx < $#favs) ? $favs[$idx+1] : $favs[0];
}


So braucht man im Taster Notify dann nur folgendes ausführen

fhem("set MyPlayer favorites " . ReadingsVal("$NAME", "nextTrack", ""));

Gruß
Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

ComputerZOO

Moin moin,
Ich wollte meine Squeezeboxen auch schon verticken, bin dann aber gott-sei-dank auf dieses Modul gestossen. Damit werden die Dinger wohl noch einige Zeit ihren Dienst verrichten.
Jetzt zu der eigentlichen Frage:
Es ist ja mögliche fast jede Einstellung der Squeezebox über FHEM zu ändern. Wäre/Ist es möglich auch Parameter wie die verschiedenen Displayhelligkeiten und Schriftgrößen über FHEM zu ändern? Das hätte den großen Vorteil, dass man im Zusammenhang mit z.B. Presence- oder Roommatemodulen das Display bei Abwesenheit komplett ausschalten könnte; oder die Helligkeit bei Nacht auf ein Minimum setzt.

ChrisD

Hallo,

Es ist nicht möglich die Displayhelligkeit direkt zu ändern. Du kannst aber, wenn dein Player dies unterstützt, versuchen die Helligkeit für die Zustände aus, ein und Standby festzulegen:

set playername cliraw playerpref powerOnBrightness <n>
set playername cliraw playerpref powerOffBrightness <n>
set playername cliraw playerpref idleBrightness <n>


Der Wertebereich von <n> hängt vom Player ab, 0 sollte dunkel sein.

Die Schriftgröße sollte sich entweder über die Auswahl der Schriftart mittels
set playername cliraw playerpref idleFont_curr <n>
set playername cliraw playerpref activeFont_curr <n>

oder
set playername cliraw playerpref doublesize 0|1
ändern lassen.

Wenn statt <n> ein ? verwendet wird, wird der aktuelle Wert im Internal LASTANSWER zurückgemeldet falls der Player die Option unterstützt.

Grüße,

ChrisD

ComputerZOO

Danke, das ist genau das, was ich gesucht habe. Ausprobiert habe ich es zwar noch nicht, aber da werde ich mich morgen gleich mal dran machen.

ComputerZOO

Funktioniert wunderbar, besten Dank.

P.S.: gibt es irgendwo ne Liste, welche Befehle es sonst noch gibt für "cliraw playerpref" ?