FHEM Forum

FHEM - Anwendungen => Multimedia => Thema gestartet von: bugster_de am 17 Dezember 2013, 22:12:10

Titel: Squeezebox Modul - erste Version
Beitrag von: bugster_de am 17 Dezember 2013, 22:12:10
Hallo,

Für Anwender findet sich eine super Doku hier: SB-FHEM Anwenderdoku (https://forum.fhem.de/index.php/topic,17667.msg409399.html#msg409399)

Für Entwickler:
siehe auch: http://www.fhemwiki.de/wiki/DevelopmentGuidelinesAV (http://www.fhemwiki.de/wiki/DevelopmentGuidelinesAV)

Die 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 (https://github.com/mhop/fhem-mirror/tree/master/fhem/contrib)
97_SB_SERVER.pm und 98_SB_PLAYER.pm

Da es immer wieder Schwierigkeiten beim Download aus dem Contrib Bereich gibt:
bitte bei den Modulen auf den Butten "RAW" oben rechts klicken, dann alles markieren und kopieren und das Kopierte in eine Text Datei einfügen. Diese dann speichern

Die Unterstützung für Squeezebox ist zweistufig: ein Modul für den Server und je ein Modul für die Player. Bitte also beide angehängten Dateien in die ./FHEM kopieren und dann mittels shutdown restart FHEM neu starten.

Anlegen muss man nur den Server.
define <name> SB_SERVER <serverip[:cliserverport]> [RCC:rccname] [WOL:wolname] [USER:username] [PASSWORD:password]
Bitte beachten: der CLI-Port ist optional und sollte nur angegeben werden, wenn man diesen auf dem SB-Server verändert hat. Standardmässig ist das 9090
RCC: falls man für den Rechner, auf dem der SB-Server läuft in FHEM ein RCC Device angelegt hat, so kann der FHEM-SB-Server diesen aufwecken. Sprich man klickt in FHEM beim SB-Server auf on und falls der PC aus ist, wird er per RCC aufgeweckt. Der name hinter dem Doppelpunkt ist der name des FHEM-RCC-Devices. Bitte RCC: angeben.
WOL: gleich wie RCC nur halt mit einem WOL Modul
[USER:username] [PASSWord:password] diese beiden Parameter sind optional. Auf SB-Server seiten kann man die Kommunikation über den CLI Port mittels Usrename und Passwort verriegeln. Falls man dies getan hat, dann hier die beiden Parameter angeben.


Die jeweiligen Player werden selbst erkannt und automatisch angelegt, falls man autocreate eingeschaltet hat. Also einfach den Server anlegen und zurücklehnen. Nach maximal 1 Minute sollten alle Player automatisch angelegt sein.

Falls autocreate ausgeschaltet ist, dann kann man die Player auch manuell anlegen:
define <name> SB_PLAYER <player_mac_adress]> <ampl:FHEM_NAME> <coverart:FHEMNAME>Die jeweilige MAC Adresse des Players findet man im SB-Server unter Einstellungen

optional kann man ampl:xxx angeben. Hier gibt man bei XXX den Namen eines FHEM Elementes an, das auf on und off reagiert. Dies ist nützlich um z.B. einen Verstärker ein / ausschalten zu können. Bitte auch das amplifier Attribut beachten. Dieses kann man auf on oder play setzen. Der Versärker wird denn entweder mit dem Player ein/ausgeschaltet (on/off) oder bei play/pause vs. stop. Spricht bei playing und paused ist der Verstärker an, bei stopped ist er aus. Somit spart man sich die notifies und entsprechende Rechenlast auf dem FHEM Server

optional kann man coverart:XXX angeben. Unter XXX gibt man den Namen eines FHEM weblink image elementes an. Der Player aktualisiert dann jeweils den Link auf das aktuelle Coverart Bild, so dass man dieses z.B. im Floorplan anzeigen kann.
Mit den Attributen coverartheight und coverartwidth kann man die Breite bzw. Höhe bestimmen.
 Sprich einfach ein weblink Elemt mit define mylink weblink image Link.zu.einem.bild.jpg anlegen. Der SB_PLAYER aktualisiert dann den jeweiligen Image Link so dass das aktuelle Coverart z.B. im Floorplan angezeigt wird.
Bitte die Attribute für Höhe und Breite des weblink elementes NICHT verwenden. Größe wird durch den SB_PLAYER gemacht. Sonst geht das nicht

Das Player unterstützt bisher folgende Kommandos (die via set <name> angegeben werden
play --> startet die Wiedergabe
stop --> Stoppt die Wiedergabe
pause --> toggelt die Wiedergabe (wenn Pause dann Play und wenn Play dann Pause)
pause 1 --> setzt den Player auf Pause egal wie der Zustand zuvor war
pause 0 --> setzt den Player auf Un-Pause egal wie der Zustand zuvor war
channelUp --> spielt das nächste Stück (next)
channelDown --> spielt das vorherige Stück (prev)
volUp --> erhöht die Lautsärke um den Wert, der im Attribut volStep angegeben ist. Per Default 10
volDown --> veringert die Lautsärke um den Wert der im Attribut volStep angegeben ist
volume xx --> xx sollte ein Wert zwischen 0 und 100 sein und setzt die Lautstärke auf den angegebenen Wert (ist im Prinzip Prozent)
volumeStraight -_> gleich wie volume
mute --> schaltet mute um: setzt auf mute, wenn unmuted und setzt auf unmute wenn muted
on --> schaltet den Player ein, falls dieser das unterstützt. Wenn nein, dann macht es play
off --> schaltet den Player aus falls dieser das unterstützt. Wenn nein, dann macht es stop
shuffle on --> schaltet shuffle ein
shuffle off --> schaltet shuffle aus
repeat off|one|all --> schaltet repeat für die aktuelle Playlist in den jeweiligen Modus
show --> zeigt Text auf dem Player an. Dabei folgendes Format:
set sbradio show line1:text der ersten Zeile line2:text der zweiten Zeile duration:ssdas ist glaube ich selbsterklärend
nach duration verschwindet der Text dann wieder
sleep xx --> schaltet den Player nach XX Sekunden aus (und fadet vorher runter)
favorites --> hier wird eine Drop-Down Liste angezeigt, die alle Favoriten der Squeezebox erhält. Durch Auswahl eines dieser Einträge wird die Playlist geleert und dieser Eintrag gespielt.
talk xxx --> der jeweilige Player spricht den Text, der angegeben wurde
set myplayer talk Hallo Welt ich war daplaylist track|album|artist xxx --> hiermit kann man gezielt etwas aus der Datenbank anspielen. Der SB-Server scheint aber etwas pciky zu sein bezgl. korrekter Schreibweise.
set myplayer playlist track Satisfactionset myplayer playlist album Best ofset myplayer playlist artist Whitesnakeplaylist genre artist album --> spielt die jeweils angebene Tracks, die auf das Suchkriterium passen. Stern ist wildcard
set myplayer playlist * Whigfield *statusRequest --> macht einen Update der Readings
sync --> hier wird eine Liste der Player angezeigt, mit denen man eine Gruppe bilden kann (Multiroom). Der angezeigte Player ist dann der Master
unsync --> nimmt den Player wieder aus der Gruppe raus
playlists --> hier werden, wie bei den Favoritn, die Serverseitig definierten Playlisten zu Auswahl angezeigt

Und dann kann man bis zu zwei Alarme setzen
set sbradio alarm1 set 5 12:23:17
set sbradio alarm2 set 4 17:18:00
der erste Parameter ist der Wochentag (mit So = 0), der zweite ist die Uhrzeit

Löschen der Alarme
set sbradio alarm1 delete
set sbradio alarm2 delete

Lautsärke setzen mit:
set sbradio alarm1 volume xx
set sbradio alarm2 volume xx

Enable / Disable des Alarms mit:
set sbradio alarm1 enable
set sbradio alarm2 enable
set sbradio alarm1 disable
set sbradio alarm2 disable

Alle Alarme ein|aus
set sbradio allalarms enable
set sbradio allalarms disable

Und als Schmankerl kann man auch CLI Kommandos an den Player schicken
cliraw --> schickt Kommandos an den Player. Die jeweilige Player-ID (MAC Adresse) wird automatisch eingefügt.
Bsp.
set sbradio cliraw mixer volume 50Also hier die Player-ID NICHT einfügen; sie wird vom Modul eingefügt.
Die Antwort des Players auf die Anfrage findet sich dann im lastunknowncmd Reading des Players.

Der Player besitzt das Attribut donotnotify. Mit diesem kann man Einstellen, ob der Player ein FHEM Notify bei jeder Änderung der Readings lostritt. Per default ist das ausgeschaltet; der Player erzeugt dann nur ein Notify, wenn sich state (on/off) ändert aber nicht, wenn z.B. das nächste Stück angespielt wird. Ein Notify erzeugt signifikante Rechenlast im FHEM Server und so mancher Radio Sender wechselt ja alle paar Sekunden die Anzeige. Jeder dieser Anzeigenwechsel würde dann zu einem Notify auf dem FHEM Server führen.
Am Player kann man auch die Zielsprache der talk Funktion einstellen: de, en, fr, ... für die jeweilige Sprache. der hier gesetzte Wert wird so 1.1 an die Google TTS Engine übergeben. In der FHEM Oberfläche kann man ein paar Sprachen auswählen. Wer eine andere Sprache möchte, dann einfach das attribut in der fhem.cfg manuell setzen.
Das Attribut ttslink enthält den Pfad zur TTS Engine. Als Default ist hier Google eingestellt.

Mit dem Attribut volumeLimit kann man eine maximale Lautstärke vorgeben, die bei den set Kommandos volume und volumeUp beachtet wird. Es können Werte von 0 bis 100 vergeben werden. Ein Limit von 100 bedeutet Funktion ist aus.

Der Server unterstützt folgende Kommandos
renew --> erneuert die Verbindung zum Server, falls dieser down war
abort --> stoppt die Verbindung zum Server
cliraw --> hiermit kann man beliebige Kommandos des CLI Interface an den Server schicken
rescan --> startet das Durchsuchen der Musikdatenbank des SB-Servers
statusRequest --> holt alle möglichen Infos vom Server und den Playern und aktualisiert dann die Readings

ToDo:
- Szenario ohne SB Server / mit Playern die mit mysqueezebox.com verbunden sind unterstützen
- die URL der Cover-Art holen, so dass man die Cover Art dann z.B. in einem Floorplan anzeigen kann.

Nebenbemerkung:
der SB_SERVER hat kein state Reading. Die Variable power zeigt on | off. Die Variable STATE zeigt connected | disconnected an. Dies sagt aber nur etwas darüber aus, ob FHEM überhaupt auf Ethernet zugreifen kann. Wenn man den SB-Server PC in hibernate fährt, bleibt STATE auf connected. Wenn man also Verstärker etc. schalten will, dann muß man das power Reading nehmen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: UliM am 18 Dezember 2013, 00:07:45
Hi,
coole Sache!

- vielleicht magst Du die Befehle anpassen an die Multimedia-Richtlinie und Dein Modul auch in den Übersichtstabellen der Befehle hinterlegen, siehe http://www.fhemwiki.de/wiki/DevelopmentGuidelinesAV

- besteht die Möglichkeit, auch die Weckzeit der Squeezebox von fhem aus einzustellen? Das wäre für mich persönlich ein sehr wünschenswertes feature, siehe http://forum.fhem.de/index.php/topic,16965.0.html

Gruß + viel Erfolg,
Uli
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 18 Dezember 2013, 11:15:35
Hi,

oh, diese Spezifikation kannte ich noch nicht. Das kommt halt davon, wenn man alleine im dunklen Kämmerlein vor sich hin werkelt :-)

Klar werde ich so umsetzen!

 
Muss das Modul alle der Kommandos unterstützen? Denn nicht alle Kommandos kann die Squeezebox.
Im Umkehrschluss habe ich noch keine Möglichkeit gefunden den echten Status des Players abzufragen. Squeezebox liefert da keine einfache Möglichkeit. Aber ich mache eh mal noch ein bisschen Research darauf.


Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: rippi46 am 18 Dezember 2013, 20:13:28
Hi

würde mich über so ein Modul auch freuen ;D

Habe das ganze noch etwas umständlich in der fhem.cfg gemacht.

define LautsprecherGaeste dummy
attr LautsprecherGaeste alias Gästeklolautsprecher
attr LautsprecherGaeste eventMap BI:on B0:off
attr LautsprecherGaeste fm_type state,offbutton,onbutton
attr LautsprecherGaeste group Lautsprecher
attr LautsprecherGaeste icon audio_volume_low
attr LautsprecherGaeste room Gästeklo,Sound
attr LautsprecherGaeste setList state:on,off
define LautsprecherGaeste_ntfy notify LautsprecherGaeste:.* {\
    my $master = "10011";;\
    my $slave = "00000";;\
    my $v=Value("LautsprecherGaeste");;\
    if ($v eq "on") {connair("on",bin2dec("$master"),bin2dec("$slave"))};;\
    if ($v eq "off") {connair("off",bin2dec("$master"),bin2dec("$slave"))};;\
    }


define GaesteKlo dummy
attr GaesteKlo group Sound
attr GaesteKlo room Gästeklo,Sound
attr GaesteKlo webCmd play:pause:stop:next:back:5:10:15:20:25:30:35:40:45:50:55:60:65:70:75:80:85:90:95:100
define GaesteKlo_ntfy notify GaesteKlo:.* {\
    my $v=Value("GaesteKlo");;\
    my $server='http://192.168.178.69:9000';;\
    my $player="&player=b8:27:eb:4c:f1:b5";;\
    my $bef1="/status.html?p0=play";;\
    my $bef2="/status.html?p0=pause";;\
    my $bef3="/status.html?p0=mixer&p1=volume&p2=$v";;\
    my $bef4="/status.html?p0=stop";;\
    my $bef5="/status.html?p0=playlist&p1=jump&p2=+1";;\
    my $bef6="/status.html?p0=playlist&p1=jump&p2=-1";;\
    if ($v eq "play") {GetFileFromURL "$server$bef1$player"};;\
    if ($v eq "pause") {GetFileFromURL "$server$bef2$player"};;\
    if ($v eq "stop") {GetFileFromURL "$server$bef4$player"};;\
    if ($v eq "next") {GetFileFromURL "$server$bef5$player"};;\
    if ($v eq "back") {GetFileFromURL "$server$bef6$player"};;\
    if ($v > "0") {GetFileFromURL "$server$bef3$player&start=0"};;\
    }


Die einzelnen Player (Raspberry mit Coreplayer + kleiner Verstärker) schalte ich über Brennenstuhl Funkschalter ein und aus.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 18 Dezember 2013, 21:28:11
Hallo,
Danke für das Modul, ich glaube mit den Squeezeboxen ist einiges möglich.
Hier hatte ich es auf die Wunschliste gesetzt, und auch ein paar lnfos gesammelt, ich denk du kennst das schon.
http://forum.fhem.de/index.php/topic,14390.msg91198.html (http://forum.fhem.de/index.php/topic,14390.msg91198.html)
Bei mir läuft es.

Ich denke eine Remote Control wie beim Samsung usw wäre sinnvoll
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 18 Dezember 2013, 23:58:41
Hi,

so, ich habe nun ein bisschen getippt und habe das Modul auf die allgemeine Spezifikation angepasst. Auch holt es sich nun einiges an Infos per CLI Interface vom Server. Damit das aber klappt muss man beim Define zwingend die Player ID angeben. Da ich 4 Player dran habe, konnte ich nicht testen, wie das aussieht, wenn man nur einen Player hat.

Das Modul unterstützt aus der Spezifikation nun:
on --> Play (denn on und off hängen ber Squeezebox davon ab, ob der Player das überhaupt kann)
off --> Stop
play
pause
stop
volume
volumeUp
volumeDown
channelUp --> Next
channelDown --> Prev
repeat
shuffle

Es werden momentan folgende Readings gemäß der Spezifikation angezeigt:
volume
playStatus (wird auch auf die state Variable kopiert)
currentArtist
currentTitle
currentAlbum

Als Parameter gemäß Spec gibt es:
volumeStep

Andere Parameter sind:
cliport --> default ist 9090; wenn man den im Server geändert hat, dann hier eintragen
timer --> wie oft soll der Status des Players abgefragt werden (in Sekunden)
timeout --> wieviele Sekunden soll auf Antwort des Servers gewartet werden? Während der Wartezeit steht fhem. Bei mir geht es mit 1 Sek ganz gut

Das Modul im initialen Thread oben habe ich gelöscht (stiftet sonst nur Verwirrung)

Die anderen Readings etc. baue ich die Tage auch mal noch ein.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: eppi am 19 Dezember 2013, 22:18:30
Hi Bugster
Danke für das tolle Modul! Es funktioniert einwandfrei soweit ich testen konnte. Im Log taucht bei mirsobald ich den Player stoppe alle 30sec nachfolgende Meldung auf:
2013.12.19 22:12:56 1: f5:68:80:a2:a2:af mode ?Kann man das noch bereinigen oder unterdrücken?
Verobose 0 geht leider nicht...

Danke für die Analyse und Gruss Dani

Anbei noch ein "list" meines Players:

Internals:
   CONNECTION connected
   DEF        192.168.0.20 f5:68:80:a2:a2:af 9002
   IP         192.168.0.20
   NAME       Musik_SB_Aussen
   NR         1083
   PLAYERID   f5:68:80:a2:a2:af
   PLAYERNAME Slave-Aussen
   PORT       9002
   SERVER     192.168.0.20:9002
   STATE      stop
   TYPE       SB_PLAYER
   Readings:
     2013-12-19 22:19:59   currentAlbum    ?
     2013-12-19 22:19:59   currentArtist   Satzy & Daniel aus Tirol
     2013-12-19 22:19:59   currentTitle    Made in Tirol
     2013-12-19 22:19:59   playStatus      stop
     2013-12-19 22:19:59   state           stop
     2013-12-19 22:19:59   volume          10
Attributes:
   cliport    9090
   timeout    2
   timer      30
   verbose    0
   volumeStep 10

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 20 Dezember 2013, 11:14:52
Hi,

freut mich dass es funktioniert !

Zitat
Kann man das noch bereinigen oder unterdrücken?
oh sorry, da war noch ein unnötiges Log drin. Das habe ich jetzt raus genommen; somit sollte auch die Log Datei nicht zugemüllt werden. Anbei die aktuelle Version.

Hast Du sonst noch Ideen, welche Funktionalität dem Modul gut tun würde?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 20 Dezember 2013, 13:38:57
Wenn Du noch Ideen brauchst, kannst Du Dich vom Sonos Modul inspirieren lassen.
Interessant z.B. auch das es möglich ist, den Wecker über die CLI Commandline zu steuern.
Senden von events an die Squeezeboxen, oder PNG zb morgens das Wetter usw.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: MarkusN am 20 Dezember 2013, 14:09:59
Schöne Sache, dieses Modul! Habe mal die letzte von dir gepostete Version getestet, er holt auch die korrekten Infos für den Player von meinem LMS, jedoch bleibt jegliches Set aus FHEM ohne Reaktion. Es passiert einfach nichts.

Ich nehme alles zurück, es läuft. Der LMS auf meiner Synology lauscht standardmäßig auf Port 9002, und nicht auf 9000. War irritiert dass ich trotzdem Infos vom Radio bekommen habe.

Jetzt wäre es natürlich toll wenn on/off tatsächlich das Radio ein- bzw ausschalten würden. Ich hab ein Squeezbox Radio und das kann definitiv on/off.

Grüße,

Markus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: UliM am 20 Dezember 2013, 14:56:46
Hi,
habe noch keine Squeezebox - aber ein Weckerproblem. Da es danach aussieht, dass ich eine Squeezebox dafür verwenden kann, interessiert mich dies sehr.

Zwei Fragen:
- Logitech UE Home können auf squeezebox-Firmware downgegraded werden und funktionieren dann mit diesem Modul?
- Braucht man nur die Squeezebox, oder muss außerdem noch irgendwo ein squeezebox server laufen? Falls ja, kriegt man den zB auf ner Synology 212+ installiert?

Gruß, Uli
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 20 Dezember 2013, 15:41:41
Hi Uli,
zu 1. ja das geht ohne Probleme, man verbindet die boxen mit einem Wlan (Passwort per Drehrad eingeben) und dann kann man den downgrade durchführen.
zu 2. man brauch noch die Server Komponente den Logitech Media Server (LMS) den kannst du als 3rd Party package auf der Synology installieren.
Bei mir läuft der LMS auf einem Raspberry.
Als Client kann man auch Linux Windows Android usw benutzen.
Bei mir läuft das ganze mit 3 Squeeze Radios, einer Boom und auf meinem XBMC (Linux) als Multiroom System sagar mit Wimp (wie Napster&und co) die haben jetzt sogar ein Flac Streaming Abo

Gruß Mark

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 20 Dezember 2013, 20:17:04
Hi,

oh, das war mir auch neu, dass man das UE Smart radio downgraden kann. das ist ja klasse !

Ob mein Modul auch ohne eigenen Server läuft kann ich Dir nicht sagen, da ich einen Server im Einsatz habe. Probiere es doch bitte mal aus.
define mytest SB_PLAYER <ip-der-box> <mac-der-box> 9000
Ich selbst habe folgendes im Einsatz:
i.) Server auf einem Windows HTPC im Wohnzimmer
ii.) auf dem Server sind vier Instanzen von Squeezeslave installiert. Diese laufen als Service und jeder hat seine eigene Soundkarte
     einmal für die große Wohnzimmer Stereoanlage, einmal für die Deckenlautsprecher im Bad, einma für den Fernseher und einmal für die     
    Kopfhörer
iii.) eine Squeezebox Boom als Küchenradio

Auf dem iPAD nutze ich die App iPeng. Diese kann den Server komplett steuern, hat eine klasse Bedienoberfläche und ist jeden Cent der 5,- € wert. In der App kann man gegen Aufpreis auch einen Player integrieren.

Im Frühjahr kommt noch ein RPi hinzu, auf dem dann auch zwei Clients laufen werden. Diese bedienen dann Aussenlautsprecher im oberen und unteren Teil des Gartens.

Ich hatte bis vor einigen Monaten noch den Server auf einer Linux Maschine. Der Wartungsaufwand bei der Kiste war mir aber zu hoch, da ist Windows für einen HTPC doch besser geeignet ( wegduck :-)
Linux hat aber den Vorteil, dass die Soundausgabe bei Multiroom-Synchro Betrieb tatsächlich Synchron ist. Bei Windows sind da immer irgendwie 2-3 Sekunden versatz zwischen den einzelnen Instanzen.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: UliM am 21 Dezember 2013, 16:20:33
Hiho,
bisher habe ich noch keine Squeezebox/Smart UE, daher kann ich noch nix testen.
Ich hätte die Möglichkeit, den Squeezeboxserver auf der DS213+ laufen zu lassen, würde das aber am liebsten vermeiden, da ich nur eine box zu verwenden gedenke.
Hab irgendwo gelesen, dass der Squeezebox-Server mit den einzelnen Squeezeboxes in JSON spricht, hab aber bisher noch keine Doku dazu finden können.

Setzen der Weckzeiten soll via Squeezeboxserver-CLI gehen, siehe http://forums.slimdevices.com/archive/index.php/t-83741.html :
  For documentation of the CLI go to the server's web interface:
  Help > Technical Information > The Squeezebox Server Command Line Interface
  Find 'Alarm commands and queries'
  <playerid> alarm <add|update|delete|enableall|disableall|defaultvolu me> <taggedParameters>

Mal testen ob das squeezebox-Modul auch auf der Fritte läuft....  scheint zu gehen. reload 98_SB_PLAYER.pm ohne errors :)


Vielleicht baut ja jemand das alarm-command ein - und ne Einschätzung abgibt, ob man das Direkte Ansprechen einer Suqeezebox hinkriegen kann bzw. Erfahrungswerte dazu existieren.

Gruß, Uli
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 22 Dezember 2013, 21:17:20
Sorry, war das Wochenende Familientechnisch eingebunden und kam nicht zum Antworten.

@Markus Niemann: stimmt, das mit dem on / off baue ich noch ein

@UliM: Weckzeit mache ich auch rein.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 22 Dezember 2013, 23:51:27
Also, ich habe noch ein bisschen getippt. Das Modul überprüft nun, ob der Player ON/OFF kann. Wenn ja, dann schaltet er den Player EIN/AUS, ansonsten macht er PLAY/PAUSE.

Ich stelle die neue Version hier mal noch nicht ein, da ich erst noch selbst testen will, bevor ich das auf euch los lasse.

Wecker habe ich noch nicht gemacht, denn das wird gröber: SB erwartet die Weckzeit in Sekunden ab Mitternacht. Das passt so gar nicht in das Format von FHEM. Falls da jemand ein schönes Sück code hat, welches eine FHEM ähnliche Zeit à lá "06:30:25" in Sekunden ab Mittenacht verwandelt, dann gerne her damit.

Viele Grüße
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 23 Dezember 2013, 00:05:08
Vielleicht hilft das:
# work out how far $baseTime is from midnight on that day
              my $baseTimeSecs = $min * 60 + $hour * 3600;
          # alarm is next if it's not in the same day as base time or is >= basetime
              if ($i > 0 || $baseTimeSecs <= $alarm->{_time}) {
          # alarm time in seconds since midnight on base time's day
              my $relAlarmTime = $alarm->{_time} + $i * 86400;
              my $absAlarmTime = $baseTime - $baseTimeSecs + $relAlarmTime;

Ist von
https://code.google.com/p/srvrpowerctrl/source/browse/SrvrPowerCtrl/trunk/Alarms.pm?r=141 (https://code.google.com/p/srvrpowerctrl/source/browse/SrvrPowerCtrl/trunk/Alarms.pm?r=141)

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 23 Dezember 2013, 00:16:29
so, ich habe nun ein bisschen getippt:

ON/OFF ist drin. Falls der Player das unterstützt machte er ON/OFF, falls nicht macht er PLAY/STOP

Weckzeit habe ich mal animplementiert, aber da muß ich morgen (heute :-) noch ein bisschen testen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 24 Dezember 2013, 01:12:39
Hallo Leute,

sorry, zum Thema Weckzeit kam ich noch nicht. Meine bessere Hälfte hat beschlossen, dass die Ansteuerung der LED im Wohnzimmer wichtiger ist wie Musik. Ergo habe ich erstmal ein anderes Modul heute abend geschrieben. Weckzeit kommt noch.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: MarkusN am 28 Dezember 2013, 18:46:01
Hallo,

stellst du uns die aktuelle Version deines Moduls noch zur Verfügung?

Grüße,

Markus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 02 Januar 2014, 03:03:27
Ich habe mir mal eine Remote gebaut:

attr rc_squeeze rc_iconpath icons/remotecontrol
define rc_squeeze remotecontrol
attr rc_squeeze rc_iconprefix black_btn_
attr rc_squeeze row00 showosd:MENU,up:UP,home:HOMEsym,exec volumeUp:VOLUP
attr rc_squeeze row01 left:LEFT,select:OK,right:RIGHT,mute:MUTE
attr rc_squeeze row02 info:INFO,down:DOWN,back:RETURN,exec volumeDown:VOLDOWN
attr rc_squeeze row03 exec stepback:REWIND,playpause:PLAY,stop:STOP,exec stepforward:FF
define notify_rc_squeeze notify rc_squeeze set SB_Red $EVENT
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: cmburn am 02 Januar 2014, 17:59:21
Ich habe mir das Modul mal auf meinen Raspi gepackt und konfiguriert.

Das Ganze hat sich auf Anhieb konfigurieren lassen.  An/Aus geht schon mal.

Was ich mal noch brauche, ist Laut und leise und zwischen den Favoriten weiter schalten...

Gut, das braucht dann bestimmt mehr als 10 min.

Erst mal danke.

PS: Ist es geplant das Modul auf den offiziellen Weg zu bringen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: martyki am 03 Januar 2014, 21:38:25
mit diesem Modul kann man die Squeezebox nicht in den Standby setzen. Ich habe im Squeezebox-Server konfiguriert, dass die SqueezeBoxRadio automatisch nach dem einschalten weiterspielt. Setzt man nun wieder "off" so pausiert der Player lediglich.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 04 Januar 2014, 17:07:47
Das on / off hat bugster wohl intergriert, aber die aktuelle datei noch nicht mit uns geteilt.


Sent from my ASUS Transformer Pad TF700T using Tapatalk 4
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 05 Januar 2014, 12:57:00
Hi,

so nun bin ich vom Skifahren zurück. Klar stelle ich das Modul noch ein. Bei mir hat es aber vor dem Urlaub zweimal FHEM mit in die Tiefe gerissen, weshalb ich es hier nicht einstellen wollte. Da stimmt noch was nicht. Das mach' ich aber im Lauf der Tage und stelle es hier zur Verfügung.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Meesus am 05 Januar 2014, 21:58:50
Hi,
super Modul, danke dafür. Das ist genau das was ich gesucht habe. Hab mir jetzt ein "unsichtbares" Raspberry Kuechenradio mit SqueezePlug V 6.02 gebastelt und setzte das von dir bereitgestellte Modul schon ein. Der Squeeze Server V 7.8.0 ist aber auf einem W2k3.
Nun ist mir aber zu mindestens bei mir aufgefallen, dass wenn ich die Funktion  "volumeUP" benutze, diese nicht funktioniert, bzw. die Lautstärke auf fast 0 runterregelt und in Readings das hier angezeigt wird:
volume %2010 2014-01-05 21:18:50
Das setzen mit "volumeDown" und "Volume [0-100] funktioniert aber hingegen.
Ein ähnliches Problem habe ich beim "Next", dort springt er immer zum 2. Titel in der Liste, "Prev" funktioniert aber.

Kann mir einer von euch sagen wie ich die Playlist oder eine x-beliebige mp3 damit ansteuern kann?
Wenn ich eine zuvor erstellte Playlist damit starten will, erscheint im Player(Rasbp. u. Windows) unter "Aktuelle Wiedergabeliste" - "Nichts" , als ob die Funktion ins leere greift...
Beispiel: "set Musik_Kueche Playlist Test"
Wo bei Test im Vorfeld unter "Wiedergabelisten" angelegt wurden.


Gruß Micha
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 12 Januar 2014, 21:43:33
Hi,

hmmm. Das VolumeUp sowie das Next geht bei mir. Kannst Du mal den genauen set Befehl hier posten denn du verwendest?
Wie ist das Attribut volumeStep Attribut bei Dir definiert?

Viele Grüße
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 12 Januar 2014, 21:56:32
Bei mir klappte es manchmal auch nicht, volume step ist = 10

und nach dem setzen von Volume up kommt volume %2010
Hast Du mal zeit gefunden sich weiter mit dem Modul zu beschäftigen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Meesus am 12 Januar 2014, 23:55:42
Hi Bugster,

schön, das du dich zurückmeldest.  :)

Der Set Befehl ist:
set Musik_Kueche volumeUp
und der volume step ist = 10

so wie bei d0np3p3.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 13 Januar 2014, 11:38:57
Hi,

Sorry'
, ich lag krank im Bett deshalb habe ich amModul noch nichts weiter gemacht.

Das %20 deutet darauf hin, das ein Leerzeichen zu viel an die
Squeezebox über geben wird. Im Code finde ich allerdings keinen Hinweis, warum das so ist. Zumal volumeDown den gleichen Code nur mit anderem Vorzeichen verwendet. Ich Aschau mir das heute abend mal an.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 13 Januar 2014, 13:49:46
Dann hoffe ich das es dir besser geht,  ich gucke mir das auch mal an,  jetzt weiß ich worauf ich achten muß.

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 13 Januar 2014, 14:24:11
So, ich habe mir das über Mittag mal angesehen.

Wenn der SB Server unter Windows läuft geht volumeUp, wenn er unter Linux läuft geht es nicht. Da wird dann das Plus Zeichen vor dem Wert ignoriert.

Unter welchem OS habt ihr den Server am Laufen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 13 Januar 2014, 14:28:01
Ja bei mir läuft Linux

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Meesus am 13 Januar 2014, 15:45:22
mhhh,

bei mir läuft der Squeeze Server V 7.8.0 aber auf einem W2k3 GER.  ???
siehe meine Info vom 05 Januar 2014, 21:58:50
 
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dragonfly am 13 Januar 2014, 16:00:00
Hallo,

ich misch mich hier ganz kurz ein - ich hatte das Problem in der CCU auch schon;
man muß nur das + encoden:
...&p1=jump&p2=%2b1&...
...&p1=volume&p2=%2b10&...
wenn es über den URL-Aufruf gemacht wird; Über Telnet gehts ohne.

LG

Edit:
Kennt ihr den schon?
http://<server>:<port>/status.html?p0=playlist&p1=play&p2=http://translate.google.com/translate_tts?tl=de%26q=Hallo+Leute!&player=<player>
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 13 Januar 2014, 16:19:45
Gerade im Moment wollte ich schreiben, dass dies nur das Http Interface betrifft.

Ich stelle eh alle Kommandos auf das CLI / Telnet Interface um, dann sollte das behoben sein.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dragonfly am 13 Januar 2014, 19:05:37
Da ich im Script nichst von einem Login gefunde habe, hab ich noch was "altes" rausgesucht, bei dem ich damals recht lange gebraucht habe, falls jemand da noch was nachrüsten möchte:
define Squeezebox_ntfy notify (Squeezebox:.*) {\
    my $v=Value("Squeezebox");;\
    my $server='http://usr:pwd@@192.168.1.60:9002';;\
    my $player="&player=00:04:20:2B:5B:4E";;\
    if ($v eq "on") {GetFileFromURL "" . $server . "/status.html?p0=play" . $player . ""};;\
    }
Ich hab damals auch mit dem Urlaufruf gekämpft und hatte mit dem Login die größten Probleme:
Den Inhalt von $server musste ich in ' setzten statt " und das @ verdoppeln - auch wenn du auf CLI umsteigst, vielleicht hilft es noch jemanden.

LG
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 13 Januar 2014, 19:12:14
http://<server>:<port>/status.html?p0=playlist&p1=play&p2=http://translate.google.com/translate_tts?tl=de%26q=Hallo+Leute!&player=<player>

Das ist ja genial, nur stoppt dann die Wiedergabe des vorheriegen Titels /Liste,
uhui da steck Potential drin...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dragonfly am 13 Januar 2014, 21:02:18
Ich fass hier mal ein paar Sachen zusammen, die mich geärgert haben - bzw noch ärgern:

Zum Google TTS sollte man wissen, daß das ganze auf 100 Zeichen begrenzt ist - gegebenenfalls muß ein Programm den Text auf 2 Aufrufe aufteilen. Die Trennung des Textes am besten Satzweise.
Die Wiedergabe "Stoppt" eigentlich nicht - die Wiedergabeliste wird nur durch diesen Aufruf ersetzt.
Man müßte also einen solchen Aufruf in eine Wiedergabeliste einfügen oder nach dem Aufruf wieder eine Wiedergabeliste starten (vielleicht kann man ja den Player abfragen, ob er gestoppt hat - dann könnte man vor dem Aufruf die aktuelle Wiedergabeliste speichern, danch wenn gestoppt wurde diese wieder starten - diese macht dann bei dem Song weiter, wo sie aufgehört hat - startet also nicht von vorne.)

Infos zur Player Ansteuerung:
mit http: IP, MAC, Name, * (für alle)
mit CLI: MAC hat bei mir nicht funktioniert - ich hab dann den Namen verwendet (falls dem Router mal was "passiert" und von DHCP nicht mehr die gleiche IP bekommt)


Ich hab mir für meine CCU ein Shell-Script zusammengebaut - hier stecke ich jetzt bei der Sprachausgabe fest...  :'(
Mich hat es schon gewundert, daß ich das überhaupt hinbekommen habe - da ich eigentlich von shell keine Ahnung habe  ;D

LG
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 13 Januar 2014, 21:54:53
ich habe hier ein paar Infos gefunden:
http://www.ip-symcon.de/forum/threads/12934-Squeezebox-Squeezeserver-Skript?p=146555 (http://www.ip-symcon.de/forum/threads/12934-Squeezebox-Squeezeserver-Skript?p=146555)
http://www.ip-symcon.de/forum/threads/12934-Squeezebox-Squeezeserver-Skript (http://www.ip-symcon.de/forum/threads/12934-Squeezebox-Squeezeserver-Skript)

Ich komme leider nicht dazu mich eizulesen, mein Mediacenter macht ärger, und schaltet sich nicht mehr ab...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dragonfly am 13 Januar 2014, 22:38:29
Ich hab jetzt ca. ein halbes Jahr nichts mehr mit FHEM gemacht - also verzeiht mir die Frage:
Zitat
#  FHEM Modue for DECT based mobile handsets
Soll das heißen, daß Ding läuft über das Fritz-DECT  ???
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 13 Januar 2014, 22:46:18
So, nun habe ich das Modul in der neuen Variante mal ein paar Stunden per Script gequält und zumindest bei mir funktioniert es jetzt.
Neue Version anbei.

ACHTUNG: ich habe den define geändert. Also bitte bestehende Module in FHEM löschen und mit der neuen Definition neu anlegen.

neue Definition:
define <name> SB_PLAYER <serverip[:serverport]> [<playerid>] [cliport>]
Beispiele:
define mysb SB_PLAYER 192.168.56.101
define mysb SB_PLAYER 192.168.56.101:9000
define mysb SB_PLAYER 192.168.56.101 00:b6:19:83:2c:17
define mysb SB_PLAYER 192.168.56.101 00:b6:19:83:2c:17 9090
define mysb SB_PLAYER 192.168.56.101:9000 00:b6:19:83:2c:17 9090

Änderungen:
- volumeUp / volumeDown geht jetzt
- on / off schaltet den Player ein/aus, falls dieser das unterstützt. Ansonsten macht er Play/Pause
- neuer Befehl sleep hh:mm:ss --> hiermit kann man die Zeit einstellen, bis der Player langsam leise wird und sich dann ausschaltet 
  (Einschlaffunktion)
- state variable wird nun gefüllt
- aktuelles Album/Artist/Title wird angezeigt
- es wird angezeigt, ob der Player mit dem Server verbunden ist
- Anzeige, wie die Empfangsstärke des Players ist.
- einige weitere Readings. Einfach mal anschauen

Ich habe das Modul aus dem vorherigen Post gelöscht, damit es nicht zu Verwirrungen kommt.
Auch habe ich das Modul am ersten Post wieder angehängt, damit 'Neulinge' in diesem Thread es gleich finden.

Übrigens: Vorschläg was in der state Variablen so drin stehen soll sind willkommen.

Getestet habe ich das Modul mit einem Server auf Windows und einem Server auf Linux Basis
Als Player: jeweils 3 * Squeezeplayer (Software Player), 1 * SB-Radio (per WLAN), 2 * iPod/iPAD Software Player per WLAN

Was noch nicht geht:
- die Playlist geht irgendwie immer noch nicht. Da gehe ich nochmal bei, da dies die Funktion ist, die mich eigentlich interessiert :-)
- Weckzeiten kann man noch nicht setzen






Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 13 Januar 2014, 22:53:15
@dragonfly: das Google TTS hat echt Potential ! Und das Problem mit der Playlist ist sicher lösbar.

@dragonfly die zweite: bist du im richtigen Thread? Ich finde da nichts mit DECT
Die Fritz FON Dinger können aber eine Webradio wiedergeben. Und wenn man an Stelle Squeezebox den MPD aufsetzt kann man auch seine Musik wieder ins heimische Netz streamen und diesen Stream dann am Fritz Fon anhören. Geek Faktor ist hoch, aber für die bessere Hälfte im Hause ist diese Kombo unbedienbar.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dragonfly am 13 Januar 2014, 23:09:00
Zum Dect:
3. Zeile in deinem Perl-Modul

Zur Playlist:
"playlist play Playlistname" - so funktionierts bei mir

Zum TTS:
Satzzeichen kann man verwenden (hast du im Modul weggelassen) - das macht bei der aussprache tatsächlich einen unterschied.

LG
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 14 Januar 2014, 08:16:34
Hi,

das DECT im Kommentar ist ein Überbleibsel von einem anderen Modul von mir. Dieses greift auf die DECT Telefone an der Fritzbox zu. Idee war eigentlich, Klingelsperre etc. zu realisieren. Das geht aber an der Fritzbox schöner, weshalb ich mir einen Schwung anderer Module gebaut habe, die das nun realisieren.
Kommentar mache ich noch raus.

Playlist: ja das direkte Anspielen eint mp3 oder einer m3u Datei geht. Ich hätte aber gerne, dass man auch Datenbankeinträge anspielen kann (z.B. AC/DC Highway to hell) ohne dass man den Datei Namen kennt. Auch das Anspielen von Einträgen aus den Favoriten geht nicht. Das ist schade, denn genau dafür hatte ich mir das Modul gemacht. Alle anderen Funktionen sind Abfall Produkte :-)

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Meesus am 14 Januar 2014, 13:14:22
Hi bugster,
danke für die Erweiterung, werde es heute Abend einmal testen.
Aber kannst Du mir hier bitte einmal ein Beispiel geben: "Playlist: ja das direkte Anspielen eint mp3 oder einer m3u Datei geht."
Weil, das war das was ich nicht hinbekommen habe.

Thx.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 14 Januar 2014, 16:02:56
Hi bugster,

danke für deine Bemühungen.

Was ich allerdings nicht verstehe ist, warum er die def

define Wohnzimmer SB_PLAYER 192.168.0.99:9000 00:04:20:1f:69:79 9090
so nicht akzeptiert. wenn ich die Ports weg lasse funktionierts.


lg
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Borkk am 14 Januar 2014, 21:14:31
Hallo Bugster;

hab dein Modul heute in mein FHEM eingebaut. Hat auf Anhieb funktioniert und es tut das was es soll.

Vielen Dank für deine Arbeit.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Meesus am 14 Januar 2014, 21:22:12
Hi Bugster,

soeben getestet. Also das Problem mit den Ports wie wilfo habe ich nicht, obwohl ich nicht den 9000 Standard Port für den Server nehme.
Das setzen mit "volumeDown" und "..Up" funktioniert nun.
Bei "Next" und "Prev" wiederholt er jetzt nur noch bei mir die Wiedergabe. "Playlist" bei mir hat keine Funktion.  :(

Gruß Micha
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 15 Januar 2014, 09:02:05
Hi,

@wilfo: komisch, siehe die anderen Antworten unten, dort tut es. Bei der MAC Adresse des Players musst du auf Groß- und Kleinschreibung achten. Der Squeezeboxserver ist da empfindlich.
Kannst Du ansonsten mal einen Screenshot der Internals schicken? Also einfach mal die Detailansicht des Players aufmachen und den oberen Bereich der Internals kopieren.

@Meesus: ja, die Playlist tut immer noch nicht was sie soll. das geht aber auch nicht, wenn ich es direkt im Browser (also ohne FHEM) mache. Bei mir geht nur das direkte Anspielen einer Playlist.
z.B. set myplayer playlist c:\\temp\\playlist.m3u
in den Pfaden muß der Backslash doppelt sein.

Aber wie gesagt, da dies ja mein Hauptanwendungsfall ist und ich genau deshalb das Modul angefangen habe, schaue ich mir das dieser tage an. Sorry, dass ihr hier Betattest Kaninchen spielt
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 15 Januar 2014, 14:42:59
@ bugster

Ich weis, dass es bei den andern tut. Ich verstehs ja auch nicht warum. Bin hier eher schon am verzweifeln weil alles erst nach stunden intensiven herumprobierens funktioniert.
Groß und kleinschreibung is es nicht, weil dann würds ohne Port auch nicht funktionieren, seh ich das so richtig?

Screenshots sind im Anhang. Hoffe ihr seht den Fehler

lg wilfo

Ps.: so siehts in der fhem.cfg aus:
ohne
define Wohnzimmer SB_PLAYER 192.168.0.99 00:04:20:1f:69:79

mit
define Wohnzimmer SB_PLAYER 192.168.0.99:9000 00:04:20:1f:69:79 9090
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 15 Januar 2014, 16:02:59
Versuch mal bitte nur den Server Port anzugeben (ohne 9090)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 15 Januar 2014, 16:07:30
@d0np3p3

du meinst so?

define Wohnzimmer SB_PLAYER 192.168.0.99:9000 00:04:20:1f:69:79

funktioniert nicht
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Meesus am 15 Januar 2014, 16:12:02
Hi bugster,

schaust Du auch nochmal nach:
"Next" und "Prev" ?

Bei diesen Funktionen wiederholt er jetzt nur noch bei mir die Wiedergabe. Kein Skip möglich.

@All: Geht das bei den anderen hier ?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 15 Januar 2014, 16:22:27
@Wilfo,
das funktioniert bei mir ohne Probleme,
hast du sicher das aktuelle Modul?
Komisch ist das bei dir unter IP der Port mitdrinsteht.
Lege dir doch bitte eine Signatur an mit der verwendeten FHEM Version und benutzter Hardware.
(http://img.tapatalk.com/d/14/01/15/amy4a2e2.jpg)

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 15 Januar 2014, 16:45:40
Ich Pfeiffe  :-[

Ich hab gestern zwar die datei mit der neuen ausgetauscht, aber seither keinen reboot gemacht.
Danke und sorry für den aufwand jetzt funktionierts natürlich auch mit ports

vlg
wilfo
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 15 Januar 2014, 16:57:23
Sauber,  ein reload Modul.pm oder shutdown restart tut es auch

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 15 Januar 2014, 17:00:01
Hi,

puh, freut mich dass sich das Problem gelöst hat. Ich habe über Mittag schon verzweifelt im Code geschaut, wo denn das problem sein könnte, da es ja bei einigen anderen ohne Probleme ghet.

Viele Grüße
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: cutter am 15 Januar 2014, 20:11:14
Hallo

Vielen dank für das Modul. Darauf habe ich schon lange gewartet. es Funktioniert wirklich alles und das ohne Probleme. Sollte es bei einigen nicht laufen, achtet darauf in welcher Umgebung Squeezeserver läuft. Einige Nas-Server haben den Port 9090 gesperrt. Was ich noch gut fände, wenn der State ein on oder off anzeigt dann könnte man damit angeschlossene Lautsprecher über ein Funksteckdose ein- und aus-schalten. Also nochmal vielen DANK und mach weiter !!! 
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 16 Januar 2014, 00:46:58
Hello,
Fine you wrote this module ! I asked for one (http://forum.fhem.de/index.php/topic,10020.msg55889.html#msg55889) just a year ago !
Features I would like to be added :
- implement  sayText, showText and message commands (as described in /wiki/DevelopmentGuidelinesAV ) .
- implement a passthru command which would allow to pass any CLI command which is not yet "FHEMized", using SB syntax (quite complete CLI reference : https://crestron-squeeze.googlecode.com/files/cli-api_7.6.htm ).
- notifications (https://crestron-squeeze.googlecode.com/files/cli-api_7.6.htm#NC) handling would be nice especially because I have a squeezebox boom and it is possible to get notification of unknown IR remote control codes, in addition to squeezebox IR codes : would be nice to have the SB as a IR receiver for home automation.
Thanks for the good work !
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 16 Januar 2014, 09:58:51
@oliv06:
- sayText, showText and message commands are already in the code but I have not yet documented them, as they crash SB Server when used with software players like Squeezeslave. So I have to look in more detail into that
- the passthru is also already implemented but I didn't publish that one yet. Will come in the next couple of days
- notifications: I'm not sure if I got that topic correctly. Does that mean, that a SB Player like the boom can receive any arbitrary IR command and pass it on? That would indeed be excellent. Do you have more dteails on that?

At the minute, my code is opening a connection to the CLI interface, sending the command and closing the connection aafterwards. I'm working on implementing also the feedback channel, that CLI supports, that means, that the connection needs to be open all the time which would block fhem. So I'm working on some major modification to handle the connection in the 'standard' FHEM way but I have to say, that there is not at all any documentation on the FHEM side available on how to implement that. In order to implement the IR commands, that would be needed.

@cutter: >>Was ich noch gut fände, wenn der State ein on oder off anzeigt dann könnte man damit angeschlossene Lautsprecher über ein Funksteckdose ein- und aus-schalten
heisst das, dass der state on or off sein soll? Das ist kein problem. Ich bin mir eh immer unschlüssig, wie die state Variable zu belegen ist.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Meesus am 16 Januar 2014, 13:49:25
Hi,

ich muss hier nochmal fragen, ob ich der einzige bin, wo die Funktion nicht geht.

-schnipp-
Hi bugster,

schaust Du auch nochmal nach:
"Next" und "Prev" ?

Bei diesen Funktionen wiederholt er jetzt nur noch bei mir die Wiedergabe. Kein Skip möglich.

@All: Geht das bei den anderen hier ?
-schnapp-
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 16 Januar 2014, 20:20:49
@Meesus

bei mir funktionierts wies soll, auch next und prev
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 16 Januar 2014, 20:25:58
@meesus: bei mir geht das auch. Wenn man allerdings nur ein Lied in der Playlist hat (z.B. man hört Webradio), dann 'fühlt' es sich so an, als ob ständig wiederholt wird.
Kannst Du mal deinen Aufruf posten (als set myplayer next)?

Bitte am besten beim Einspielen der Version ein shutdown restart machen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 16 Januar 2014, 21:48:17
- notifications: I'm not sure if I got that topic correctly. Does that mean, that a SB Player like the boom can receive any arbitrary IR command and pass it on? That would indeed be excellent. Do you have more dteails on that?
Yes, seems to work that way. When you do "listen 1" on the CLI then :
with a SB remote you may have something like :
00%3A04%3A20%3A1f%3A5c%3A85 ir 7689d02f 952381.144
00%3A04%3A20%3A1f%3A5c%3A85 button done_passbackplaylist 952381.144 1
00%3A04%3A20%3A1f%3A5c%3A85 ir 7689d02f 952381.196
and with another one :
00%3A04%3A20%3A1f%3A5c%3A85 ir c53a9966 952454.178
00%3A04%3A20%3A1f%3A5c%3A85 unknownir c53a9966 952454.178
00%3A04%3A20%3A1f%3A5c%3A85 ir f50a6d92 952454.267
00%3A04%3A20%3A1f%3A5c%3A85 unknownir f50a6d92 952454.267
00%3A04%3A20%3A1f%3A5c%3A85 ir c53a9966 952454.356
00%3A04%3A20%3A1f%3A5c%3A85 unknownir c53a9966 952454.356
00%3A04%3A20%3A1f%3A5c%3A85 ir f50a6d92 952454.445
00%3A04%3A20%3A1f%3A5c%3A85 unknownir f50a6d92 952454.445
00%3A04%3A20%3A1f%3A5c%3A85 ir c53a9966 952454.535
00%3A04%3A20%3A1f%3A5c%3A85 unknownir c53a9966 952454.535
00%3A04%3A20%3A1f%3A5c%3A85 ir f50a6d92 952454.624
00%3A04%3A20%3A1f%3A5c%3A85 unknownir f50a6d92 952454.624

I tried the same with a squeezebox radio but I hardly receive anything about ir , as stated in the doc :
Zitat
<playerid> unknownir <ircode> <time>

This signals an IR code unkown by the server. The syntax is the same than the one used by "ir".

Note: This is only available on SB Classic, SB Boom and Transporter. SB Touch and SB Radio handle IR codes locally and do not report them to the server anymore.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: cutter am 16 Januar 2014, 22:18:37
Hallo

Ja ich meinte ein on oder off im state dann könnte ich mein SB Radio in der Küche einschalten und Fhem könnte die Lautsprecher über HM-Steckdose einschalten.

Volume im State braucht glaube ich keiner. Ich regle die Lautstärke über Fhem mit einem slider-Dummy.

ich stelle das Skript hier mal zur Verfügung für Anfänger, so was hilft immer weiter.
Muss nur angepasst werden

define KU_SB_Volume dummy
attr KU_SB_Volume group Multimedia
attr KU_SB_Volume room Kueche
attr KU_SB_Volume setList state:slider,0,1,100
attr KU_SB_Volume webCmd state
attr KU_SB_Volume event-on-change-reading state

define act1_KU_SB_Volume notify KU_SB_Volume {\
my $volume1;;\
   $volume1 = ReadingsVal("KU_SB_Volume", "state", "??");;\
   {\
   system"wget -O /dev/null -q 'http://192.168.2.57:9030/status.html?p0=mixer&p1=volume&p2=$volume1&player=192.168.2.108'";;\
   }\
}

define act_KU_SB_Volume notify SB_kueche:volume:.* {\
 my $SBKUstatus=ReadingsVal("SB_kueche", "volume", "??");;\
 fhem "set KU_SB_Volume $SBKUstatus";;\
 }

Noch nicht ganz auf dein Modul umgestellt aber es funktioniert.

Ich hoffe du Arbeitest noch an dem Wecker, das wäre die Krönung.
   
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 16 Januar 2014, 22:30:07
- sayText, showText and message commands are already in the code but I have not yet documented them, as they crash SB Server when used with software players like Squeezeslave. So I have to look in more detail into that
For TTS, I would appreciate that you include an option on language : Would be nice that there is an attribute for this such as
attr SB_radio lang de which would be used instead of a hard-coded language in the call to google ...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 17 Januar 2014, 00:12:27
Hi,

so, ich habe ein bisschen gebastelt und mache euch schon mal den Mund wässrig:
- das Kommando set <name> show line1:text line2:text duration:ss zeigt Text auf dem Display an
- der Wecker ist eingebaut und geht. Ich verwalte aber nur einen Wecker, auch wenn Player mehrer kann. Mittels delete kann man den dann wieder löschen und mittels enable|disable aktivieren
- mittels dem Kommando cliraw kann man direkte Befehle an das CLI Interface schicken. Die Antwort steht dann im lastresponse reading. Somit einfach mal die CLI Dokumentation lesen und diese Befehle absetzen
- volume ist per slider setztbar (somit auch direkt in der Raumansicht)
- state zeigt nun on oder off
- mit dem Kommando httpwrite kann man die HTTP Schnittstelle des Players direkt bedienen. Einfach die SB Doku durchschauen und diese Befehle absetzen.

Allerdings hat mir das Modul in der letzte Stunde mein FHEM mehrfach komplett in die Tiefe gerissen, weshalb ich erstmal noch debuggen möchte. Modul kommt dann im Laufe des Wochenendes.

Gute Nacht !
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 17 Januar 2014, 00:15:09
@oliv06: I did play around a little with the listen 1 today and going for that setup would have significant other benefits also. But that means a major re-work of the code so might take some time. It basically means to go for a two step module in FHEM and there is not a lot of doku. I managed to get a first setup working, but more time is needed for that ...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 17 Januar 2014, 00:49:06
At the minute, my code is opening a connection to the CLI interface, sending the command and closing the connection aafterwards. I'm working on implementing also the feedback channel, that CLI supports, that means, that the connection needs to be open all the time which would block fhem. So I'm working on some major modification to handle the connection in the 'standard' FHEM way but I have to say, that there is not at all any documentation on the FHEM side available on how to implement that. In order to implement the IR commands, that would be needed.
Hallo das XBMC Modul benutzt auch cli und bekommt auch notifys wie Play usw. vielleicht bringt dir das was, weiterhin könnte man die Remote direkt in Modul übenehmen(wie bei XBMC)
ich habe sie mir ja schon manuell eingebaut
Gruß und ich freue mich schon auf das neue Release
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 17 Januar 2014, 08:31:59
Hi,

Danke für die Info. Xbmc kenne ich. Bei Squeezebox ist es so, dass das CLI Interface im listen Modus alle Messages schickt. Sprich nicht nur die, die für den gewählten Player relevant sind sondern einfach alles, was da so vor sich geht. Das hat aus meiner Sicht erstmal zwei Nachteile, wenn man mehr als einen Player (also Mutli-Room) im Einsatz hat:
- das Parsen wird aufwändig, da man rausfiltern muß, welche Nachricht einen wirklich interessiert
- die Netzwerklast geht nach oben, wenn man mehrere Player hat, da jeder listener am CLI alle Nachrichten erhält.

Sprich deshalb würde ich das gerne zweistufig aufsetzen:
- einen 'Handler' für die CLI Kommunikation, um die Netzwerklast gering zu halten
- jeweils ein FHEM Modul pro Player Instanz

Mit diesem Setup sind wir aber im Bereich der zweistufigen FHEM Module (und XBMC ist kein solches) sowie im bereich der Multithreaded Ausführung (fork). Beides ist in der FHEM Development Community noch nicht sehr gut dokumentiert. Wir haben die letzten Tage einen Wiki Artikel angefangen, um die Erkenntnisse zusamme zu tragen.

Sprich momentan fahre ich zweigleisig: ich treibe das hier gepostete Modul voran, damit ihr das nutzen könnt und arbeite parallel an der neuen Architektur. Deshalb auch neulich die Änderung im define, um es kompatibel zu halten.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: cutter am 17 Januar 2014, 12:16:49
Hallo

Schön das du den Slider-Dummy mit ins Modul aufgenommen hast.
Kannst du vielleicht noch einen zweiten Wecker mit aufnehmen. Da würde meine Frau sich bestimmt freuen wenn sie Abends am tab den Schlafmodus aktiviert und sie den Wecker (SB-Radio) stellen bzw. einschalten kann  ;D. Kann man den Wecker auch Stellen oder nur an oder aus schalten ?
Kommando Show ist natürlich auch Genial !!!

Ich freue mich schon aufs WE und dein SB-Modul
   
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 17 Januar 2014, 13:56:47
Hi,

Klar kann man den Wecker setzen (mit Fhem üblichem Zeit Format), löschen, enable/disable
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 18 Januar 2014, 13:36:24
Could you please change this line so common attributes such as event-on-change-reading are available (useful to minimize number of events)

in SB_PLAYER_Initialize :
$hash->{AttrList}  = "timer volumeStep timeout loglevel:1,2,3,4,5 ".$readingFnAttributes;instead of
$hash->{AttrList}  = "timer volumeStep timeout loglevel:1,2,3,4,5 "Thanks
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 18 Januar 2014, 13:39:39
It seems also that some variables are not initialized :
I get some warnings on the standard output, such as
Use of uninitialized value in int at ./FHEM/98_SB_PLAYER.pm line 805, <$fh> line 929.I did not investigate this more as you are changing your code
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 19 Januar 2014, 01:39:56
So liebe Freunde der gepflegten Musik,

im ersten Post habe ich die neue Version angehängt. Der Code ist einmal komplett neu. Bitte eure bisherigen defines löschen, da ich leider das Interface doch nicht stabil halten konnte. Dafür gibt es jetzt aber autocreate :-) Sprich einfach nur den Server anlegen, die Player werden automatisch angelegt.

@oliv06:
- warning should be gone none
- IR doesn't work on my side, but I have only a SB Radio that doesn't support it. So if you have some other hardware, just try it. Set verbose to 5 for the modul and send me the log, then we'll see
- attributes are complete

@cutter:
zweiter Wecker ist auch drin

Bei mir lief das jetzt ein paar Stunden, aber echte Testtiefe ist vermutlich auch was anderes ...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 19 Januar 2014, 12:31:51
- warning should be gone none
- IR doesn't work on my side, but I have only a SB Radio that doesn't support it. So if you have some other hardware, just try it. Set verbose to 5 for the modul and send me the log, then we'll see
- attributes are complete
Thanks for the good work !
- no warning anymore

- IR with SB boom : seems to work . With attributes donotnotify = true and verbose = 5
If I press "PAUSE" :
Logfile :
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom CMD:ir ARGS:768920df 1178218.662...
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 12:24:18 5: SB_PLAYER_Set: called with ?
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom CMD:ir ARGS:768920df 1178218.714...
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 12:24:18 5: SB_PLAYER_Set: called with ?
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom CMD:button ARGS:done_passback 1178218.918 1...
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 12:24:18 5: SB_PLAYER_Set: called with ?
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom CMD:button ARGS:passback 1178218.714 1...
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 12:24:18 5: SB_PLAYER_Set: called with ?
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom CMD:pause ARGS:1...
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 12:24:18 5: SB_PLAYER_Set: called with ?
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom CMD:playlist ARGS:stop...
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom CMD:menustatus ARGS:ARRAY(0x3e8e970) add 00:04:20:1f:5c:85...
2014.01.19 12:24:18 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 12:24:18 5: SB_PLAYER_Set: called with ?
SB logfile :
2014-01-19_12:24:18 SB_boom lastunkowncmd: ir768920df 1178218.662
2014-01-19_12:24:18 SB_boom lastunkowncmd: ir768920df 1178218.714
2014-01-19_12:24:18 SB_boom lastunkowncmd: buttondone_passback 1178218.918 1
2014-01-19_12:24:18 SB_boom lastunkowncmd: buttonpassback 1178218.714 1
2014-01-19_12:24:18 SB_boom lastunkowncmd: pause1
2014-01-19_12:24:18 SB_boom lastunkowncmd: menustatusARRAY(0x3e8e970) add 00:04:20:1f:5c:85

- attributes : thanks !

I am going to test the other features

 
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 19 Januar 2014, 13:21:59
talk function has to be changed, I think, because I get a 404 error and only the first word
<       $outstr .= "tl=" . AttrVal( $name, "ttslanguage", "de" ) . "%26";
<       $outstr .= join( "+", @arg );
<       $outstr = uri_escape( $outstr );
---
>       $outstr .= "tl=" . AttrVal( $name, "ttslanguage", "de" ) . "%26q=" . uri_escape( join(" ",@arg ));
Still not ideal as &q= may not be the same if you change TTS engine (would need a ttsquery attribute which could be set to &q= for the google TTS engine
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 19 Januar 2014, 13:55:51
@oliv06: thanks for the quick feedback !

for the IR codes, that is cool. Given the responses of the SB, I could introduce a reading like "lastircommand" that holds the last command sent by the IR. As such, you can create a notify on that reading and process the command further. Helpful?

For the talk: you are right: change this line
$outstr .= "tl=" . AttrVal( $name, "ttslanguage", "de" ) . "%26";to this
$outstr .= "tl=" . AttrVal( $name, "ttslanguage", "de" ) . "$q=";
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 19 Januar 2014, 15:05:31
For the talk: you are right: change this line
$outstr .= "tl=" . AttrVal( $name, "ttslanguage", "de" ) . "%26";to this
$outstr .= "tl=" . AttrVal( $name, "ttslanguage", "de" ) . "$q=";
There is a typo : right line is
$outstr .= "tl=" . AttrVal( $name, "ttslanguage", "de" ) . "&q=";
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 19 Januar 2014, 15:56:31
for the IR codes, that is cool. Given the responses of the SB, I could introduce a reading like "lastircommand" that holds the last command sent by the IR. As such, you can create a notify on that reading and process the command further. Helpful?
lastitcommand would be nice !

Another suggestion to better handle notifications : the "donotnotify = false" approach seems to work fine, but if we need to better filter events, there could be then 2 mecanisms to filter SB events for FHEM :
1/ using the CLI "subscribe" command which allows to filter input on the SB server (can be set with cliraw), while "listen 1/0" is all or nothing . A module "subscribe" attribute would make  sense, which would take care of adding to the subscribe list  "playlist" and other SB commands inputs you use in the module
2/ standard FHEM notify, with regular expressions, is then simplified, because there is less to handle
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 19 Januar 2014, 17:46:30
Hi,

I thought about the listen list also, but that holds true for the whole server and not for indivdual players, but it is a quite good means to limit traffic (not only on the net but also on FHEM notifications).
As the server is sending a lot of responses, that are not documented in the CLI dou, I think as soon as we have more experience, we can switch the concept to the limited list.

You seem to have significant experience with the CLI interface. Do you have any suggestion on how to figure out if the SB-Server is still there?
In my case, the SB-Server is located on the HTPC (Windows machine) in the living room. If the HTPC is not needed, it is put to hibernate. And in this case, the server is just gone for FHEM (which is not an issue). But as soon as the HTPC is back in action, FHEM needs to re-initialize the CLI session, yb sending the listen 1 command. Of course i could send it from time to time, but that is also not very nice...
And on top of that, FHEM doesn't realize in the go-to-hibernate case, that the players actually are turned off.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 19 Januar 2014, 18:49:09
I thought about the listen list also, but that holds true for the whole server and not for indivdual players, but it is a quite good means to limit traffic (not only on the net but also on FHEM notifications).
As the server is sending a lot of responses, that are not documented in the CLI dou, I think as soon as we have more experience, we can switch the concept to the limited list.
You are right, perheaps the donotnotify and (potential) subscribe attributes should be SB_SERVER attributes ?

Do you have any suggestion on how to figure out if the SB-Server is still there?
In my case, the SB-Server is located on the HTPC (Windows machine) in the living room. If the HTPC is not needed, it is put to hibernate. And in this case, the server is just gone for FHEM (which is not an issue). But as soon as the HTPC is back in action, FHEM needs to re-initialize the CLI session, yb sending the listen 1 command. Of course i could send it from time to time, but that is also not very nice...
And on top of that, FHEM doesn't realize in the go-to-hibernate case, that the players actually are turned off.
I myself have the SB-server on the same little linux machine (Dockstar plug computer) as FHEM which is up 7/24 (hopefully).
- I tried to stop the LMS server, and your code handles it very well (state goes from opened to disconnected). What could be done is perheaps to change in the module the SB-clients state to unknown (we still can do it with notify in the meantime)
2014.01.19 18:24:43 1: 192.168.0.5:9090 disconnected, waiting to reappear
2014.01.19 18:24:43 1: 192.168.0.5:9090 reappeared (SB_server)
2014.01.19 18:24:43 1: 192.168.0.5:9090 disconnected, waiting to reappear
2014.01.19 18:24:49 5: SB_PLAYER_Set: called with ?
- when I start it again, it goes to connected
2014.01.19 18:35:41 5: SB_PLAYER_Set: called with ?
2014.01.19 18:35:53 1: 192.168.0.5:9090 reappeared (SB_server)
2014.01.19 18:36:26 5: SB_PLAYER_GetStatus: called
2014.01.19 18:36:26 5: SB_PLAYER_GetStatus: leaving
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom CMD:mode ARGS:stop...
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom CMD:artist ARGS:...
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom CMD:album ARGS:...
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom CMD:title ARGS:...
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom CMD:mixer ARGS:volume 37...
2014.01.19 18:36:26 5: ##########VOLUME SET############
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom CMD:connected ARGS:1...
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom CMD:power ARGS:1...
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom CMD:name ARGS:tournedix (Squeezebox Boom)...
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom CMD:signalstrength ARGS:62...
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom: leaving
2014.01.19 18:36:26 5: SB_PLAYER_Parse: SB_boom CMD:player ARGS:ip ? 192.168.0.16:64832...
The squeezebox status recovers correctly

So I do not understand your issue about the SB-server . It does not work the same for you ?
The only issue is about the SB status
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: cutter am 20 Januar 2014, 00:17:24
Hallo bugster_de

Irgendwie stehe ich gerade auf dem Schlauch oder das Modul geht bei mir nicht.
Wie muss die define aussehen ???
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 20 Januar 2014, 02:11:38
Steht im Post #1
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 20 Januar 2014, 16:46:22
@cutter: wie sieht denn dein aktuelles define aus?

bsp.:
define sbsrv SB_SERVER 192.172.53.17

oder:
define sbsrv SB_SERVER 192.172.53.17:9090

Achtung: der angegebene Port ist der Port des CLI Interfaces und nicht der des Webfrontends. Per default steht dies beim SB Server auf 9090.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 20 Januar 2014, 16:48:46
Hallo

Ich hab da mal wieder ein Problem.
da scheint was zu kollidieren.
FHEM behauptet meine 2 Player haben die gleiche IP-Adresse, was mal nicht stimmt.
Ich hab mich jetzt eine weile damit gespielt
Wenn ich meine Squeezebox alleine ranhäng erkennt er sie mit der richtigen IP.
Wenn ich dann meinen Squeezeplayer dran mach hat die Squeezebox wieder die selbe IP wie der Squeezeplayer
ich hab zwischen den Versuchen immer wieder restarts gemacht und natürlich jedes mal die Zeilen aus der fhem.cfg gelöscht.

Hat irgendwer das selbe oder eine Ahnung was ich überseh

sg
wilfo
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 20 Januar 2014, 16:53:12
Nur so eine Idee, hast du dem Player eine andere Mac als 00:00:00:00:00:00 gegeben, vielleicht hilft das.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 20 Januar 2014, 17:04:58
Hi,

die IP, die in FHEM für den Player angegeben ist, ist die, die der SB-Server zurück meldet. Ob diese dann tatsächlich richtig ist, kann man nur durch einen Blick in den Router sagen ...
Die IP Adresse fragt FHEM nur ca. alle 5 Minuten vom Server ab. Vielleicht einfach mal diese 5 Minuten warten um zu sehen, ob sich ein Update ergibt.

In Summe gehe ich aber mal davon aus, dass es trotzdem funktioniert, da die IP Adresse in FHEM nur angezeigt wird und sonst nicht genutzt wird. Sprich sie ist eigentlich egal, da nur die MAC Adresse des Players wichtig ist. Diese sollte stimmen und sie sollte im Netzwerk eindeutig sein. Wenn Du, wie d0np3p3 schon schreibt hier zweimal die gleiche MAC vergeben hast, dann geht es nicht. Das ist aber dann unabhängig von FHEM, denn dann sollte es auch schon beim Squeezbox Server PC nicht gehen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 20 Januar 2014, 17:25:20
@d0np3p3: Beide haben eine andere eindeutige MAC

@Bugster: Im Prinzip funktioniert alles mit der Ausnahme, dass er nicht von anfang an beide Player anzeigt, wobei ich nicht sagen kann ob das vieleicht auch nur ungeduld war.
Zu deiner 5 Minuten theorie: leider nein.
FHEM hatte die ganze Nacht und den halben Tag Zeit.
Der SqueezeboxServer selbst erkennt alles richtig.

Es is auch nicht so tragisch, weil wie du schon sagst funktioniert trotzdem alles. :-)

sg
wilfo
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: cutter am 20 Januar 2014, 22:00:03
Hallo

Wer lesen kann ist klar im Vorteil ! Jetzt funktioniert es hatte nur SB_PLAYER und nicht SB_SERVER kopiert.  :-[ . Beide SB-Radios wurden nicht erkannt (vielleicht hatte ich auch nicht Geduld) hab sie dann manuell installiert.
werde es morgen mal ausgiebig testen. 
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 20 Januar 2014, 22:14:36
Hi,

die Radio Erkennung muss sofort gehen (keine Wartezeit). Hast Du an den Radios auch etwas gemacht? z.B. Laut / Leise stellen? Also damit meine ich am echten Radio (nicht in FHEM:-)
Sind die Radios auch mit dem Server gekoppelt?

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 20 Januar 2014, 23:34:04
Habs natürlich nicht lassen können und nochmal probiert.
ohne zusätzlichen zutun erkennt FHEM nur einen Player.
erst als ich mit dem 2. was gemacht hab, hat er ihn erkannt. Blöderweise wieder mit der selben ip.
hab dann auch mal die ip´s geändert, Jetzt is es genau anders rum mit den IP´s.

sg wilfo

Ps.:
Meine "Radios" gehen nur über den Server und sind normalerweise Synchronisiert.

Pps.: Syncronisierung hab ich auch schon abgestellt.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 21 Januar 2014, 00:01:21
Hi,

was für eine IP zeigt er denn an? 127.0.0.1?

sind das Software Player (squeezeslave?). ich habe gerade bei mir fest gestellt, dass die vier SW Player, die auf der gleichen Maschine wie der Server laufen 127.0.0.1 haben (das ist richtig). Die beiden Software Player in der iPAD App iPENG (siehe Appstore) nutzen wohl ebenfalls squeezeslave. Aber die zeigen ebenfalls beide (!!!) 127.0.0.1 an, was so erstmal nicht richtig ist.
Ich habe auch mal per CLI Interface die Anfrage an den SB Server geschickt und der sendet genau diese Antwort zurück. Scheint also auf seiten SB zu liegen

Wenn es dich aber stört, dann kann ich die Anzeige der IP Adresse aus FHEM ausbauen :-)

>>erst als ich mit dem 2. was gemacht hab, hat er ihn erkannt
ja, das steht ja auch so in der Beschreibung zu meinen Modulen. Ich habe aber hier gerade einen Softwarestand am Laufen, der das auch ohne kann. Und er kann jetzt auch die Favoriten Liste auslesen und als Drop-Down in FHEM anbieten

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 21 Januar 2014, 13:45:41
Something to keep in mind when autodiscovering squeezeboxes : they need to be attached to the squeezebox server, not to mysqueezebox.com
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 21 Januar 2014, 18:35:01
Hi,

Sind die Player, die mit mysqueezebox verbunden sind interessant? Ich habe in meinem aktuellen Stand eine Abfrage drin, wieviele Player im Netzwerk damit verbunden sind, Werte das aber nicht weiter aus, da man via FHEM eh nichts mit diesen Playern machen kann.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 21 Januar 2014, 23:09:09
Und er kann jetzt auch die Favoriten Liste auslesen und als Drop-Down in FHEM anbieten
8) :D


Ich habe auch mal per CLI Interface die Anfrage an den SB Server geschickt und der sendet genau diese Antwort zurück. Scheint also auf seiten SB zu liegen.
Ja, das wirds wohl sein.
Kann es sein, dass er die Daten des Players (welcher zum Zeitpunkt der Abfrage im Server angewählt ist) her nimmt?

Was mir noch aufgefallen ist:
Er nimmt das Model der dazugehörigen IP.
Also zeigt er mir beispielsweise bei beiden die ip des  1. Player die IP "192.168.0.9" und das model "boom" an.
oder er zeigt  bei beiden die ip des  2. Player die IP "192.168.0.91" und das model "squeezeslave" an.
Das macht er bei mir aber nur mit der IP und dem Model alle anderen angaben wie Name und mac stimmen.


Die beiden Software Player in der iPAD App iPENG (siehe Appstore) nutzen wohl ebenfalls squeezeslave
sollte meine obige Theorie stimmen, wäre nicht sicher ob deine iPeng App tatsächlich mit squeezeslave und dem Localhost arbeiten
*duckundweg*

P.S:
eigentlich blödsinn mir zu der Version gedanken zu machen, du hast eh schon die verbesserte Version in der Schublade bei der dies vieleicht garnicht mehr wahr ist.

sg
wilfo

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 22 Januar 2014, 00:06:32
Hi,

Zitat
eigentlich blödsinn mir zu der Version gedanken zu machen, du hast eh schon die verbesserte Version in der Schublade bei der dies vieleicht garnicht mehr wahr ist.
da wäre ich mir mal nicht so sicher  :)
ich habe leider auf Grund der IP Diskussion hier die MAC Abfrage so scharf geschaltet, dass autocreate nicht mehr geht :( Aber das krieg ich wieder hin
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 23 Januar 2014, 13:19:19
Hi,

für alle die mal testkaninchen spielen wollen, anbei eine neue version der SB Unterstützung. Diese ist kompatibel zu der Vorgängerversion; sprich einfach ins FHEM Verzeichniss kopieren und reload oder Neustart. Bei mir lief es jetzt einige Tage ganz gut durch. Trotzdem Achtung: das ist sicherlich bestenfalls Beta Status.

Was ist neu?
- Unterstützung der Favoriten: jeder Player hat nun im Set einen neuen Eintrag 'favorites', bei dem dann auch die Auswahlliste der zur Verfügung stehenden Favoriten erscheint. Diese Auswählen, set drücken und der jeweilige Favorit wird gespielt. Die Namen der Favoriten sind allerdings verkürzt, da in FHEM sonst die Liste nicht dargestellt wird (z.B. wird aus 'Hitradio FFH (Hits der 80er)' dann 'HitradioFFHHitsder80er'. Ist zwar nicht soooo schön, aber ich glaube man kann es erkennen.
- das Talk geht nun auch
- der SB_SERVER hat jede Menge neue Informationen über den Server. Die jeweiligen readings sollten durch ihre Namen selbsterklärend sein. Somit kann man nun schonmal sehen, ob z.B. ein Datenbank rescan läuft oder wieviele Player im Netz z.B. mit mysqeezebox verbunden sind
- wenn man den PC, auf dem der SB Server läuft ausschaltet, so wird dies nun auch in FHEM erkannt und es werden die jeweiligen Player in FHEM auf off gesetzt. Somit kann man per notify darauf reagieren und ggf. eine Steckdose ausschalten, die den verstärker stromlos macht
- wenn der SB PC wieder hochgefahren wird, dann erkennt FHEM dies nun auch. Die jeweiligen Player fragen aber explizit erst nach, ob sie auch eingeschaltet sind.
- alle Player, die mit dem SB Server verbunden sind werden nun automatisch per autocreate angelegt und nicht erst wenn man was damit gemacht hat. nur die Player die mit diesem SB-Server verbunden sind. Player mit mysqueezebox oder Verbindung zu einem anderen Server im Netz werden ignoriert
- beim manuellen anlegen von SB_PLAYER ist nun auch das Format xx-xx-xx-xx-xx-xx für die MAC zulässig
- falls FHEM aus welchen Gründen auch immer die Verbdindung zum SB verliert, kann man am SB_SERVER mit dem set Befehl renew die Verbindung neu initialisieren. Sollte zwar eigentlich automatisch gehen, aber man weiß ja nie
- falls man, aus welchen gründen auch immer, die Verbindung FHEM -> SB ausschalten möchte, so kann sie am SB_SERVER mit dem Kommando abort unterbrechen. Wiederaufnahme dann mittels renew
- der SB_SERVER unterstützt nun das Kommando statusRequest. Hiermit kann man den Update des Serverstatus triggern

Special für wilfo: die IP Adresse sollte nun korrekt sein :-) Der SB Server bietet mehrere Möglichkeiten an, die IP abzufragen. Laut Doku sind diese auch alle gleichwertig, aber man bekommt unterschiedliche IPs zurück. Ich vermute einen Bug auf seiten Squeezebox. Nun frage ich die IP Adresse via einer anderen Schnittstelle ab und da geht es.



Noch zu tun (Rest aus Eintrag #1 hier im Thread):
- Playliste: das Einfügen / Spielen eines beliebigen Songs geht nur, wenn man dessen SB-Datenbank ID oder den Pfad auf der Harddisk weiss
- Server-Verwaltung: Kommando zum Neueinlesen der Musik (Datenbankupdate einbauen)
- bisherigen alarm löschen, wenn bereits ein alarm definiert ist
- volume slider wird noch nicht mit dem aktuellen Wert aktualisiert und steht immer auf 0.
- Szenario ohne SB Server / mit Playern die mit mysqueezebox.com verbunden sind unterstützen
- alle readings / set befehle für AV Module unterstützen (siehe Wiki)

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 23 Januar 2014, 18:08:55
Hi,

Wusste nicht, dass schonwieder Weihnachten ist  :D
habs drauf und alles funktioniert seit ner halben stunde einwandfrei  8)

SG
Wilfo
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 23 Januar 2014, 22:11:29
Hi,

na das freut mich doch zu hören ! Ich glaube das Modul kann so langsam dann in den offiziellen FHEM Verteiler rein.

Falls hier jemand mit Wissen zu FHEMWeb/Floorplan mitliest:
ich würde gerne den Link auf das aktuelle CoverArt in der Oberfläche /FHEMWeb) aber lieber im Floorplan anzeigen. Wenn ich einen Link auf ein jpg habe, wie kann man das machen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 23 Januar 2014, 23:24:37
Thanks for this new version  :D

The typo for the talk command is still here :
      $outstr .= "tl=" . AttrVal( $name, "ttslanguage", "de" ) . "%26";should be replaced by
      $outstr .= "tl=" . AttrVal( $name, "ttslanguage", "de" ) . "&q=";
I also have a suggestion : could you add these 2 commands :
- "savecontext" : would save the playlist (using a CLI "playlist save temp_playlist_SBmacaddress" command), the state of the player (on / off)  and its mode ( pause / play /stop )
- "resumecontext" : would resume saved context
With these two it would be possible to choose either to talk and then resume a playlist if one was playing, or to resume later on, depending on your needs
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 24 Januar 2014, 00:17:23
Would it also be possible to get a reply on a cliraw command ?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: cutter am 26 Januar 2014, 22:42:10
Hallo

Nachdem ich mich länger nicht gemeldet habe hier mal ein Zwischenbericht
die neue Version von 98_SB_PLAYER.pm kann ich nicht installieren, fhem stürzt sofort ab.
in der Vorgänger-Version wurden meine Squeeze-Radios nicht alleine erkannt, Squeeze-Slave auf RPI schon.
Die Wecker haben einen Fehler, wenn man die Tage ändert legt er jedes mal einen neuen Wecker an.
Sonst funktionierte alles prima.

Ach so fhem läuft auf einer FritzBox 7390.

ich hoffe du macht noch weiter
 
   
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 27 Januar 2014, 08:57:39
Hi,

@cutter:
>>Die Wecker haben einen Fehler, wenn man die Tage ändert legt er jedes mal einen neuen Wecker an.
ja, so ist das auch umgesetzt. Er sollte aber eigentlich zuerst den bestehenden Wekcer löschen und dann den neuen Anlegen. Die Wecker Verwaltung ist auf dem SB Server nicht besonders schön umgesetzt.
- man kann zwar sehen, welche Wecker auf dem Player aktiv sind, aber man kann die nicht löschen
- ein Wecker der via FHEM angelegt wurde und auf dem Player direkt gelöscht wird, bekommt FHEM nicht mit. FHEM denkt weiterhin, dass der Wecker da ist

>>die neue Version von 98_SB_PLAYER.pm kann ich nicht installieren, fhem stürzt sofort ab.
kannst Du FHEM mal bitte via Telnet starten und die Fehlermeldung schicken?

>>in der Vorgänger-Version wurden meine Squeeze-Radios nicht alleine erkannt
das ist richtig; in der Vorgängerversion musste man irgendwas am Player (also dem echten Gerät, nicht via FHEM) machen, damit er diesen erkennt. Also z.B. Lautsärke Regler drehen.

@oliv06
>>Would it also be possible to get a reply on a cliraw command ?
the answer on cliraw commands should be in 'lastunkowncommand', if my Module doesn't treat the answer.
I coud introduce a lastcommand reading, that holds all the answers we got

>>I also have a suggestion : could you add these 2 commands :
puh, that might be endless ... I'll check that







Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 27 Januar 2014, 12:01:15
Thank you
>>I also have a suggestion : could you add these 2 commands :
puh, that might be endless ... I'll check that
No problem : it is possible to do it without the module
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 27 Januar 2014, 17:00:37
Hi,

@oliv06: instead of lunch, I played a little bit around. Asking the server for the current playing song / songlist is not that straight forward. If it is playing a playlist, you get the name and can then further walk through to get the id, playing an album gives you no URL. You need to walk the full library and ask the server for the id. Playing a favourite gives you the favourites id, but you need to know, that you're playing a favourite. Playing a radio station gives you the url but no id. And that is not at all what I would call straight forward :-)

All: on what machine are you running FHEM? I'm at home testing on my FHEM test installation which is a rather powerful machine. I did not test the module on a Fritzbox, as my Fritzbox runs my real FHEM. Given that in the meantie there is a lot of string parsing in the module, I have my doubts about the computation power of the Fritzbox.
Alle: auf was für einem rechner läuft bei euch FHEM? Ich entwickle hier auf meiner FHEM Testinstalltion, was eine vergleichsweise potente Maschine ist. Ich habe das Modul bisher nicht auf meiner Fritzbox getestet, da die im Produktiveinsatz ist. Da mittlerweile eine ganze Menge Strings geparst werden, bin ich mir nicht sicher, ob die Fritzbox genug rechenleistung hat ...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: cutter am 27 Januar 2014, 17:48:56
Hallo

Habe jetzt aktuelle Player und Server installiert und fhem im Telnet geloggt.

Found = in conditional, should be == at ./FHEM/97_SB_SERVER.pm line 815, <$fh> line 1319.
could not find ParserDetails.ini in /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/XML/SAX
Use of uninitialized value $list in pattern match (m//) at /var/InternerSpeicher/fhem/lib/perl5/5.12.2/utf8_heavy.pl line 399.
Use of uninitialized value $_ in lc at ./FHEM/70_ENIGMA2.pm line 312.
Use of uninitialized value $_ in lc at ./FHEM/70_ENIGMA2.pm line 312.
Can't use string (" ") as a SCALAR ref while "strict refs" in use at ./FHEM/98_SB_PLAYER.pm line 499.
Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 126.
Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 126.
Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 126.
Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 126.
Can't use string (" ") as a SCALAR ref while "strict refs" in use at ./FHEM/98
_SB_PLAYER.pm line 499.
> Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 12

UPS noch mehr Fehler !!!

Fehlermeldung in fhem: 2014.01.27 17:02:52.680 1: CallBlockingFn: Can't connect to localhost:7072

OK werde dann in fhem die Wecker erst löschen und dann neu anlegen. Wenn man das weiß ist es gut.
Übrigens wurden die Squeéze_Radios nicht erkannt habe alle möglichen Knöpfe gedreht, nur squeeze-Slave auf RPI wurde erkannt.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 28 Januar 2014, 22:40:44
@oliv06: instead of lunch, I played a little bit around. Asking the server for the current playing song / songlist is not that straight forward. If it is playing a playlist, you get the name and can then further walk through to get the id, playing an album gives you no URL. You need to walk the full library and ask the server for the id. Playing a favourite gives you the favourites id, but you need to know, that you're playing a favourite. Playing a radio station gives you the url but no id. And that is not at all what I would call straight forward :-)
Hi bugster_de,
There is a function for this in the SB CLI. Here is a small example using your module, which saves the playlist context (but not the SB state nor the play status), talk, then restore the context. My SB is called SB_boom :
set SB_boom cliraw playlist save temp_playlist_SB_boom
set SB_boom talk hello world
set SB_boom cliraw playlist resume temp_playlist_SB_boom
Using these commands, SB will talk in any case (even if SB was off or on pause), and current playlist will be played afterwards (even if SB was off or on pause)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 28 Januar 2014, 22:58:00
All: on what machine are you running FHEM? I'm at home testing on my FHEM test installation which is a rather powerful machine. I did not test the module on a Fritzbox, as my Fritzbox runs my real FHEM. Given that in the meantie there is a lot of string parsing in the module, I have my doubts about the computation power of the Fritzbox.
I am using a Seagate Dockstar on Debian, which is not very powerful  :
Your code has not dramatically increased CPU load (it is about 0.2)

One thing which changed between current version of your code and previous one : display type is now ? for my SB boom.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 29 Januar 2014, 11:03:05
Hi,

Danke für das Feedback zu Rechenleistung. Da bin ich ja beruhigt.

Da ich die nächsten Tage beruflich unterwegs bin stelle ich euch mal hier den aktuellen Stand der Dinge rein. Die bemängelten Fehler sollten draussen sein (tritt zumindest bei mir seit Tagen nicht mehr auf).
Ich habe auch versucht die aktuelle ID des gerade gespielten Titels darzustellen, um die resume Funktion zu vereinfachen. Deshalb gibt es ein paar neue Readings, die ich am Wochenende hier dokumentieren werde. Sollten aber durch den Namen selbsterklärend sein
Was immer noch nicht geht: wenn der SB-Server per Hibernate oder Suspend schlafen gelegt wird oder daraus wieder aufwacht, dann bekommt FHEM das nicht mit. Wenn man den PC regulär ausschaltet geht es. Zumindest auf Windows Maschinen scheinen die laufenden Programme nicht darüber informiert zu werden, dass jetzt Schlafenszeit ist und somit können sie wohl auch z.B. etwaige Verbindungen nach aussen nicht sauber abbauen. Da dies für mich aber ein wichtiger Anwendungsfall stecke ich da noch etwas Gehirnschmalz rein. Für diejenigen die den Sourcecode anschauen: das ist auch der Grund, warum bei 97_SB_SERVER nun die Möglichkeit besteht, wahlweise ein RCC oder ein WOL Modul zu definieren. SOlltet ihr aber noch nicht nutzen, da aktuell eh nicht zufriedenstellend lauffähig.

Ansonsten: Fehler wie immer hier posten.

Viele Grüße
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Borkk am 30 Januar 2014, 22:34:12
Hi,

das 98_SB_Player.pm Modul von 13. Januar funktioniert bei mir einwandfrei mit einem Squeezeqbox Radio. Die Kombi aus 97_SB_Server und 98_SB_Player läuft bei mit nicht wirklich gut. die readings des Players kommen extern langsam zb. gar nicht. Is Log wird ebenfalls nichts geschrieben. Mein Squezzeserver läuft auf einem Synology NAS DS212+

Ich bekomme im reading:Lastunkowncmd displaynotifyshowbriefly HASH(0x386a1d8) HASH(0x3881d10) 2014-01-30 22:21:24

Wenn ich beide Module rausschmeisse und den "alten" SB_player" einbinde ist alles super.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 31 Januar 2014, 09:28:52
Hi,

Zitat
Is Log wird ebenfalls nichts geschrieben
Bitte für das jeweilige Modul das Attribut verbose auf 5 setzen. Dann kommen so viele Log Einträge, dass die das logfile anschwillt. Mit loglevel = 4 wird nur eingetragen, wann welche Funktion des Moduls aufgerufen wurde, aber keine internen Details der Funktion

Zitat
Ich bekomme im reading:Lastunkowncmd displaynotifyshowbriefly HASH(0x386a1d8) HASH(0x3881d10) 2014-01-30 22:21:24
Das ist eine gewollte Funktionalität. Siehe hierzu Diskussionen weiter vorne im Thread und die Forderung CLI Kommandos direkt absetzen zu können. In diesem Reading werden alle Antworten des SB-Servers abgelegt, die durch das Modul nicht behandeltw erden. Somit kann man mittels set cliraw ein Kommando absetzen und die Antwort aus diesem Reading holen.
Und wenn man das Attribut donotnotify auf false setzt, erzeugt das Modul bei jeder Änderung dieses Readings einen notify, auf den man reagieren kann. Sprich man sendet eine cli message und wertet die Antwort im notify aus. Somit verpasst man auch nichts.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 01 Februar 2014, 13:11:49
There is a strange behavior :
- when I power on / off the SB with FHEM, I get a notify on / off
- when I do it with the button power button or the remote, I do not get it, but the state on the readings changes, which is strange.
Do you have any idea ?
It seems to me it was working normally before, because I use this notify in order to power on/off the subwoofer connected to my boom and I did not notice any problem
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 02 Februar 2014, 19:47:43
Hallo Gemeinde

Da ich ja noch auf meinen Jeelink warten muss, habe ich erst einmal alle moeglichen Multimedia Geraete in FHEM eingebunden. So langsam werde ich auch immer sicherer, in dem, was ich da so mache ;) ! Bei mir flutet der Sueezeserver allerdings das logfile mit:

2014.02.02 19:33:30 1: 192.168.178.100:9000 disconnected, waiting to reappear
2014.02.02 19:33:30 1: 192.168.178.100:9000 reappeared (Squeeze)

Der Server laeuft bei mir auf einem ReadyNAS, und ich habe gerade die neueste Version installiert! Ein RPI als Client laeuft auch, wird aber auch nicht per autocreate angelegt!? NAS und FHEM sind per Kabel im Netz, so dass ich Netzwerkprobleme erst mal ausschliesse!
Kennt einer von Euch das Problem, oder kann mir einen Tipp geben dem Problem auf die Spur zu kommen?

Danke und Gruss

Christoph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 02 Februar 2014, 20:02:30
There is a strange behavior :
- when I power on / off the SB with FHEM, I get a notify on / off
- when I do it with the button power button or the remote, I do not get it, but the state on the readings changes, which is strange.
Do you have any idea ?
It seems to me it was working normally before, because I use this notify in order to power on/off the subwoofer connected to my boom and I did not notice any problem
In subroutine SB_PLAYER_Parse, this works fine for me :
    } elsif( $cmd eq "power" ) {
        if( $args[ 0 ] eq "1" ) {
            readingsSingleUpdate( $hash, "state", "on", 1 );
            #readingsSingleUpdate( $hash, "power", "on", 0 );
            readingsSingleUpdate( $hash, "power", "on", 1 );
        } else {^M
            readingsSingleUpdate( $hash, "state", "off", 1 );
#           readingsSingleUpdate( $hash, "power", "off", 0 );
           readingsSingleUpdate( $hash, "power", "off", 1 );
           readingsSingleUpdate( $hash, "presence", "absent", 0 );
        }
Do not know if you want to do the same for "presence"
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 02 Februar 2014, 20:51:22
Some proposals for SB_PLAYER_Parse :

-you could also add the following , in order not to get "clientdisconnect" and "clientreconnect" notifies :
    } elsif( $cmd eq "client" ) {
        # filter "client disconnect" and "client reconnect" messages

- The volume CLI information is not exactly the same on the boom as the one on the radio : the mixer volume seems to be bugged and returns either "mixer volume %2B1" or "mixer volume -0", but there is always a "prefset server volume xxx" information when you change volume on boom and radio, so the following code would treat both :

    } elsif( $cmd eq "prefset" ) {
        if( $args[ 0 ] eq "server" ) {
            if( $args[ 1 ] eq "volume" ) {
                readingsBulkUpdate( $hash, "volume", $args[ 2], 1);
            } else {
            }
        }

There is also something to change in your code because mixer volume is not always numeric so there is an error  :
Argument "?" isn't numeric in numeric gt (>) at ./FHEM/98_SB_PLAYER.pm line 360, <FILE> line 651.
- For last IR code, add :
    } elsif( $cmd eq "ir" ) {
        readingsSingleUpdate( $hash, "lastir", "$args[ 0 ]", 1);
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 02 Februar 2014, 23:51:19
The playStatus treatment should be corrected  in SB_PLAYER_Parse  :
    } elsif( $cmd eq "pause" ) {
        if( $args[ 0 ] eq "0" ) {
            readingsSingleUpdate( $hash, "playStatus", "playing", 1 );
        } else {
            readingsSingleUpdate( $hash, "playStatus", "paused", 1 );
        }

plus : I do not understand why you use readingsSingleUpdate with last argument = 0 for playStatus
Wouldn't it be better if there is a notify for this ? (it is usefull in my opinion)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 03 Februar 2014, 00:05:44
last little correction in order that lastunknowncommand is displayed correctly :
        # unkown command, we push it to the last command thingy
        readingsSingleUpdate( $hash, "lastunkowncmd",
                              $cmd . " " . join( " ", @args ) , 1 );
                              #$cmd . join( " ", @args ), 1 );
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 03 Februar 2014, 23:04:31
Hallo nochmal

Ich bekomme den Server auf dem ready-NAS nicht per fhem eingebunden!?

Mit verbose 5 konnte ich zumindest mal ein paar sinnvolle Antworten aufzeichnen, allerdings kommen die in einer Tour wieder:

2014.02.03 22:48:16 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.02.03 22:48:16 5: New Squeezebox Server Read cycle starts here
2014.02.03 22:48:16 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.02.03 22:48:16 5: SB_SERVER_Read: called
2014.02.03 22:48:16 5: SB_SERVER_Read(Squeeze): please implelement the sending of the CMDStack.
2014.02.03 22:48:16 5: SB_SERVER_Read: complete command received
2014.02.03 22:48:16 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:<HTML><HEAD><TITLE>405 Method Not Allowed</TITLE></HEAD>...
2014.02.03 22:48:16 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:<BODY>405 Method Not Allowed: </BODY></HTML>...
2014.02.03 22:48:16 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.02.03 22:48:16 5: Squeezebox Server Read cycle ends here
2014.02.03 22:48:16 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.02.03 22:48:16 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.02.03 22:48:16 5: New Squeezebox Server Read cycle starts here
2014.02.03 22:48:16 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.02.03 22:48:16 5: SB_SERVER_Read: called
2014.02.03 22:48:16 1: 192.168.178.100:9000 disconnected, waiting to reappear
2014.02.03 22:48:16 4: SB_SERVER_Ready: called
2014.02.03 22:48:16 4: SB_SERVER_Broadcast: called
2014.02.03 22:48:16 1: 192.168.178.100:9000 reappeared (Squeeze)
2014.02.03 22:48:16 4: SB_SERVER_DoInit: called
2014.02.03 22:48:16 5: SW: listen 1

2014.02.03 22:48:16 5: SW: pref authorize ?

2014.02.03 22:48:16 5: SW: version ?

2014.02.03 22:48:16 5: SW: serverstatus 0 200

2014.02.03 22:48:16 5: SW: favorites items 0 30

Weiss jemand Rat?

Der Player, ein squeezelite auf RPI, wird nicht automatisch gefunden, liegt wohl am Problem mit dem Server, aber wenn ich ihn von Hand eintrage kommt folgendes:

2014.02.03 22:55:58 1: SB_PLAYER_Get: called with Bad ?
2014.02.03 22:56:50 1: SB_PLAYER_Get: called with Bad ?
2014.02.03 22:57:40 5: SB_PLAYER_Set: called with ?
2014.02.03 22:57:40 1: SB_PLAYER_Get: called with Bad ?
2014.02.03 22:57:40 5: SB_PLAYER_Get: Bad: unkown argument
2014.02.03 22:57:40 5: SB_PLAYER_Broadcast(Bad): called with OFF
2014.02.03 22:57:41 5: SB_PLAYER_Broadcast(Bad): called with OFF

Bad ist uebrigens der Ort des Players, nicht das englische "bad"!

Ich weiss bugster ist auf Dienstreise, aber eventuell kann ja jemand anderes einen entscheidenden Hinweis geben. Oder geht meine Kombi etwa gar nicht?

Danke und Gruesse

Christoph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 04 Februar 2014, 09:25:44
Hi,

Zitat
SB_SERVER_Read(Squeeze): please implelement the sending of the CMDStack.
Das hier ist der entscheidende Hinweis: den SB Server ist für FHEM nicht erreichbar. Das FHEM Server Modul speichert erstmal alle Send-Messages der Clients zwischen und sobald die Verbindung aufgebaut ist, schickt er die dann ab.
Ist die IP Adresse des SB-Servers richtig eingegeben?

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 04 Februar 2014, 09:27:49
@oliv06: I believe we should put the modules in contrib area of fhem-sourceforge, so we can both work on the module. What do you think?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 04 Februar 2014, 09:53:16
Hi,
Das hier ist der entscheidende Hinweis: den SB Server ist für FHEM nicht erreichbar. Das FHEM Server Modul speichert erstmal alle Send-Messages der Clients zwischen und sobald die Verbindung aufgebaut ist, schickt er die dann ab.
Ist die IP Adresse des SB-Servers richtig eingegeben?

@bugster

Ja ich bin sicher, dass die Adresse richtig ist!

2014.02.03 22:48:16 1: 192.168.178.100:9000 reappeared (Squeeze)

FHEM findet ihn ja auch, und irgenwie verliert er ihn sofort wieder? Kann man auch sehr schoen im STAT sehen, wechselt staendig off/on!

Brauche ich eventuell noch ein password oder so? Es ist wie geseagt ein Ready-Nas V1

Gruss Christoph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 04 Februar 2014, 14:02:38
@oliv06: I believe we should put the modules in contrib area of fhem-sourceforge, so we can both work on the module. What do you think?
Yes, it is a good idea. If you can tell me how to get access, I would appreciate (I do not speak German so it is difficult for me to find out information in the wiki)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: cutter am 05 Februar 2014, 16:21:30
Hallo

@pc1246

Zitat
Es ist wie geseagt ein Ready-Nas V1

Ich hatte hier schon mal geschrieben das manche Nas den Port 9090 für CLI anderweitig benutzen.
Bei meiner Buffalo LS-Duo wird er für Bittorent benutzt.

@bugster_de

Das mit dem State , zum ein und aus schalten meiner Lautsprecher, bekomme ich genau wie oliv06
nicht hin. Wenn ich über das Web Squeeze-Radio ein und aus schalte geht die Steckdose mit, aber wenn ich am Radio schalte passiert nichts nicht mal eine Meldung im Log.

Schöne Grüße
   
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 05 Februar 2014, 16:54:04
Hallo cutter

Was hat das mit dem Port 9090 zu tun? Es wird doch der Port 9000 benutzt! Bittorent existiert auf dem NAS ist aber nicht aktiv! Ist der Port dann trotzdem belegt, unabhaengig davon, dass ich nicht verstehe was er damit zu tun hat?

Gruss
Christoph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 05 Februar 2014, 23:12:41
Another small typo in SB_PLAYER_Initialize :
#$hash->{AttrList}  .= "fadeinsecs ";
$hash->{AttrList}  .= "fadeInsecs ";

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 06 Februar 2014, 12:04:35
Hallo Cutter
Nachdem ich mich nun ein wenig umgesehen habe, habe ich eine Vorstellung davon, was es mit dem Port 9090 auf sich hat. Da Du ja rein theoretisch das "gleiche" Problem hattest/hast wie ich, wuerde ich gerne wissen, wie Du es umgangen hast?

Danke und Gruss
Christoph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 07 Februar 2014, 09:54:44
Hallo leute,

Zitat
2014.02.03 22:48:16 1: 192.168.178.100:9000 reappeared (Squeeze)
hier wird versucht den Port 9000 zu benutzen. Der ist Standardmässig von Squeezebox für das HTML Interface benutzt. Das FHEM Modul nutzt den CLI Port und der ist Standardmässig auf 9090 gesetzt.
Das erklärt dann auch die "Fehler" die Du hast: der PC unter 192.168.178.100 wird gefunden, dre Port 9000 ist auch da und offen, aber es kommt keine CLI Verbindung zustande --> ergo Abbruch.

Und in verständlichem Deutsch :-)

wenn man am Squeezebox-Server mit den Standard-Einstellungen arbeitet, ist es wie folgt:
Port 9000: hier wird die Webseite des SB-Servers angezeigt (links ide Musikliste, rechts die Player etc. Sprich mit
http://192.168.178.100:9000 ruft man aus seinem Browser heraus diese Steuerung auf
das FHEM Modul benutzt diese Schnittstelle nicht (mehr). Man kann über diese Schnittstelle sehr begrenzt die SB fernsteuern

Port 9090: auf diesem Port befindet sich die sogenannte CLI Schnittstelle. das ist nichts anderes als eine Telnet Verbindung zum SB Server, auf dem man so ziemlich ALLES des SB machen kann und auch den aktuellen Status zurück gemeldet bekommt. Wer mal damit rumspielen will öffnet sich via putty (dem Telnet Programm) eine Session auf diesen Port. Die Dokumentation dazu findet sich im User Interface der Squeezebox unter Hilfe->Technische Informationen


Das heisst also: wenn ihr am Squeezeboxserver nichts verändert habt, dann braucht ihr in FHEM den Port nicht anzugeben:
define myserver SB_SERVER 192.168.178.100Er nimmt dann automatisch den Port 9090. Falls ihr am SB-Server etwas verändert habt, dann muss der Port angegeben werden. Z.B. so:
define myserver SB_SERVER 192.168.178.100:9078
Bitte auch beachten: der genutzte Port (z.B. 9090) muss natürlich durch eine etwaige Firewall auf dem SB-Server Gerät freigeschaltet sein. Sollte also eine Firewall laufen, dann bitte prüfen, dass diese nicht den Port 9090 blockt. Falls ihr euch unsicher seid, dann einfach mit putty eine Telnet Session eröffnen und schauen, ob es dann geht

Und falls FHEM und Squeezebox auf dem gleichen rechner laufen, dann kann man auch den sog. lokalen loop-Back nutzen:
define myserver SB_SERVER 127.0.0.1127.0.0.1 ist immer die lokale Maschine. Somit geht dann die Kommunikation nicht erst über den Router sondern bleibt direkt auf dem lokalen Server. Des reduziert den Netzwerk Traffic.



Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: FHEm2005 am 07 Februar 2014, 11:21:24
Wenn es Probleme mit dem CLI-Port 9090 gibt, weil der vielleicht schon durch andere Dienste belegt ist, kann dieser Port im LMS (Logitech Media Server oder auch SB-Server) unter

Einstellungen - Reiter Erweitert - PulldownMenu Befehlszeilenschnittstelle(CLI)

leicht geändert werden.

Gruß
Eberhard
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 07 Februar 2014, 12:06:01
Hallo
@bugster

Danke, das war dann der entsprechende Hinweis! Ich glaube am Anfang des threads war es noch so beschrieben, das man den Port 9000 mit angeben musste! Aber das zeigt zum Einen, dass man immer bis zum Ende lesen sollte (muehsam  :'( ) und auf jeden Fall am Besten gleich seine Konfigurationszeile mitschickt, dann waere es schon viel frueher klar gewesen!

@FHEm2005

Danke auch Dir, nur war ich ja zum Einen auf der falschen Faehrte, und zum Anderen hatte ich eben doch echt Probleme LMS zu uebersetzen. Mein interner Translator hatte gerade einen Reboot gemacht!  ;)

@all

Dann sollte das ja heute abend sofort laufen. Ich bin absolut fasziniert, was hier geschaffen wurde und wird!

Gruss
Christoph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: FHEm2005 am 07 Februar 2014, 12:44:45
Hallo Christoph,

ich habe die Abkürzung in Klammern erläutert. Wir sind hier nunmal im fhem-Forum und nicht im Squeezebox-Umfeld. Das hefte ich mir an die Brust und werde in Zukunft Abkürzungen aus einem nicht-fhem-Umfeld in Klammern erläutern.

Da ich mich erst seit 1 Monat mit fhem beschäftige, frage ich mich auch sehr oft: "Ich weiß nicht, was soll es bedeuten...." und freue mich deshalb immer wenn Abkürzungen kurz in Klammern ausgeschrieben werden. Das würde mir besonders bei der Commandref gefallen (wo dann die Freude besonders groß wäre).

Viele Grüße
Eberhard
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 10 Februar 2014, 20:21:28
Hallo Leute,

da ich noch keinen FHEM Sourceforge Account habe, hat Oliv06 das Modul jetzt mal für mich in den Contrib Bereich gestellt:

https://github.com/mhop/fhem-mirror/tree/master/fhem/contrib (https://github.com/mhop/fhem-mirror/tree/master/fhem/contrib)

Neueste Version findet sich nun also immer dort und wird somit automatisch beim Installieren der Contribs bereit gestellt.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 11 Februar 2014, 09:16:54
Hallo an Alle

Ich wollte nur noch mal ein Update machen. Es laeuft jetzt alles wie gewollt! Server ohne Port eingerichtet, und sofort war der Client da! Diesen umbenannt und soweit erstmal alles gut! Wenn ich jetzt etwas mehr Zeit habe, werde ich mich dem Ganzen noch intensiver widmen.

Nochmals Danke und Gruss

Christoph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 11 Februar 2014, 09:45:17
Hi,

das freut mich zu hören !

Da nach meinem Bauchgefühl die Menge an Rückmeldungen "bei mir geht es nicht" irgendwie weniger wird, gehe ich mal davon aus, dass das Modul nun ganz brauchbar funktioniert (oder keiner nutzt es :-). Da ich nicht der große Prosa Schreiber bin: mag jemand die Doku dazu im Wiki anfangen?

Die in Sourceforge verfügbare Codeversion ist etwas neuer und hat nun eine stabilere Erkennung des SB-Serverzustandes. Sprich wenn der SB-Server nicht verfügbar ist (weil Computer aus), dann werden auch alle Clients ausgeschaltet. Falls man den SB-Server in hibernate fährt, erkennt er das auch; allerdings kann er ihn dann von FHEM aus nicht aufwecken.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 12 Februar 2014, 02:07:22
Some code changes in SVN :
- handle power notifications better
- events on playStatus and power readings
- suppress "client disconnect" and "client reconnect" CLI messages
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 12 Februar 2014, 10:15:58
Hi,

Zitat
suppress "client disconnect" and "client reconnect" CLI messages
thanks. I saw those messages coming up from the SB side from time to time but couldn't imagine why this was. Have you any idea, why SB is sending those messages?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Absolute Beginner am 12 Februar 2014, 17:52:16
Hallo, danke allen für dieses nette Modul. Zwei Bitten hätte ich dazu (bin Newby):
- wie binde ich Fernbedienung aus Antwort#20 mit ein (nur Stop funktioniert bei mir)? Muss die erst Befehl für Befehl 'angelernt' werden?
- wie kann ich ein Display in die Weboberfläche integrieren, gerne zusammen mit der Fernbedienung?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 12 Februar 2014, 22:30:07
Hi,
thanks. I saw those messages coming up from the SB side from time to time but couldn't imagine why this was. Have you any idea, why SB is sending those messages?
I am not sure. They seem to occur so regularly that they look like heartbeats between SB and server. Do you have the same ?

I have them so often that is it annoying because it fills logfile.
If you think it is of any use for somebody, you could put it back ...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 12 Februar 2014, 22:34:38
- wie binde ich Fernbedienung aus Antwort#20 mit ein (nur Stop funktioniert bei mir)? Muss die erst Befehl für Befehl 'angelernt' werden?
- wie kann ich ein Display in die Weboberfläche integrieren, gerne zusammen mit der Fernbedienung?
Ich gucke mal die Tage nach, wahrscheinlich müssen die Befehle angepasst werden, da sie sich im Laufe der Modul Entwicklung geändert haben.

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 13 Februar 2014, 12:12:07
>>Do you have the same ?
on my side, I saw them once in a while (maybe once a day) and only for remote players (not the squeezeslaves). So I thought it must have been a glitch in the connection and therefore did put the code in to handle it. I don't need that handling in the code, so leave it out.

>>da sie sich im Laufe der Modul Entwicklung geändert haben.
vermutlich. Allerdings sind sowohl die alten als auch die 'neuen', die durch die AV Guidelines dazu kamen beide noch drin. Ggf. könnte man die alten rauswerfen um performance zu verbessern
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 13 Februar 2014, 16:57:14
Also ich habe damals den falschen Code für die Remote hier gepostet, ist aber keinem aufgefallen.
ich werde die Tage mal den richtigen Code einfügen und ggf aktualisieren.
Es setzt sich so zusammen Befehl:Icon vielleicht hilft dir das.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bsl02 am 13 Februar 2014, 17:48:48
Hallo,
meine "unfertige" Remote bisher s.u.  Zur Anpassung hatte ich damals ´rumgebastelt, muss alles noch überprüft werden.
Nicht alle Funktionen laufen...

# Fernbedienung Squeezeplay #130
define rc.squeezeplay130.fmsender remotecontrol
attr rc.squeezeplay130.fmsender group SqueezeboxAudio
attr rc.squeezeplay130.fmsender rc_iconpath icons/remotecontrol
attr rc.squeezeplay130.fmsender rc_iconprefix black_btn_
attr rc.squeezeplay130.fmsender room 41_AUDIO
attr rc.squeezeplay130.fmsender row00 showosd:MENU,up:UP,home:HOMEsym,volumeUp:VOLUP
attr rc.squeezeplay130.fmsender row01 left:LEFT,select:OK,right:RIGHT,mute:MUTE
attr rc.squeezeplay130.fmsender row02 info:INFO,down:DOWN,back:RETURN,volumeDown:VOLDOWN
attr rc.squeezeplay130.fmsender row03 prev:REWIND,Play:PLAY,Stop:STOP,next:FF
#
define n.rc_squeeze130 notify rc.squeezeplay130.fmsender set squeezeplay130.fmsender $EVENT
attr n.rc_squeeze130 group SqueezePlayer2
attr n.rc_squeeze130 room 41_AUDIO

Gruß, Stefan
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 13 Februar 2014, 18:35:41
Das ist meine:
define rc_squeeze remotecontrol
attr rc_squeeze rc_iconpath icons/remotecontrol
attr rc_squeeze rc_iconprefix black_btn_
attr rc_squeeze row00 on:GREEN,off:POWEROFF2
attr rc_squeeze row01 Play:PLAY,Pause:PAUSE,Stop:STOP
attr rc_squeeze row02 Prev:REWIND,Next:FF
attr rc_squeeze row03 volumeUp:VOLUP,volumeDown:VOLDOWN,mute:MUTE
attr rc_squeeze row04 channelUp:CHUP,channelDown:CHDOWN
define notify_rc_squeeze notify rc_squeeze set SB_PLAYER_XXXXXXXXX $EVENT
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 13 Februar 2014, 20:24:06
I do not understand what you would like to use currentMedia for ?
Shouldn't it be the URL of the playing file or stream ? It seems to me that it is redundant with currentPlaylistUrl
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Absolute Beginner am 13 Februar 2014, 22:12:47
@d0np3p3 und bsl02:
Danke - das hat geholfen und nun funktioniert es auch bei mir.
Kann man auch noch ein Displayfenster öffnen, das Titelinfos anzeigt?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bsl02 am 13 Februar 2014, 23:03:00
>Kann man auch noch ein Displayfenster öffnen, das Titelinfos anzeigt?
Jepp, hätte ich auch gern. Geht vermutlich, aber wie?

BTW: Jemand eine Idee, woher diese Einträge im FHEM-Log kommen?
2014.02.13 22:19:06 1: Playmode: play
2014.02.13 22:19:06 1: Playmode: stop
2014.02.13 22:24:08 1: Playmode: play
2014.02.13 22:24:08 1: Playmode: stop
2014.02.13 22:29:08 1: Playmode: play
2014.02.13 22:29:08 1: Playmode: stop
2014.02.13 22:34:08 1: Playmode: play
2014.02.13 22:34:08 1: Playmode: stop
2014.02.13 22:39:10 1: Playmode: play
2014.02.13 22:39:10 1: Playmode: stop
2014.02.13 22:44:10 1: Playmode: play
2014.02.13 22:44:10 1: Playmode: stop
2014.02.13 22:49:10 1: Playmode: play
2014.02.13 22:49:10 1: Playmode: stop
2014.02.13 22:54:12 1: Playmode: play
2014.02.13 22:54:12 1: Playmode: stop
2014.02.13 22:59:12 1: Playmode: play
2014.02.13 22:59:12 1: Playmode: stop
2014.02.13 23:04:12 1: Playmode: play
2014.02.13 23:04:12 1: Playmode: stop
2014.02.13 23:09:14 1: Playmode: play
2014.02.13 23:09:14 1: Playmode: stop

Grüße, Stefan
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 14 Februar 2014, 12:37:23
@oliv06: I believe, we should open up a second threat for "Squeezebox Development". This threat seems to be more and more on the usage of the module (which I like a lot)
currentMedia: I had introduced that for keeping what ever is playing at moment: iD, mp3 file name or internet stream in order to figure out what could be done here. There doesn't seem to be a query like "what is currently playing?"
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: weltspion am 14 Februar 2014, 13:27:15
Zunächst einmal vielen Dank für die Entwicklung des Sqeezebox Moduls! Grundsätzlich macht es, was es soll.  :)

Ich habe jedoch folgendes Problem: Ich möchte beim Start meiner SB Touch (läuft nur im Client Modus) automatisch den Verstärker einschalten, welcher an einer Steckdose HM-LC-SW1-PL2 hängt. Der LMS läuft auf einer QNAP NAS.

Ich habe dazu folgendes definiert:

define Steckdose_Bad_on notify SB_Bad:(on.*|play) { fhem "set Steckdose_Bad_Musik on" }
define Steckdose_Bad_off notify SB_Bad:off.* { fhem "set Steckdose_Bad_Musik off" }

Über die FHEM Oberfläche funktioinert alles super: Wenn ich über das Squeezbox Modul die SB Touch einschalte oder die Wiedergabe starte, schaltet sich auch die Steckdose ein. Ausschalten ist auch kein Problem.

Schalte ich die SB Touch jedoch über den Touchscreen des Gerätes ein, schaltet sich die Steckdose nicht ein oder aus.

Wo ist mein Fehler? Liegt es am Squeezebox Modul oder an meiner Definition?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: AET_FHEM am 14 Februar 2014, 15:44:48
Hallo,

Top Modul
gibt es auch die Möglichkeit von der Sqeezebox an FHEM zu senden

zB.: ich wache auf mit Sqeezebox (Wecker)
--> mach den Wecker aus der Sendet an FHEM Wackup und macht das Licht an Garage auf usw.....
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 14 Februar 2014, 17:29:46
@weltspion

What works with my SB boom to power on the subwoofer with it :
define SB_boom_onoff_n notify SB_boom:(on|off) set subwoofer $EVENTNeeds to have this in your SB definition :
attr SB_boom donotnotify false
In order to find out if it there is a bug in the module or if the Touch has another behavior,  check what events are generated by the SB server on one hand :
telnet sbserver 9090
listen 1

and on fhem on the other hand :
telnet fhem 7070
inform on SB_boom.*

Do you have last version from the SVN (power on/off event handling was changed)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: weltspion am 14 Februar 2014, 20:53:29
Hi oliv06,

thanks for your quick response.

I switched the donotnotify to false, as noted in your post.

Then I listened to the Squeezebox Server using telnet while starting the SB Touch, pressing play, pause, an play again:

00%3A04%3A20%3A22%3A3b%3A04 power 1 0 seq_no%3A158
00%3A04%3A20%3A29%3A0b%3A32 menustatus ARRAY(0xcf09378) add 00%3A04%3A20%3A29%3A0b%3A32
00%3A04%3A20%3A17%3A64%3A60 prefset server power 1
00%3A04%3A20%3A17%3A64%3A60 menustatus ARRAY(0xcf0b0f8) add 00%3A04%3A20%3A17%3A64%3A60
00%3A04%3A20%3A22%3A3b%3A04 prefset server power 1
00%3A04%3A20%3A22%3A3b%3A04 menustatus ARRAY(0xcd6b018) add 00%3A04%3A20%3A22%3A3b%3A04
00%3A04%3A20%3A17%3A64%3A60 displaynotify showbriefly HASH(0xceb30b8) HASH(0xced68e0)
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xcf1b238) HASH(0xced6d80)
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xca31e00) HASH(0xc629790)
00%3A04%3A20%3A22%3A3b%3A04 pause 0
00%3A04%3A20%3A22%3A3b%3A04 playlist jump 0
00%3A04%3A20%3A17%3A64%3A60 playlist open http%3A%2F%2Fuwstream2.somafm.com%3A8808%2F
00%3A04%3A20%3A17%3A64%3A60 playlist open http%3A%2F%2Fuwstream2.somafm.com%3A8808%2F
00%3A04%3A20%3A17%3A64%3A60 displaynotify showbriefly HASH(0xcd9a790) HASH(0xcd65938)
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xcf06e40) HASH(0xc801a50)
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xc019750) HASH(0xcf06468)
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xcd99418) HASH(0xcd62fd8)
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xcd6b018) HASH(0xcf1b1d8)
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xcd47038) HASH(0xcd71350)
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xcc4c368) HASH(0xceb2ba8)
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xcb59eb8) HASH(0xc903940)
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xbcf5578) HASH(0xcd9c840)
00%3A04%3A20%3A17%3A64%3A60 playlist newsong SomaFM%3A%20Lush%20(%231%20130k%20aac)%3A%20Se
s%2C%20mostly%20female%2C%20with%20an%20electronic%20influence. 0
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xcdbe990)
00%3A04%3A20%3A22%3A3b%3A04 pause 1
00%3A04%3A20%3A17%3A64%3A60 playlist pause 1
00%3A04%3A20%3A22%3A3b%3A04 menustatus ARRAY(0x8785618) add 00%3A04%3A20%3A22%3A3b%3A04
00%3A04%3A20%3A22%3A3b%3A04 displaynotify showbriefly HASH(0xcb06eb8)
00%3A04%3A20%3A22%3A3b%3A04 pause 0
00%3A04%3A20%3A17%3A64%3A60 playlist pause 0
00%3A04%3A20%3A22%3A3b%3A04 menustatus ARRAY(0xc823890) add 00%3A04%3A20%3A22%3A3b%3A04
00%3A04%3A20%3A17%3A64%3A60 newmetadata
00%3A04%3A20%3A17%3A64%3A60 playlist newsong Goldfrapp%20-%20Deer%20Stop

Looks not too bad in my opinion.

I tried to listen to FHEM port 7070, but failed to connect (FHEM runs on FritzBox here). Instead of that I had a look at the events protocol of the FHEM frontend. It paged the following messages while pressing power, and play:

2014-02-14 20:39:55 SB_PLAYER SB_Bad lastunkowncmd: prefsetserver power 1
2014-02-14 20:39:55 SB_PLAYER SB_Bad lastunkowncmd: menustatusARRAY(0xbcf33b8) add 00:04:20:22:3b:04
2014-02-14 20:39:56 SB_PLAYER SB_Bad currentArtist:
2014-02-14 20:39:56 SB_PLAYER SB_Bad currentAlbum:
2014-02-14 20:39:56 SB_PLAYER SB_Bad currentTitle: NRJ Classic RnB
2014-02-14 20:39:56 SB_PLAYER SB_Bad signalstrength: 100
2014-02-14 20:39:59 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xcf07740) HASH(0xc1c43c0)
2014-02-14 20:39:59 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xc8ab5f0) HASH(0xce5fe58)
2014-02-14 20:39:59 SB_PLAYER SB_Bad playStatus: paused
2014-02-14 20:40:00 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xcd48828) HASH(0xc1c7210)
2014-02-14 20:40:01 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xce60708) HASH(0xc1c7580)
2014-02-14 20:40:01 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xc0b6a18) HASH(0xc1d1718)
2014-02-14 20:40:01 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xcf05e98) HASH(0xc96fbf0)
2014-02-14 20:40:02 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xcf187d8) HASH(0xbd0a370)
2014-02-14 20:40:02 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xbe3c748) HASH(0xcf161c0)
2014-02-14 20:40:02 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xc8ae6f0) HASH(0xcdb9318)
2014-02-14 20:40:02 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xc97ab08) HASH(0xcf06068)
2014-02-14 20:40:03 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xc1c3e00) HASH(0xc36ef68)
2014-02-14 20:40:03 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xcc1b318) HASH(0xcd68bc0)

Interestingly I got no play signal, or anything looking like a play status. Only playStatus: paused is sent.

A quick toggle between pause and play looks like this:

2014-02-14 20:41:29 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xc94a9e8)
2014-02-14 20:41:29 SB_PLAYER SB_Bad playStatus: paused
2014-02-14 20:41:29 SB_PLAYER SB_Bad lastunkowncmd: menustatusARRAY(0xca49448) add 00:04:20:22:3b:04
2014-02-14 20:41:31 SB_PLAYER SB_Bad lastunkowncmd: displaynotifyshowbriefly HASH(0xc938ac8)
2014-02-14 20:41:32 SB_PLAYER SB_Bad playStatus: paused
2014-02-14 20:41:32 SB_PLAYER SB_Bad lastunkowncmd: menustatusARRAY(0xce5cab0) add 00:04:20:22:3b:04

I hope these logs may help you. Any help is appreciated!

regards
Torsten

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 14 Februar 2014, 21:23:21
Zitat
zB.: ich wache auf mit Sqeezebox (Wecker)
--> mach den Wecker aus der Sendet an FHEM Wackup und macht das Licht an Garage auf usw.....
ja das geht theoretisch, ist aber noch nicht fertig implementiert.

-->oliv06: the code for that is in the Parse function under alarm. It treats the SB-Server feedback but has only comments in it yet.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 15 Februar 2014, 23:44:09
@weltspion

What is the MAC address on your Touch ? On your CLI log it seems there are 3 SB . Is it 00:04:20:22:3b:04 ? (which appears as 00%3A04%3A20%3A22%3A3b%3A04)

Could you check you have installed very last version : http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/98_SB_PLAYER.pm (http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/98_SB_PLAYER.pm)

With this one you should not have the behavior about playStatus always paused because it interprets correctly the CLI pause messages :
pause 0 = play
pause 1 = pause
(lines 396-401 of the code)

And if your MAC is 00:04:20:22:3b:04 according to the log it should be OK
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: akw am 18 Februar 2014, 01:54:40
Bugster,

Das Modul ist echt geil, danke dafür. Ich muss Unterstützung dafür unbedingt in FHEMobile einbauen. Dann muss ich, um die Lautstärke zu ändern oder Pause zu Drücken nicht mehr extra auf iPeng switchen :-)

Ciao, akw
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 18 Februar 2014, 08:19:33
Hi,

Danke für die Blumen :-) Brauchst Du Info zum Modul, um es in FHEMmobile rein zu packen?

Persönlich finde ich ja die iPENG App eine der genialsten Apps im iOS Umfeld, aber seit die Hauptfunktionen der SB nun in FHEM drin sind, brauche ich die App auch eher nur sporadisch.

Viele Grüße
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: weltspion am 19 Februar 2014, 21:52:51
Could you check you have installed very last version : http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/98_SB_PLAYER.pm (http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/98_SB_PLAYER.pm)
Hi oliv06!

I was running a version from January, 29th (?) - restarting the system with the lastest pm files fixed my problem immediately! Thank's for your valuable help...  8)

Wouldn't it be a great idea to add some release infomation into the header of the coding? That would - in my opinion - help the user identifying the current version running. Just my two pence from lessons learned with this issue.

Many thanks for your effort in creating and maintaining this cool application!

Regards,
Torsten

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 21 Februar 2014, 07:55:28
Tips & tricks

If you want to use SB notifications, it is highly recommanded to filter them in order to limit them, e.g.

attr SB_boom donotnotify false
attr SB_boom event-on-change-reading .*
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: akw am 21 Februar 2014, 08:10:00
Brauchst Du Info zum Modul, um es in FHEMmobile rein zu packen?
Mal schauen,
auf jeden Fall müssen die Events bei Zustandsänderungen gesendet werden, sonst kriegt FHEMobile nix mit.
Ich kann aus FHEMobile heraus übrigens auch iPENG (7) starten. (x-callback-url) Ich glaube ich kann damit iPENG auch sagen, in welchen Screen es gehen soll. Damit muss ich mal experimentieren.

Für FHEMobile wollte ich erstmal nur einen Volume-Drehknopf, Play/Stop/Pause, Prev und Next einbauen. (Und ne Statusanzeige).

Ciao, Arno
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 21 Februar 2014, 12:21:45
Hi,

na diese Features reichen doch schon mal ganz schön weit.

Die Events werden gesendet wenn man das Attribut donotnotify auf false setzt (ist per default auf true, sprich default sind keine notifies).
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: akw am 22 Februar 2014, 14:33:21
Hi bugster,

ich hab einen kleine Bug gefunden:
Bei "volume" fehlt im Log ein Doppelpunkt. (FHEMobile braucht den zum Parsen der Zeile, da ein Leerzeichen auch was anderes bedeuten kann:

2014-02-22_14:27:46 SB_PLAYER_015413834551 volume 27
2014-02-22_14:27:49 SB_PLAYER_015413834551 playStatus: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 currentArtist: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 currentAlbum: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 currentTitle: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 signalstrength: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 shuffle: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 repeat: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 currentPlaylistName: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 currentPlaylistUrl: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 playStatus: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 playStatus: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 playStatus: ?
2014-02-22_14:27:49 SB_PLAYER_015413834551 playStatus: ?
2014-02-22_14:28:27 SB_PLAYER_015413834551 volume 34
2014-02-22_14:29:10 SB_PLAYER_015413834551 volume 39
2014-02-22_14:29:51 SB_PLAYER_015413834551 stop
2014-02-22_14:29:51 SB_PLAYER_015413834551 playStatus: stopped

Wie man sieht, ist der Doppelpunkt bei den anderen Befehlen da!
Würdest Du das updaten?

Achja, nochwas:

Bei "volume 0" geht der Wert auf "muted" (sollte besser ein integer bleiben).
Bei "mute") passiert bei mir gar nichts.
Mit mute/unmute sollte man die vorherige Lautstärke (die aus "volume") zurückholen können.
Es sollte ein weiteres reading "mutestatus" oder so geben mit den Werten 0 oder 1..


Ciao, Arno
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: akw am 22 Februar 2014, 17:03:07
So oder so ähnlich wird's werden:

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Alaska am 23 Februar 2014, 23:50:07
Vielen Dank für das Spitzenmodul!!!

Ich hab den LMS zusammen mit Fhem auf auf einer Dockstar am laufen, in mehreren Räumen Squeezeplug auf RPi's installiert und in Bad und Küche mit dem WeekdayTimer festgelegt, dass die mit meinem Lieblingsradiosender laufen. Das täglich sobald ich aufgestanden bin bis zum rausgehen aus der Türe. Läuft spitze und sehr stabil!

bye

Klaus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 24 Februar 2014, 12:31:12
@akw: nutze doch einfach das volumeStraight reading. Das geht von 0..100. Das volume reading entspricht den Vorgaben für FHEM Multimedia-Module und da würde ich ungerne was ändern wollen.

@Alaska: Danke für die Blumen. Die Idee ist natürlich cool, die Radios dann beim Verlassen des Hauses automatisch auszuschalten. Like !

Achso: ich kämpfe immer noch mit meinem SB-Server Hibernate: wenn ich den Server aus dem Hibernate hole, dann erkennt FHEM jetzt zuverlässig, dass der Server und die Player wieder da sind. Aber die ersten Befehle, die ich absetze kommen irgendwie nicht durch. Ich muss dann immer die SB-Seite mittels iPENG zum Abspielen überreden. Hat jemand ebenfalls Erfahrungen mit SB-Server Hibernate? Ich finde das Problem nicht.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Alaska am 24 Februar 2014, 13:20:16
hmmm.....meinen SB-Server schicke ich nie in den Hibernate, da fhem und SB-Server auf meiner Dockstar laufen....also always on. Sorry da kann ich leider nicht weiter helfen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: sylvester am 26 Februar 2014, 08:32:01
Hallo,

zunächst vielen Dank für die Entwicklung des Moduls. Ich habe inzwischen meine rudimentären Ansätze mit den beiden Modulen erfolgreich ersetzt.

Ich würde nun allerdings gerne in meinen Floorplan Icons für allalarms und mute einfügen.
Ich habe dazu entsprechend für alle Player dummies eingefügt und ein Icon für on und off zugewiesen.
Wie bekomme ich die dummies aber nun synchron zum tatsächlichen Status des Players?

Kann man ggf. den mute-Befehl noch erweitern?
set mySqueezebox mute => toggelt den mute-Status
set mySqueezebox mute enable => schaltet stumm
set mySqueezebox mute disable => schaltet auf die vorige Lautstärke zurück

Viele Grüße

Stephan
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: AET_FHEM am 26 Februar 2014, 11:34:44
Hallo,

gibt es eine Möglichkeit das aktuelle Wetter auf der Squeezebox anzuzeigen beim wecken?

als Text oder ICON ??
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 26 Februar 2014, 18:28:12
Ich habe auf einen Raspberry Squeezeplug installiert und lasse über eine USB Soundkarte auf einer kleinen Box die Audioausgabe laufen. Wenn ich aber über "talk" test senden will, bekomme ich nur helles gequacke. Keine Ahnung ob vielleicht die Geschwindigkeit zu hoch ist oder so?! Oder ein Codecproblem?
Jemand das Problem schon gehabt? Oder eine Idee wie ich das Problem Troubleshooten kann?
Wenn ich den google-tts Link aus den Readings in den Browser kopiere funktioniert die Ansage einwandfrei.

Ansonsten tolles Modul!  :)

EDIT: Hat sich geklärt, squeezeslave hat den Fehler, mit SqueezeLite funktioniert es.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 26 Februar 2014, 19:31:50
Hi,

Wollte ich dir gerade schreiben. Mit den squeezeslaves kommt nur gquicke, mit allen anderen Playern geht es.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 26 Februar 2014, 19:47:30
Wahrscheinlich hätte ich das gefunden wenn ich länger gesucht hätte. So hab ich ne Stunde Fehlersuche betrieben, geschieht mir Recht.  ;D :P

Wird das Modul demnächst ins offizielle SVN eingecheckt? Kann man irgendwo den Status dazu verfolgen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 26 Februar 2014, 20:27:31
Das Modul ist bereits im Contrib Bereich eingecheckt. Um es in den offiziellen Bereich zu schieben muss noch Dokumentation gemacht werden. Ich bin aber nicht so der grosse Doku Schreiber. Falls sich hier also ein Freiwilliger findet ...

@Art_fhem: du kannst Text auf dem Display des Players ausgeben z.B. das Wetter. Wie man das Wetter nach Fhem bekommt findet sich im Forum. Grafik geht meines Wissens nach nicht.
Aktuell ist im Modul noch kein Handling der Alarmmeldungen implementiert. Sollte aber möglich sein, da SB ein Event schickt, wenn ein Alarm runter geht. Allerdings muss das Modul das dann auf eine Variable schreiben, auf die man dann per notify reagieren kann. Ist architektonisch aus meiner Sicht etwas unschön, weshalb ich das bisher nicht implementiert hatte. Ich schaue mir das mal an.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 04 März 2014, 18:18:42
Ich habe hier gelesen, dass überlegt wurde, bei einem "talk" Aufruf die Wiedergabe zu pausieren, dem Text wiedergegeben zu lassen, und die vorherige Wiedergabe fort zu setzen. Ist das noch in Planung?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 04 März 2014, 22:06:54
Naja, eher mit Pro 97. Es ist gar nicht so einfach heraus zu finden was aktuell gespielt wird um dann dorthin wieder zurück zu kehren
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 04 März 2014, 23:32:45
Ich habe hier gelesen, dass überlegt wurde, bei einem "talk" Aufruf die Wiedergabe zu pausieren, dem Text wiedergegeben zu lassen, und die vorherige Wiedergabe fort zu setzen. Ist das noch in Planung?
I have plans to implement the feature in the module but at the present time I have a problem because you need to wait until the talk command is finished and I see no simple way to know when it is

In the meantime a quick and dirty workaround is to wait for a while, hoping it is ok :
set SB_boom cliraw playlist save temp_playlist_SB_boom
set SB_boom talk hello world
sleep 10
set SB_boom cliraw playlist resume temp_playlist_SB_boom
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 05 März 2014, 00:07:40
Hi,

ich bin am verzweifeln. hab die Module ins Verzeichnis geladen aber bekomme nicht zum laufen.
wenn ich ein Modul mit reload aufrufe kommt immer folgendes:

Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 67 at ./FHEM/97_SB_SERVER.pm line 11.

ansonsten sagt er beim speichern der fhem.cfg immer "Cannot load Module SB_SERVER"

kann mir jemand helfen?

Was mach ich falsch?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 05 März 2014, 07:48:01
Keine Ahnung was passiert ist aber es hat sich wohl über Nacht selbst repariert. Jetzt läuft es. Ich bin begeistert!!!!!!   :D
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 05 März 2014, 09:07:25
I have plans to implement the feature in the module but at the present time I have a problem because you need to wait until the talk command is finished and I see no simple way to know when it is

In the meantime a quick and dirty workaround is to wait for a while, hoping it is ok :
set SB_boom cliraw playlist save temp_playlist_SB_boom
set SB_boom talk hello world
sleep 10
set SB_boom cliraw playlist resume temp_playlist_SB_boom

This method looks good. It is enough for my needs at the moment. Thanks for your quick response!

Isn't there someting like a telnet session which gives an output of currently status changes like the player stopped? The XBMC TCP session works like that and so the XBMC fhem module can generate Events in fhem. But i think if it would be so easy you would know it already.  ;)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 05 März 2014, 11:26:41
Isn't there someting like a telnet session which gives an output of currently status changes like the player stopped? The XBMC TCP session works like that and so the XBMC fhem module can generate Events in fhem. But i think if it would be so easy you would know it already.  ;)
This is also the way the module works.
I have some ideas but I need to experiment.
Ideas about syntax will be also appreciated in the development thread
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 06 März 2014, 01:29:15
Ich hab mir da mal was zam gebastelt. Hat jemand ne Idee wie man den Tag automatisch immer aktuell oder am besten auf alle setzen kann.

define wr_wakeupChange notify wakeupChange {fhem("set SqueezeboxSchlafzimmer alarm1 set 4 %:00")}
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 12 März 2014, 12:53:14
@DJAlex: verstehe nur Bahnhof. Was möchtest Du genau machen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 12 März 2014, 18:35:50
I have plans to implement the feature in the module but at the present time I have a problem because you need to wait until the talk command is finished and I see no simple way to know when it is

In the meantime a quick and dirty workaround is to wait for a while, hoping it is ok :
set SB_boom cliraw playlist save temp_playlist_SB_boom
set SB_boom talk hello world
sleep 10
set SB_boom cliraw playlist resume temp_playlist_SB_boom

Today it was the first time for me to test your workaround. The resume or save command doesn't work at me. Where is the playlist save and how can i control an successful save? Do i have to see it in the squeezer android app under playlists?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 12 März 2014, 18:48:32
Ich würde gerne an einer stelle zentral alle Weckfunktionen auf die richtige Uhrzeit stellen das funktioniert auch bis jetzt ganz gut. Mit wakeupchange kann ich die Uhrzeit einstellen wann das Locht angehen soll. Jetzt hätt ich gern das der Wecker der Squeezebox sich automatisch auf die Uhrzeit sellt die im wakupchange steht. Das notify von mir klappt soweit auch. Allerdings gibts da zwei Probleme. Das erste hat was mit der Formatierung der Uhrzeit zu tun das klappt. Das klappt so wenn keine Uhrzeiten mit 2 stelliger Stunden zahl angegeben werden. Schlimmer ist das ich zum stellen des Weckers immer den Tag mit angeben muss. In meiner Codezeile ist das die 4 Deshalb die Frage wie stelle ich die Weckzeit tagesunabhängig? Oder für alle Tage auf einmal?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 12 März 2014, 18:55:08
Mit Komma kann man mehre Tage setze also 0,1,3,5 zumindest direkt per cli

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 12 März 2014, 21:08:57
Tage mit komma trennen sollte auch gehen. Ein Kommando für alle Tage hat die SB nicht (ergo FHEM auch nicht)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 12 März 2014, 23:28:37
@siggi85 :

Zitat
The resume or save command doesn't work at me. Where is the playlist save and how can i control an successful save?
You can check on the SB server web interface ( http://myserver:9090/ ) that your playlist exists. In order to be able to save playlists you need first to go in SB server settings (button in lower right corner of the web interface) and define the place where they are saved

Zitat
Do i have to see it in the squeezer android app under playlists?
I had to struggle with the app in order to find out how to use it but it eventually seems quite nice. PLAYLIST contains the current playlist, not saved playlists...


Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 12 März 2014, 23:57:25
Vielen Dank Leute!!!!

Funktioniert super. Ich stell hier mal mein Teil aus der fhem.cfg rein vielleicht kanns jemand brauchen hab des ganze mit nem Siri Proxy am laufen um die Weckzeit per Siri für alles auf einmal zu stellen. Wenns jemand verbessern kann darf er das gerne tun. Ich könnt mir vorstellen das die Geschichte mit alter Wecker löschen neuer setzen schöner lösbar ist als ich es gemacht hab.

define wakeup at *6:50 {\
  if (!$we) {\
   {fhem("set Nachttischlampe 100 3600 600") }\
   {fhem("define wakeup2 at +00:20:00 set Nespresso on") }\
 }\
}
define wakeupChange dummy
attr wakeupChange setList state:time
attr wakeupChange webCmd state
define n_wakeupChange notify wakeupChange {fhem("modify wakeup *%");;}
define d_wakeupChange notify wakeupChange {fhem("set SqueezeboxSchlafzimmer alarm1 delete")}


define wr_wakeupChange notify wakeupChange {fhem("set SqueezeboxSchlafzimmer alarm1 set 1,2,3,4,5 %:00")}

Ist alles wild zusammen kopiert!

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 13 März 2014, 08:26:08
You can check on the SB server web interface ( http://myserver:9090/ ) that your playlist exists. In order to be able to save playlists you need first to go in SB server settings (button in lower right corner of the web interface) and define the place where they are saved

I think this could be the solution. I will check this and report back. :)

EDIT: It worked. Thanks! :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 14 März 2014, 15:20:47
I am sorry, but i have on more question to my TTS problem. How can i delete a playlist from my LMS? If nothing is playing and i start the commands, the old saved playlist starts after saying my TTS text.
I think i can avoid this deleting the playlist after resuming it. But after studying the commandref of the LMS CLI in the LMS help Section nothing worked for me. Any advice would be nice. :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 14 März 2014, 16:53:29
you might be checking the FHEM Module about the play status. If it is "playing" then you resume, if it is "paused" or "stopped", then you don't have to resume.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 15 März 2014, 17:09:08
@siggi85 & bugster_de :
I have written some code changes in order to take care about this.

It adds the following commands :
    save : saves the current playlist + the current status + the current playStatus
    recall : recalls all of them, but if a talk is playing or pending, wait for its ending before playing
it also adds some Readings :
   talkStatus
   savedPlayStatus
   savedState

I can send it you by mail if you want to test and give me some feedback
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 17 März 2014, 09:47:32
Hi oliv,

sure ! Send that and I'll try it out. Although I have to admit, that I have no real use-case for the talking feature. I implemented it initially just because it worked :-). So don't exepect a too thorough testing of this feature.

What I need to look at is the behaviour of the connection to the SB-Server: it has been running fine for weeks now, but since a week, I get get disconnects even if the SB-Server is up and running. I have no clue why that is
I had no time so far to check if my sourceforge account works for commiting (and can get a working copy)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 17 März 2014, 17:38:21
Oliv send me his New Version but i think i will not have time to test it the next few days.  :-\ I will Report back when i had the time.

EDIT: Ok I took the time and tested it. :)
This is the code I've tested:
set bad_squeezelite save;set bad_squeezelite talk Das ist ein Test;set bad_squeezelite recall
When something is playing it worked good. The only thing is that the song starts from beginning. Doesn't know if you can save the part of the song where it stopped?! With radio streams there is no problem, work as expected.  ;)

When I try the code when noting is playing: nothing happens, not even the talk command. I don't want to add a perl if condition to the play status. I always try to keep it simple where it is possible.

Here the output of the logfile while trying the code when nothing is playing.
2014.03.17 18:58:26 1: SB_PLAYER_Set: talk: bad_squeezelite: http%3A%2F%2Ftranslate.google.com%2Ftranslate_tts%3Ftl%3Dde%26q%3DDas%2Bist%2Bein%2BTest
2014.03.17 18:58:26 1: SB_PLAYER_Set: recall on stopped
2014.03.17 18:58:26 1: SB_PLAYER: recall : paused
2014.03.17 18:58:27 1: SB_PLAYER: no recall pending - talkstatus = requested

The save and the recall command is the right way! Thanks for your work!  :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 18 März 2014, 10:46:02
Problem seit fhem update:

ich habe letzte Woche ein FHEM Update gemacht und habe seither Probleme:
wenn ich den PC, auf dem SB-Server läuft ausschalte, geht in FHEM der Status des Servers auf disconnected --> korrekt
wenn ich nun den PC wieder einschalte, dann geht er nicht mehr auf open --> Fehler
ich muss dann jedemals in der SB_SERVER detailansicht auf DEF gehen und modify anklicken. Dann geht es. Es scheint mir, als ob SB_SERVER_Ready nicht mehr angesprungen wird.
Kennt jemand das Problem auch?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 18 März 2014, 13:32:44
Also ich nicht, liegt aber daran dass das Gerät 24/7 bei mir läuft.  ::)
Sobald ich Zeit habe werde ich mal testen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 18 März 2014, 13:39:15
When something is playing it worked good. The only thing is that the song starts from beginning. Doesn't know if you can save the part of the song where it stopped?!
Using the SB server CLI I think there is no way to do better

Zitat
When I try the code when noting is playing: nothing happens, not even the talk command.
Bug ! I have to change the code, but I have no time just right now. I will tell you.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 18 März 2014, 13:42:11
Using the SB server CLI I think there is no way to do better
No Problem. The TTS isn't speaking all the time.  ;)

Bug ! I have to change the code, but I have no time just right now. I will tell you.
Nice. No problem, take the time you need!  :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 23 März 2014, 00:48:42
New feature :
The save / recall feature has been implemented in the last (5302) SVN version.
It allows to save/recall the current playlist + the state (on/off) + the playingStatus (playing/stopped/paused).
Restriction : recall will play from the beginning of the current track of the saved playlist except for radios where behavior is more natural.

It is designed so that if talk commands are pending, the recall command will wait until the end of the talk. You can stack several talk commands (which is useful because of the size limitation of the google TTS feature)

set SB_boom save
set SB_boom talk 1
set SB_boom talk 2
set SB_boom recall

Would you think useful to add a "speak" command which would have the same behavior (go into the talk mode) but allow to play a prerecorded track ?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 27 März 2014, 17:31:19
Hi,

today i had the time to implement the new version of the contrib section. But now i get an error all the time. Can you please check that?

2014.03.27 17:27:55 0: ERROR: Cannot autoload SB_PLAYER
2014.03.27 17:27:55 3: wz_squeezebox_server: Unknown code SB_PLAYER:b827eb1202e5:name bad_squeezelite, help me!
2014.03.27 17:27:55 1: reload: Error:Modul 98_SB_PLAYER deactivated:
 Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 63 at ./FHEM/98_SB_PLAYER.pm line 13.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dittel am 27 März 2014, 18:53:26
Mal eine grundlegende Frage zum Mediaserver auf schwacher (Pi) Hardware. Hat beim streamen von InternetURL´s über den eigenen Server auf dem Pi irgendwelche Qualitätseinbußen im Gegensatz zum Link über mysqueezebox.com oder bilde ich mir das nur ein? Der Link wird doch nur weitergegeben und nicht noch irgendwie gewandelt oder sonstwie formatiert bzw. der Stream berechnet oder?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Alaska am 27 März 2014, 19:49:11
ich kann nix feststellen, habe den LMS auf einer Dockstar installiert und streame teilweise auf drei Clients gleichzeitig (alles Pi's mit Squeezelite). Auch wird auf jedem Client was anderes wiedergegeben, meistens Webradio, Deezer und was von der Festplatte, alles gleichzeitig und parallel (tja, die kids hören ihr Zeugs, und ich halt meins ;-). Selbst wenn ich alle drei Clients synchron schalte und in jedem Raum den gleichen Stream höre, kann ich nichts ausssergewöhnliches raushören. Konnte bisher keine Einbussen in Qualität usw. feststellen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: d0np3p3 am 27 März 2014, 23:03:05
Ich habe den Eindruck das der lms auf meinem pi besser läuft als auf der dockstar, auf die Qualität dürfte das eigentlich keinen Einfluss haben, außer es sind vielleicht unterschiedliche Streams.

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dittel am 28 März 2014, 00:58:06
Da im Webstream der Pi mit unter 20% Last arbeitet, gehe ich mal davon aus Tomaten auf den Ohren zu haben.  :P

Kann man das Passwort noch verschlüsseln, wie im FHEMWEB? Ist das eigentlich nur für den Account für mysquezzebox.com gedacht? Den braucht man doch bei eigenem Server nicht mehr zwingend?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 28 März 2014, 15:58:59
Hallo,

ich nutze FHEM auf einer FritzBox 7490 und habe gerade mal dein Modul ausprobiert. Es funktionierte soweit, dass ich den Server (Synology Diskstation) definiert habe und es wurden die zwei Player (2 rpi) gefunden. Dann ist jedoch das FHEM abgestürzt. Also FritzBox neu gestartet und ein bisschen mit den Playern rumgespielt: Favoriten ausgewählt, Play-Befehl gesetzt -> FHEM wieder abgestürzt (aber Player lief). Also habe ich erstmal alles wieder runtergeschmissen.

Hat jemand eine Idee bezüglich der Abstürze, da ich den LMS gern auch mit FHEM nutzen würde...

Gruß
Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: piwy am 28 März 2014, 17:33:19
Hey,

werden bei euch die Readings vom Alarm nach einem Shutdown oder rereadcfg wieder richtig gesetzt?
Im Statefile stehen sie bei mir drin, aber nach einem rereadcfg steht alarmid1 wieder auf none, obwohl es vorher gesetzt war.
Anschließend können mit der falschen alarmid leider keine Weckzeiten mehr gelöscht werden =( Ich muss dann immer manuell an der Squeezebox alle alten Einträge löschen...

Gruß
piwy
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dittel am 29 März 2014, 10:49:53
...die Alarme hab ich noch nicht probiert, kann dazu noch nix sagen, aber manchmal wird die Touch beim auslösen von Play nur eingeschalten, steht aber weiter auf angehalten. Das ist auch manchmal mit der IR problematisch, dann muss ich erst Stop drücken und dann noch mal auf Play. Kennt das Problem jemand? Gibts dafür nen Workaround?

EDIT: das ist wie ich mitbekommen habe immer der Fall wenn das Radio über den Sleep Modus abgeschaltet wurde. Ein starten des Websteams mit play oder ongeht dann nicht bei mir. Es schaltet zwar ein, aber spielt nicht weiter.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: moonsorrox am 30 März 2014, 03:01:11
EDIT;// habe mir mal die Module angeschaut und in denen stand nur Müll drin, da kann das auch nicht gehen...
Jetzt sind die Inhalte der Module richtig und zumindest hat er mir die Player angelegt, aber funktionieren tut noch nix...

ich habe mir heute mal die beiden Module aus dem Github genommen und in den FHEM Ordner gepackt.

das define einfach mal erstellt
define sbsrv SB_SERVER 10.0.0.111:9090
ich habe es auch ohne Port probiert, wenn ich Fhem einlesen kommt dies:
Cannot load module SB_SERVER
Please define sbsrv first
Please define sbsrv first
Please define sbsrv first

Im Logfile steht folgendes

Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 63 at ./FHEM/97_SB_SERVER.pm line 13, <> line 18.
2014.03.30 01:53:48 1: reload: Error:Modul 97_SB_SERVER deactivated:

was habe ich jetzt falsch gemacht
wurde hier auch schon mal geschrieben hatte sich aber über Nacht erledigt, gibt mir also keine Hinweise
http://forum.fhem.de/index.php/topic,17667.msg145458.html#msg145458 (http://forum.fhem.de/index.php/topic,17667.msg145458.html#msg145458)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 30 März 2014, 16:07:45
@moonsorrox
Ich hab bei mir gerade nochmal nachgeschaut kann sein das ich damals spät in der Nacht den raspberry noch geupdate hab und es dadurch wegging. War an dem Abend noch ziemlich lang am basteln.

@piwy
Dem Problem von piwy kann ich mich anschließen. wenn ich heute mit meinem wakeup notify jeden Abend den Alarm "lösche" und neusetze hab ich am Ende der Woche 7 mal einen deaktivierten Alarm in der SB.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: moonsorrox am 31 März 2014, 00:24:33
Ich hab bei mir gerade nochmal nachgeschaut kann sein das ich damals spät in der Nacht den raspberry noch geupdate hab und es dadurch wegging. War an dem Abend noch ziemlich lang am basteln.
ich denke eher nicht da die Module ja nicht über das Update eingespielt werden... und bei mir waren beide Module echt Schrott, erst als ich sie neu eingespielt habe ging es...

Jetzt hapert es noch an der entsprechenden Umsetzung, wie ich die SBoxen ansprechen kann, also die define und auch die Remotcontrol... einschalten geht ja über die vom Modul angelegten Player. Wie kann ich hier im unten angefügten Code das Symbol ändern, dass geht leider nicht so wie bei anderen define, oder habe ich das falsch gemacht.?

Code eines Player:
define Boom SB_PLAYER 00:04:20:1e:af:92
attr Boom donotnotify true
attr Boom fadeinsecs 10
attr Boom idismac true
attr Boom room SqueezeBoxen
attr Boom serverautoon true
attr Boom ttslanguage de
attr Boom ttslink http://translate.google.com/translate_tts?ie=UTF-8
attr Boom volumeStep 10

Meine Fragen dazu, habe mir auch alle Seiten schon durchgelesen aber ich komme nicht ganz weiter..!
Ich habe zwei Classic und eine Boom die hat er mir angelegt als SB_Player plus der MAC Adresse, diese habe ich umbenannt.
Ich weiß jetzt nicht wie ich z.B. meine Musiksammlung auf dem Server oder auch die Favoriten/Sender aufrufen kann..!

Damit meine ich z.B. die letzte CD/Musik spielt er ja ab, aber wie wechsle ich jetzt zu einer anderen CD/Musik oder auch zum Radio und deren Favoriten..?

Ich habe eine RemoteControl nach einem Muster hier gebastelt, diese kann ich aber nicht für alle drei Player nutzen..?
Muss ich für jeden Player eine RC bauen..?
Kann ich über die Weboberfläche sehen welche Titel gespielt werden zuzüglich Cover.?

hier mal mein Code für die RC, wie gesagt übernommen hier aus dem Forum nur eben angepasst für mich
define rc_DreamSqueezy remotecontrol
attr rc_DreamSqueezy rc_iconpath icons/remotecontrol
attr rc_DreamSqueezy rc_iconprefix black_btn_
attr rc_DreamSqueezy row00 on:GREEN,off:POWEROFF2
attr rc_DreamSqueezy row01 Play:PLAY,Pause:PAUSE,Stop:STOP
attr rc_DreamSqueezy row02 Prev:REWIND,Next:FF
attr rc_DreamSqueezy row03 volumeUp:VOLUP,volumeDown:VOLDOWN,mute:MUTE
attr rc_DreamSqueezy row04 channelUp:CHUP,channelDown:CHDOWN
attr rc_DreamSqueezy room SqueezeBoxen
define notify_rc_DreamSqueezy notify rc_DreamSqueezy set DreamSqueezy $EVENT

hat jemand mal einen Screenshot wie das bei euch aussieht, damit ich mir mal ein Bild machen kann.?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 01 April 2014, 08:22:59
Zitat
Wie kann ich hier im unten angefügten Code das Symbol ändern
was meinst Du damit? Möchtest Du das Icon ändern? Das geht ganz normal über devStateIcon

Zitat
Damit meine ich z.B. die letzte CD/Musik spielt er ja ab, aber wie wechsle ich jetzt zu einer anderen CD/Musik oder auch zum Radio und deren Favoriten..?
im ersten Beitrag in diesem Thread sind die Befehle beschrieben, die der Player via set versteht.

Favoriten:
wenn Du in die Detail Ansicht des Players gehst, hast du oben neben set den Befehl favorites. Wenn Du den auswählst erscheint rechts daneben eine Drop-Down-Box, die dir die Favoriten anzeigt (in einer etwas verkürzter Version, da FHEM keine Leerzeichen in den Strings zulässt). Einfach den Favoriten auswählen und er wird abgespielt.
Damit ich nicht immer in die Detailansicht wechseln muß, habe ich mir das so definiert:
attr SB_PLAYER_000000000004 webCmd play:pause:stop:volume:favoritesSomit sind die wichtigsten Kommandos auch in der Raumübersicht sichtbar

Direkt ein CD anspielen:
playlist track|album|artist xxx
Bsp.: set myplayer playlist track Satisfaction

Allerdings: ich habe mir gerade den Code angeschaut und würde behaupten da ist ein Bug drin. Das kann so eigentlich nicht gehen.

Zitat
SB_Player plus der MAC Adresse, diese habe ich umbenannt.
das sollte so schon gehen, aber ich persönlich bevorzuge es, den angezeigten Namen via alias zu ändern:
attr SB_PLAYER_000000000004 alias Badezimmer
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 01 April 2014, 09:47:30
Hat jemand eine Idee bezüglich der Abstürze, da ich den LMS gern auch mit FHEM nutzen würde...

Kann jemand meine Abstürze nachvollziehen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 01 April 2014, 10:16:11
Hallo,

noch eine Idee bezüglich der Fernbedienung (aus meiner Mediola-Zeit  ;)):

Man könnte in einem Floorplan die komplette Webseite des Logitech Media Servers oder aber auch (so hatte ich es im Mediola) das Interface eines einzelnen Raumes in den Raum selbst mit einbinden:

http://192.168.x.x:9002/status_header.html?player=00:00:00:00:00:02

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: moonsorrox am 01 April 2014, 14:38:32
Man könnte in einem Floorplan die komplette Webseite des Logitech Media Servers oder aber auch (so hatte ich es im Mediola) das Interface eines einzelnen Raumes in den Raum selbst mit einbinden:
genau das hatte ich auch schon überlegt, nur auch hier kommt dann nicht zur anderen Musik oder auch zum Radio, siehe Screenshot

ich habe das probiert mit iframe aber er zeigt mir mit der html Adresse nur Fragmente an
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: moonsorrox am 01 April 2014, 15:52:29
Möchtest Du das Icon ändern? Das geht ganz normal über devStateIcon
ja genau so habe ich das drin, dass ging gestern nicht, aber jetzt auf einmal geht das..! Naja gut so..
siehe Screenshot

Damit ich nicht immer in die Detailansicht wechseln muß, habe ich mir das so definiert:
attr SB_PLAYER_000000000004 webCmd play:pause:stop:volume:favoritesSomit sind die wichtigsten Kommandos auch in der Raumübersicht sichtbar
ja das ist ist OK so, ich habe dies ja über die RemoteControl gemacht und das funktioniert auch
Habe also wieder play:pause:stop:volume raus genommen

dazu wieder Fragen..
1. Es steht immer der erste Sender drin bei mir, wenn ich einen anklicke geht zwar der Sender rein aber es steht nie der drin der gerade gespielt wird immer der Erste..
2. ich wollte favorites mit eventMap favorites:Sender umbenennen, dass geht aber nicht
3. ich habe mir ja eine Fernbedienung gebastelt hier habe ich unten rechts auch bei Radio favorites hinterlegt, aber das funktioniert nicht.

Direkt ein CD anspielen:
playlist track|album|artist xxx
Bsp.: set myplayer playlist track Satisfaction
ich komme sobald ich das Radio dann habe wieder nicht zu meiner Musik zurück, dass weiß ich jetzt nicht wo ich das einbauen soll, ich habe das im jeweiligen Player probiert aber bekomme es nicht gebacken...
probiere aber weiter

schaut mal auf den Scrennshot, da muss es doch die Möglichkeit geben auf der FB die Musik und das Radio zu wechseln
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 01 April 2014, 17:10:08
RoBra81: ohne Logfiles ist es schwer was zum Absturz zu sagen. Setze mal amPlayer und am Server das Attribut verbose auf 5 und poste dann das Logfile

Moonsorox: in der  Liste ist immer der erste Favorit ausgewählt. Ist unschön, ich weiß. Müsste man mal fixen
Mit eventmap sollte man das nicht umbenennen. Der Name wird vom Server vergeben und steht imReading FAVSET. Sorry, das geht nicht anders
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 01 April 2014, 17:15:21
Moonsorox: wie gesagt hat playlist glaube ich einen Bug. Muss ich mir die Tage mal ansehen. Ansonsten war äs nie angedacht eine komplette Oberfläche für SB in FHEM zu machen. Wer das programmieren mag nur zu, Quelcode ist ja verfügbar. Halte ich aber nicht für zielführend, da es sehr gute Apps bereits gibt.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 01 April 2014, 20:06:14
Hallo,

ich hab's gerade noch einmal versucht - mit dem gleichen Ergebnis. Anbei das Log-File vom definieren des SB_SERVERs (LMS) bis zum Absturz...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: moonsorrox am 01 April 2014, 22:50:42
Halte ich aber nicht für zielführend, da es sehr gute Apps bereits gibt.
da hast du recht i8ch nutze ja iPeng, aber ich dachte wenn es schon in Fhem drin ist sollte man auf seine Musikbibliothek und Sender Zugriff haben.
Ok Sender geht ja jetzt...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 02 April 2014, 08:20:58
Hallo,

ich hab's gerade noch einmal versucht - mit dem gleichen Ergebnis. Anbei das Log-File vom definieren des SB_SERVERs (LMS) bis zum Absturz...

Ich habe noch etwas herausgefunden: Ich habe FHEM mal über die Kommandozeile gestartet und die Ausgaben beobachtet. Zum einen kommt die Meldung, dass in Zeile 970 der Datei 97_SB_SERVER.pm ein "=" anstelle eines "==" verwendet wird -> habe ich für mich mal korrigiert. Und dann kommt, einhergehend mit dem Absturz von FHEM, folgende Meldung:

Can't get tcp echo port by name at ./FHEM/97_SB_SERVER.pm line 753
Ich habe mal kurz reingesehen, konnte aber nicht viel damit anfangen - vielleicht hilft's aber dem Entwickler...

Gruß
Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 09 April 2014, 11:27:03
Hi Ronny,

sorry, wie ich sehe hat Dir noch keiner geantwortet. ich habe mir das mal angesehen und so ganz schlau werde ich daraus momentan nicht:

i.) in deinem Logfile spukt immer wieder ein HM485_LAN rein. Was ist denn das für ein Gerät?
ii.) das Ding hängt sich auf, so bald das erste mal SB_SERVER_Alive aufgerufen wird. Zusammen mit dem Hinweis auf Zeile #753 würde ich mal vermuten, dass bei Deiner PErl Installation der Net::PING nicht installiert ist (warum auch immer?)
Beim Alive Check pingt FHEM den Server an, um heraus zu finden, ob der Server ggf. in Hibernate ist.
Auf welcher Hardware läuft dein FHEM?


Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 09 April 2014, 12:48:43
Hallo,

vielen Dank, dass du dich meiner annimst. Das HM485_LAN ist das Device für meine Homematic-Gerät - das darf da sein :-)

Ich habe das FHEM auf einer FritzBox 7490 laufen. Die Installierten Perl-Module sind die, die von Haus aus mitkommen und ein Nachinstallieren weiterer Module ist ohne größeren Aufwand nicht wirklich möglich (ich musste schon in dem HM485_LAN-Device eine unnötige Abhängigkeit rausschmeißen).

EDIT: ich habe es gerade mal getestet, Net::PING ist installiert, scheint aber nicht richtig zu funktionieren...

Gruß
Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Markus M. am 10 April 2014, 10:58:03
Hat zufaellig schon irgendwer die Alarmsteuerung hinbekommen?
Bei mir scheint das nicht zu funktionieren.
Ich moechte gerne mehr als 2 Zeiten bzw. einfach die nutzen die ich in der Box eingetragen habe.

Gruss, Markus
Titel: Antw: Absturz
Beitrag von: LightStorm am 11 April 2014, 15:51:14
@RoBra81: Du bist nicht alleine!  ;)
Ich habe das gleiche Problem auf meiner FB7390. Hier stürzt auch der komplette FHEM-Server ohne eine sinnvolle Fehlermeldung ab, wenn ich die Module verwende.

Das ist echt schade, weil die bisher erstellten Funktionalitäten echt der Hammer sind!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 11 April 2014, 16:14:30
Ich hab es bei mir jetzt erstmal mit einem Hack laufen: da mein LMS zur Zeit sowieso immer läuft, habe ich folgende Anpassung in der 97_SERVER.pm gemacht:

die Zeile

if ($p->ping...)

habe ich zu

if ( 1 )

geändert und jetzt läuft es erstmal (keine Ahnung was passiert, wenn der LMS mal aus ist...)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 12 April 2014, 08:51:06
Das ist ein sehr guter Hack. Werde das als Option einbauen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dittel am 22 April 2014, 17:25:58
Ich habe viele Meldungen im Log dieser Art,

2014.04.22 09:43:09 1: 192.168.178.243:9090 reappeared (Squeezebox_Server_Modul)
Meist so alle 4 Mintuten. Sonst funktioniert alles einwandrei, aber ist das so normal?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 22 April 2014, 22:24:59
Vielen Dank Leute!!!!

Funktioniert super. Ich stell hier mal mein Teil aus der fhem.cfg rein vielleicht kanns jemand brauchen hab des ganze mit nem Siri Proxy am laufen um die Weckzeit per Siri für alles auf einmal zu stellen. Wenns jemand verbessern kann darf er das gerne tun. Ich könnt mir vorstellen das die Geschichte mit alter Wecker löschen neuer setzen schöner lösbar ist als ich es gemacht hab.

define wakeup at *6:50 {\
  if (!$we) {\
   {fhem("set Nachttischlampe 100 3600 600") }\
   {fhem("define wakeup2 at +00:20:00 set Nespresso on") }\
 }\
}
define wakeupChange dummy
attr wakeupChange setList state:time
attr wakeupChange webCmd state
define n_wakeupChange notify wakeupChange {fhem("modify wakeup *%");;}
define d_wakeupChange notify wakeupChange {fhem("set SqueezeboxSchlafzimmer alarm1 delete")}


define wr_wakeupChange notify wakeupChange {fhem("set SqueezeboxSchlafzimmer alarm1 set 1,2,3,4,5 %:00")}

Ist alles wild zusammen kopiert!


funktioniert super, aber wie muss ichs denn anstellen, damit dein Nespresso 20 minuten vor dem wecker einschaltet, bzw. will ich die Nachtischlampe 20 minuten früher starten.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 22 April 2014, 22:41:18
Wenn ich ehrlich bin wüsste ich das auch gern. Hab aber noch keine Möglichkeit gefunden das zum laufen zu bringen.

{fhem("define wakeup2 at -00:20:00 set Nespresso on") }\
funktioniert auf alle Fälle nicht.

Hat irgend jemand sonst ne Idee wie man das realisieren kann, dass eine Aktion vor der Weckzeit startet?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wilfo am 23 April 2014, 07:42:09
@ DJAlex: Habs gfunden

http://forum.fhem.de/index.php/topic,13991.msg87585.html#msg87585 (http://forum.fhem.de/index.php/topic,13991.msg87585.html#msg87585)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 23 April 2014, 10:05:02
Dittel:
Zitat
Ich habe viele Meldungen im Log dieser Art,
Code: [Auswählen]
2014.04.22 09:43:09 1: 192.168.178.243:9090 reappeared (Squeezebox_Server_Modul)
Meist so alle 4 Mintuten. Sonst funktioniert alles einwandrei, aber ist das so normal?

Das deutet auf Laufzeitprobleme in den unteren Schichten von FHEM hin. Die Fehlermeldung kommt nicht vom SqueezeBox Modul sondern von FHEM selbst. Ich hatte den gleichen Effekt immer mit meinem HM-LAN Adapter mit wachsender Größe der FHEM Installation. War dann weg, alsi ich mit FHEM auf einen Raspberry umgezogen bin.

Du solltest Dir mal die Prozessorauslastung anschauen sowie die diversen Threads zum Thema Laufzeit.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dittel am 24 April 2014, 21:00:17

Du solltest Dir mal die Prozessorauslastung anschauen sowie die diversen Threads zum Thema Laufzeit.

Da FHEM auf einem Cubietruck mit derzeit ca. 2% Auslastung läuft, könnt ich mir eigentlich nur vorstellen, das entprechender Pi, auf dem der SQ Server und auch noch Owncloud installiert ist, das Nadelöhr ist.  Dann wird der Logitechmediaserver wohl auch auf den CT umziehen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 30 April 2014, 08:26:37
Hallo,

mal eine Frage: wäre es möglich das Verbinden (Synchronisieren) und Trennen mehrerer Player mit ins Modul zu integrieren? Der Hintergrund ist, dass ich in der Regel die Player Küche, Esszimmer, Bad synchronisiert habe, um unter der Woche morgens vom Bad bis zur Küche Radio hören zu können. Wenn ich jedoch z.B. jemand meinem Sohn in der Badewanne seine Kinderlieder anmachen möchte, während ich in der Küche koche, muss ich die Synchronisation aufheben und später wieder aktivieren. Die würde ich jedoch gern mit einem Tastendruck (z.B. des Badezimmerlichtschalters machen)...

Vielen Dank
Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 30 April 2014, 09:50:02
Das wollte ich mir auch schon anschauen und ggf. mit cliraw basteln. Wenn das Modul das nativ unterstützen würde, wäre das natürlich eleganter.  ;)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 30 April 2014, 16:40:45
Fänd ich super wenn das gehen würde.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 30 April 2014, 16:42:55
Eins ist mir noch aufgefallen. Kann es sein das die talk Funktion nicht funktioniert wenn die SB auf stop steht? Tut sie ja meist selten weil sie ja keinen stop Knopf hat. Aber irgendwie geht die talk Funktion nur wenn die SB auf pause/play steht oder mach ich was falsch??
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dennis1201 am 01 Mai 2014, 13:14:05
Hallo zusammen!
Mein fhem läuft problemlos auf einem Raspberry Pi.
Ich habe heute auch versucht, die beiden Module für die Squeezebox zu integrieren. Sie liegen nun im Ordner /opt/fhem/FHEM und in der fhem.cfg steht folgende Zeile:
define Squeeze SB_SERVER <IP des Rechners auf dem der Logitech Media Server läuft> Die IP ist natürlich richtig eingetragen

Beim Start kommt aber die Meldung
configfile: Cannot load module SB_SERVER
Im Logfile finden sich folgende Einträge:
Can't modify constant item in predecrement (--) at ./FHEM/97_SB_SERVER.pm line 2, near "Server:"
syntax error at ./FHEM/97_SB_SERVER.pm line 2, near "Server:"
syntax error at ./FHEM/97_SB_SERVER.pm line 1852, near ">;"
syntax error at ./FHEM/97_SB_SERVER.pm line 1853, near "/div><div id="l78" class="code_block">    <span class="nv">$hash</span"
syntax error at ./FHEM/97_SB_SERVER.pm line 1853, near "UndefFn<"
syntax error at ./FHEM/97_SB_SERVER.pm line 1853, near ">;"
syntax error at ./FHEM/97_SB_SERVER.pm line 1854, near "/div><div id="l79" class="code_block">    <span class="nv">$hash</span"
syntax error at ./FHEM/97_SB_SERVER.pm line 1854, near "ShutdownFn<"
syntax error at ./FHEM/97_SB_SERVER.pm line 1854, near ">;"
syntax error at ./FHEM/97_SB_SERVER.pm line 1855, near "/div><div id="l80" class="code_block">    <span class="nv">$hash</span"
./FHEM/97_SB_SERVER.pm has too many errors.

Was habe ich falsch gemacht?


Gruß Dennis
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dittel am 01 Mai 2014, 18:19:06
Nach dem Umzug vom Mediaserver auf den Cubie auf dem auch FHEM läuft, bekomme ich im Sekundentakt immernoch die Meldung...

2014.05.01 18:05:06 1: 127.0.0.1:9000 reappeared (Squeezebox_Server_Modul)
2014.05.01 18:05:06 1: 127.0.0.1:9000 disconnected, waiting to reappear
2014.05.01 18:05:06 1: 127.0.0.1:9000 reappeared (Squeezebox_Server_Modul)
2014.05.01 18:05:06 1: 127.0.0.1:9000 disconnected, waiting to reappear
2014.05.01 18:05:06 1: 127.0.0.1:9000 reappeared (Squeezebox_Server_Modul)

An Performancemangel kanns eigentlich jetzt nicht mehr liegen.. hat jemand eine Idee, dem Fehler auf die Schliche zu kommen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 01 Mai 2014, 22:11:36
@Dennis: sieht so aus, als ob die Datei beim Download aus dem contrib Verzeichnis beschädigt wurde. Bitte nochmal neu runterladen und neu versuchen.

@Dittel: wie gesagt diese Meldungen kommen aus dem FHEM Basissystem und nicht vom SB_SERVER Modul. Hast Du in deiner Installation das sleep Kommando in irgendwelchen Perl Routinen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dennis1201 am 02 Mai 2014, 06:49:40
Ich habe nun beide Dateien gelöscht und mit dem Editor in fhem neu erstellt. Dort habe ich den Quelltext eingefügt und unter dem entsprechenden Namen gespeichert. Jetzt scheint es zu klappen. Danke für Deine Hilfe!

Gruß Dennis
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dittel am 02 Mai 2014, 10:25:08
@bugster_de
Also das Sleep Kommando nutze ich nicht, für etwaige Funktionen setze ich immer verzögerte Timer. Die Meldung habe genau im 4 Sekundentakt ununterbrochen. Eine ähnliche Situation habe ich mit dem HMLAN Adapter ergoogelt, kann daraus aber keinen Rückschluss für mich ziehen, weil ich entsprechendes Modul nicht installiert habe. Auch sonst halte ich mich mit Modulen weitestgehend zurück und wüsste nicht wie ich das Problem weiter einschränken könnte.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 02 Mai 2014, 10:35:49
Hatte letztens ein ähnliches Problem. (Ständiges neuverbinden mit dem Server) Bei mir hat ein reboot des Systems geholfen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dieter1980 am 08 Mai 2014, 10:28:28
Hallo zusammen,

erstmal Danke für das super Modul.

Soweit funktioniert es bei mir. Steuern und Auslesen ist kein Problem.

Allerdings komme ich einfach nicht an die Favoriten ran. Probiere jetzt seit Tagen rum.  :(

Könnte mir hier jemand mal einen Codeschnipsel von seinem funktionierenden geben? Ich denke das hilft mir weiter damit ich den Fehler finde. Im Beitrag habe ich nichts passendes gefunden was mir geholfen hat.

Danke und Gruß

Dieter
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: rippi46 am 08 Mai 2014, 12:37:31
Hallo Dieter1980,

ich weiß es natürlich nicht wie du auf die Favoriten zugreifen willst oder ob Du überhaupt keine siehst.
In dem Beispiel unten greife ich auf die Favoriten des LMS zu, und weise sie dem Badplayer zu.
Wichtig dabei ist nur das SET-Kommando, der Rest hat nur mit der Fernbedienung zu tun.

Vielleicht hilft dir das.

define RCdummy dummy
attr RCdummy room Sound

define Badlauter notify RCdummy:9 set SB_PLAYER_b827ebfce926 volumeUp
define Badleiser notify RCdummy:8 set SB_PLAYER_b827ebfce926 volumeDown
define Badup notify RCdummy:38 set SB_PLAYER_b827ebfce926 next
define Baddown notify RCdummy:36 set SB_PLAYER_b827ebfce926 prev
define Badstop notify RCdummy:40 set SB_PLAYER_b827ebfce926 stop
define Badplay notify RCdummy:37 set SB_PLAYER_b827ebfce926 play
define Badlautsprecheron notify RCdummy:6 set LautsprecherBad on
# SB_PLAYER_b827ebfce926 on
define BadF1 notify RCdummy:13 set SB_PLAYER_b827ebfce926 favorites RadioRegenbogen
define BadF2 notify RCdummy:14 set SB_PLAYER_b827ebfce926 favorites Absolutrelax
define BadF3 notify RCdummy:15 set SB_PLAYER_b827ebfce926 favorites SWR3
define BadF4 notify RCdummy:16 set SB_PLAYER_b827ebfce926 favorites Top100Station
define BadF5 notify RCdummy:17 set SB_PLAYER_b827ebfce926 favorites GermanTop100SingleCharts03032014
define BadF6 notify RCdummy:18 set SB_PLAYER_b827ebfce926 favorites GermanTop100SingleCharts04112013
define BadF7 notify RCdummy:19 set SB_PLAYER_b827ebfce926 favorites Enya
define BadF8 notify RCdummy:20 set SB_PLAYER_b827ebfce926 favorites BibiundTina


Gruß
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dieter1980 am 08 Mai 2014, 13:08:29
Hallo rippi,

so wollte ich es auch machen. Komisch komisch.

Hatte 3 Favoriten wie RadioGong probiert. hat nicht geklappt. Noch einen hinzugefügt und versucht diesen aufzurufen und es hatte geklappt. RadioGong und die anderen beiden gehen nun auch.

Die Favoriten sind im LMS mit Leerzeichen hinterlegt. Keine Ahnung woher es kam. Ich vermute hier wohl doch eher den LMS der vielleicht doch noch mal nen Anstupser gebraucht hat. Denn an meiner Testabfarge hatte ich jetzt gar nichts geändert außer den Favoritennamen.

Dann kann ich jetzt mal da weitermachen wo ich nicht weiterkam. ;-)

Danke und Gruß

Dieter
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 08 Mai 2014, 16:03:24
Hi Dieter1080,

Zitat
Die Favoriten sind im LMS mit Leerzeichen hinterlegt.
An dieser Stelle ein Hinweis (steht aber glaube ich auch weitervorne im Thread). Die FHEM Unterstützung für SB eliminiert alle Sonderzeichen aus den Favoritennamen, da dies leider sonst auf FHEM Seite zu Problemen führt. Wenn Du einen Favoriten per Set befehel aus einem Script wählen möchtest, so musst Du den jeweiligen FHEM Namen des Favoriten nehmen und nicht den Namen wie er im LMS Server angezeigt wird.

Beispiele:
aus "Bayern 3" wird auf FHEM Seite "Bayern3" (Leerzeichen weg)
aus "Antenne Thüringen" wird "AntenneThringen"

Also einfach auf FHEM Seite mal die Favoritenleiste aufklappen und den gewünschten Namen raussuchen. Diesen dann verwenden.

Wenn Du auf LMS Seite den Favoritennamen änderst, dann soltest auf FHEM Seite am SB_SERVER einen set statusRequest ausführen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dittel am 11 Mai 2014, 12:48:25
Seit dem Wechsel von Cubian auf Slovenia's" Image sind die Probleme mit den ständigen disconnects bei mir auch aus dem Weg geräumt. Ein übrigens sehr empfehlenswertes Image.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dieter1980 am 11 Mai 2014, 13:31:06
Hallo bugster,

jupp. Danke. Das mit den Leerzeichen hatte ich hier irgendwo in den ganzen Beiträgen mal gesehen gehabt.

Woher der Fehler jetzt wirklich kam finde ich gar nicht mehr raus. Zumindest geht es hier nun wie ich möchte.

Danke für das schöne Modul

Gruß

Dieter
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Jules am 13 Juni 2014, 11:40:18
Hallo zusammen,
das Modul läuft nun seit 2 Monaten ohne größere Probleme.
Wirklich ein tolles Modul für FHEM. Danke Bugster.

Da ich mit Hilfe verschiedener Raspberry und 2x Squeezeboxen eine richtige Multiroomanlage aufgebaut habe, möchte ich diese auch in den Floorplan integrieren. Die Basics wie Lautstärke, nächster Song und das Cover des aktuellen Song.
Hat jemand eine Idee wie sich die URL der aktuellen Cover-Art ergibt?
Leider kann ich im auch im Frontend des LMS eine allgemeine URL der Cover-Art nicht auslesen.

Viele Grüße
JulEs
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 13 Juni 2014, 12:40:01
Hallo,

ich hab's nicht selbst probiert, aber laut Hilfe des CLI gibt's die URL

http://<server>:<port>/music/current/cover.jpg?player=<playerid>

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Jules am 13 Juni 2014, 13:07:18
Hallo Ronny,
hat funktioniert. DANKE.
Sehr cool. Dann bau ich es direkt in meinen Floorplan ein.

Gruß
JulES
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 13 Juni 2014, 13:21:31
ich hab's nicht selbst probiert, aber laut Hilfe des CLI gibt's die URL
http://<server>:<port>/music/current/cover.jpg?player=<playerid>

@bugster: Wäre es möglich dies als Weblinkfunktion in das Modul einzubauen?

Da ich mit Hilfe verschiedener Raspberry und 2x Squeezeboxen eine richtige Multiroomanlage aufgebaut habe, möchte ich diese auch in den Floorplan integrieren.

Startest du die Multiroomfunktionalität über FHEM? Wenn ja, mit welchem Befehl koppelst und entkoppelst du mehrere Systeme? (cliraw?!)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 13 Juni 2014, 13:29:13
Startest du die Multiroomfunktionalität über FHEM? Wenn ja, mit welchem Befehl koppelst und entkoppelst du mehrere Systeme? (cliraw?!)

Das ist relativ einfach:
Ich habe z.B. einen Player im Eszimmer (FHEM-Name "OG.ez.RA.Player") und einen in der Küche (LMS-Name Kueche). Diese kann ich mit

set OG.ez.RA.Player cliraw sync Kueche
verbinden und mit

set OG.ez.RA.Player cliraw sync -
wieder trennen. Außerdem habe ich mir (damals testweise) eine eventmap definiert:

attr OG.ez.RA.Player eventMap /cliraw sync Kueche:SyncKueche/cliraw sync -:UnSync/
So kann ich das Verbinden/Trennen mit

set OG.ez.RA.Player SyncKueche
set OG.ez.RA.Player UnSynch

etwas kürzer erledigen...

Ronny
 
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 13 Juni 2014, 18:35:11
Super, Danke für die schnelle Antwort! Das werde ich demnächst mal testen. :)

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: vbs am 15 Juni 2014, 19:29:36
Mal eine Frage (sorry, falls schon beantwortet):
Ich hab nur zwei Squeezeboxen, aber keinen Server (bzw. nur den Logitech-Server im Netz). Kann man SB_PLAYER auch ohne lokalen Server benutzen? Ich habe den Server bei mir irgendwann mal deinstalliert, weil das Starten des Streamings komischerweise damit sehr lange gedauert hat.

Ich hab jetzt einfach mal einen Player angelegt, aber da scheint keine Kommunikation stattzufinden:
define ku_sbplayer SB_PLAYER 00:04:20:26:04:92
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Alaska am 16 Juni 2014, 21:42:10
Falls es jemanden interessiert:
ich habe alle meine Raspis die bisher mit Squeezeplug liefen auf den PiCorePlayer umgestellt. Basiert auf dem Microcore Linux und ist superschnell. Die Möglichkeit verschiedene Squeezelite Player Versionen zu installieren, besteht auch. Hauptvorteil: Extrem kleines Image, alles läuft im Ram, die SD-Karte wird nur zum booten gebraucht, bei einem Stromausfall oder einem abstecken des laufenden Pi (wer Kinder hat, kennt das :-), erhält man keine korrupte Karte. Einstellungen des kompletten Images via Browser, auch Wifi lässt sich sehr easy einrichten.

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

Läuft wunderbar mit Fhem, ich musste nur alle Player neu definieren, aber alle Time usw. liefen danach wieder mit den jeweilgen Playern wie zuvor.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: spltunes am 16 Juni 2014, 21:49:42
Yes, piCorePlayer kann ich auch nur empfehlen, bei mir laufen davon 3 Stück im Haushalt auf RasPi-Basis, gepaart mit einem VortexBox-Server von haifai media (www.haifai.de oder www.vortexbox.de). Ich hoffe das ist keine Werbung (falls ja - bitte sofort löschen) - aber bei Anfrage über das Kontaktformular mit dem Betreff "FHEM-Forum" kann ich euch 10% auf alle Modelle geben (ich bin der offizielle Deutsche Vertrieb der VortexBox). Wobei hier so viele Bastelfreaks sind, die sich die Kiste wahrscheinlich eh lieber selber aufsetzen  ;) Aber auch hier stehe ich gerne für Fragen via PM bereit.

Beste Grüße
Daniel
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: TeeVau am 16 Juni 2014, 23:10:02
Wie macht ihr das mit der audioausgabe? Der line out vom Pi soll ja angeblich schlecht sein. Ist dem so?
Ich überlege auch so langsam, in jedem Raum einen Pi zu Hängen wegen Audio.
Dachte bei den Lautsprechern an den Control ONE von JBL. Zwischen Pi und den Lautsprecher noch ein kleiner Verstärker und alles sollte laufen...oder?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 17 Juni 2014, 16:04:21
Wie macht ihr das mit der audioausgabe? Der line out vom Pi soll ja angeblich schlecht sein. Ist dem so?
Beim starten und stoppen von Audioausgaben habe ich immer ein knacken gehabt. Daher habe ich eine USB Soundkarte verbaut.
Hier ein Thread in dem ich meinen ersten Aufbau im Bad beschrieben habe (mit Bildern und ungefähren Preisen der Einzelkomponenten)
Link (http://forum.fhem.de/index.php/topic,20213.15.html)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: vbs am 19 Juni 2014, 22:06:17
Nur um anderen auch eine evtl. frustrierende Fehlersuche zu ersparen (vielleicht stehts auch irgendwo, nur ich Trottel habs überlesen  :-\):
Bei mir funktionierte das Steuern der Player immer nur ein paar Minuten nach dem Start von FHEM. Danach hat SB_SERVER im Log gemeldet, dass der Server nicht mehr erreichbar ist. Ich hab dann im Code gesehen, dass dafür ein TCP-Ping benutzt wird. Der wiederum baut eine Verbindung zum TCP-Port 7 auf (Echo-Dienst). Diesen Dienst gibt es aber normalerweise auf Windows-PCs nicht.
Wenn also der Squeezebox Server auf einem Windows PC läuft, dann muss man unter Software -> "Windows Funktion hinzufügen" die "Einfachen TCP-Dienste" installieren. Dann noch händisch die Firewall für Port 7 aufmachen. Danach funktioniert das Modul dauerhaft.

Evtl. könnte kann man den Mechanismus auf etwas umstellen, das auch unter Windows out-of-the-box funktioniert?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: msdv am 20 Juni 2014, 08:34:44
Hallo,

ich habe jetzt einiges herumprobiert - aber leider scheine ich nicht darauf zu kommen.
Wie kann man denn gezielt eine hinterlegte (m3u) Playlist abspielen?
Ich habe eine ganze Reihe von Playlisten (synchronisiert mit itunes) - und würde diese gerne auswählen und abspielen.

Dinge, die ich getestet habe:
set SB_Cookie playlist play /volume1/music/Playlists/ZenPlaylist.m3u
set SB_Cookie playlist play ZenPlaylist

Das scheint aber nicht zu gehen...
Kann ich irgendwie so eine Playlist abspielen?

Danke,
M.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 23 Juni 2014, 10:03:19
Zitat
Zitat von: RoBra81 am 13 Juni 2014, 12:40:01

    ich hab's nicht selbst probiert, aber laut Hilfe des CLI gibt's die URL
    http://<server>:<port>/music/current/cover.jpg?player=<playerid>


@bugster: Wäre es möglich dies als Weblinkfunktion in das Modul einzubauen?

Ja, ich habe das sogar schon bei mir implementiert, aber der angegebene Link funktioniert bei mir zumindest nicht zuverlässig. Es scheint für MP3s zu gehen aber für Webstreams / Webradio nicht. Geht das bei Dir?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 23 Juni 2014, 10:16:22
Zitat
Wie kann man denn gezielt eine hinterlegte (m3u) Playlist abspielen?
Ich glaube da war noch ein Bug im Modul. Da ich selbst nur mit den Favoriten arbeite ging das in Vergessenheit. Schaue ich mir nochmal an.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: jody am 24 Juni 2014, 15:12:29
Hallo,

erstmal vielen Dank für das tolle Modul.
Da ich recht neu im Thema Logitech Media Server bin habe ich eine Frage an euch.

Ist es möglich drei Squeeze Player auf einmal zu synchronisieren/verbinden, damit überall die gleiche Musik läuft? Über das Server Web Interface ist dies ja etwas aufwändiger. (Zuerst zwei synchronisieren, anschließend auf den dritten Player wechseln und diesen dann mit der Gruppe syncen).
Hab mich auch schon bei einem großen Such Dienstleister erkundigt, jedoch keine Lösung gefunden. Die CLI Dokumentation stellt auch keine Lösung für mein Problem zur Verfügung.

Vielen Dank für eure Hilfe.

Gruß Jody
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 26 Juni 2014, 10:25:11
Hi,

Wie man per FHEM Skript synced findet sich weiter vorne in diesem Thread. Also ja das geht, schau einfach mal den Thread durch
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: jody am 26 Juni 2014, 15:03:49
Hi bugster_de,

das mit dem syncen in fhem hab ich schon gelesen, aber bei dieser variante werden nur zwei Player miteinander vernetzt. Wie die CL Methode funktioniert weis ich schon.

Ich suche jedoch eine Lösung 3 oder mehr Player auf einmal zu vernetzen. Hierfür habe ich noch keine Lösung gefunden und dachte mir, vielleicht hat einer von euch schon ein Script oder irgendwas, mit dem mein Vorhaben möglich ist.

Gruß Jody
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 26 Juni 2014, 15:23:14
Das geht. Zuerst einen Player mit einem anderen Verbinden:


set SB cliraw sync SB2
Und dann einen weiteren Player zur Gruppe hinzufügen

set SB cliraw sync SB3
usw.

Ich habe mir dafür eine Funktion in der myUtils hinterlegt:

sub squeezeSync($$;$) {
  my ($slaves,$art,$master)=@_;
  my @dvs=();
  my $dev="";
  my $command="";
  my $i=0;
  @dvs=split(",",$slaves);
  if ($art eq "connect" && defined($master)) {
  foreach (@dvs) {
       $i++;
           $dev=$_;
       fhem("set $dev:FILTER=STATE!=on on");
           fhem("set $master cliraw sync $dev");
           Log 1,"Squeezebox: $dev synced to $master";
  }
      fhem("set $master play");
      return 1;
  }
  elsif ($art eq "disconnect") {
  foreach (@dvs) {
      $dev=$_;
      fhem("set $dev cliraw sync -;sleep 1;set $dev:FILTER=STATE!=off off");
          Log 1,"Squeezebox: $dev unsynced";
        }
    return 1;
  }
  else{return 0};
}

Aufruf:

squeezeSync(slave1[,slave2,slave..],connect|disconnect,master)
master kann beim disconnect weg gelassen werden.

Beispiele:

2 Squeezeboxen miteinander verbinden (SB1 spielt etwas):

squeezeSync("SB2","connect","SB1")

3 Squeezeboxen miteinander verbinden (SB1 spielt etwas):

squeezeSync("SB2,SB3","connect","SB1")

Eine Squeezebox aus der Gruppe lösen:

squeezeSync("SB2","disconnect")


usw.

Vorausetzung ist hier, dass alle Player im Media Server den gleichen Namen haben, wie in FHEM!!!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: jody am 26 Juni 2014, 15:26:12
Hey marvin,

super Sache!! :) :)

Werd ich gleich mal ausprobieren.

Gruß Jody

Vor lauter Euphorie fast vergessen dir ein Dankeschön auszurichten!!!

Danke
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: jody am 26 Juni 2014, 16:34:39
Hey marvin,

nochmals Vielen Dank!!

Hab's grad eingebaut und läuft super. Muss mir jetzt noch ne Möglichkeit einfallen lassen wie ich die verfügbaren Player in einer Auswahlliste darstelle und anschließend die ausgewählten Geräte deiner Funktion übergebe. Wenn ich was hab meld ich mich natürlich nochmal bei dir.

Gruß Jody
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 26 Juni 2014, 16:44:29
Mit einem Dummy und geschicktem notify sollte das kein Problem sein.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 01 Juli 2014, 10:47:59
Ein disable Attribut wäre sowohl bei PLAYER also auch bei SERVER sinnvoll.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: jody am 01 Juli 2014, 11:35:25
Hey marvin,

Hab mir da mal mit deiner Funktion einen Dummy erstellt, mit dem ich die Player zur Auswahl stelle und diese dann Syncen kann. Ist natürlich erst ein grober Versuch aber es funktioniert wenigstens schonmal.

Das Notify und der Auswahl Dummy in der fhem.cfg
define Syncer dummy
attr Syncer room Kueche
attr Syncer webCmd state:sync:reset
attr Syncer setList state:SB_H,SB_T,SB_L,SB_K

define SyncerNotify notify Syncer.* {syncAuswahl("Syncer")}

In der 99myUtils.pm
sub syncAuswahl($) {

my ($device) = @_;
my $input = ReadingsVal($device,"state","on");
my $allDevices = ReadingsVal($device,"Geraete","");
my $i = 0;
my $clients = "";
my $master = "";
my $fhemBefehl = "";

if ($input ne "reset" and $input ne "sync") {
readingsBeginUpdate($main::defs{$device});
readingsBulkUpdate($main::defs{$device}, "Geraete", $allDevices . $input . ",");
readingsEndUpdate($main::defs{$device}, 1);
}

if ($input eq "sync") {
my $data = ReadingsVal($device,"Geraete","on");
my @values = split(',', $data);
@values = reverse(@values);
my $laenge = @values;
while (($i+1) < $laenge) {
$clients .= "@values[$i],";
$i++;
if (($i+1) == $laenge) {
$master .= @values[$i];
}
}
my $chr = chop($clients);
squeezeSync("$clients","connect","$master");
}

if ($input eq "reset") {
my $data = ReadingsVal($device,"Geraete","on");
squeezeSync("$data","disconnect");
fhem("deletereading $device Geraete");
}
}
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 02 Juli 2014, 14:34:31
Das sieht doch schon gut aus. Und wenn du fertig bist, kannst du das ganze ja mal im Wiki zusammenschrieben ;) Dafür darfst du meinen Part gerne verwenden :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 03 Juli 2014, 06:46:54
Das sieht doch schon gut aus. Und wenn du fertig bist, kannst du das ganze ja mal im Wiki zusammenschrieben ;) Dafür darfst du meinen Part gerne verwenden :)

Da wäre ich auch für. Sieht wirklich schon gelungen aus.  :)
Wenn ich mir solche Sachen anschaue ist das Squeezemodul eigentlich zu schade für den Contrib Bereich. ;)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 03 Juli 2014, 15:51:22
Hi,

Zitat
Wenn ich mir solche Sachen anschaue ist das Squeezemodul eigentlich zu schade für den Contrib Bereich.
Wie darf man das interpretieren? :) Soll es da ganz raus und wieder weg?  :)


verstehe dich schon richtig, dass man das Teil wohl mal in Richtung Standard FHEM Umfang bewegen könnte. stimmt wohl schon. Wenn ich mir anschaue, dass hier nun seitenlang über die Anwendung und nicht (mehr) über bugs diskutiert wird, dann kann man durchaus mal davon ausgehen, dass die Module nun 'betriebsbewährt' sind. Hatte mich halt bisher dazu bedeckt gehalten, weil ich eine Welle von Support gefürchtet hatte, die über mich herein bricht.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 03 Juli 2014, 16:39:03
Zählt die Geschichte mit dem Alarm unter Bug? Die Talk Funktion die Automatisch die Playliste wiederherstellt is für mich auch noch ein Punkt der ganz schön wäre wenn's offiziell wird. Sonst ist dieses Modul nicht mehr wegzudenken.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: msdv am 03 Juli 2014, 17:01:16
Wenn ich auch noch anhängen darf: das Abspielen von Playlists (nicht in Favoriten) war noch offen. Ist das schon gefixt?

BTW - gibt irgendeine Möglichkeit, das Modul aus dem Contrib Bereich irgendwo ohne händisches Eingreifen upzudaten?
Das normale "update" - meist gefolgt von "shutdown restart" updated ja nicht den contrib-Bereich.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 03 Juli 2014, 19:43:43
Hi,
Wie darf man das interpretieren? :) Soll es da ganz raus und wieder weg?  :)
Wehe du nimmst das Modul irgendwo ganz raus.  ;D ;)

Das Modul ist echt gelungen! Einer offiziellen Version sollte nicht viel im Weg stehen. :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 07 Juli 2014, 00:23:36
Hallo Freunde der gepflegten Mehrraummusik,

ich habe in den Contrib Bereich eine neue Version eingecheckt. Da es doch grobe Änderungen gab, bitte ein shutdown restart durchführen

sync/unsync
da hier doch einige mit Multiroom rummachen, habe ich das mal eingebaut. Deshalb zwei neue Kommandos:
sync: hier wird eine Liste der möglichen Player angezeigt, mit denen man sich zu einer Gruppe verbinden kann. Der eigene Player ist der Slave und der Player in der Auswahlliste der Master
unsync: nimmt den Player wieder aus der Gruppe raus
Es gibt auch ein paar Readings, die den Zustand von Sync anzeigen

playlists
hier werde ich noch irre mit dem Squeezebox Interface. Wie auch immer: mit playlists werden die Serverseitigen Playlisten zur Auswahl angezeigt. Bei mir funktioniert das nicht in allen Fällen, also checkt das mal.

Sonstiges:
- die Erkennung, ob der Server an oder aus ist ist nun deutlich besser / schneller / zuverlässiger
- neues Reading zur Anzeige ob der abgespielte Song remote (webradio) oder lokal ist. Das werde ich für die cover art brauchen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: jody am 07 Juli 2014, 11:36:08
Hey bugster_de,

habe gerade das Update heruntergeladen und werde es auch gleich mal testen.

Für die tolle Arbeit, die du mit diesem Modul leistest möchte ich mich bei dir bedanken.

Also hör bitte nicht auf an diesem Modul weiter zu arbeiten.

Danke.
Gruß Jody
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 07 Juli 2014, 12:19:43
Hi,

ja ja ich mach ja weiter :-)

ich habe gerade eben eine neue Version des 98_SB_PLAYER.pm eingecheckt. Nun geht die Auswahl der playlisten auch zuverlässig.

Um das Modul in die offiziellen Sourcen (also nicht mehr im Contrib Bereich) einzuchecken wird die Dokumentation des Moduls verlangt. Diese Doku muß am Ende des Modul Codes in HTML vorliegen. Da ich meine Verfügbarkeit und Zeit kenne: wer kann die Doku machen? Wäre echt klasse !
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 07 Juli 2014, 14:11:24
Mit der neuen Version bekomme ich alle 5 Minuten:

2014.07.07 13:23:09.245 1: readingsUpdate(SqueezeboxBad,shuffle,off) missed to call readingsBeginUpdate first.
2014.07.07 13:23:09.245 1: readingsUpdate(SqueezeboxBad,repeat,off) missed to call readingsBeginUpdate first.
2014.07.07 13:23:08.846 1: readingsUpdate(SqueezeboxBuero,shuffle,off) missed to call readingsBeginUpdate first.
2014.07.07 13:23:08.845 1: readingsUpdate(SqueezeboxBuero,repeat,off) missed to call readingsBeginUpdate first.
2014.07.07 13:23:08.445 1: readingsUpdate(SqueezeboxWZ,shuffle,off) missed to call readingsBeginUpdate first.
2014.07.07 13:23:08.444 1: readingsUpdate(SqueezeboxWZ,repeat,off) missed to call readingsBeginUpdate first.

Die Player schalten in dem Moment ab (off).

Backup eingespielt und funktioniert so gut, wie vorher.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 07 Juli 2014, 14:28:28
UPS, ich schau mal nach

EDIT: habs gerade angeschaut. Verstehe ich jetzt nicht. Wenn ich die Datei aus dem contrib Verzeichnis auf mein FHEM installiere, dann kommt dieser Fehler. Wenn ich meine original Datei nehme, dann geht es ??? Muß wohl nochmal neu einchecken.

EDIT2: da stimmt was am SVN Server für FHEM nicht. Wenn ich über das Webfrontend die Datei lade (so wie du), kommt eine alte Version (mit dem beschriebenen Problem). Wenn ich den Code auf der Kommandozeile auslese kommt die richtige Datei. Warum auch immer ...
Im Anhang mal zum ausprobieren die beiden Dateien.

EDIT3: jetzt sind die richtigen Datein im Webinterface des Contrib sichtbar. Ich lösche also den Anhang hier wieder um Verwirrungen vorzubeugen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: funclass am 08 Juli 2014, 18:53:02
Nach einigen Stunden der Verzweiflung muss ich mich nun doch mal fragend an euch wenden.

Ich bekomme weder das SERVER noch das PLAYER-Modul zum laufen. Den Import der aktuellen Module von Github habe ich direkt über den Editor im FHEM-Webinterface erledigt. Wenn ich nun den Server oder den Player per define anlege bekomme ich keine Verbindung zu den Geräten aufgebaut. Server funktioniert, auch CLI-Kommandos habe ich erfolgreich per Telnetverbindung ausführen können. Ich habe den Server sogar direkt auf dem RaspberryPi installiert (lief vorher auf meinem Nas -> NSA320) um die aktuellste Version zu haben und den CLI-Port verändern zu können. Bringt alles nichts, FHEM meldet im Log immer immer "can't connect".

anbei ein kurzer Auszug aus meinem Log:
2014.07.08 17:26:17 4: HTTP FHEMWEB:192.168.0.69:59103 GET /fhem&cmd=define+test+SB_SERVER+127.0.0.1
2014.07.08 17:26:17 5: Cmd: >define test SB_SERVER 127.0.0.1<
2014.07.08 17:26:17 4: SB_SERVER_Define: called
2014.07.08 17:26:17 3: Opening test device 127.0.0.1:9090
2014.07.08 17:26:20 3: Can't connect to 127.0.0.1:9090: Connection timed out
2014.07.08 17:26:20 4: SB_SERVER_Define: leaving
2014.07.08 17:26:20 5: Triggering global (1 changes)
2014.07.08 17:26:20 5: Notify loop for global DEFINED test
2014.07.08 17:26:20 4: eventTypes: Global global DEFINED test -> DEFINED test
2014.07.08 17:26:20 4: SB_SERVER_Ready: called
2014.07.08 17:26:20 5: Triggering test (1 changes)
2014.07.08 17:26:20 5: Notify loop for test power: off
2014.07.08 17:26:20 4: eventTypes: SB_SERVER test power: off -> power: off
2014.07.08 17:26:20 4: SB_SERVER_Broadcast: called
2014.07.08 17:26:20 4: SB_SERVER_Ready: called
2014.07.08 17:26:20 4: HTTP FHEMWEB:192.168.0.69:59103 GET /fhem?detail=test
2014.07.08 17:26:20 4: SB_SERVER_Get: called
2014.07.08 17:26:20 4: /fhem?detail=test / RL:2615 / text/html; charset=UTF-8 / Content-Encoding: gzip
 /
2014.07.08 17:26:20 4: SB_SERVER_Ready: called
2014.07.08 17:26:20 4: SB_SERVER_Ready: called
2014.07.08 17:26:20 4: HTTP FHEMWEB:192.168.0.69:59103 GET /fhem/pgm2/style.css
2014.07.08 17:26:20 4: SB_SERVER_Ready: called
2014.07.08 17:26:20 4: SB_SERVER_Ready: called

Wie schon erwähnt betreibe ich FHEM als auch den SB-Server auf einem Rpi mit Raspian-Image. Ansteuerung andere Geräte wie Philips TV und Enigma2-Receiver funktioniert tadellos.

Was mache ich falsch???

Nachtrag:

Natürlich habe ich schon mit verschiedenen Portnummern getestet und die im Log abgebildete IP (Localhost) habe ich vorher auch durch die korrekte IP des Rpi's ersetzt. Folgende defines liefern alle das gleiche Ergebnis: keine Verbindung...

define <name> SB_SERVER 192.168.0.89
define <name> SB_SERVER 192.168.0.89:9090
define <name> SB_SERVER 127.0.0.1
define <name> SB_SERVER 127.0.0.1:9090
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 08 Juli 2014, 20:26:15
das ist tatsächlich ein interessantes Problem. Die Fehlermeldungen kommen aus den unteren Schichten von FHEM. Alle Fehlermeldungen vom SB_SERVER Modul fangen mit SB_SERVER_xxx an.

Wenn Du sagts, dass du per Telnet CLI Kommandos auf dem SB Server auf dem RPi absetzen kannst, dann ist wohl der Port auch offen. Wenn Du andere Geräte wie enigma vom RPi aus per Ethernet ansteuern kannst, dann ist der RPi wohl am Netz.

Hast Du auf dem Squeezebox Server ein Passwort vergeben? Wenn ja, dann muß das auch in die Definition des SB_SERVER mit rein

Was mich wundert: es wird die ReadyFn aufgerufen. Das passiert eiegntlich nur, wenn das physikalische Gerät (hier die Ethernet Schnittstelle) ausgestöpselt wurde. Sprich die Ethernet Hardware scheint nicht verfügbar zu sein und die ReadyFn wird aufgerufen, um zu sehen, ob die HW nun wieder da ist. Bist Du sicher dass dein RPi i.O. ist bzw. die Linux Installation sauber ist?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 08 Juli 2014, 22:24:29
Hallo,

Ich habe die gleichen Fehlermeldungen wie marvin78 im Logfile. Ich verwende die Version 6217 von 98_SB_PLAYER aus dem SVN (heute aktualisiert). Die Meldungen kommen aus der Funktion SB_SERVER_ParsePlayerStatus die zwar mit einem readingsBeginUpdate anfängt, anschließend aber diverse Readings mit readingsSingleUpdate setzt, wodurch das readingsBeginUpdate automatisch beendet wird. Nachfolgende readingsBulkUpdate-Aufrufe werden dann von FHEM ignoriert und erzeugen die Fehlermeldungen im Log. Ich habe testweise alle readingsSingleUpdate  in SB_SERVER_ParsePlayerStatus durch readingsBulkUpdate ersetzt und damit funktioniert es.

In der Funktion SB_PLAYER_Parse besteht eventuell das gleiche Problem.

Grüße,

ChrisD

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 09 Juli 2014, 07:18:53
Ich habe die gleichen Fehlermeldungen wie marvin78 im Logfile.

Ich kann mich dem nur anschließen. Ich nutze die Version aus dem (mittlerweile gelöschten) Anhang des Posts vom 4.7.

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 09 Juli 2014, 12:58:19
Hi,

Ihr habt recht! Ich korrigierte das gleich!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: funclass am 09 Juli 2014, 18:41:43
das ist tatsächlich ein interessantes Problem. Die Fehlermeldungen kommen aus den unteren Schichten von FHEM. Alle Fehlermeldungen vom SB_SERVER Modul fangen mit SB_SERVER_xxx an.

Wenn Du sagts, dass du per Telnet CLI Kommandos auf dem SB Server auf dem RPi absetzen kannst, dann ist wohl der Port auch offen. Wenn Du andere Geräte wie enigma vom RPi aus per Ethernet ansteuern kannst, dann ist der RPi wohl am Netz.

Hast Du auf dem Squeezebox Server ein Passwort vergeben? Wenn ja, dann muß das auch in die Definition des SB_SERVER mit rein

Was mich wundert: es wird die ReadyFn aufgerufen. Das passiert eiegntlich nur, wenn das physikalische Gerät (hier die Ethernet Schnittstelle) ausgestöpselt wurde. Sprich die Ethernet Hardware scheint nicht verfügbar zu sein und die ReadyFn wird aufgerufen, um zu sehen, ob die HW nun wieder da ist. Bist Du sicher dass dein RPi i.O. ist bzw. die Linux Installation sauber ist?

Danke für die fachkundige Auskunft. Ich habe nun ganz rabiat den Raspberry komplett neu aufgesetzt. FHEM neu installiert, den SB-Server nochmal installiert. Nun klappte. Es scheint also am OS oder an einer fehlerhaften FHEM-Installation gelegen zu haben.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 10 Juli 2014, 00:32:37
neue Version ist verfügbar. Ich habe sie in contrib eingecheckt

- Fehlermeldung gefixed
- die SB_PLAYER können nun einen Verstärker fernsteuern
- die SB_PLAYER können jetzt ein weblink mit der URL des Coverart steuern

siehe den ersten Eintrag in diesem Forum für Details
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: karl0123 am 10 Juli 2014, 08:45:50
Eine Art watchdog-Funktionalität nach Pause -> (3 Minuten) -> Stop wäre in dem Fall nicht so schlecht.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 11 Juli 2014, 08:55:42
Watchdog Funktionalität: ich weiß nicht so recht, da man das sicherlich optional machen müsste.

ich habe bei mir die die FritzBox Anrufüberwachung am laufen. Sobald ein Anruf rein kommt, wird die Musik leiser gemacht (bei Internet Radio) oder auf Pause gesetzt (bei Abspielen von MP3). Wenn dann also der Anruf länger als drei Minuten dauert, wird die ganze Mimik ausgeschaltet.

Ich habe den Watchdog bei mir mittels Anwesenheit gelöst: sobald von present auf absent umgeschaltet wird, wird ein Timer gesetzt, der nach 5 Minuten nochmal alles checkt: Licht aus, Musik aus, etc.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dieter100 am 11 Juli 2014, 22:56:17
Hätte mir vielleicht jemand ein Beispiel, wie ich den Player "schön" im floorplan anzeigen bzw. steuern kann?
Schön wären die Befehle: play, pause, stop, volume und favorites wie mit ...webCmd play:pause:stop:volume:favorites.
Im Floorplan bekomme ich es aber einfach nicht hin.

Gruß
Didi
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dittel am 12 Juli 2014, 18:53:39
Hat jemand auch das Problem das der Logitechmediaserver nicht richtig starten will. Der Dienst beendet sich und startet immer wieder und benötigt dann immer 100% CPU. Nach dem x-ten mal stoppen und wieder starten gehts dann und er läuft stabil. Aber wehe ich fahre den Cubie mal runter, dann geht der Mist von vorn los... so wie jetzt.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Riverghost am 14 Juli 2014, 18:23:20
Hallo,

habe mal die beinen aktuellen Module installiert und fhem erkennt auch per autocreate den Server bzw. den Player.
Nach kurzer Zeit stürzt fhem aber ab.
Telnet gibt folgendes aus:
# sh startfhem
# Found = in conditional, should be == at ./FHEM/97_SB_SERVER.pm line 1041, <$fh> line 383.
"my" variable $name masks earlier declaration in same scope at ./FHEM/98_SB_PLAYER.pm line 121, <$fh> line 388.
Can't get tcp echo port by name at ./FHEM/97_SB_SERVER.pm line 793

Kann mir da vielleicht jemand helfen?

fhem läuft auf einer FB7390. ;-)

Gruß
Riverghost
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 15 Juli 2014, 08:15:38
Hallo,

der Absturz auf der FritzBox hängt IMHO an einer Unverträglichkeit der FritzBox mit NET::Ping. Ich hatte eine ältere Version von 97_SB_SERVER.pm bereits erfolgreich gehackt und habe das mit dieser Version wieder gemacht. Du kannst ja mal probieren, ob die angehängte Version bei dir funktioniert. Der "Nachteil" der Version ist, dass angenommen wird, dass der SB-Server (LMS) immer da ist, da dieser nicht mehr angepingt wird. Da der LMS bei mir jedoch zur Zeit dauerhaft läuft, ist das für mich kein Problem...

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Riverghost am 15 Juli 2014, 16:40:04
Hallo RoBra81,

vielen Dank für den Anhang. Damit funtioniert es bei mir auch.

Ich hatte den "hack" auch mal beim aktuellen Modul ausprobiert, nur ohne Erfolg.

Zur Zeit scheint ja vieles für den Wechsel auf einen RasPi zu sprechen. ;-)

Gruß
Riverghost
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dieter100 am 15 Juli 2014, 17:20:26
Hallo

ich habe mir jetzt eine Readingsgroup für den Floorplan angelegt, mit der ich Einschalten, die Lautstärke über einen Slider einstellen sowie die Favoriten über dropdown auswählen kann:
define Radio readingsGroup SB_PLAYER_0019990e3109:power,volume,+FAVSTR
attr Radio commands {'power' => 'set $DEVICE on','volume' => 'volume:slider,0,1,100' ,'FAVSTR' => 'favorites:'}

Das Problem ist jetzt nur, dass beim Einstellen der Lautstärke die Floorplanseite verlassen wird, und zur FHEM-Hauptseite gesprungen wird.
Beim Einstellen eines Favoriten wird nicht der aktuelle Wert angezeigt, sonder immer der Oberste der Liste.
Könnte mir hier vielleicht jemand weiterhelfen?

Gruß
Dieter
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 16 Juli 2014, 10:28:54
@Riverghost, @RoBra81: das mit dem Ping auf der Fritzbox erscheint mir etwas komisch. Ich habe FHEM bei mir auch auf einer FB laufen. Das Hauptfhem liegt zwar auf einem RPi aber das SB Modul geht bei mir auch auf der FB. Welchen FW Stand habt ihr auf der FB?
Nebenbemerkung: mir erscheint die Installation auf der FB nicht sinnvoll, da die Fritte einfach zu wenig Rechenleistung hat, um ein FHEM in mittlerer Ausbaustufe zu betreiben. Die SB Module sind durchaus rechenzeitintesiv. Seit cih auf den RPi umgeschwenkt bin, läuft das alles viel geschmeidiger

@Dieter100: ja, das ist bekannt. Eigentlich ist der Code im Player Modul auch drin, der den jeweils ausgewählten Favoriten zurück geben sollte. Geht nur nicht. Den Punkt muß ich mir auch nochmal anschauen. Fehler liegt also nicht bei Dir.
Das mit dem verlassen der Floorplan Site: kann ich Dir nicht weiterhelfen, da ich dies im FHEM System vermute.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: msdv am 16 Juli 2014, 13:44:04
Ich habe den Eindruck, dass einige meiner Radios seit Einsatz des Moduls nicht mehr in den Schlafmodus (Bildschirmschoner) gehen.
Ist das eventuell noch jemandem aufgefallen?
Ebenso gehen die gleichen Radios beim Abspielen nicht mehr in den 'aktuelles Cover/Lied-Anzeigen' Modus.

Leider habe ich noch nicht herausfinden können, was das triggert.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 16 Juli 2014, 15:51:50
kann ich hier nicht nachvollziehen
ich habe eine SB Boom und die zeigt sauber alle Covers an. Auch auf dem Webinterface des Servers sowie in der iPENG App werden die Cover ordentlich angezeigt
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Riverghost am 16 Juli 2014, 17:24:31
@ bugster_de,

ich habe folgende Laborversion drauf "FRITZ!OS 06.10-28194 BETA". Könnte natürlich auch daran liegen.
AVM hat uns ja nicht mehr lieb.  ::)

Das Fhem träge ist kann ich noch nicht behaupten. Habe aber auch noch nicht viel drin.
Ich nutze z.B. die angeschlossenen Telefons als "Alarmklingel". Ich weis nicht ob das mit nem RPi (B+) möglich ist. Da muss ich mich nochmal schlau machen.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 23 Juli 2014, 08:40:08
Hi,

ich habe heute nacht eine neue Version eingecheckt. Da sind ein paar Bugfixes drin sowie ein neues Feature:
mit dem neuen Attribut "volumeLimit" kann man eine maximal Lautstärke setzen. Das ist z.B. nützlich wenn man per eigenem Perl Script die Player steuert. Sollte das eigene Script Amok laufen und z.B. die Uhrzeit als volume setzen wollen, dann wird das nicht weiter gereicht und es fallen einem nicht die Ohren ab.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 23 Juli 2014, 08:51:28
@Riverghost: bitte tausche mal die Zeile 793 aus und berichte dann:

vorher:
my $p = Net::Ping->new( 'tcp' );
nachher
my $p = Net::Ping->new( 'icmp' );
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Riverghost am 23 Juli 2014, 19:57:15
@ bugster_de,

nun habe ich die 97_SB_SERVER.pm noch einmal neu geladen und die entsprechende Zeile getauscht.
Folgende Meldung kommt jetzt per telnet:

# sh startfhem
# Found = in conditional, should be == at ./FHEM/97_SB_SERVER.pm line 1041, <$fh> line 396.
"my" variable $name masks earlier declaration in same scope at ./FHEM/98_SB_PLAYER.pm line 121, <$fh> line 401.
icmp ping requires root privilege at ./FHEM/97_SB_SERVER.pm line 793

Übrigens habe ich die Fritzbox wieder aktualisiert mit der letzten Laborversion.

Gruß
Riverghost
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 23 Juli 2014, 21:41:08
tja, da hat deine Fritzbox leider Recht: du must FHEM als root starten um ICMP Pings ausführen zu können. Mach das mal bitte testhalber (findet sich auch hier im Forum wie man FHEM als root startet)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Riverghost am 24 Juli 2014, 19:21:12
@ bugster_de,

jetzt funktioniert es. Vielen Dank!
(Das mit root hätte ich auch selber merken müssen) :o

Gruß
Riverghost
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Future am 24 Juli 2014, 20:32:31
Hallo,
bin ja echt begeistert von den Modulen. ;)
Bislang hatte ich auch keine probleme damit, aber seit ich das neuste Update der Player.pm und Server.pm am laufen habe kommt immer wieder die selbe Fehlermeldung im log
Use of uninitialized value $args[0] in string at ./FHEM/98_SB_PLAYER.pm line 494.
Use of uninitialized value $args[0] in string at ./FHEM/98_SB_PLAYER.pm line 494.
Use of uninitialized value $args[0] in string at ./FHEM/98_SB_PLAYER.pm line 494.
Use of uninitialized value $args[0] in string at ./FHEM/98_SB_PLAYER.pm line 494.
Use of uninitialized value $args[0] in string at ./FHEM/98_SB_PLAYER.pm line 494.
Use of uninitialized value $args[0] in string at ./FHEM/98_SB_PLAYER.pm line 494.
Use of uninitialized value $args[0] in string at ./FHEM/98_SB_PLAYER.pm line 494.
Use of uninitialized value $args[0] in string at ./FHEM/98_SB_PLAYER.pm line 494.

Jemand ne Idee worann das liegen könnte ?  ???
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 25 Juli 2014, 08:53:00
@Future: komische Phänomen, denn hier wird die Antwort vom Server auf die remote Anfrage bearbeitet. Sprich der Server sagt, ob das aktuell abgespielte Stück ein Remote Stream (Webradio) oder eine lokale Datei ist. Mögliche Antworten sind 0,1 oder ?. Die Fehlermeldung sagt, dass da überhaupt kein Wert vom Server geschickt wird. Warum auch immer.

Bitte tausche mal die Zeile 494 in der 98_SB_PLAYER.pm gegen das hier

if( defined( $args[ 0 ] ) ) {
    $hash->{ISREMOTESTREAM} = "$args[ 0 ]";
} else {
    $hash->{ISREMOTESTREAM} = "0";
}
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Future am 25 Juli 2014, 17:57:35
Hallo,
gesagt getan  :)
jetzt mal abwarten was das log hergibt.
aber trotzdem DANKE für das geile modul und die schnelle Hilfe  ;)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Future am 26 Juli 2014, 08:40:47
"update"

Alles Top, keine Fehlermeldung mehr im Log !!! 8) 8) 8)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 27 Juli 2014, 12:37:06
@Future: ja, wir haben keine Fehlermeldungen mehr im Log, aber Top ist das nicht, da der SB Server nach wie vor das falsche zu Remote schickt. Wir behandeln das nun nur nicht mehr. Sprich wir haben ein Pflaster aufs Loch geklebt aber das Loch ist noch nicht zu.
Wenn Du mal Zeit hast, dann stelle an dem Player das attribut verbose auf 5, logge eine Weile und stelle das Logfile hier ein.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Future am 27 Juli 2014, 18:58:50
ah... okay :-)
werd ich machen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Future am 27 Juli 2014, 19:28:36
Hier mal ein Auszug  ::)

2014.07.27 19:21:10 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:play ARGS:10...
2014.07.27 19:21:10 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:10 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:playlist ARGS:jump 0 10...
2014.07.27 19:21:10 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:10 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:mode ARGS:play...
2014.07.27 19:21:10 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:11 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:playlist ARGS:open http://djc.kicks-ass.net/harddrivinradiolow...
2014.07.27 19:21:11 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:11 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:playlist ARGS:open http://djc.kicks-ass.net/harddrivinradiolow...
2014.07.27 19:21:11 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:11 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:mode ARGS:play...
2014.07.27 19:21:11 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:12 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:mode ARGS:play...
2014.07.27 19:21:12 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:playlist ARGS:newsong HDRN - Hard Drivin' Radio 0...
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:artist ARGS:Volbeat...
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:album ARGS:...
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:title ARGS:Heaven Nor Hell...
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:mode ARGS:play...
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:newmetadata ARGS:...
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:remote ARGS:1...
2014.07.27 19:21:13 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:14 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:playlist ARGS:newsong HDRN - Hard Drivin' Radio 0...
2014.07.27 19:21:14 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:14 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:artist ARGS:Volbeat...
2014.07.27 19:21:14 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:14 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:album ARGS:...
2014.07.27 19:21:14 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:14 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:title ARGS:Heaven Nor Hell...
2014.07.27 19:21:14 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:14 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:mode ARGS:play...
2014.07.27 19:21:14 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:21:22 5: SB_PLAYER_Parse: SB_Schlafzimmer CMD:prefset ARGS:server snLastSyncUp 1406481682...
2014.07.27 19:21:22 5: SB_PLAYER_Parse: SB_Schlafzimmer: leaving
2014.07.27 19:24:22 5: SB_PLAYER_GetStatus: called
2014.07.27 19:24:22 5: SB_PLAYER_GetStatus: leaving
2014.07.27 19:24:22 5: SB_PLAYER_GetStatus: called
2014.07.27 19:24:22 5: SB_PLAYER_GetStatus: leaving
2014.07.27 19:24:22 5: SB_PLAYER_GetStatus: called
2014.07.27 19:24:22 5: SB_PLAYER_GetStatus: leaving
2014.07.27 19:24:22 5: SB_PLAYER_Parse: SB_Cubie.digital CMD:artist ARGS:HIT RADIO FFH: Sunrise Avenue...
2014.07.27 19:24:22 5: SB_PLAYER_Parse: SB_Cubie.digital: leaving
2014.07.27 19:24:22 5: SB_PLAYER_Parse: SB_Cubie.digital CMD:album ARGS:...
2014.07.27 19:24:22 5: SB_PLAYER_Parse: SB_Cubie.digital: leaving
2014.07.27 19:24:22 5: SB_PLAYER_Parse: SB_Cubie.digital CMD:title ARGS:I Don´t Dance...
2014.07.27 19:24:22 5: SB_PLAYER_Parse: SB_Cubie.digital: leaving
2014.07.27 19:24:22 5: SB_PLAYER_Parse: SB_Cubie.digital CMD:playlist ARGS:url...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.digital: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.digital CMD:remote ARGS:1...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.digital: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.digital CMD:status ARGS:0 500 tags:Kc player_name:Cubie-digital player_connected:1 player_ip:192.168.2.21:50333 power:1 signalstrength:0 mode:stop remote:1 current_title:HIT RADIO FFH time:0 rate:1 mixer volume:100 playlist repeat:0 playlist shuffle:1 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1406447910.00927 playlist_tracks:1 remoteMeta:HASH(0x5344a28) playlist index:0 id:-86888680 title:I Don´t Dance artwork_url:/plugins/RadioTime/html/images/podcasts.png coverid:-86888680...
2014.07.27 19:24:23 5: SB_SERVER_ParsePlayerStatus(SB_Cubie.digital): data to parse: tags:Kc player_name:Cubie-digital player_connected:1 player_ip:192.168.2.21:50333 power:1 signalstrength:0 mode:stop remote:1 current_title:HIT RADIO FFH time:0 rate:1 mixervolume:100 playlistrepeat:0 playlistshuffle:1 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1406447910.00927 playlist_tracks:1 remoteMeta:HASH(0x5344a28) playlistindex:0 id:-86888680 title:I Don´t Dance artwork_url:/plugins/RadioTime/html/images/podcasts.png coverid:-86888680
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.digital: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:artist ARGS:Volbeat...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:album ARGS:...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:title ARGS:Heaven Nor Hell...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:playlist ARGS:url...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:remote ARGS:1...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:status ARGS:0 500 tags:Kc player_name:Cubie-analog player_connected:1 player_ip:192.168.2.21:50332 power:1 signalstrength:0 mode:play remote:1 current_title:Hard Drivin' Radio - HDRN time:189.424807134628 rate:1 mixer volume:100 playlist repeat:0 playlist shuffle:1 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1406480486.51848 playlist_tracks:1 remoteMeta:HASH(0x5320928) playlist index:0 id:-86557032 title:Heaven Nor Hell artwork_url:imageproxy/http://d3tybumvrk5xfv.cloudfront.net/gn/7H503ZTQZ3g.jpg/image.jpg coverid:-86557032...
2014.07.27 19:24:23 5: SB_SERVER_ParsePlayerStatus(SB_Cubie.Analog): data to parse: tags:Kc player_name:Cubie-analog player_connected:1 player_ip:192.168.2.21:50332 power:1 signalstrength:0 mode:play remote:1 current_title:Hard Drivin' Radio - HDRN time:189.424807134628 rate:1 mixervolume:100 playlistrepeat:0 playlistshuffle:1 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1406480486.51848 playlist_tracks:1 remoteMeta:HASH(0x5320928) playlistindex:0 id:-86557032 title:Heaven Nor Hell artwork_url:imageproxy/http://d3tybumvrk5xfv.cloudfront.net/gn/7H503ZTQZ3g.jpg/image.jpg coverid:-86557032
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer CMD:artist ARGS:Volbeat...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer CMD:album ARGS:Live From Beyond Hell / Above Heaven...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer CMD:title ARGS:Who They Are - Live At Forum, Copenhagen/2010...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer CMD:playlist ARGS:url...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer CMD:remote ARGS:1...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer CMD:status ARGS:0 500 tags:Kc player_name:Schlafzimmer player_connected:1 player_ip:192.168.2.27:44541 power:1 signalstrength:0 mode:stop remote:1 current_title:Who They Are - Live At Forum, Copenhagen/2010 time:0 rate:1 duration:223 can_seek:1 mixer volume:70 playlist repeat:0 playlist shuffle:1 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1406478567.62495 playlist_tracks:52 remoteMeta:HASH(0x5310890) playlist index:0 id:-86457552 title:Who They Are - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86457552 playlist index:1 id:-86496848 title:Say Your Number artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86496848 playlist index:2 id:-86784648 title:Evelyn - Live From Wacken/2012 artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86784648 playlist index:3 id:-82275664 title:Pool Of Booze, Booze, Booza/BOA - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-82275664 playlist index:4 id:-87008184 title:16 Dollars - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-87008184 playlist index:5 id:-86825536 title:Still Counting - Live At House Of Blues, Anaheim/2011 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86825536 playlist index:6 id:-86888992 title:Fallen - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86888992 playlist index:7 id:-86558712 title:Thanks - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86558712 playlist index:8 id:-86928424 title:The Hangman's Body Count artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86928424 playlist index:9 id:-85713240 title:The Mirror And The Ripper - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-85713240 playlist index:10 id:-86497400 title:Fire Song artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86497400 playlist index:11 id:-82452224 title:7 Shots - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-82452224 playlist index:12 id:-86825488 title:The Human Instrument - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86825488 playlist index:13 id:-85712808 title:Caroline Leaving artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-85712808 playlist index:14 id:-86811760 title:Lola Montez - Harp Version artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86811760 playlist index:15 id:-85035432 title:Something Else Or... artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-85035432 playlist index:16 id:-59884216 title:A Warrior's Call - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-59884216 playlist index:17 id:-81396280 title:The Nameless One artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-81396280 playlist index:18 id:-85693512 title:Intro - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-85693512 playlist index:19 id:-86497112 title:Soulweeper artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86497112 playlist index:20 id:-86814016 title:7 Shots - Live From Wacken/2012 artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86814016 playlist index:21 id:-86833920 title:Ecotone artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86833920 playlist index:22 id:-87009264 title:Dead But Rising artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-87009264 playlist index:23 id:-86801408 title:Rebel Monster artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86801408 playlist index:24 id:-82249688 title:The Sinner Is You artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-82249688 playlist index:25 id:-85739696 title:Heaven Nor Hell - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-85739696 playlist index:26 id:-86827120 title:Angelfuck - Live At House Of Blues, Anaheim/2011 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86827120 playlist index:27 id:-86812504 title:Evelyn - 2010 Demo artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86812504 playlist index:28 id:-86580104 title:Another Day, Another Way artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86580104 playlist index:29 id:-87014048 title:My Body artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-87014048 playlist index:30 id:-86994696 title:Black Bart artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86994696 playlist index:31 id:-86825008 title:I Only Wanna Be With You - Live At House Of Blues, Anaheim/2011 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86825008 playlist index:32 id:-86804192 title:Always. Wu artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86804192 playlist index:33 id:-86957960 title:Cape Of Our Hero artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86957960 playlist index:34 id:-87010128 title:The Garden’s Tale - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-87010128 playlist index:35 id:-85103392 title:Doc Holliday artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-85103392 playlist index:36 id:-86498456 title:Danny & Lucy [11pm] artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86498456 playlist index:37 id:-86503688 title:Healing Subconsciously artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86503688 playlist index:38 id:-86499848 title:Caroline #1 artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86499848 playlist index:39 id:-86632680 title:Pearl Hart artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86632680 playlist index:40 id:-86933352 title:Let's Shake Some Dust artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86933352 playlist index:41 id:-86498648 title:Alienized artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86498648 playlist index:42 id:-86503400 title:Everything's Still Fine artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86503400 playlist index:43 id:-86500592 title:I Only Wanna Be With You artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86500592 playlist index:44 id:-86631528 title:Evelyn - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86631528 playlist index:45 id:-86887072 title:Lonesome Rider artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86887072 playlist index:46 id:-86832624 title:Maybellene I Hofteholder - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86832624 playlist index:47 id:-86472480 title:Lola Montez artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86472480 playlist index:48 id:-86804288 title:Pool Of Booze, Booze, Booza artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86804288 playlist index:49 id:-86830608 title:Our Loved Ones artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86830608 playlist index:50 id:-81516224 title:Room 24 artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-81516224 playlist index:51 id:-86885872 title:Sad Man's Tongue - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86885872...
2014.07.27 19:24:23 5: SB_SERVER_ParsePlayerStatus(SB_Schlafzimmer): data to parse: tags:Kc player_name:Schlafzimmer player_connected:1 player_ip:192.168.2.27:44541 power:1 signalstrength:0 mode:stop remote:1 current_title:Who They Are - Live At Forum, Copenhagen/2010 time:0 rate:1 duration:223 can_seek:1 mixervolume:70 playlistrepeat:0 playlistshuffle:1 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1406478567.62495 playlist_tracks:52 remoteMeta:HASH(0x5310890) playlistindex:0 id:-86457552 title:Who They Are - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86457552 playlistindex:1 id:-86496848 title:Say Your Number artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86496848 playlistindex:2 id:-86784648 title:Evelyn - Live From Wacken/2012 artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86784648 playlistindex:3 id:-82275664 title:Pool Of Booze, Booze, Booza/BOA - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-82275664 playlistindex:4 id:-87008184 title:16 Dollars - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-87008184 playlistindex:5 id:-86825536 title:Still Counting - Live At House Of Blues, Anaheim/2011 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86825536 playlistindex:6 id:-86888992 title:Fallen - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86888992 playlistindex:7 id:-86558712 title:Thanks - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86558712 playlistindex:8 id:-86928424 title:The Hangman's Body Count artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86928424 playlistindex:9 id:-85713240 title:The Mirror And The Ripper - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-85713240 playlistindex:10 id:-86497400 title:Fire Song artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86497400 playlistindex:11 id:-82452224 title:7 Shots - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-82452224 playlistindex:12 id:-86825488 title:The Human Instrument - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86825488 playlistindex:13 id:-85712808 title:Caroline Leaving artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-85712808 playlistindex:14 id:-86811760 title:Lola Montez - Harp Version artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86811760 playlistindex:15 id:-85035432 title:Something Else Or... artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-85035432 playlistindex:16 id:-59884216 title:A Warrior's Call - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-59884216 playlistindex:17 id:-81396280 title:The Nameless One artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-81396280 playlistindex:18 id:-85693512 title:Intro - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-85693512 playlistindex:19 id:-86497112 title:Soulweeper artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86497112 playlistindex:20 id:-86814016 title:7 Shots - Live From Wacken/2012 artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86814016 playlistindex:21 id:-86833920 title:Ecotone artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86833920 playlistindex:22 id:-87009264 title:Dead But Rising artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-87009264 playlistindex:23 id:-86801408 title:Rebel Monster artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86801408 playlistindex:24 id:-82249688 title:The Sinner Is You artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-82249688 playlistindex:25 id:-85739696 title:Heaven Nor Hell - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-85739696 playlistindex:26 id:-86827120 title:Angelfuck - Live At House Of Blues, Anaheim/2011 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86827120 playlistindex:27 id:-86812504 title:Evelyn - 2010 Demo artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86812504 playlistindex:28 id:-86580104 title:Another Day, Another Way artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86580104 playlistindex:29 id:-87014048 title:My Body artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-87014048 playlistindex:30 id:-86994696 title:Black Bart artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86994696 playlistindex:31 id:-86825008 title:I Only Wanna Be With You - Live At House Of Blues, Anaheim/2011 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86825008 playlistindex:32 id:-86804192 title:Always. Wu artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86804192 playlistindex:33 id:-86957960 title:Cape Of Our Hero artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86957960 playlistindex:34 id:-87010128 title:The Garden’s Tale - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-87010128 playlistindex:35 id:-85103392 title:Doc Holliday artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-85103392 playlistindex:36 id:-86498456 title:Danny & Lucy [11pm] artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86498456 playlistindex:37 id:-86503688 title:Healing Subconsciously artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86503688 playlistindex:38 id:-86499848 title:Caroline #1 artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86499848 playlistindex:39 id:-86632680 title:Pearl Hart artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86632680 playlistindex:40 id:-86933352 title:Let's Shake Some Dust artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86933352 playlistindex:41 id:-86498648 title:Alienized artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86498648 playlistindex:42 id:-86503400 title:Everything's Still Fine artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86503400 playlistindex:43 id:-86500592 title:I Only Wanna Be With You artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86500592 playlistindex:44 id:-86631528 title:Evelyn - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86631528 playlistindex:45 id:-86887072 title:Lonesome Rider artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86887072 playlistindex:46 id:-86832624 title:Maybellene I Hofteholder - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86832624 playlistindex:47 id:-86472480 title:Lola Montez artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86472480 playlistindex:48 id:-86804288 title:Pool Of Booze, Booze, Booza artwork_url:imageproxy/spotify:image:e9b2d0bcac8c2dd0ec9bf3e81da0c97de2b40f1f/image.jpg coverid:-86804288 playlistindex:49 id:-86830608 title:Our Loved Ones artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-86830608 playlistindex:50 id:-81516224 title:Room 24 artwork_url:imageproxy/spotify:image:15bd59cd1390ed1547ec6b87bd6af0123a60f86b/image.jpg coverid:-81516224 playlistindex:51 id:-86885872 title:Sad Man's Tongue - Live At Forum, Copenhagen/2010 artwork_url:imageproxy/spotify:image:350dc39925f2c6398d88ec8146340e6021d0b691/image.jpg coverid:-86885872
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.digital CMD:mode ARGS:stop...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.digital: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:mode ARGS:play...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer CMD:mode ARGS:stop...
2014.07.27 19:24:23 5: SB_PLAYER_Parse: SB_Schlafzimmer: leaving
2014.07.27 19:24:50 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:playlist ARGS:newsong DJC - Ad Break...
2014.07.27 19:24:50 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:24:50 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:artist ARGS:DJC...
2014.07.27 19:24:50 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:24:50 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:album ARGS:...
2014.07.27 19:24:50 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:24:50 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:title ARGS:Ad Break...
2014.07.27 19:24:50 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:24:50 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:mode ARGS:play...
2014.07.27 19:24:50 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:25:07 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:newmetadata ARGS:...
2014.07.27 19:25:07 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:25:07 5: SB_PLAYER_Parse: SB_Cubie.Analog CMD:remote ARGS:1...
2014.07.27 19:25:07 5: SB_PLAYER_Parse: SB_Cubie.Analog: leaving
2014.07.27 19:25:23 5: SB_PLAYER_Set: called with ?
2014.07.27 19:25:23 5: SB_PLAYER_Set: called with ?
2014.07.27 19:25:23 5: SB_PLAYER_Set: called with ?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 28 Juli 2014, 09:57:15
@Future: hmmmm, aus dem Log File sehe ich nichts (es ist alles korreekt).

Kannst Du mal nachschauen, wie sich das Reading ISREMOTESTREAM ändert:
- wenn man Webradio abspielt, dann muß das auf 1 stehen
- wenn man eine lokale MP3 abspielt, dann muß das auf 0 stehen

Wenn dem so ist, dann haben wir kein Problem (mehr)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Future am 28 Juli 2014, 16:01:36
also..... sieht alles gut aus  8) bei MP3 steht ISREMOTESTREAM auf 0, bei Spotify und Webstreams bei 1  ;)
das hier steht aber noch im Log
2014.07.28 15:55:06 1: SB_PLAYER_Get: called with SB_Cubie.Analog ?
2014.07.28 15:55:31 1: SB_PLAYER_Get: called with SB_Cubie.Analog ?
2014.07.28 15:55:39 1: SB_PLAYER_Get: called with SB_Cubie.Analog ?
2014.07.28 15:56:34 1: SB_PLAYER_Get: called with SB_Cubie.Analog ?
2014.07.28 15:56:53 1: SB_PLAYER_Get: called with SB_Cubie.Analog ?
2014.07.28 15:57:23 1: SB_PLAYER_Get: called with SB_Cubie.Analog ?
2014.07.28 15:57:29 1: SB_PLAYER_Get: called with SB_Cubie.Analog ?
2014.07.28 15:57:37 1: SB_PLAYER_Get: called with SB_Cubie.Analog ?
2014.07.28 15:58:06 1: SB_PLAYER_Get: called with SB_Cubie.Analog ?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 28 Juli 2014, 21:50:14
na dann ist ja alles gut ...

das mit dem Logeintrag ist normal. Das ist das FHEM UI welches die Module abfragt. Passt schon. Kannst also den verbose wieder auf 0 stellen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 02 August 2014, 21:39:22
Ich habe mir dafür eine Funktion in der myUtils hinterlegt:

sub squeezeSync($$;$) {
  my ($slaves,$art,$master)=@_;
  my @dvs=();
  my $dev="";
  my $command="";
  my $i=0;
  @dvs=split(",",$slaves);
  if ($art eq "connect" && defined($master)) {
  foreach (@dvs) {
       $i++;
           $dev=$_;
       fhem("set $dev:FILTER=STATE!=on on");
           fhem("set $master cliraw sync $dev");
           Log 1,"Squeezebox: $dev synced to $master";
  }
      fhem("set $master play");
      return 1;
  }
  elsif ($art eq "disconnect") {
  foreach (@dvs) {
      $dev=$_;
      fhem("set $dev cliraw sync -;sleep 1;set $dev:FILTER=STATE!=off off");
          Log 1,"Squeezebox: $dev unsynced";
        }
    return 1;
  }
  else{return 0};
}

Aufruf:

squeezeSync(slave1[,slave2,slave..],connect|disconnect,master)
master kann beim disconnect weg gelassen werden.

Beispiele:

2 Squeezeboxen miteinander verbinden (SB1 spielt etwas):

squeezeSync("SB2","connect","SB1")

3 Squeezeboxen miteinander verbinden (SB1 spielt etwas):

squeezeSync("SB2,SB3","connect","SB1")

Eine Squeezebox aus der Gruppe lösen:

squeezeSync("SB2","disconnect")


usw.

Vorausetzung ist hier, dass alle Player im Media Server den gleichen Namen haben, wie in FHEM!!!

Ich wollte mich noch mal für diese Subroutine bedanken. Da ich jetzt auch drei Player habe und ein vierter demnächst dazu kommt, hatte ich nun auch Bedarf für sowas.
Funktioniert einwandfrei!!! Ein Must-Have für alle die mind. 3 Squeezeplayer betreiben.  :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 03 August 2014, 20:24:29
@siggi85: nur als Hinweis: die neue Version der beiden Module, die im Contrib steht kann jetzt auch direkt syncen. Wie das geht steht im ersten Eintrag dieses Posts
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: karl0123 am 03 August 2014, 21:59:33
Ich habe bei der neuen Version immer noch das Problem (eben noch einmal probiert), dass das Abspielen unter nicht reproduzierbaren Umständen nach ein paar Sekunden abbricht (Wurde oben schon berichtet). Fast immer passiert das, wenn man die Quelle umstellt (bspw. über eine Readingsgroup) und dabei von externem Stream auf interne Quelle oder umgekehrt umgestellt wird. Deshalb verwende ich die alte Version und bin auch dankbar um die sub oben.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 04 August 2014, 08:57:40
Zitat
dass das Abspielen unter nicht reproduzierbaren Umständen

nicht reproduzierbar ist schon mal schlecht ....

Dem Post entnehme ich, dass es mit einer Vorgängerversion dieses Moduls funktioniert hat und mit der neueren version geht es nicht mehr?
Welche ältere Version funktioniert denn (bitte mal hier anhängen oder PM an mich)?
Wenn du den gleichen Vorgang via Squeezebox Webinterface machst geht es? Nur pre FHEM geht es nicht?
Zitat
bspw. über eine Readingsgroup
verstehe ich jetzt nicht. Hast Du ein eigenes Perl Skript ausrum gebaut? Funktioniert dieses einwandfrei?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: karl0123 am 04 August 2014, 09:09:00
Das ist die Version von bevor du das sync eingebaut hast. Hängt an.

Ich habe mich falsch ausgedrückt. Die Readingsgroup nutze ich nur, um das ganze zu vereinfachen. Es werden die gewöhnlichen Modul-Befehle benutzt, keine eigenen PERL-Funktionen. Das beschrieben Fehlverhalten tritt auch auf, wenn ich es im Squeezebox-Device direkt steuere.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 04 August 2014, 22:21:14
@Karl0123: ich kann das Problem hier leider echt nicht nachvollziehen.

- steuer den Player mal bitte auch über das Squeezebox Webinterface (also nicht FHEM). Tritt das dann auch auf?
- was passiert wenn das Abspielen abbricht? Geht der Player dann in FHEM auf off?

Stell mal für den fraglichen Player das Attribut verbose auf 5, erzeuge den Fehler und stelle mir mal die Logfiles ein.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: karl0123 am 05 August 2014, 09:20:33
Das Steuern über das Webinterface funktioniert einwandfrei. Dort bricht nichts ab. Es muss einen Unterschied zwischen der alten und der neuen Version geben, denn mit der genannten alten funktioniert alles über FHEM einwandfrei.

Wenn es Abbricht, geht der Player auf off.

Fehlermeldungen kann ich frühestens heute Abend überprüfen. Ich habe aktuell kein Testsystem und möchte nicht von der Arbeit aus in meinem Produktivsystem rumpfuschen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 07 August 2014, 08:10:19
Zitat
Wenn es Abbricht, geht der Player auf off
da würde ich mal sagen, it's not a bug it's a feature: wen die Verbindung von FHEM zum Squeezeserver abbricht, dann wird es in FHEM auf OFF gestellt. Dieses Verhalten kannst Du mit dem Attribut "doalivecheck" am SB_SERVER Modul einstellen. Stelle dieses Attribut auf false.
Warum er allerdings dann auch den Player auf Stop stellt kann ich nicht nachvollziehen. Der Status in FHEM ON oder OFF ist eine reine Anzeige und es werden keine Kommandos an die SB gesendet. Ich kann mir nur vorstellen, dass es mit den Code Änderungen zusammenhängt, die oliv06 im Frühjahr in das Modul eingebaut hat, um die Sprachausgabe zu verbesseren. Diese Code Stücke blicke ich nicht so richtig und oliv06 konnte mir auch nicht mehr erklären, was er da so gemacht hat. Werde ich wohl wieder ausbauen müssen.

Wie gesagt: stelle mal bitte beim SB_SERVER und bei einem SB_PLAYER das attribut verbose auf 5 und schicke die Logfiles von einem Zeitpunkt wo das Problem auftritt.

Ansonsten wäre es klasse, wenn Du die angehängten Module am Post unten wieder löscht, sonst verbreitet sich diese alte Version. Danke !
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: karl0123 am 07 August 2014, 09:19:40
Nun, die Version ist ja fehlerfreier ;) aber ich entferne sie. Logs bringe ich, sobald ich wieder ein Testsystem habe.

Es gibt noch ein weiteres Problem (auch in der alten Version). Ist der Server (auf dem Logitech Media Server installiert ist) nicht erreichbar, nimmt sich FHEM jede Minute 3-4 Sekunden Auszeit (über perfmon und apptime analysiert). Ist es möglich, den Modulen ein disable Attribut zu verpassen und/oder das ganze nicht blockend zu machen?

TTS kann die oben genannte alte Version übrigens auch schon (wenn auch  nicht gut).
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 07 August 2014, 10:22:38
TTS kann die oben genannte alte Version übrigens auch schon (wenn auch  nicht gut).
TTS konnte das Modul auch schon vorher, aber oliv hatte Änderungen eingebaut, welche es möglich machten TTS Ausgaben auszugeben während Musik läuft. Dadurch wurde die Wiedergabeliste gespeichert, das TTS ausgegeben, die Wiedergabeliste wieder geladen und beim gleichen Titel fortgesetzt (Titel startet aber von vorne).
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 07 August 2014, 13:51:09
Zitat
Nun, die Version ist ja fehlerfreier
richtig, aber wenn alle möglichen Versionen im Umlauf sind, dann werde ich beim supporten irre. Ich möchte den Bug dann schon auf der neuesten Version fixen.

Zitat
aber oliv hatte Änderungen eingebaut, welche es möglich machten TTS Ausgaben auszugeben während Musik läuft
richtig. Oliv hat es (versucht) so einzubauen, dass die Musik stoppt, TTS ausgegeben wird und dann die Musik wieder weiter läuft. Hier geht es aber im Code an allen möglichen Stellen mit Play& Pause hin und her. Oliv konnte mir das vor 4 Wochen auch nicht mehr erklären und er selbst ist jetzt wohl erstmal beruflich für die nächsten Monate gebunden ...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 07 August 2014, 13:57:37
Es gibt noch ein weiteres Problem (auch in der alten Version). Ist der Server (auf dem Logitech Media Server installiert ist) nicht erreichbar, nimmt sich FHEM jede Minute 3-4 Sekunden Auszeit (über perfmon und apptime analysiert). Ist es möglich, den Modulen ein disable Attribut zu verpassen und/oder das ganze nicht blockend zu machen?

Hattest du das gelesen?

Das TTS Thema sehe ich im Übrigen gegenüber solchen Problemen als zweitrangig an.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 07 August 2014, 18:14:51
Zitat
Hattest du das gelesen?
vermutlich. Aber auch wohl wieder aktiv verdrängt....

Problem lässt sich aber in erster Näherung mal wie folgt eingrenzen:
- doalivecheck auf false stellen  --> wenn dann der Effekt nicht mehr auftritt liegt es am Ping Mechanismus
- mal das Attribut alivetimer verstellen. Per default steht es auf 120 Sekunden

Hintergrund: alle x Sekunden (mit x = alivetimer) wird der Squeezebox angepingt. Timeout da auf 2 Sekunden (sprich Antwort muß innert zwei Sekunden da sein). Wenn auf dem Squeeze Server das RCC Modul installiert ist, wird auch dessen Status mit abgefragt. Und es wird alle x Sekunden die Anfrage "alivecheck ?" and den Squeeze-Server geschickt. der hat nämlich die nette Eigenschaft, dass er alle Kommandos, die er nicht kennt einfach wieder zurück schickt. Wenn also das Kommando zurück kommt, dann ist der SqueezeServer noch lebendig.
Den Klapparatismus kann man man mit doalivecheck ein / ausschalten.

Nebenbemerkungen
Der Ping hat einen Timeout von 2 Sekunden --> wie passt das zu den 3-4 Sekunden?
Der Alivetimer hat einen Default von 120 Sekunden --> passt nicht zu der einen Minute
Ich habe das Modul an allen möglichen Stellen mit Logfileeinträgen versehen. Die Struktur ist dabei wie folgt:
Prio 1: ein Fehler, den der User kennen muß, weil er z.B. bei der Config etwas falsch angegeben hat
Prio 2: nicht belegt
Prio 3: Warnings, die den User interessieren könnten. Z.B. falsche Argument beim set Befehl aus einem Perl Skript
Prio 4: Ausgabe, wann eine bestimmt Routine des Moduls aufgerufen wurde (Call-Stack)
Prio 5: alle möglichen Kleinigkeiten und sonstige Infos
Deshalb: bei Fehlern bitte das Attribut verbose auf 5 stellen und Logfiles hier einstellen. Danach das Attribut wieder zurück auf 0, oder 1 sonst ist euer logfile Ruck-Zuck voll

@Karl0123: im Prinzip lassen sich alle diese Fehler darauf zurück führen, dass FHEM die Verbindung zur Squeezebox verliert. Wir müssen nun rausfinden woran das liegt, denn meine Module handeln jeweils nur nach den Symptomen, aber die Ursache müssen wir noch finden. Die alte Version hatte die Verbindung etwas relaxter überprüft, deshalb scheint es da zu gehen. Nachteil war halt, dass sie nicht wirklich zuverlässig mitbekommt, wann der Server An oder Aus ist. Aber gerade diese Funktionalität ist mir wichtig :-)
Ist dein Netzwerk soweit stabil? Also keine WLAN Verbindung über 400 Meter oder so was zwischen den beiden Geräten?

Zitat
das ganze nicht blockend zu machen
möglich schon, das Modul hat aber aktuell schon deshalb eine brauchbar große Komplexität, weil bestimmte Dinge quasi parallel läufig zwischen den beiden Servern abgehandelt werden. Wenn ich jetzt noch den nonblocking Mechanismus inklusive seinem lustigen Datenrückgabeverfahren einbaue ... Naja, das hilft dann der Wartbarkeit und auch der Rechenzeit nicht unbedingt.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: karl0123 am 07 August 2014, 19:24:28
Das mit doalivecheck und alivetimer habe ich alles schon in mehreren Varianten probiert. Es gibt zwar einen Fehler von dem Squeezebox-Modul im Log (Use of uninitialized value $args[0] in string eq at ./FHEM/98_SB_PLAYER.pm line 403.), der aber mit den Verzögerungen nichts zu tun hat. Es ist deutlich zu erkennen, dass es die Verzögerungen auslöst, wenn der LMS nicht im Netz ist. Ich habe ein sehr gut funktionierendes und gut konfiguriertes Netzwerk. Es ist kein WLAN sondern eine LAN Verbindung mit maximaler Leitungslänge von 12 Metern. Ich habe das ganze sogar schon mit einer leeren FHEM-Konfig und einen jungfräulichen Squeezebox-Server ausprobiert. Es trat das gleiche Problem auf. Wenn doalivecheck irgendeine Wirkung hätte oder es ein disable Attribut gäbe, wäre ja schon viel gewonnen. Dass dieses Attribut automatisch gesetzt wird, wenn der Server nicht erreichbar ist, ist über ein notify die leichteste Übung.

Ein Verbose auf 5 bringt bei Abwesendem Server nur folgendes:

2014.08.07 19:22:36.515 1: Perfmon: possible freeze starting at 19:22:34, delay is 2.514
2014.08.07 19:22:33.512 4: SB_SERVER_Ready: called
2014.08.07 19:22:33.001 4: SB_SERVER_Ready: called
2014.08.07 19:22:32.769 4: SB_SERVER_Ready: called
2014.08.07 19:22:32.505 4: SB_SERVER_Ready: called

...

(von hinten nach vorne zu lesen)

Das ist nicht sehr spannend uns aussagekräftig.

Ach und das mit den 3-4 Sekunden war falsch von mir. Das betrifft ein anderes Problem mit hmland. Bei Squeezeserver sind es immer 2-2,5 Sekunden Auszeit.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: patlabor am 09 August 2014, 16:42:07
Hallo zusammen,

wollte mir gerade mal die Module einbinden.

leider bekomme ich dabei nur angezeigt:

Cannot load module SB_SERVER

Im Log habe ich folgendes stehen:
2014.08.09 16:39:40 1: reload: Error:Modul 97_SB_SERVER deactivated:
 Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 50 at ./FHEM/97_SB_SERVER.pm line 14.

2014.08.09 16:39:40 0: Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 50 at ./FHEM/97_SB_SERVER.pm line 14.

das modul habe ich direkt von github per wget auf den fhem rechner geladen.

jemand eine Idee was hier falsch laufen könnte?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kud am 09 August 2014, 19:20:31
Hast Du Dir mal den Inhalt der 97... bzw. 98.. angeschaut? Steht da was sinnvolles drin?
Einfaches Download ging bei mir nicht. Ich habe per RAW-Anzeige und dann Copy und Paste die Dateien händisch angelegt.
BTW. Habe gerade mein Toilettenradio mittels FMS-Zwischenstecken in Betrieb genommen.
Meine Frau ist happy .. 8) Ein großes Danke  an den/die Ersteller des Moduls.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 11 August 2014, 16:51:12
@patlabor: das hört sich für mich so an, als ob beim Download des Files etwas schief ging. Bitte nochmal downloaden und neu einbinden

@Karl0123:
Zitat
wenn der LMS nicht im Netz ist.
Zitat
Bei Squeezeserver sind es immer 2-2,5 Sekunden Auszeit
Na da würde ich doch mal sagen, 97_SB_SERVER funktioniert genau so wie es programmiert ist: es wird ein Ping an den LMS gesendet mit einem Timeout von 2 Sek. Wenn also keine Antowort auf den Ping kommt, dann steht FHEM für max. 2 Sekunden.
Um ehrlich zu sein: mein LMS ist die allermeiste Zeit off und im realen Betrieb merkt man diese 2 Sekunden nicht. Die kann man zwar mit den beschriebenen Tools messen, aber auf due Usability von FHEM hat das aus meiner Sicht keinen Einfluß.

 
Zitat
Wenn doalivecheck irgendeine Wirkung hätte
wenn doalivecheck auf false steht, dann wird der Ping nicht mehr ausgeführt also kann es nicht zu den Verzögerungen kommen. Und wenn verbose = 5, dann steht das sogar im Logfile. So ist der Code ....

Zitat
Use of uninitialized value $args[0] in string eq at ./FHEM/98_SB_PLAYER.pm line 403
welche Version von dem Moudl nutzt Du? Das ist nicht die Variante wie sie im contrib steht sondern eine der Vorgängerversionen, oder? Dieser bug ist nämlich schon korrigiert (wurde hier bereits mal angemerkt

Hast Du Logfiles zu den Aussetzern? Das Thema würde mich mehr interessieren?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: karl0123 am 11 August 2014, 20:20:54
Der Timeout ist sehr wohl spürbar. Natürlich hat man dann, wenn etwas genau zum Zeitpunkt des Timeouts geschaltet wird, eine Verzögerung. Auch im Frontend merkt man es. Das ist eine sehr starke Einschränkung. Deshalb meine Frage, ob man auf NonBlocking umstellen oder ein disable Attribut  einbauen kann..ich glaube aber, ehrlich gesagt, dass es gar nicht der Ping ist denn:

doalivecheck hat keine Auswirkungen. Ich habe das in einem leeren FHEM nachgestellt. Ist der Server da, gibt es keine Timeouts, ist er weg, kommen die Freezes. ES KANN nur das Squeezebox-Modul sein.

Die Version, die ich nutze habe ich dir schonmal hier angehangen und ich nutze sie, weil die neuere nicht zuverlässig funktioniert (alles oben beschrieben und diskutiert).

Logs, die entstehen habe ich oben schon gepostet. Da steht nichts interessantes drin. Wie gesagt, das benutzte FHEM ist leer. Es gibt NUR Meldungen vom Squeezebox-Modul und die stehen oben.

Nichts für Ungut, das Modul ist so weit spitze aber die Probleme sind nunmal da und lassen sich nicht weg wischen. Timeouts beeinflussen das gesamte System und sollten als Prio 1 beseitigt werden (so programmieren ich jedenfalls).
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Jules am 12 August 2014, 09:07:48
Hallo zusammen,
das Modul läuft in der aktuellen Version nun seit mehr als 2 Wochen ohne Probleme (Multiroom mit 5 Playern).
Allerdings ist mein Nas mit dem LMS auch immer an (ich nutze eine Squeezebox als Wecker).
Auch die Kontrolle über einen Floorplan läuft wirklich gut (Cover, Titel, Artist anzeigen, Start/Stop,...).

Einziges Problem:
Ich habe die Readings currentTitel/currentArtist aller Player mit verschiedenen readingsProxys im Floorplan eingebunden.
Leider sprengt mancher Titel (div. Radiosendungen) meinen Floorplan.
Gibt es eine Möglichkeit die maxlength (max. Zeichenlänge) der Readings zu definieren/begrenzen?

Viele Grüße
JulEs
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 12 August 2014, 09:15:32
@Jules: Probiere eine readingsGroup. Da kannst du die Länge per CSS begrenzen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 12 August 2014, 19:40:41
Hallo,

Vor ein paar Tagen hat bei mir FHEM die Verbindung zum SB-Server irgendwie verloren. Unter Internals steht bei ALIVECHECK permanent waiting und im FHEM-Logfile gibt es alle 2 Minuten folgende Einträge:

2014.08.12 18:43:40.836 4: SB_SERVER_Alive(SB): called
2014.08.12 18:43:42.049 5: SB_SERVER_Alive(SB): RCC:on Ping:on
2014.08.12 18:43:42.049 5: SB_SERVER_Alive(SB): overrun SB-Server dead.
2014.08.12 18:43:42.049 4: SB_SERVER_Broadcast(SB): called

Der SB-Server läuft aber weiterhin (übrigens auf dem gleichen Rechner wie FHEM) und kann über das eigene Web-Interface gesteuert werden.

So weit ich sehen kann wird in der Funktion SB_SERVER_Alive bei ausbleibendem Alivecheck über DevIo_CloseDev die Verbindung zum SB-Server geschlossen. Es wird aber nicht wieder versucht die Verbindung zu öffnen da weder der Wert von ALIVECHECK noch von power geändert werden. Da der Ping weiterhin funktioniert durchläuft SB_SERVER_Alive bei jedem Aufruf die gleichen Codezeilen und wartet dass der SB-Server sich meldet was nicht mehr passieren kann da die Verbindung geschlossen wurde.

Ich habe hinter die Zeilen 831/832     # close the device
    DevIo_CloseDev( $hash );
in 97_SB_SERVER.pm diese
    readingsSingleUpdate( $hash, "power", "off", 1 );
    $hash->{ALIVECHECK} = "?";
hinzugefügt. Dadurch wurde beim nächsten Aufruf von SB_SERVER_Alive die Verbindung neu aufgebaut.

Kannst du dies bitte prüfen ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: tekki am 19 August 2014, 09:15:31
Hallo,

ich setzte auch seit kurzem das Modul ein. Funktioniert soweit ganz gut. Ich setzte es auf 2 Raspi´s ein. Einer davon ist der Server und gleichzeitig auch ein Player und auf dem zweiten läuft FHEM und ein Player.

Wenn ich nun den Stream stoppe und die Player einige Stunden unberührt lasse (Keine Befehle mehr an die diese sende) und dann wieder via FHEM oder aber auch über das WEB-Interface einen der Player starte, startet zwar der Stream aber es kommt kein Ton mehr. Ich muss dann erst via putty den squeezeslave stoppen und wieder starten das es wieder geht.

Tritt dies bei anderen auch auf, oder mache ich hier was falsch.
Ich stoppe nur das Abspielen des Streams. Ausschalten (Power-Off) des Players mache ich nicht.

Eigentlich möchte ich den Stream nicht den ganzen Tag über laufen lassen, wenn ich nicht zu Hause bin.


Grüße
Ralph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 19 August 2014, 09:17:05
Hallo,

ich habe das Problem nicht, setze aber Squeezelite ein.

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 19 August 2014, 09:47:20
Hallo,

ich weiß nicht, ob es sich dabei um einen Sonderfall handelt, aber ich bekomme das Cover von RadioLausitz nicht angezeigt. Da es weder im LMS noch im FHEM angezeigt wird und nur über einen Umweg zu erreichen ist, gehe ich hier von einem Sonderfall aus, den ich vermutlich separat betrachten muss. Dies ist mir aber durch eine Eigenheit des Squeezbox Moduls nicht möglich. Hier mal die kompletten Infos:

Link zum Stream:
http://stream.radiolausitz.de/RLAU/mp3.pls
Coverlink im LMS:
http://www.mysqueezebox.com/public/imageproxy?u=http%3A%2F%2Fmedia.radiolausitz.de%2Fplaylist_cover%2F%20%20%202088.jpg&h=96&w=96
ARTWORKURL:
http%3A%2F%2Fmedia.radiolausitz.de%2Fplaylist_cover%2F-> Hier wird vermutlich bei den (aus unerfindlichen Gründen) vorkommenden Leerzeichen (%20%20%20) abgeschnitten

COVERARTURL:
http://www.mysqueezebox.com/public/imageproxy?u=http%3A%2F%2Fmedia.radiolausitz.de%2Fplaylist_cover%2F&h=50&w=50-> da hier der entscheidende Mittelteil fehlt, weiß ich nicht, wo der Link herkommt

Die korrekte CoverURL kann aus
http%3A%2F%2Fmedia.radiolausitz.de%2Fplaylist_cover%2F%20%20%202088.jpg&h=96&w=96durch decodieren, entfernen der Leerzeichen und abschneiden nach .jpg ermittelt werden:
http://media.radiolausitz.de/playlist_cover/2088.jpg
Ich bräuchte also mindestens die nicht beschnittene ARTWORKURL - wäre das machbar?

Ronny



EDIT: Andere Frage nebenbei: wie mache ich dann aus dem (korrekten) Link ein Bild für den Floorplan (vorzugsweise innerhalb einer ReadingsGroup)?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bsl02 am 19 August 2014, 10:22:49
@tekki

Hallo Ralf,
ähnliche Probleme habe ich auch: Cubietruck ist SB-Server +Player, 2 Rpi's als Player. Früher war ein Rpi auch Server.

Manchmal hilft das Aus-/Einschalten des Players über Weboberfläche (z.B auf Handy) und ein Reboot der Hardware kann vermieden werden.
Ich experimentiere noch ob evtl. Sync-Einstellungen iVm.  Wlan-Problemen die Ursache sein könnten.

Gruss, Stefan
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 19 August 2014, 10:35:54
Hallo Dieter,

Das Problem ist jetzt nur, dass beim Einstellen der Lautstärke die Floorplanseite verlassen wird, und zur FHEM-Hauptseite gesprungen wird.

hast du dazu eine Lösung gefunden?

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: tekki am 19 August 2014, 11:35:20
Hallo Stefan,

bzgl. der Sync-Probleme kann ich mitteilen, dass ich das Verhalten im LAN habe. WLAN würde ich somit als Problem eher ausschließen.

Grüße
Ralph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Dieter100 am 19 August 2014, 20:56:31
Hallo Ronny,

eine direkte Lösung habe ich nicht gefunden.
Ich mache es momentan über einen separaten dummy.

Grüße
Dieter
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 20 August 2014, 07:34:55
Ich lasse seit kurzem über Cronjobs sowohl meine 3 Player, als auch den LMS jede Nacht neu starten (nur den Prozess). Bisher habe ich dadurch keine Probleme mehr gehabt, ist jedoch erst seit knapp einer Woche in diesem Zustand. Vorher hatte ich ab und an Probleme beim abspielen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bsl02 am 20 August 2014, 20:03:56
@tekki und siggi85:

okay wenn WLAN nicht Ursache der Hänger ist, liegt es wohl an meinem Player auf dem Cubietruck...   Dort ist auch mein Logitech Server installiert. An Leistungsmangel kann es jedenfalls nicht liegen.

Genauer betrachtet: Normale Player auf Rpi`s laufen hier einwandfrei, nur DER auf Cubietruck stockt häufig. Daran hängt allerdings mein USB-FM-Sender wie eine Soundkarte für alle Billigradios im Hause, es sind dann sofort viele Abspielgeräte betroffen.

Evtl. Nehme ich als Player doch wieder einheitlich RPi,s und verlagerte den Logitech-Server auf einen  anderen Cubietruck, der bisher nur TVHeadend erledigt.

Gruss, Stefan
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bsl02 am 20 August 2014, 20:05:23
@tekki und siggi85:

okay wenn WLAN nicht Ursache der Hänger ist, liegt es wohl an meinem Player auf dem Cubietruck...   Dort ist auch mein Logitech Server installiert. An Leistungsmangel kann es jedenfalls nicht liegen.

Genauer betrachtet: Normale Player auf Rpi`s laufen hier einwandfrei, nur DER auf Cubietruck stockt häufig. Daran hängt allerdings mein USB-FM-Sender wie eine Soundkarte für alle Billigradios im Hause, es sind dann sofort viele Abspielgeräte betroffen.

Evtl. Nehme ich als Player doch wieder einheitlich RPi,s und verlagerte den Logitech-Server auf einen  anderen Cubietruck, der bisher nur TVHeadend erledigt.

Gruss, Stefan
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: tekki am 20 August 2014, 21:16:36
Hallo Stefan,

ich habe mir am Wochenende via DOIF für unter der Woche Zeiten definiert 04:30-8:30 so wie am Abend von 18:45-23:30. Wenn ich in der Zeit Radio hören möchte schalte ich den Verstärker entsprechend. Bisher habe damit keinen Hänger mehr feststellen können. Im Web habe ich in einem anderen Forum auch was gelesen das die Player Hänger haben wenn diese einige Stunden, nicht betätigt werden. Wenn ich bei mir z.B. den Player nur um 04.30 - 08:30 laufen lasse und diesen erst wieder am nächsten Morgen nutzen möchte, hängt der Player zu 99%. Dann muss ich diesen stoppen und starten.

@siggi85: Das mit den Cronjobs werde ich mir auch mal anschauen, scheint mir ein guter Workaround. Muss ich mich nur wieder durch googeln da ich nicht wirklich der Linux Profi bin. Beruflich bedingt hänge ich in der Windows-Ecke :-)

Grüße
Ralph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bsl02 am 21 August 2014, 02:23:31
[GELÖST]

Hallo Musikliebhaber,

Zitat
Die 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

habe mir vorhin beide Dateien aus dem genannten Verzeichnis heruntergeladen, allerdings können diese von meinem FHEM nicht eingelesen werden.
Cannot load module SB_SERVER usw.
Auch das schlichte Löschen der Leerzeilen zu Beginn brachte keine Besserung.

Höfliche Frage daher:
Könnte man die aktuellen Dateien (Server & Player) hier noch einmal "temporär" einhängen?

Grüße, Stefan

/ Edit:
Erledigt, ich habe die Dateien im "RAW"-Modus anzeigen lassen, kopiert <strg>+<a> / <strg>+<c> und per FileZilla den Inhalt des fehlerhaften FHEM-Files ersetzt. Jetzt läuft es offenbar.

[UNGELÖST]
Frage:
Wie lädt man geschickt aus dem Contrib-Verzeichnis herunter? Nutze sonst immer die rechte Maustaste mit "Ziel speichern unter..." (Firefox).
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 21 August 2014, 08:07:52
[UNGELÖST]
Frage:
Wie lädt man geschickt aus dem Contrib-Verzeichnis herunter? Nutze sonst immer die rechte Maustaste mit "Ziel speichern unter..." (Firefox).

Ich lade meine mit wget über Kommandozeile runter. Als URL nutze ich die, welche mir über RAW in github im Browser angezeigt wird. Beim kopieren der Dateien ins FHEM Verzeichnis muss ich dann mit chown und chmod nur noch die Berechtigungen der Dateien anpassen. Falls jemand einen besseren Weg kennt, immer her damit. ;)

Für die Cronjobs könnt ihr entweder die Datei /etc/crontab editieren, oder mit crontab -e cronjobs direkt für euren User anlegen. Die Syntax der /etc/crontab zeige ich Beispielhaft mal hier (mit crontab -e sieht die Zeile genauso aus, allerdings müsst ihr dann die Angabe des User weglassen, in diesem Beispiel root)
0 3 * * * root /etc/init.d/squeezelite restartJeden Tag wird 3 Uhr nur der Squeezelite neu gestartet. Sytax der 5 ersten Stellen welche durch Leerzeilen getrennt sind:
                    field          allowed values
                    -----          --------------
                    minute         0-59
                    hour           0-23
                    day of month   0-31
                    month          0-12 (or names, see below)
                    day of week    0-7 (0 or 7 is Sun, or use names)

Vielleicht konnte ich euch so etwas google und Testzeit sparen. :)

Zurück zum Thema:
Heute morgen habe ich gesehen, dass mein Squeezeboxserver in FHEM den State "open" hatte, jedoch cliconnection war nicht connected (ich weiß nicht mehr welchen Zustand dieses Reading genau hatte). Dadurch konnte ich über FHEM die Player nicht steuern.
Der LMS und die Player waren aber funktionstüchtig.

Möglich, dass dieser Fehler ggf. durch diese Codeanpassung behoben wird?!? Allerding meldet sich bugster hierzu momentan nicht zu Wort. Vielleicht ist er ja gerade im Urlaub oder ähnliches.


So weit ich sehen kann wird in der Funktion SB_SERVER_Alive bei ausbleibendem Alivecheck über DevIo_CloseDev die Verbindung zum SB-Server geschlossen. Es wird aber nicht wieder versucht die Verbindung zu öffnen da weder der Wert von ALIVECHECK noch von power geändert werden. Da der Ping weiterhin funktioniert durchläuft SB_SERVER_Alive bei jedem Aufruf die gleichen Codezeilen und wartet dass der SB-Server sich meldet was nicht mehr passieren kann da die Verbindung geschlossen wurde.

Ich habe hinter die Zeilen 831/832     # close the device
    DevIo_CloseDev( $hash );
in 97_SB_SERVER.pm diese
    readingsSingleUpdate( $hash, "power", "off", 1 );
    $hash->{ALIVECHECK} = "?";
hinzugefügt. Dadurch wurde beim nächsten Aufruf von SB_SERVER_Alive die Verbindung neu aufgebaut.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 26 August 2014, 09:12:02
@siggi85, @ChrisD: wir sollten die Diskussion zu OpenDev etc. im SqueezeBoxModule Thread fortsetzen.
http://forum.fhem.de/index.php/topic,20422.0.html (http://forum.fhem.de/index.php/topic,20422.0.html)
Den haben wir extra aufgemacht, um die Weiterentwicklungsinhalte zu diskutieren. Ich beschreibe dort drüben gleich mal, was ich mir bei den Server On/Off Geschichten so gedacht habe
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Mitch am 26 August 2014, 09:56:31
Kann man das "power" ändern?

Im Moment taucht der SqueezeServer in meinen ReadingsGroup für den Stromverbrauch über all auf.

Oder kann cih explizit den Squeeze aus der ReadingsGroupe raus nehmen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: funclass am 29 August 2014, 15:56:26
Ich hab das Squeezeboxmodul nach Neuinstallation meines Raspberrys zwar erfolgreich einrichten können, bekomme im Log allerdings im 5min-Takt folgende Meldungen:

2014.08.29 15:36:40 1: readingsUpdate(Squeezebox,repeat,off) missed to call readingsBeginUpdate first.
2014.08.29 15:36:40 1: readingsUpdate(Squeezebox,shuffle,off) missed to call readingsBeginUpdate first.

Ansonsten funktioniert alles Top. Das manuelle Entfernen der betroffenen Readings behebt das Problem temporär, nach einer Weile sind diese jedoch wieder da und füllen das Log mit diesen lästigen Einträgen.
Hat jemand Abhilfe?

[FHEM läuft in aktuellster Version auf einem RaspberryPi, SB Player und Servermodul sind beide eingerichtet, SB-Server läuft auch auf dem Pi]
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dowlix am 30 August 2014, 03:40:09
I am unable to get this to work on my Raspberry Pi at all.

I have downloaded the 2 .pm files and created definitions (with username, password and MAC addresses obfuscated):

define LMS_Server SB_SERVER 192.168.1.11:9090 USER:xxx PASSWORD:yyy
attr LMS_Server alivetimer 120
attr LMS_Server doalivecheck true
attr LMS_Server maxcmdstack 200
attr LMS_Server maxfavorites 30

define Touch SB_PLAYER aa:bb:cc:dd:ee:ff
inform timer shows about 5 sets of off / on messages per second. My LMS Server just shut down at 2am, as it does every night, and interestingly, the messages stopped appearing as it shut down:
2014-08-30 02:00:14 SB_PLAYER Touch power: off
2014-08-30 02:00:14 SB_SERVER LMS_Server CONNECTED
2014-08-30 02:00:14 SB_SERVER LMS_Server power: on
2014-08-30 02:00:14 SB_SERVER LMS_Server DISCONNECTED
2014-08-30 02:00:14 SB_SERVER LMS_Server power: off
2014-08-30 02:00:14 SB_PLAYER Touch off
2014-08-30 02:00:14 SB_PLAYER Touch power: off
2014-08-30 02:00:14 SB_SERVER LMS_Server CONNECTED
2014-08-30 02:00:14 SB_SERVER LMS_Server power: on
2014-08-30 02:00:14 SB_SERVER LMS_Server DISCONNECTED
2014-08-30 02:00:14 SB_SERVER LMS_Server power: off
2014-08-30 02:00:14 SB_PLAYER Touch off
2014-08-30 02:00:14 SB_PLAYER Touch power: off

I'm new to perl, so I can't make much sense of the .pm files, but my first guess is that the constant connection / disconnection messages are relating to failures in the connectivity to the LMS Server. I can ping the server from the Raspberry Pi, but telnet isn't installed so I can't say with 100% certainty that I can connect using telnet to the LMS Server. However, Perl is using it's own function for this, not the command line binary, and that leads me to wonder if there is a dependency on a perl module that I'm not aware of. However, I don't see any relevant messages in the fhem log file.

On the other hand, others here seem to be using Raspberry Pis and aren't reporting such problems.

I most certainly can telnet to the LMS Server from the PC that I am using to compose this message.

fhem shows (again, username & password obfuscated):

list LMS_Server
Internals:
   ALIVECHECK ?
   CFGFN      fhem-lms.cfg
   CLICONNECTION ?
   CLIPORT    9090
   DEF        192.168.1.11:9090 USER:xxx PASSWORD:yyy
   DeviceName 192.168.1.11:9090
   IP         192.168.1.11
   LASTANSWER listen 1
   NAME       LMS_Server
   NEXT_OPEN  1409361170
   NR         1028
   NTFY_ORDER 50-LMS_Server
   PARTIAL   
   PASSWORD   yyy
   RCCNAME    none
   STATE      disconnected
   TYPE       SB_SERVER
   USERNAME   xxx
   WOLNAME    none
   Readings:
     2014-08-30 01:59:14   db_albums       ?
     2014-08-30 01:59:14   db_artists      ?
     2014-08-30 01:59:14   db_genres       ?
     2014-08-30 01:59:14   db_songs        ?
     2014-08-30 01:59:14   favoritestotal  0
     2014-08-30 01:59:14   players         ?
     2014-08-30 01:59:14   players_mysb    ?
     2014-08-30 01:59:14   players_other   ?
     2014-08-30 02:00:14   power           off
     2014-08-30 01:59:14   scandb          ?
     2014-08-30 01:59:14   scanlastfailed  ?
     2014-08-30 01:59:14   scanning        ?
     2014-08-30 01:59:14   scanprogressdone ?
     2014-08-30 01:59:14   scanprogresstotal ?
     2014-08-30 01:59:14   serversecure    ?
     2014-08-30 01:59:14   serverversion   ?
Attributes:
   alivetimer 120
   doalivecheck true
   maxcmdstack 200
   maxfavorites 30

Small section of the fhem log file:

2014.08.30 02:00:14 1: 192.168.1.11:9090 reappeared (LMS_Server)
2014.08.30 02:00:14 4: SB_SERVER_DoInit(LMS_Server): called
2014.08.30 02:00:14 5: SW: 6c697374656e20310a
2014.08.30 02:00:14 5: SW: 7072656620617574686f72697a65203f0a
2014.08.30 02:00:14 5: SW: 76657273696f6e203f0a
2014.08.30 02:00:14 5: SW: 7365727665727374617475732030203230300a
2014.08.30 02:00:14 5: SW: 6661766f7269746573206974656d7320302033300a
2014.08.30 02:00:14 5: SW: 706c61796c697374732030203230300a
2014.08.30 02:00:14 4: SB_SERVER_Broadcast(LMS_Server): called
2014.08.30 02:00:14 5: SB_PLAYER_Broadcast(Touch): called with IP 192.168.1.11:9000
2014.08.30 02:00:14 5: Triggering LMS_Server (1 changes)
2014.08.30 02:00:14 5: Notify loop for LMS_Server CONNECTED
2014.08.30 02:00:14 4: SB_SERVER_Notify(LMS_Server): calledOwn:LMS_Server Device:LMS_Server
2014.08.30 02:00:14 4: eventTypes: SB_SERVER LMS_Server CONNECTED -> CONNECTED
2014.08.30 02:00:14 4: SB_SERVER_Set(LMS_Server): called
2014.08.30 02:00:14 4: SB_SERVER_Read(LMS_Server): called
2014.08.30 02:00:14 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.08.30 02:00:14 5: New Squeezebox Server Read cycle starts here
2014.08.30 02:00:14 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.08.30 02:00:14 5: Triggering LMS_Server (1 changes)
2014.08.30 02:00:14 5: Notify loop for LMS_Server power: on
2014.08.30 02:00:14 4: SB_SERVER_Notify(LMS_Server): calledOwn:LMS_Server Device:LMS_Server
2014.08.30 02:00:14 4: eventTypes: SB_SERVER LMS_Server power: on -> power: on
2014.08.30 02:00:14 4: SB_SERVER_Set(LMS_Server): called
2014.08.30 02:00:14 5: SB_SERVER_Read(LMS_Server): please implelement the sending of the CMDStack.
2014.08.30 02:00:14 5: SB_SERVER_Read: complete command received
2014.08.30 02:00:14 4: SB_SERVER_DispatchCommandLine(LMS_Server): Line:listen 1...
2014.08.30 02:00:14 4: SB_SERVER_ParseCmds(LMS_Server): called
2014.08.30 02:00:14 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.08.30 02:00:14 5: Squeezebox Server Read cycle ends here
2014.08.30 02:00:14 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.08.30 02:00:14 4: SB_SERVER_Read(LMS_Server): called
2014.08.30 02:00:14 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.08.30 02:00:14 5: New Squeezebox Server Read cycle starts here
2014.08.30 02:00:14 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.08.30 02:00:14 1: 192.168.1.11:9090 disconnected, waiting to reappear (LMS_Server)
2014.08.30 02:00:14 5: Triggering LMS_Server (1 changes)
2014.08.30 02:00:14 5: Notify loop for LMS_Server DISCONNECTED
2014.08.30 02:00:14 4: SB_SERVER_Notify(LMS_Server): calledOwn:LMS_Server Device:LMS_Server
2014.08.30 02:00:14 4: eventTypes: SB_SERVER LMS_Server DISCONNECTED -> DISCONNECTED
2014.08.30 02:00:14 4: SB_SERVER_Set(LMS_Server): called
2014.08.30 02:00:14 4: SB_SERVER_Ready: called
2014.08.30 02:00:14 5: Triggering LMS_Server (1 changes)
2014.08.30 02:00:14 5: Notify loop for LMS_Server power: off
2014.08.30 02:00:14 4: SB_SERVER_Notify(LMS_Server): calledOwn:LMS_Server Device:LMS_Server
2014.08.30 02:00:14 4: eventTypes: SB_SERVER LMS_Server power: off -> power: off
2014.08.30 02:00:14 4: SB_SERVER_Set(LMS_Server): called
2014.08.30 02:00:14 4: SB_SERVER_Broadcast(LMS_Server): called
2014.08.30 02:00:14 5: SB_PLAYER_Broadcast(Touch): called with OFF
2014.08.30 02:00:14 5: Triggering Touch (1 changes)
2014.08.30 02:00:14 5: Notify loop for Touch off
2014.08.30 02:00:14 4: SB_SERVER_Notify(LMS_Server): calledOwn:LMS_Server Device:Touch
2014.08.30 02:00:14 4: eventTypes: SB_PLAYER Touch off -> off
2014.08.30 02:00:14 4: eventTypes: SB_PLAYER Touch state: off -> state: off
2014.08.30 02:00:14 5: SB_PLAYER_Set: called with ?
2014.08.30 02:00:14 5: Triggering Touch (1 changes)
2014.08.30 02:00:14 5: Notify loop for Touch power: off
2014.08.30 02:00:14 4: SB_SERVER_Notify(LMS_Server): calledOwn:LMS_Server Device:Touch
2014.08.30 02:00:14 4: eventTypes: SB_PLAYER Touch power: off -> power: off
2014.08.30 02:00:14 5: SB_PLAYER_Set: called with ?
2014.08.30 02:00:14 1: 192.168.1.11:9090 reappeared (LMS_Server)
2014.08.30 02:00:14 4: SB_SERVER_DoInit(LMS_Server): called
2014.08.30 02:00:14 5: SW: 6c697374656e20310a
2014.08.30 02:00:14 5: SW: 7072656620617574686f72697a65203f0a
2014.08.30 02:00:14 5: SW: 76657273696f6e203f0a
2014.08.30 02:00:14 5: SW: 7365727665727374617475732030203230300a
2014.08.30 02:00:14 5: SW: 6661766f7269746573206974656d7320302033300a
2014.08.30 02:00:14 5: SW: 706c61796c697374732030203230300a
2014.08.30 02:00:14 4: SB_SERVER_Broadcast(LMS_Server): called
2014.08.30 02:00:14 5: SB_PLAYER_Broadcast(Touch): called with IP 192.168.1.11:9000
2014.08.30 02:00:14 5: Triggering LMS_Server (1 changes)
2014.08.30 02:00:14 5: Notify loop for LMS_Server CONNECTED
2014.08.30 02:00:14 4: SB_SERVER_Notify(LMS_Server): calledOwn:LMS_Server Device:LMS_Server
2014.08.30 02:00:14 4: eventTypes: SB_SERVER LMS_Server CONNECTED -> CONNECTED
2014.08.30 02:00:14 4: SB_SERVER_Set(LMS_Server): called
2014.08.30 02:00:14 4: SB_SERVER_Read(LMS_Server): called
2014.08.30 02:00:14 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2014.08.30 02:00:14 5: New Squeezebox Server Read cycle starts here
2014.08.30 02:00:14 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++

I note that the hex data in lines beginning "SW:" convert to:

listen 1
pref authorize ?
version ?
serverstatus 0 200
favorites items 0 30
playlists 0 200

But I don't know what the rest of the log file might be telling me, nor if there is any indication there of where the problem might lie.

The Touch entry in the log file shows port 9000; the server is actually running on port 9002, but the CLI *is* on 9090 and as far as I can tell, if the CLI conversation were working, list LMS_Server would show things like the total number of albums,, and I suppose the port number for the server. But first things first ... I'm stuck.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 01 September 2014, 10:42:13
I am unable to get this to work on my Raspberry Pi at all.

I have downloaded the 2 .pm files and created definitions (with username, password and MAC addresses obfuscated):

define LMS_Server SB_SERVER 192.168.1.11:9090 USER:xxx PASSWORD:yyy
attr LMS_Server alivetimer 120
attr LMS_Server doalivecheck true
attr LMS_Server maxcmdstack 200
attr LMS_Server maxfavorites 30
********snip

Hello dowlix

This problem seems to be the same I had in the very first beginning! Please try to define the SB_SERVER without the port! In my case this was the solution, everything worked immediately!
Regards Christoph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 01 September 2014, 13:11:50
Zitat
Please try to define the SB_SERVER without the port!
ups, if this is the issue, can you please check what it says for the Reading "CLIPORT"? So what is the value if defined with and what if defined without the Port?
I wonder why this is the case.

Zitat
I note that the hex data in lines beginning "SW:" convert to:
Further I wonder, why the LMS-Server is sending command responses in binary format? That should be text directly? Is there any option on LMS-Server side that enables this?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dowlix am 01 September 2014, 19:08:07
When I remove the port from the SB_Server definition, I get:

list LMS_Server
Internals:
   ALIVECHECK ?
   CFGFN      fhem-lms.cfg
   CLICONNECTION ?
   CLIPORT    9090
   DEF        192.168.1.11 USER:xxx PASSWORD:yyy
   DeviceName 192.168.1.11:9090
   FD         8
   IP         192.168.1.11
   LASTANSWER listen 1
   NAME       LMS_Server
   NR         1072
   NTFY_ORDER 50-LMS_Server
   PARTIAL   
   PASSWORD   yyy
   RCCNAME    none
   STATE      opened
   TYPE       SB_SERVER
   USERNAME   xxx
   WOLNAME    none
   Readings:
     2014-09-01 18:02:00   db_albums       ?
     2014-09-01 18:02:00   db_artists      ?
     2014-09-01 18:02:00   db_genres       ?
     2014-09-01 18:02:00   db_songs        ?
     2014-09-01 18:02:00   favoritestotal  0
     2014-09-01 18:02:00   players         ?
     2014-09-01 18:02:00   players_mysb    ?
     2014-09-01 18:02:00   players_other   ?
     2014-09-01 18:02:20   power           on
     2014-09-01 18:02:00   scandb          ?
     2014-09-01 18:02:00   scanlastfailed  ?
     2014-09-01 18:02:00   scanning        ?
     2014-09-01 18:02:00   scanprogressdone ?
     2014-09-01 18:02:00   scanprogresstotal ?
     2014-09-01 18:02:00   serversecure    ?
     2014-09-01 18:02:00   serverversion   ?
Attributes:
   alivetimer 120
   doalivecheck true
   maxcmdstack 200
   maxfavorites 30

I see no improvement in the connectivity of the server (still getting the connection / disconnection messages), and the above data doesn't seem to have changed significantly.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Skram am 01 September 2014, 21:33:33
Moin!

Ich habe meinen SB-Server mit einem aktuellen 97_SB_SERVER.pm eingebunden. Funktioniert tadellos!
Sobald ich im Server für die Authentisierung einen User/Passwort setze, funktioniert die Anmeldung nicht mehr:
define SBS SB_SERVER 192.168.0.24 USER:local PASSWORD:1234

FHEM und SBS sind auf derselben Maschine.
Die Web-Clients können sich mit dem PW anmelden.

Mache ich was falsch oder haben wir hier einen Bug?
Grüße
Rainer

SBS-Log:
[14-09-01 21:17:44.3907] Slim::Plugin::CLI::Plugin::cli_process (624) Error: Connections require authentication, check login command.
[14-09-01 21:17:44.3913] Slim::Plugin::CLI::Plugin::cli_process (625) Error: Disconnecting: 127.0.0.1:52624
-----
Logitech Media Server Version: 7.8.1 - 1398786621 @ Sat May 3 03:04:40 UTC 2014
IP-Adresse des Servers: 192.168.0.24
Server-HTTP-Portnummer: 9000
Betriebssystem: Debian - DE - utf8
Plattformarchitektur: armv7l-linux
Perl-Version: 5.14.2 - arm-linux-gnueabihf-thread-multi-64int
Datenbankversion: DBD::SQLite 1.34_01 (sqlite 3.7.7.1)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 02 September 2014, 08:56:18
Zitat
Mache ich was falsch oder haben wir hier einen Bug?
hab grad nachgeschaut: Du machst nichts falsch, da haben wir einen Bug. der Fix ist aber etwas umfangreicher. Da komme ich diese Woche leider nicht dazu. Kannst Du den LMS Server bis dahin ohne Passwort betreiben?

Zitat
FHEM und SBS sind auf derselben Maschine
dann kannst Du übrigens als IP Adresse die 127.0.0.1 einsetzen. Das ist immer die lokale Maschien und somit wird der Netzwerktraffic intern im Betriebssystem gehandhabt. Wenn Du die echte IP Adresse angibts, dann geht das zwar auch, aber die Kommunikation FHEM <-> LMS geht über das echte, physikalische Netzwerk. Ist etwas langsamer und verbraucht Netzwerklast.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 02 September 2014, 08:59:31
@dowlix:

I see the variable PASSWORD   yyy ist set. Does that mean, that you are using a username and password? If so, there is a bug (as just reported by Skram also). I'll fix that, but the fix is a little heavier and I don't have time this week to look into it. So for the time being: can you setup your LMS Server to be working without password?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 02 September 2014, 09:28:52
@Mitch

Zitat
Kann man das "power" ändern?
Nein, denn die Squeezebox Modulentwicklung folgt den Vorgaben für Multimedia / AV-Geräte:
http://www.fhemwiki.de/wiki/DevelopmentGuidelinesAV (http://www.fhemwiki.de/wiki/DevelopmentGuidelinesAV)
Dort ist das so definiert.

Da musst du wohl das Reading irgendwie aus deiner Readingsgroup heraus nehmen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 02 September 2014, 09:52:12
An Alle:

Soll das Squeezebox Modul in die normale FHEM Installation übernommen werden?

Gründe die dagegeben sprechen:
- ich bin beruflich sehr eingespannt und kann mich momentan nicht in der Geschwindigkeit um Bug-fixes kümmern, wei man sich das wünschen würde. Findet sich jemand, der mir bei der Wartung hilft?
- momentan ist die Hilfedokumentation im Modul nicht erstellt. Das ist HTML Text am unteren Ende, der dann für die FHEM commandref benutzt wird. Wer kann mir da helfen?

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dowlix am 02 September 2014, 22:36:48
@dowlix:

I see the variable PASSWORD   yyy ist set. Does that mean, that you are using a username and password? If so, there is a bug (as just reported by Skram also). I'll fix that, but the fix is a little heavier and I don't have time this week to look into it. So for the time being: can you setup your LMS Server to be working without password?

Yes, it works when I set the server to not require username + password.

Thanks for identifying the cause of this problem. I can't leave the server unprotected permanently, and I'll take a look at the code myself in the meantime.

I noticed that the second SB player device was correctly identified and created, as described in the notes.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 02 September 2014, 23:07:23
ok, the problem is starting in line #582: as you can see, the code for sending the usernam and password is not there.
also line #191 needs adoption: there is a reading called serversecure, that should be set to "1" if USERNAM and PASSWORD are specified.
In fact serversecure could even be dropped, as we just have to identify in line 582, that USERNAM and PASSWORD are not equal to "?"

The complex part is, that we have to send the command "login username password" once when establishing the connection.

So a quick fix is to add this before line #637:

if( ( $hash->{USERNAME} ne "?" ) &&( $hash->{PASSWORD} ne "?" ) ) {
    DevIo_SimpleWrite( $hash, "login $hash->{USERNAME} $hash->{PASSWORD}\n", 0 );
}

And please delete the code from #587 through to line #593

That should now work, if the correct username and passowrd are specified. No error treatment for worn username or password is done, which needs to be implemented. Also we need to implement the trap that you ran into: if the LMS requires login, it needs to be clearly reported to the FHEM user.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dowlix am 03 September 2014, 01:41:07
There's at least one additional change required.

My original log entries show connections with commands:

listen 1
pref authorize ?
version ?
serverstatus 0 200
favorites items 0 30
playlists 0 200

This is in the  SB_SERVER_DoInit subroutine and also needs the test for credentials (prior to the "listen 1" line.

I'm not 100% certain which other modifications you were suggesting, I took out the code that I think you described, and it does appear to log in correctly and return database statistics now:

list LMS_Server
Internals:
   ALIVECHECK ?
   CFGFN      fhem-lms.cfg
   CLICONNECTION ?
   CLIPORT    9090
   DEF        192.168.1.11 USER:xxx PASSWORD:yyy
   DeviceName 192.168.1.11:9090
   FD         119
   IP         192.168.1.11
   LASTANSWER playlists 0 200 id:141207 playlist:MooseUndo1 id:141208 playlist:MooseUndo2 id:141209 playlist:MooseUndo3 id:141210 playlist:MooseUndo4 id:141211 playlist:MooseUndo5 id:141213 playlist:test-playlist id:148960 playlist:Zapped Songs count:7
   NAME       LMS_Server
   NR         1070
   NTFY_ORDER 50-LMS_Server
   PARTIAL   
   PASSWORD   yyy
   RCCNAME    none
   STATE      opened
   TYPE       SB_SERVER
   USERNAME   xxx
   WOLNAME    none
   Readings:
     2014-09-02 23:42:14   db_albums       4196
     2014-09-02 23:42:14   db_artists      1828
     2014-09-02 23:42:14   db_genres       115
     2014-09-02 23:42:14   db_songs        39788
     2014-09-02 23:42:14   favoritesname   Favorites
     2014-09-02 23:42:14   favoritestotal  18
     2014-09-02 23:42:14   players         1
     2014-09-02 23:42:14   players_mysb    0
     2014-09-02 23:42:14   players_other   0
     2014-09-02 23:42:06   power           on
     2014-09-02 23:42:14   scan_last       1-6-2014 0:24:45
     2014-09-02 23:42:14   scandb          ?
     2014-09-02 23:42:14   scanlastfailed  none
     2014-09-02 23:42:14   scanning        no
     2014-09-02 23:42:14   scanprogressdone 0
     2014-09-02 23:42:14   scanprogresstotal 0
     2014-09-02 23:42:14   serversecure    1
     2014-09-02 23:42:14   serverversion   7.7.3
Attributes:
   alivetimer 120
   doalivecheck true
   maxcmdstack 200
   maxfavorites 30

There is at least one remaining, outstanding issue. The Server is running on a Synology Diskstation NAS on port 9002. The first posts in this thread indicated how the port number of the server could be specified. Subsequent messages (If I understand correctly; I have had to use google translate) indicate a modified definition block, with no space for the server port number.

In the list output above, the server port number is not detailed. There are 3 places in 97_SB_SERVER.pm where port 9000 is hard-coded. I changed my file to use 9002 and as far as I can tell, all the examples given earlier in this thread are now working. But perhaps this isn't important, if the server is sending commands to the player(s), perhaps the library is implicit in those commands.

I love it. Thank you very much for this. Next task is to build some notify routines...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 03 September 2014, 19:52:52
Zitat
I'm not 100% certain which other modifications you were suggesting
pretty easy: we are building a module for a broader usage. So that means, the quick fix I suggested is just to make it wok for users knowing what they do.
Still to be added is
i.) check if log-in was succesful. If so, go ahead. This means The DoInit has to be split into two routines
ii.) if not succesful, handle the error and throw a meaningful message to the user.
This means we have to log in, wait for the answer, send a further command and check the answe. if this is succesful, go ahead with "listen 1" etc. If not --> error message and stop
iii.) I'm not sure, if the LMS server requires to send credentials from time to time. The documentation is not 100% clear to me in this point. So it might well be, that we have to do the log-in procedure from time to time over and over again

For the port:
define <name> SB_SERVER <serverip[:cliserverport]>
if you did not change the port in the LMS server (which i recommend), than you don't need to do anything.
define myserver SB_SERVER 192.168.2.17CLI-Port will be 9090 by default

If you changed it, here's an example:
define myserver SB_SERVER 192.168.5.17:9002To check if this was succesful, please look at the internal reading CLIPORT. It should be 9002 now. If not it is 9090


Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dowlix am 04 September 2014, 17:50:06
Synology use 9090 for the cli port. That's not the problem. The issue is the web interface and audio on 9002.

i.e.

http://192.168.1.11:9002/stream.mp3

Or maybe it isn't a problem, because the LMS server handles interaction with the players without fhem needing to know any of this?

On the other hand, there is a link somewhere for artwork. In my case, I certainly require 9002 within that link.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 05 September 2014, 08:25:00
Hi,

the webinterface is not of interest to the FHEM Modules for playing music. So that is don't care.
The webinterface is only used to gather the coverart URL. So if you want to display the current cover-art URL, then the port number is needed. So far in the code, I'm using a static Port number of 9000. As you have the need to change the port number, I'll put a parameter into that.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dowlix am 05 September 2014, 19:55:21
Bugster -

Thank you very much.

I'm not certain if I may have discovered another issue, but perhaps you understood this already and anticipated it.

My LMS Server shuts down overnight. fhem runs on a Raspberry Pi, which runs 24 hours per day.

When I tried to switch on my Touch player through fhem today, it failed. Only when I restarted the fhem service on the Raspberry Pi did things work correctly.

I suppose that the fhem service was trying to re-use the connection that it had used yesterday, when the credentials had been passed [successfully]. fhem did not know that the LMS server had been rebooted in the meantime and that a new connection was opened, I suppose, requiring the credentials to be passed again.

I hope that this is because the changes that we have made are only the "quick fix" that we discussed earlier.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 05 September 2014, 22:01:03
how does the LMS server shut-down? Hibernate? If it is hibernate, the effect you describe is pretty much right, as FHEM doesn't release the PC going away, as the LMS doesn't terminate the CLI session.
I thought my latest changes with all that on-off and alive handling where getting this sorted (works for me) but visibly not.
If that happens, the only thing to do is to  click on the modify button of the SB_SERVER. That will start things over again.

Our quick & dirty fix could also be a reason for that behavior. I was trying over lunch today a more solid fix and things don't seem to be so easy with login on the CLI port
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dowlix am 09 September 2014, 01:04:27
I'm not exactly sure how it powers off. It has the ability to be woken up by WOL when it is "off".

And I'm not exactly certain of the problem or its diagnosis. yesterday, I thought that the problem did not occur, and I was surprised by that. Today it looks as though my first 2 or 3 commands to the Touch (switch on, display a message, random play) got through. However, now my volume commands aren't getting through.

Of course whilst testing new things it is very easy to mess things up and / or become confused. I'm perfectly happy to work with things as they are currently, and perform any tests on new code. After all, it will be simple enough to automate the restarting of fhem when the Server reappears in the morning.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: nillix am 17 September 2014, 22:23:16
Hallo,

ich bekomme folgende Ereignismeldungen, wenn ich das 97_SB_SERVER Modul installiert habe und FHEM neu starte:

Bareword found where operator expected at ./FHEM/97_SB_SERVER.pm line 6, near ""en" class"
        (Missing operator before class?)
Bareword found where operator expected at ./FHEM/97_SB_SERVER.pm line 13, near "<title>fhem"
        (Missing operator before fhem?)
Bareword found where operator expected at ./FHEM/97_SB_SERVER.pm line 13, near "97_SB_SERVER"
        (Missing operator before SB_SERVER?)
Bareword found where operator expected at ./FHEM/97_SB_SERVER.pm line 6, near ""en" class"
        (Missing operator before class?)
Bareword found where operator expected at ./FHEM/97_SB_SERVER.pm line 13, near "<title>fhem"
        (Missing operator before fhem?)
Bareword found where operator expected at ./FHEM/97_SB_SERVER.pm line 13, near "97_SB_SERVER"
        (Missing operator before SB_SERVER?)

Das Modul lässt sich nicht in der Konfig ansprechen, da es nicht gefunden, bzw. nicht geladen wurde.
Kann jemand helfen?

Vielen Dank

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 17 September 2014, 22:46:48
Hi,

zum gefühlt 20-sten Mal in diesem Thread: da hat wohl der Download aus Contrib nicht funktioniert. Bitte die Raw Ansicht öffnen und von dort aus in eine Textdatei kopieren.
ich habe das jetzt mal in den initialen Beitrag in diesem Thread aufgenommen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: nillix am 17 September 2014, 23:01:20
ah, sehr gut, danke :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: limats am 19 September 2014, 09:22:14
Hallo zusammen,

ich hab zwei kleine Probleme mit dem Modul

Ansonsten: Extrem cooles Modul. Ist einfach klasse, mit wie wenig Aufwand und Kosten damit Multiroom implementierbar ist. Hab auf den Raspis noch einen IR-Sender (Bauteilkosten < 5 EUR) mit LIRC am laufen. So ist sogar eine individuelle Steuerung des Hifi-Equipment möglich. Für Gesamtkosten wesentlich weniger als 100 EUR pro Raum soll das mal jemand mit Sonos und Co. nachmachen.

Gruß
Leo
Titel: Frage zu den Notifications
Beitrag von: MarcoE am 19 September 2014, 17:19:20
Hallo,
ich bin noch nicht wirklich der Held in der FHEM Welt, daher ein (wahrscheinlich) einfach zu beantwortende Frage:
Ich möchte- wenn eine Squeezbox ein- bzw ausgeschaltet wird eine Funksteckdose ein- bzw ausschalten, da an der die Aktivboxen hängen.
Jetzt habe ich folgendes eingefügt:
define Musik_an_ntfy notify SqueezeBox_Wohnzimmer set Strom_Aktivbox $EVENT
Soweit funktioniert das- nur bekomme ich jetzt im Logfile Einträge bzgl. der anderen Notifications wie playStatus, currentAlbum und viele mehr. Lasse ich bei der Initialisierung das donotify auf true bekomme ich die Steckdosen damit nicht an.
Was ist mein Fehler?

Danke und Gruß,
Marco
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 19 September 2014, 22:55:20
Wenn donotnotify auf true steht, dann werden keine notifications erzeugt, ergo wird dein notify unten nie angesprungen. Wenn es auf false steht, dann wird für alles ein notify erzeugt ergo deine Logfile Einträge.

Schau mir in der Modul Beschreibung auf Seite 1 mal das Argument ampl an. Das macht genau das was du willst
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Zrrronggg! am 20 September 2014, 00:59:52
Habe Slim-Server und SB-Radio und SB Classic und setze das ganze schon seit Jahren ein, länger als ich Fhem benutze (ich habe zu SB1 Zeiten angefangen, die liegt noch irgendwo rum, ausgemustert wegen keine WPA Unterstützung).

Deswegen würde ich an sich das Modul gerne nutzen.

Mein Problem ist: Mir fällt zu verrecken nicht ein wozu. Alle Funktionen lassen sich übers Webfrontend des Servers prima steuern und auch die SB FB hab ich schneller zur Hand als mein Smartphone, mit ich dann Fhem sage würde es solle Slimserver sagen, er solle SBRadio sagen... hm...

Ausser: Automatisch laut Musik abspielen, wenn die Alarmanlage auslöst.


Oder anders: was sind eure Einsatzscenarien?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 20 September 2014, 07:39:05
Ich nutze keine echten Squeezeboxen. Ich habe ein paat Cubietrucks mit squeezelte. Einsatzzwecke bei mir sind:

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 22 September 2014, 09:28:39
Zitat
Mir fällt zu verrecken nicht ein wozu
naja, wir zwingen ja keinen, das Ding einzusetzen :-)

Vorneweg: ich habe hier im Thread auch mal geschrieben, dass die FHEM Module nicht dazu dienen sollen, die komplette LMS Funktionalität nochmal in FHEM abzubilden. das macht überhaupt keinen Sinn, da der LMS aber auch dedizierte Apps wie iPENG das viel besser können und aus meiner Sicht sehr gute User Interfaces bieten (und um ehrlich zu sein: ich setzte mich nicht tagelang ans programmieren, nur wil jemand die 8,- € für iPENG nicht ausgeben will :) )
Sprich die FHEM Module sollen dazu dienen, bestimmte Szenen zu automatisieren. Ich kann ja das Licht auch am Schalter an der Wand ein- und ausschalten. Dazu brauche ich FHEM nicht. Ich brauche aber FHEM dann, wenn ich etwas Automatisieren möchte. Auch kann ich alle Rolläden im Haus von Hand hoch- und runterfahren. Aber wenn FHEM sich zeitgesteuert darum kümmert und auch den Sonnenschutz selbst übernimmt steigert das die Bequemlichkeit. Und sollte man auch die SB Module hier sehen: zur Nutzung um bestimmte Szenen mittels eines Klicks anzusteuern.

Mein Szenarien:
- ich habe im Badezimmer ein paar Deckenlautsprecher und einen Intertechno Schalter (Baumarkt-Funkwandsender). Damit ich morgens im Halbschlaf nicht auf dem Tablet rummachen muß, drücke ich nur auf den Taster. Der SB-Server wird dann eingeschaltet, der Verstärker ein, die Lautsärke auf 30% gesetzt und Bayern 3 eingeschaltet. Wenn ich im Bad fertig bin, schalte ich das ganze wieder aus.
- ich habe das Telefon Modul (FB_Callmonitor) auf FHEM installiert. Wenn nun ein Anruf eingeht, dann liest FHEM die Lautsärke der Player aus und setzt die Lautstärke auf 10%. Sobald das Telefonat zu Ende ist, wird die Lautstärke wieder auf den vorherigen Wert zurück gesetzt. Diese Funktion ist mittels eines Enable Schalters im Frontend ausschaltbar.
- Samstags ist ja Arbeitstag am Haus. Damit ich von der Fussball-Bundesliga nichts verpasse während ich im Haus rumlaufe, schalte ich alle Player im Haus in den Synchro-betrieb und stelle auf "SWR1 Stadion". Das geht mittels eines Webschalters in FHEM

Ausblick:
gerade das morgens Aufsteh-Szenario werde ich noch deutlich aufblasen: ich habe ja auch Module für die Fritzbox DECT Telefone geschrieben, so dass die Weck-Funktionalität mittels FHEM gesteuert werden kann. Im Prinzip soll das wie folgt ablaufen
- aus dem Google Kalender wird mein erster Termin ausgelesen. Auf dieser Basis dann minus 1,5h ist die Weckzeit
- zur Weckzeit geht der Wecker runter. Das kann entweder durch die DECT Telefone an der fritzbox passieren oder durch den Wecker im SB-Radio
- zur Weckzeit wird die Kafeemaschine eingeschaltet und schonmal Kaffee gemacht (der Kaffeevollautomat "braucht" daher noch einen Arduino :)
- der LMS Server wird eingechaltet (via RCC Modul aus dem Contrib Bereich), der Verstärker für das Badezimmer wird eingeschaltet und Bayern 3 abgespielt
- der Rolladen im Bad wird einen Schlitzbreit geöffnet
- Sollte nicht innerhalb einer bestimmten Wartezeit eine Reaktion erfolgen (z.B. Licht im Badezimmer wird manuell eingeschaltet und an FHEM gemeldet), dann kann man davon ausgehen, dass man verschlafen hat. Ergo wird der Weckmechanismus heftiger und macht z.B. den Rolladen im Schlafzimmer auf

Alternativ kann man natürlich auch abends die Weckzit am SB-Radio einstellen. Dieses wird dann nachts durch FHEM ausgelesen und auf Basis dieser Weckzeit dann der Mechanismus oben gestartet. SB-Radio hat den schicken Vorteil, dass man die Lautstärke ganz langsam hochfahren kann.
das hat jetzt direkt nicht zwingend mit den FHEM Modulen für SB zu tun, aber die sind da zentraler Bestandteil


Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Zrrronggg! am 22 September 2014, 13:23:52
Zitat
Zitat
Mir fällt zu verrecken nicht ein wozu
naja, wir zwingen ja keinen, das Ding einzusetzen :-)

Natürlich.  Ich glaube du verstehst mich falsch: ich WILL das Teil ja einsetzen, schon weil es GEHT.
Mir fehlt es nur an Anwendungsfällen.
Daher dachte ich, ich frage mal, was andere damit überhaupt machen.

Die Badezimmernummer ist jedenfalls schon mal eine Idee.

Die naheliegende Thematik "wecken" kommt bei mir nicht zum tragen, da ich mich nicht wecken lasse. (jedenfall sehr selten)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 22 September 2014, 16:40:10
Wegen Wecken: den Luxus habe ich nicht. Ich mus morgens leider wegen Geld verdienen aufstehen :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Zrrronggg! am 22 September 2014, 19:02:07
Äh ja, arbeiten muss ich auch. Ich hab aber den Vorteil, dass es nicht ganz so wichtig ist, wann genau ich anfange.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Matscher am 23 September 2014, 08:36:23
Ich verwende das Modul nur mit der Talk Funktion. Am Haupteingang habe ich einen 4 Kanal Funkschalter mit dem ich verschiedene Dinge abfragen kann, bevor ich das Haus verlasse. Zum einen ist es der Fensterstatus, ob alle wichtigen Fenster und Türen geschlossen sind und natürlich die Temperatur. Das alles funktioniert super, da die SqueezeBox unweit vom Eingang entfernt ist und ich sie gut mit 60% Volume höre. Was natürlich für die Ansage automatisch angepasst wird.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 23 September 2014, 11:09:42
auch eine coole Anwendung !

Was mir dabei wieder einfällt: die Doku zum Modul ist nach wie vor dürftig. Ich komme einfach nicht dazu. Wer erstellt man einen ersten Beitrag im Wiki zur Squeezebox Unterstützung?
Titel: Zustand sichern u. restore sowie talk Frage
Beitrag von: MarcoE am 24 September 2014, 11:20:16
Hallo,
gibt es eine einfache Möglichkeit, den Zustand eines Players zu speichern und wiederherzustellen?
Ich suche sowas, um bei einem Anruf die Lautstärke heruntergefahren wird (wenn der Player läuft) und danach wieder auf die alten Einstellungen zu gehen.
Ebenso wäre es hilfreich um nach einem "talk" Aufruf wieder die vorher gespielte Musik laufen zu lassen, da danach der Player auf stop steht.
Hat jemand da schon etwas oder eine elegante Idee?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 24 September 2014, 12:08:05
Hallo MarcoE,

lies einfach zwei Einträge weiter oben: da steht, dass ich genau sowas realisiert habe.

my $MM_lastvolume;
# ------------------------------------------------------------------------
#  Phone rings / call starts
# ------------------------------------------------------------------------
sub MM_CB_Phone_begin( $ ) {
    my ( $event ) = @_;
   
    if( ReadingsVal( "MM_MUTE_MUSIC", "state", "on" ) eq "on" ) {
$MM_lastvolume = ReadingsVal( "SB_PLAYER_000000000001", "volume", 30 );
   
# reset the music to its initial value
fhem( "set SB_PLAYER_000000000001 volume 10" );
fhem( "set SB_PLAYER_000000000004 mute" );
    }
}

# ------------------------------------------------------------------------
#  Phone stops ringing / call ended
# ------------------------------------------------------------------------
sub MM_CB_Phone_end( $ ) {
    my ( $event ) = @_;

    if( ReadingsVal( "MM_MUTE_MUSIC", "state", "on" ) eq "on" ) {
# reset the music to its initial value
fhem( "set SB_PLAYER_000000000001 volume $MM_lastvolume" );
fhem( "set SB_PLAYER_000000000004 mute" );
    }
}

Die Funktion dann jeweils durch einen notify auf FB_CALLMONITOR aufrufen.

Zum Thema talk:
auch das wurde in diesem Thread schon mehrfach hoch und runter diskutiert. Bitte also erstmal lesen, und dann noch offene Fragen stellen. Im Code des Moduls ist das zwar drin, was von einem anderen Entwickler implementiert wurde. Status ist:
- das talk geht nicht wieder zurück auf den letzten Status
- der andere Entwickler blickt seinen eigenen Code nicht mehr
- der andere Entwickler ist seit Wochen hier nicht mehr aktiv

Sprich, wenn ich mal irgendwann Zeit haeb,. dann fixe ich das. Ich will die Hoffnung hier aber nicht zu hoch hängen, da die Komplexität des Themas enorm hoch ist.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: MarcoE am 24 September 2014, 13:24:01
Hallo,
danke für die Antwort- den ersten Teil hatte ich tatsächlich übersehen. Hatte aber auch gehofft, daß es so eine Art "store/restore" Methode gibt, mit der man den kompletten Zustand sichern und wiederherstellen kann ohne jedes einzelne Attribut massieren zu müssen (z.B. gibt es zwar einen state aber eben nur für get- für set muß ich dann on oder off rufen).
Das mit dem talk hatte ich schon gelesen, für meinen Zweck brauche ich auch keinen echten Aufsetzpunkt mitten im Lied. Mir würde reichen, wenn ich zuvor herausbekommen könnte welcher Stream läuft gerade oder welches Lied oder welche Playlist läuft aktuell. Aber ok- that's life...
Vielen Dank!
Marco
Titel: frage zu ampl und notify
Beitrag von: MarcoE am 25 September 2014, 19:52:12
Hallo,
mittels des ampl Arguments schalte ich einen dummy. Nun habe ich zwei Notifies auf diesem Dummy um den Baßverstärker und den Rest kurz hintereinanderzuschalten. Schalte ich von der Konsole den Dummy ein und aus passt alles. Aber wenn der Dummy durch die Squeezeboxen ein- oder ausgeschaltet wird reagiert der notify überhaupt nicht (aber die Änderung des dummy sehe ich im webfrontend)

Hat da jemand eine Idee, was da schief läuft (oder ich falsch mache)?

Danke und Gruß,
Marco
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Puschel74 am 25 September 2014, 20:23:49
Hallo,

du postest deine Frage im falschen Bereich.
Du postet deine Frage ohne den Code den du verwendest - die Glaskugeln sind leider aus.
Du lässt uns nicht am Inhalt deines Logfiels teil haben.

Grüße
Titel: frage zu ampl und notify
Beitrag von: MarcoE am 26 September 2014, 07:57:29
Hallo,
ich hatte gedacht, das wäre vielleicht schon etwas bekanntes, daher ohne Coding usw. Aber hier kommt es:
define Squeezeserver SB_SERVER 192.168.178.28
attr Squeezeserver alivetimer 120
attr Squeezeserver doalivecheck true
attr Squeezeserver maxcmdstack 200
attr Squeezeserver maxfavorites 30

define SqueezeBox_Kueche SB_PLAYER 00:04:20:2c:62:ad
attr SqueezeBox_Kueche amplifier play
attr SqueezeBox_Kueche coverartheight 50
attr SqueezeBox_Kueche coverartwidth 50
attr SqueezeBox_Kueche donotnotify true
attr SqueezeBox_Kueche fadeinsecs 10
attr SqueezeBox_Kueche idismac true
attr SqueezeBox_Kueche room Wohnung
attr SqueezeBox_Kueche serverautoon true
attr SqueezeBox_Kueche ttslanguage de
attr SqueezeBox_Kueche ttslink http://translate.google.com/translate_tts?ie=UTF-8
attr SqueezeBox_Kueche volumeLimit 100
attr SqueezeBox_Kueche volumeStep 10

define FileLog_SqueezeBox_Kueche FileLog /usr/local/FHEM/var/log/SqueezeBox_Kueche-%Y.log SqueezeBox_Kueche
attr FileLog_SqueezeBox_Kueche logtype text
attr FileLog_SqueezeBox_Kueche room SB_PLAYER

define SqueezeBox_Wohnzimmer SB_PLAYER 00:04:20:23:66:88 ampl:amplifier_Dummy
attr SqueezeBox_Wohnzimmer amplifier on
attr SqueezeBox_Wohnzimmer coverartheight 50
attr SqueezeBox_Wohnzimmer coverartwidth 50
attr SqueezeBox_Wohnzimmer donotnotify true
attr SqueezeBox_Wohnzimmer fadeinsecs 10
attr SqueezeBox_Wohnzimmer idismac true
attr SqueezeBox_Wohnzimmer room Wohnung
attr SqueezeBox_Wohnzimmer serverautoon true
attr SqueezeBox_Wohnzimmer ttslanguage de
attr SqueezeBox_Wohnzimmer ttslink http://translate.google.com/translate_tts?ie=UTF-8
attr SqueezeBox_Wohnzimmer volumeLimit 100
attr SqueezeBox_Wohnzimmer volumeStep 10

define FileLog_SqueezeBox_Wohnzimmer FileLog /usr/local/FHEM/var/log/SqueezeBox_Wohnzimmer-%Y.log SqueezeBox_Wohnzimmer
attr FileLog_SqueezeBox_Wohnzimmer logtype text
attr FileLog_SqueezeBox_Wohnzimmer room SB_PLAYER

define amplifier_Dummy dummy
attr amplifier_Dummy room Wohnung
define Lautsprecher FS20 6634 10
attr Lautsprecher IODev CUL
attr Lautsprecher model fs20st
attr Lautsprecher room Wohnung

define FileLog_Lautsprecher  FileLog /usr/local/FHEM/var/log/Lautsprecher-%Y.log Lautsprecher
attr FileLog_Lautsprecher logtype text
attr FileLog_Lautsprecher room FS20

define BassLautsprecher FS20 6634 20
attr BassLautsprecher IODev CUL
attr BassLautsprecher model fs20st
attr BassLautsprecher room Wohnung

define FileLog_BassLautsprecher  FileLog /usr/local/FHEM/var/log/BassLautsprecher-%Y.log BassLautsprecher
attr FileLog_BassLautsprecher logtype text
attr FileLog_BassLautsprecher room FS20

define LautsprecherOn_ntfy notify amplifier_Dummy:on set BassLautsprecher on;; sleep 2;; set Lautsprecher on
define LautsprecherOff_ntfy notify amplifier_Dummy:off set Lautsprecher off;; sleep 2;; set BassLautsprecher off


Im Log erscheint nicht viel.
Hier das Log der SqueezeBox_Wohnzimmer:
2014-09-26_07:55:12 SqueezeBox_Wohnzimmer off
Bei Loglevel 5 für die SqueezeBox kommt dann im Logfile folgendes (beim Einschalten):
2014.09.26 07:59:25 4: SB_PLAYER_Amplifier(SqueezeBox_Wohnzimmer): called
2014.09.26 07:59:25 4: SB_PLAYER_Amplifier(SqueezeBox_Wohnzimmer): called
2014.09.26 07:59:25 4: SB_PLAYER_Amplifier(SqueezeBox_Wohnzimmer): called
2014.09.26 07:59:25 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving
2014.09.26 07:59:25 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer CMD:mode ARGS:stop...
2014.09.26 07:59:25 4: SB_PLAYER_Amplifier(SqueezeBox_Wohnzimmer): called
2014.09.26 07:59:25 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving
2014.09.26 07:59:43 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer CMD:power ARGS:1 0 seq_no:45...
2014.09.26 07:59:43 4: SB_PLAYER_Amplifier(SqueezeBox_Wohnzimmer): called
2014.09.26 07:59:43 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving
2014.09.26 07:59:43 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer CMD:prefset ARGS:server power 1...
2014.09.26 07:59:43 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving
2014.09.26 07:59:43 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer CMD:menustatus ARGS:ARRAY(0x3b3d740) add 00:04:20:23:66:88...
2014.09.26 07:59:43 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving
2014.09.26 07:59:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer CMD:displaynotify ARGS:showbriefly HASH(0x3b61468)...
2014.09.26 07:59:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving
2014.09.26 07:59:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer CMD:pause ARGS:0...
2014.09.26 07:59:44 4: SB_PLAYER_Amplifier(SqueezeBox_Wohnzimmer): called
2014.09.26 07:59:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving
2014.09.26 07:59:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer CMD:menustatus ARGS:ARRAY(0x3737d80) add 00:04:20:23:66:88...
2014.09.26 07:59:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving
2014.09.26 07:59:47 5: SB_PLAYER_Set: called with ?
2014.09.26 07:59:48 5: SB_PLAYER_Set: called with ?

hier noch das Ausschalten:
2014.09.26 08:01:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer CMD:power ARGS:0 0 seq_no:46...
2014.09.26 08:01:44 4: SB_PLAYER_Amplifier(SqueezeBox_Wohnzimmer): called
2014.09.26 08:01:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving
2014.09.26 08:01:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer CMD:prefset ARGS:server power 0...
2014.09.26 08:01:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving
2014.09.26 08:01:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer CMD:menustatus ARGS:ARRAY(0x38d8d28) add 00:04:20:23:66:88...
2014.09.26 08:01:44 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving
2014.09.26 08:02:14 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer CMD:prefset ARGS:server snLastSyncUp 1411711334...
2014.09.26 08:02:14 5: SB_PLAYER_Parse: SqueezeBox_Wohnzimmer: leaving

Hilft das irgendwie? Ich kann es auch gerne woanders posten- ich dachte nur, es hinge vielleicht _nur_ mit dem Squeezebox Modul zusammen.
Danke und Gruß,
Marco

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 26 September 2014, 23:11:23
Zum Thema talk:
auch das wurde in diesem Thread schon mehrfach hoch und runter diskutiert. Bitte also erstmal lesen, und dann noch offene Fragen stellen. Im Code des Moduls ist das zwar drin, was von einem anderen Entwickler implementiert wurde. Status ist:
- das talk geht nicht wieder zurück auf den letzten Status
- der andere Entwickler blickt seinen eigenen Code nicht mehr
- der andere Entwickler ist seit Wochen hier nicht mehr aktiv

Sprich, wenn ich mal irgendwann Zeit haeb,. dann fixe ich das. Ich will die Hoffnung hier aber nicht zu hoch hängen, da die Komplexität des Themas enorm hoch ist.
I am not sure you are talking about me because I read fhem forum using google translation ;-)
I have been in holidays, then quite busy so I did not look at the code again. At home I have another version of the talk function running, which is also a bit bugged, but perheaps less. If someone want to test it I can send it to him.
When I have time I come back to dev
Titel: nochmal ampl: ...
Beitrag von: MarcoE am 29 September 2014, 14:29:11
Hallo,
ich habe mal mir das Problem mit dem dummy Device welches durch den ampl: Parameter geschaltet wird (und worauf leider kein notify reagiert) näher angeschaut. Mein workaround besteht nun in einer Änderung in der 98_SB_PLAYER.pm in sub SB_PLAYER_Amplifier- die sieht nun so aus:
sub SB_PLAYER_Amplifier( $ ) {
    my ( $hash ) = @_;
    my $name = $hash->{NAME};

    if( ( $hash->{AMPLIFIER} eq "none" ) || (
            !defined( $defs{$hash->{AMPLIFIER}} ) ) ) {
        # amplifier not specified
        return;
    }

    my $setvalue = "off";

    Log3( $hash, 4, "SB_PLAYER_Amplifier($name): called" );

    if( AttrVal( $name, "amplifier", "play" ) eq "play" ) {
        my $thestatus = ReadingsVal( $name, "playStatus", "pause" );
        if( ( $thestatus eq "playing" ) || ( $thestatus eq "paused" ) ) {
            $setvalue = "on";
        }
    } elsif( AttrVal( $name, "amplifier", "on" ) eq "on" ) {
        if( ReadingsVal( $name, "power", "off" ) eq "on" ) {
            $setvalue = "on";
        }
    } else {
        Log3( $hash, 4, "SB_PLAYER_Amplifier($name): ATTR amplifier " .
              "set to wrong value [on|play]" );
    }
  my $actualState = Value("$hash->{AMPLIFIER}");

  if ( $actualState ne $setvalue)
  {
    fhem( "setstate $hash->{AMPLIFIER} $setvalue" );
    fhem( "trigger $hash->{AMPLIFIER} $setvalue" );
    Log3( $hash, 5, "SB_PLAYER_Amplifier($name): set $hash->{AMPLIFIER} $setvalue" );
   } else
   {
     Log3( $hash,5,"SB_PLAYER_Amplifier($name):no amplifier state change");
   }
    return;

}

sprich ich frage ab, ob der Zustand sich geändert hat und wenn ja mache ich zusätzlich zum set einen trigger.
Mit nur triggern ändert sich leider im webinterface der Zustand des dummy nicht und ohne trigger reagieren die notify nicht.
Ohne Zustandsabfrage gehen die notify auch jedes Mal los.
Geht das eleganter oder ist das überhaupt so notwendig?

Danke und Gruß,
Marco
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dieda am 25 Oktober 2014, 18:55:12
Hallo bugster_de
und alle, die an diesem Modul beteiligt waren,

ein dickes Lob. War erstaunt, wie schnell und einfach sich diese Modul installieren lies. Nat. bleiben da noch ein paar Fragen und Ideen kommen mir nat. auch...

Das mit der Lautstärkeregelung bei Telefongesprächen, die Fenster-, Türen-, etc Abfrage beim Verlassen des Hauses....

Habe gleich 4 Clients mir eingerichtet. 1x Raspi, 2x Squeezeboxen und ein ausrangiertes HTC-Telefon (jeep, das ist dann noch einfacher und Noop-Prof einzurichten, wenn man dann noch mit Tasker nachhilft, klappts auch mit dem Batteriestatus...)

Aber wo ich ums Ver**** nichts weiterkomme sind die Favoriten und die Playlists. Da bräuchte ich noch mal einen Schubs.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 06 November 2014, 18:36:55
Hi,

die Favoriten und die Playlists sollten eigentlich von selbst vom LMS Server rüber nach FHEM geholt werden. Dafür musst du die aber natürlich im LMS Server auch definiert haben. Also einfach http://die.ip.meines.servers:9000 aufrufen und dort anlegen.

Du kannst das Abholen der Playlist und Favoriten auch noch mal in FHEM anstossen: am LMS Server set statusRequest aufrufen

Wenn das alles nicht hilft: verbose auf 5 stellen und Logfile hier posten
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dieda am 06 November 2014, 21:06:34
Danke, irgendwann hat es dann auch funktioniert. Was immo noch nicht so klappt ist die Ansprechbarkeit per FHEM. Meist hilft ein Neustart von FHEM.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 07 November 2014, 08:13:00
Hi,

jetzt habe ich mal Fragen:

ich habe neulich meinen LMS Server vom Windows-PC auf den Raspi umgezogen (auf dem auch FHEM läuft). Dabei habe ich auch gleich von LMS 7.7.3 auf 7.8 umgestellt. Im Prinzip geht das auch soweit. Die Standardfunktionen zur Steuerung der SBs von FHEM aus gehen auch. Allerdings kommen keine Infos mehr vom LMS Server an FHEM. Auf die Anfrage "listen 1" reagiert der LMS Server einfach gar nicht.

Hat das auch jemand? Ist die V7.8 noch so beta Zustand, dass das nicht geht? Meine iPENG App auf dem iPAD geht ohne Probleme (also muß es wohl an meinen Modulen liegen)

Und weitere Frage: ich habe auf dem Raspberry auch zwei virtuelle Player mittels Squeezeslave laufen. Zwei USB-Soundkarten dran (eine pro Raum). Das geht echt gut.
Nun wollte ich die eine Soundkarte durch eine deutlich höherwertige ersetzen (eine Soundblaster X-Fi HD). Da sagt mir Squeezeslave aber, dass dies nicht gehe, da die Samplingrate nicht unterstützt werde. Wenn ich den einen Player dann aber auf Squeezelite umstelle, dann habe ich ca. 45% CPU Load durch Squeezelite. Kennt den Effekt jemand?



Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 07 November 2014, 08:15:42
@Dieda:
Zitat
Was immo noch nicht so klappt ist die Ansprechbarkeit per FHEM. Meist hilft ein Neustart von FHEM.
kannst Du das genauer beschreiben, was das Problem ist? Sonst muß ich meine Glaskugel suchen gehen ;)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 07 November 2014, 08:31:19
@Dieda:kannst Du das genauer beschreiben, was das Problem ist? Sonst muß ich meine Glaskugel suchen gehen ;)

Ich kenne das Phänomen. Der Reconnect des Moduls mit dem SB Server scheint manchmal nicht zu funktionieren. Ich starte momentan jede Nacht FHEM durch um das Problem zu umgehen. Habe momentan einfach zu wenig Zeit mal bissl Troubleshooting zu betreiben.

Zum Playerproblem: Da Squeezeslave Probleme mit TTS macht, nutze ich nur Squeezelite (habe 3 Raspis damit laufen, 2 squeezeplug und 1 raspbmc). Hast du die 45% Load denn im IDLE oder wenn Musik spielt? Und hast du mal die alte Soundkarte mit Squeezelite getestet?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 07 November 2014, 10:32:58
Hi,

Zitat
>>Der Reconnect des Moduls mit dem SB Server scheint manchmal nicht zu funktionieren.
kann ich bestätigen und ich habe schon gedebugged wie wild. mein Code ist identisch zu anderen Modulen (z.B. Homematic). Aber es scheint so, als ob die Verbidnung zum LMS auf tieferer Ebene von FHEM verloren geht und dann leider die re-connect Routinen in meinem Modul eben nicht aufgerufen werden. Das scheint auch unabhängig davon zu sein, ob der LMS dauerhaft durchläuft oder ein-/aus geschaltet wird.
Momentan löse ich das so, dass ich am SB-Server einach den modify Knopf drücke. Dadurch durchläuft das Modul einmal die komplette _define Routine und dann geht es. Macht mich auch irre, aber ich komme nicht dahinter, was das Problem genau ist.

Squeezelite: die 45% load habe ich immer. Also egal ob alte oder neue Soundkarte und egal ob Musik spielt oder nicht. Und ich habe die 45% pro Instanz. Sprich wenn ich zwei starte, dann habe ich 90% Load. Bei drei Instanzen schmiert der RPi ab. Ich muß aber ehrlicher weise sagen, dass ich mich da noch nicht 100% ins Detail eingefuchst habe und z.B. Logfiles durchgesehen hätte.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 09 November 2014, 09:34:08
Hi,
kann ich bestätigen und ich habe schon gedebugged wie wild. mein Code ist identisch zu anderen Modulen (z.B. Homematic). Aber es scheint so, als ob die Verbidnung zum LMS auf tieferer Ebene von FHEM verloren geht und dann leider die re-connect Routinen in meinem Modul eben nicht aufgerufen werden.

Das ist ja echt mysteriös. Ich kann nur hoffen, dass du oder jemand anderes das kleine Bit was uns dazwischen pfuscht findet und den Fehler beheben kann.  ;) Mal schauen ob ich mir das demnächst mal zu Gemüte führe, aber mach dir nicht  zu viele Hoffnungen, bin nicht so der Programmierer.  ::)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 09 November 2014, 14:18:45
Hallo,

Hast du schon versucht meine Änderung einzubauen ?

Seitdem ich den Code bei mir geändert habe, habe ich keine Probleme mehr mit verlorenen Verbindungen gehabt. Die Änderung sorgt dafür dass das Modul nicht in einer Schleife hängt aus der es von selbst nie wieder rauskommt.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 09 November 2014, 18:45:09
Hi Chris,

ja ich habe den Code eingebaut und das On/Off des Verstärkers ging gar nicht mehr ....  Habe es angepasst und jetzt scheint es zu gehen.

In Contrib ist eine Version eingecheckt. Hier sind ein paar Bugfixes aufgenommen. Ausserdem hat das Modul jetzt eine Doku.
Einen RIESEN-DANK an Siggi85, der die Doku geschrieben hat !!!

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dieda am 09 November 2014, 19:28:16
Hi Chris,

ja ich habe den Code eingebaut und das On/Off des Verstärkers ging gar nicht mehr ....  Habe es angepasst und jetzt scheint es zu gehen.

In Contrib ist eine Version eingecheckt. Hier sind ein paar Bugfixes aufgenommen. Ausserdem hat das Modul jetzt eine Doku.
Einen RIESEN-DANK an Siggi85, der die Doku geschrieben hat !!!



Ich muss da zur Sicherheit mal nachhaken. Ist das gerade geschehen oder ist das schon länger her? Ich möchte ja ein paar Squeezeboxen headless laufen lassen und nur über einen FS20-Schalter ein- oder aus.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Future am 09 November 2014, 19:55:55
Hallo,
wie schon mal geschrieben .... DANKE für das Modul  ;)

hab aber jetzt was festgestellt:
Der Wecker/Alarm ist in fhem nach einem Neustart von fhem nicht mehr in den readings bzw ich kann ihn nicht mehr über fhem steuern. Im Sqeezeplayer ist er nach wie vor vorhanden und funktioniert auch.
Mein "problemchen"  ::)
ich hab einen Taster der alarm1 oder alarm2 ein bzw ausschaltet. aber nach einem restart von fhem sind beide Wecker/Alrme im fhem nicht mehr vorhanden, dann muss ich erst den alarm am Sqeezeserver löschen und mit fhem neu anlegen. löschen deswegen.... fhem legt einen neuen Wecker/Alarm am Sqeezeserver an...... am ende hatte ich 10 gleiche Wecker definiert und verschlafen  ;D weil nix mehr ging ( deswegen ist es mir aufgefallen )
kann man die bereits vorhanden Wecker/Alarme nicht auslesen ?

Gruß
Future
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 10 November 2014, 07:49:12
Kann ich bestätigen gleiches Problem bei mir. Nur das ich nichtmal neustarten muss. Er vergisst die Wecker auch so.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 10 November 2014, 09:17:13
das mit dem Wecker schaue ich mal an. Aber vorab der Hinweis: der LMS Server bietet keine Möglichkeit, die Wecker vernünftig abzufragen. Deshalb unterstützen die Module auch nur zwei Wecker, obwohl die Player viel mehr könnten. Ich mache euch also mal nicht zu viel Hoffnung: richtig schön wird das wohl eher nicht gehen.

Anderes Thema
ich habe vor zwei Wochen den LMS auch auf den RPi umgezogen, auf dem auch FHEM läuft. Auf dem RPi sind auch zwei Software Player (squeezeslave) am Laufen. Meine Musiksammlung ist sehr groß (ca. 2.000 Alben) und ich kann euch nun berichten, dass das mal so überhaupt nicht funktioniert. Der arme, kleine RPi ist damit völlig überfordert. Im Prinzip bewegt sich da nicht mehr viel und die Bedienung macht nicht wirklich Spaß. Die iPENG App auf dem iPAD geht noch so leidlich, da hier vermutlich die Latenzen via WLAN dem RPi helfen. Aber die Integration in FHEM geht nicht wirklich. Schon gar nicht, wenn man in FHEM die 127.0.0.1 (also localhost) nutzt. Sprich: die Arbeit, das System so aufzusetzen könnt ihr euch aus meiner Sicht sparen.
Falls jemand andere Erfahrungen hat, dann gerne her damit. Vielleicht mache ich ja was falsch.
Der Umstieg auf einen Odroid spare ich mir glaube ich. Laut SB-Forum ist der ca. Faktor 5 schneller wie der RPi. Gefühlt bräuchte ich aber Faktor 50 :-)

Squeezelite
da ich auf eine höherwertige Soundkarte umsteigen wollte, musste ich an Stelle squeezeslave die squeezelite Software Player installieren. Die erzeugen aber sehr hohe Rechenlast auf RPi (bis zu 50% pro Instanz). Somit wird das Problem, wie oben beschrieben noch heftiger. Die Rechenlast kommt daher, dass SL on-the-fly transkodiert: sprich wenn man einen Radiostream mit niedriger Bitrate hört und diese an die Soundkarte ausgibt, dann transkoidert SL das Material nach oben und somit haben wir echt heftige Rechenlast.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 10 November 2014, 09:43:15
Kann ich alles nur bestätigen. Hab das selbe vor ein paar Monaten getestet und bin dann auf was viel Leistungsstärkeres umgestiegen. Mit dem Raspberry geht das nicht. Selbst wenn fhem und LMS auf unterschiedlichen Raspberrys laufen ist die Bedienung eine Qual. Auf dem Cubietruck oder dem Bananapi könnte man es mal testen. Mir fehlt blos die Hardware dazu.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 10 November 2014, 09:45:46
Auf dem Cubietruck läuft LMS parallel zu Squeezelite optimal. Nur Squeezelite ist auch auf dem Raspi überhaupt kein Problem. Der langweilt sich sogar.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 10 November 2014, 10:27:57
@DJAlex: auf was bist Du denn dann umgestiegen? Immer noch ARM basiert oder x86?

@marvin78: Cubietruck: wie groß ist denn deine Musiksammlung? Es scheint laut LMS Forum so zu sein, dass mit zunehmder DB Größe die Performance exponentiell in den Keller geht
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 10 November 2014, 10:41:04
Naja. Ich würde nicht sagen, dass sie sehr groß ist aber es sind immerhin über 2700 Dateien in 18,3 GB.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 10 November 2014, 11:09:16
Ich hab noch bischen mehr. Hab mir nen richtigen Server aus nem Asus E-35M1-I Deluxe gebaut.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 10 November 2014, 11:12:48
Der Server könnte bei mir auch auf einem Synology NAS laufen. Das hat damit überhaupt keine Probleme. Das läuft aber nicht 24/7 und leider blockiert das Squeezebox-Modul FHEM, wenn der LMS nicht erreichbar ist (mehrfach hier geschrieben).
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 10 November 2014, 11:18:07
Danke. Ein richtiger Server steht bei mir auch noch an. der soll aber in den Keller runter.
Naja, dann baue ich wieder zurück und schmeiße den LMS etc. vom RPi wieder runter und ziehe ihn wieder auf den Wohnzimmer PC um. Zumindest die SB-Player müssen halt im Wohnzimmer stehen, da dort die Lautsprecher Kabel aus dem ganzen Haus zusammen laufen. Deshalb war die Idee den RPi auch ins Wohnzimmer zu stellen und dort dann alles drauf laufen zu lassen.

Zitat
in 18,3 GB.
bei mir sind das 270 GB. Wie gesagt alle CDs die ich so besitze sind digitalisiert plus alles was ich per Online Musik gekauft habe. Ist aber auch klasse: wenn man abends auf der Terrasse sitzt und mit der iPAD App Lieder-Raten macht
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 10 November 2014, 11:23:13
Hab des Board bei mir mit ner Raptor in ein kleines 2 HE Gehäuse gesteckt und in den Netzwerverteiler gebaut. hat grad so reingepasst. War ein ziemlicher Aufwand so ein kleines Gehäuse zu finden.
Braucht im Dauerbetrieb mit 5 Festplatten ca. 60 Watt. Bei der Verwendung von SSD's ist etwas Vorsicht geboten. Hab mit dem selben Board aber unter Windows Server zwei SSD's geschrottet.( jeweils innerhalb einer Woche)
Deshalb die Raptor.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 10 November 2014, 22:20:20
Alarme / Wecker
ich habe mir mal ganz kurz die Alarme angeschaut und tatsächlich eine Möglichkeit gefunden, alle Alarme eines Players auszulesen. Allerdings fehlt mir gerade ein bisschen die Fantasie, wie ich das nun in FHEM umsetzen kann.

1.) ein Player kann beliebig viele Alarme haben --> wie soll man die in FHEM anzeigen?
2.) ein Alarm ist in sich ein sehr komplexes "Tierchen" mit vielen Option etc. --> wie soll man die in FHEM anzeigen?

Das was mir momentan einfällt sind die Alarme als eigenes Modul in FHEM anzulegen, da die Alarm Steuerung als Sub-Element des Players einfach zu komplex ist, um es vernünftig zu bedienen. Das ist aber auch unschön, da ein Alarm-Modul ja zu einem festen Player gehört und ausserdem dynamisch angelegt/gelöscht werden kann.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 11 November 2014, 07:42:30
Also für mich gehören die Alarme unter Readings. Ich würd das nicht in ein extra Modul packen. Kann man die Optionen nicht Komma getrennt ins Reafing schreiben? Dann hätt ich nur eine Zeile je Alarm. Für das setzen eines Alarms würd ich eine lange Dropdown-Auswahl machen. (Wenn ich könnte)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 11 November 2014, 08:22:54
Hallo,

ich habe mir jetzt eine ReadingsGroup für meinen Floorplan zur Steuerung des Squeezebox-Moduls gebaut. Dafür habe ich auch das Attribut donotnotify auf false gesetzt, damit ich die Aktualisierung in der Readingsgroup sehe. Nun ist mir (störend) aufgefallen, dass das Reading playStatus bei laufendem Player immer zwischen 'playing' und 'paused' wackelt - und das mehrmals pro Minute. Das sieht zum einen in der Readingsgroup unschön aus und zum anderen erzeugt es natürlich auch reichlich events... (Da ich u.A. den playStatus in der Readingsgroup anzeige, möchte ich das event auch ungern abschalten.)
Woran kann das liegen und was kann ich tun?

Vielen Dank
Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 11 November 2014, 10:51:34
@RoBra: das muß ich mir anschauen. Kannst Du beim SB-Server mal verbose auf 5 stellen und dann das Logfile posten, in dem der Effekt sichtbar ist?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 11 November 2014, 11:04:10
@RoBra: das muß ich mir anschauen. Kannst Du beim SB-Server mal verbose auf 5 stellen und dann das Logfile posten, in dem der Effekt sichtbar ist?

Hier das Log:

2014.11.11 11:01:29 1: SB_PLAYER_Get: called with OG.ez.RA.Player ?
2014.11.11 11:01:44 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:44 1: SB_PLAYER_Get: called with OG.ez.RA.Player ?
2014.11.11 11:01:45 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:58 5: SB_PLAYER_GetStatus: called
2014.11.11 11:01:58 5: SB_PLAYER_GetStatus: leaving
2014.11.11 11:01:58 5: SB_PLAYER_GetStatus: called
2014.11.11 11:01:58 5: SB_PLAYER_GetStatus: leaving
2014.11.11 11:01:58 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:artist ARGS:WET WET WET...
2014.11.11 11:01:58 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:58 5: SB_PLAYER_GetStatus: called
2014.11.11 11:01:58 5: SB_PLAYER_GetStatus: leaving
2014.11.11 11:01:58 5: SB_PLAYER_GetStatus: called
2014.11.11 11:01:58 5: SB_PLAYER_GetStatus: leaving
2014.11.11 11:01:58 5: SB_PLAYER_GetStatus: called
2014.11.11 11:01:58 5: SB_PLAYER_GetStatus: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:album ARGS:...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:title ARGS:LOVE IS ALL AROUND...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:playlist ARGS:url...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:remote ARGS:1...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:status ARGS:0 500 tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12907.1196429176 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixer volume:16 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x56e73a0) playlist index:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808...
2014.11.11 11:01:59 5: SB_SERVER_ParsePlayerStatus(OG.ez.RA.Player): data to parse: tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12907.1196429176 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixervolume:16 playlistrepeat:0 playlistshuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x56e73a0) playlistindex:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:artist ARGS:WET WET WET...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:album ARGS:...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:title ARGS:LOVE IS ALL AROUND...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:playlist ARGS:url...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:remote ARGS:1...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:status ARGS:0 500 tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12907.1832358284 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixer volume:16 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x562d8c8) playlist index:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808...
2014.11.11 11:01:59 5: SB_SERVER_ParsePlayerStatus(OG.ez.RA.Player): data to parse: tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12907.1832358284 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixervolume:16 playlistrepeat:0 playlistshuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x562d8c8) playlistindex:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:artist ARGS:WET WET WET...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:album ARGS:...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:title ARGS:LOVE IS ALL AROUND...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:playlist ARGS:url...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:remote ARGS:1...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:status ARGS:0 500 tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12907.2443768425 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixer volume:16 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x5722530) playlist index:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808...
2014.11.11 11:01:59 5: SB_SERVER_ParsePlayerStatus(OG.ez.RA.Player): data to parse: tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12907.2443768425 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixervolume:16 playlistrepeat:0 playlistshuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x5722530) playlistindex:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:artist ARGS:WET WET WET...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:album ARGS:...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:title ARGS:LOVE IS ALL AROUND...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:playlist ARGS:url...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:remote ARGS:1...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:status ARGS:0 500 tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12907.3087078972 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixer volume:16 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x57211d8) playlist index:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808...
2014.11.11 11:01:59 5: SB_SERVER_ParsePlayerStatus(OG.ez.RA.Player): data to parse: tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12907.3087078972 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixervolume:16 playlistrepeat:0 playlistshuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x57211d8) playlistindex:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:artist ARGS:WET WET WET...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:album ARGS:...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:title ARGS:LOVE IS ALL AROUND...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:playlist ARGS:url...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:remote ARGS:1...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:status ARGS:0 500 tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12907.3707110329 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixer volume:16 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x56e6a70) playlist index:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808...
2014.11.11 11:01:59 5: SB_SERVER_ParsePlayerStatus(OG.ez.RA.Player): data to parse: tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12907.3707110329 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixervolume:16 playlistrepeat:0 playlistshuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x56e6a70) playlistindex:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:mode ARGS:play...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Set: called with ?
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:mode ARGS:play...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:mode ARGS:play...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:mode ARGS:play...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:mode ARGS:play...
2014.11.11 11:01:59 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:18 5: SB_PLAYER_GetStatus: called
2014.11.11 11:02:18 5: SB_PLAYER_GetStatus: leaving
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:artist ARGS:WET WET WET...
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:album ARGS:...
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:title ARGS:LOVE IS ALL AROUND...
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:playlist ARGS:url...
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:remote ARGS:1...
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:status ARGS:0 500 tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12926.5099532051 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixer volume:16 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x55dde30) playlist index:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808...
2014.11.11 11:02:18 5: SB_SERVER_ParsePlayerStatus(OG.ez.RA.Player): data to parse: tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12926.5099532051 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixervolume:16 playlistrepeat:0 playlistshuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x55dde30) playlistindex:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:18 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:18 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:18 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:18 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:mode ARGS:play...
2014.11.11 11:02:18 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:18 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:18 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:18 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:18 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:28 1: Perfmon: possible freeze starting at 11:02:25, delay is 3.009
2014.11.11 11:02:28 5: SB_PLAYER_GetStatus: called
2014.11.11 11:02:28 5: SB_PLAYER_GetStatus: leaving
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:artist ARGS:WET WET WET...
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:album ARGS:...
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:title ARGS:LOVE IS ALL AROUND...
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:playlist ARGS:url...
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:remote ARGS:1...
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:status ARGS:0 500 tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12937.1239301891 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixer volume:16 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x502f880) playlist index:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808...
2014.11.11 11:02:28 5: SB_SERVER_ParsePlayerStatus(OG.ez.RA.Player): data to parse: tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12937.1239301891 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixervolume:16 playlistrepeat:0 playlistshuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x502f880) playlistindex:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808
2014.11.11 11:02:28 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:28 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:28 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:28 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:28 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:29 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:mode ARGS:play...
2014.11.11 11:02:29 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:29 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:29 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:29 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:29 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:46 5: SB_PLAYER_GetStatus: called
2014.11.11 11:02:46 5: SB_PLAYER_GetStatus: leaving
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:artist ARGS:WET WET WET...
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:album ARGS:...
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:title ARGS:LOVE IS ALL AROUND...
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:playlist ARGS:url...
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:remote ARGS:1...
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:status ARGS:0 500 tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12955.161791111 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixer volume:16 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x55f2a50) playlist index:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808...
2014.11.11 11:02:46 5: SB_SERVER_ParsePlayerStatus(OG.ez.RA.Player): data to parse: tags:Kc player_name:OG.ez.RA.Player player_connected:1 player_ip:192.168.18.78:39818 power:1 signalstrength:0 mode:play remote:1 current_title:Radio Lausitz - Die beste Musik - Wir lieben die Lausitz. time:12955.161791111 rate:1 sync_master:b8:27:eb:3a:ad:00 sync_slaves:bc:47:60:0f:4f:94,b8:27:eb:df:aa:b0 mixervolume:16 playlistrepeat:0 playlistshuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1415687363.19053 playlist_tracks:1 remoteMeta:HASH(0x55f2a50) playlistindex:0 id:-63033808 title:LOVE IS ALL AROUND artwork_url:http://media.radiolausitz.de/playlist_cover/ 5207.jpg coverid:-63033808
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:46 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:46 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:46 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player CMD:mode ARGS:play...
2014.11.11 11:02:46 5: SB_PLAYER_Parse: OG.ez.RA.Player: leaving
2014.11.11 11:02:47 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:47 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:47 5: SB_PLAYER_Set: called with ?
2014.11.11 11:02:59 1: SB_PLAYER_Get: called with OG.ez.RA.Player ?

Aufgetreten ist es zu folgenden Zeiten:

11:01:59
11:02:18
11:02:29
11:02:47

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 11 November 2014, 14:52:27
Hi,

der Effekt ist erstmal dubios, da der LMS keine Info zur Play-Pause Zustandsänderung schickt. Dubios ist erstmal, dass der LMS den kompletten Player Status alle 10 bis 20 Sekunden neu schickt, obwohl sich ja nichts geändert hat (du spielst ja immer das gleiche Stück). Meine Vermutung daher, dass der LMS die Verbindung zum Player verliert oder der die LMS Hardware an/über der Leistungsgrenze fährt.

Deshalb folgende Prüffragen:
- läuft der LMS und FHEM auf der gleichen Maschine? Wenn ja, was ist das für eine? Ein RPi?
  wenn ja, dann könnte die CPU Load die 100% knacken und dann geht es erstmal in die Knie. Dafür spricht auch der Eintrag um 11:09
Perfmon: possible freeze starting at 11:02:25, delay is 3.009
- hast Du Netzwerkaussetzer zwischen LMS Server und Player? Laut deinen Bezeichnungen vermute ich mal, dass die in unterschiedlichen Stockwerken stehen. Sprich: unterbricht auch die Musik kurz?

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 11 November 2014, 15:20:24
Also, die Musik läuft durch. Der LMS läuft auf einer Synology Diskstation, FHEM läuft auf einem Cubietruck und der Player ist ein RPI mit piCorePlayer - alles mit Netzwerkkabeln verbunden. Ich habe noch einen zweiten Player, bei dem das nicht passiert - der Unterschied ist, dass dieser noch nicht auf den piCorePlayer umgezogen ist...

Ich werde heute Nachmittag nochmal die alte SD-Karte reinschieben, wo es noch nicht der piCoreplayer sondern Squeezelite auf raspbian war und mal sehen, ob es dann noch immer auftritt.

Ronny

PS: den Effekt habe ich übrigens auch bei Stop -> auch da wechselt er immer zwischen stopped und pause...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 11 November 2014, 16:09:26
wie gesagt: ich muß mir den Code der Module auch nochmal genau ansehen. Es gab neulich ein paar Patches von anderen Usern, die ich übernommen habe.

Welche Modul Version bei FHEM hast Du im Einsatz? Sind das schon die neuen Module, die ich diese Woche eingecheckt habe?

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 11 November 2014, 18:15:42
Habe mir wegen des Phänomens die aktuellste Version gezogen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: karl0123 am 11 November 2014, 20:11:28
Ehrlich gesagt, wäre es besser, du gegst 2-3 Versionen zurück. Die aktuelle ist zu fehlerhaft.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Future am 11 November 2014, 21:02:39
also das mit dem Alarmen wäre zwar schön, ist aber jetzt kein muss bzw wenns später kommt  ;)

zum anderen Thema:
bei mir läuft dem LMS auf dem CubieTruck mit einer 500 GB HD. Sammlung besteht aus kanpp 900 Alben und knapp 15.000 Musikstücken.
nebeibei laufen noch 2 Squeezelight player, 1x Analog und 1x Digital. wäre das nicht noch genug laufen fhem, nagios3, Owncloud und ein Postfix Server.....  ::) 8)
und das ganze läuft relativ problemlos und die last ist auch nicht über normal  ::) ;D

 
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 12 November 2014, 07:13:27
Ehrlich gesagt, wäre es besser, du gegst 2-3 Versionen zurück. Die aktuelle ist zu fehlerhaft.

Ich hatte vorher eine ziemlich alte Version mit der es auch nicht ging und hatte von dem Problem abgesehen, bisher keine Probleme mit der neuen.

Ich werde heute Nachmittag nochmal die alte SD-Karte reinschieben, wo es noch nicht der piCoreplayer sondern Squeezelite auf raspbian war und mal sehen, ob es dann noch immer auftritt.

Es tritt auch mit der anderen Version des Players auf...
Titel: problem mit status update
Beitrag von: MarcoE am 12 November 2014, 12:15:15
Hallo,
ich habe gerade die neueste Version von Server und Player eingespielt.
Nun habe ich folgendes Problem (was zuvor problemlos funktionierte): ich schalte meine Squeezebox mit der IR-Fernbedienung ein woraufhin sich (bisher) der Status im FHEM auf on änderte und per ampl die Lautsprecher eingeschaltet wurden. (Bzw. beim Ausschalten eben ausgeschaltet)

Nun passiert dies erst bei Aufruf von statusRequest auf den Player, wobei auch dabei nur ampl geschaltet wird aber der STATE sich nicht ändert.
Muss ich da noch etwas anders parametrisieren (im Vergleich zu vorher)?

Nachtrag: heute morgen haben sich die Lautsprecher ein- bzw. ausgeschaltet, aber mit einer Zeitverzögerung von geschätzt 2-4 Minuten. Beim Ausschalten kann ich ja damit leben- aber einschalten war schneller besser ;-)
Danke und Gruß,
Marco
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 13 November 2014, 11:07:16
Hallo Leute,

mittlerweile kann ich bei mir zu Hause das ganze Verhalten mit On/Off sowie die beschriebenen Verstärker On/off ebenfalls nachvollziehen bzw. es tritt bei mir auch auf. Was ich allerdings nicht nachvollziehen kann ist der Grund hierfür. In der gesamten Kommunikation mit dem LMS Server tritt keinerlei Hinweis auf irgendein Kommando auf, welches diesen Effekt erzeugt. Ich bin da nun leider etwas ratlos, wo ich suchen soll. Aber ich bleibe dran.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 13 November 2014, 22:45:43
Hallo bugster_de,

Beim Testen der neuen Version ist mir aufgefallen dass beim Neustart von FHEM die Fehlermeldung 'Error messages while initializing FHEM: configfile: SB: unknown attribute httpport. Type 'attr SB ?' for a detailed list.' im Log auftaucht. Diese kommt daher dass das Attribut 'httpport' in $hash->{AttrList} fehlt. Ich habe die Zeile
    $hash->{AttrList} .= "maxcmdstack ";
geändert in    $hash->{AttrList} .= "maxcmdstack httpport ";
wodurch die Meldung verschwindet.

Wie mehrfach geschrieben gibt es mit der neuen Version 'Kommunikationsprobleme'. Diese kommen daher dass nach einem Start des Modules die Funktion SB_SERVER_LMS_Status nicht aufgerufen wird die für die Initialisierung der Kommunikation nötig ist. In den älteren Versionen des Moduls wurde der Inhalt von SB_SERVER_LMS_Status direkt in SB_SERVER_DoInit abgeschickt.

Es reicht aber nicht SB_SERVER_LMS_Status in SB_SERVER_DoInit aufzurufen da dadurch eine Schleife in SB_SERVER_ParseCmds entsteht:
- SB_SERVER_LMS_Status sendet u.a. ein 'pref authorize ?'
- die Antwort wird in SB_SERVER_ParseCmds ausgewertet und führt zu einem erneuten Aufruf von SB_SERVER_LMS_Status

Mir ist nicht ganz klar wieso SB_SERVER_LMS_Status in SB_SERVER_ParseCmds aufgerufen wird. Ich habe die Aufrufe deaktiviert und in SB_SERVER_DoInit    InternalTimer( gettimeofday() + 2 ,
   "SB_SERVER_LMS_Status",
   $hash,
   0 );
hinzugefügt. Seitdem werden die Ereignisse vom LMS wieder übertragen.

In SB_SERVER_DoInit wird SB_SERVER_Broadcast aufgerufen was dazu führt dass eine ganze Reihe von Befehlen von den SB_Player-Modulen geschrieben werden. Da der Server zu dem Zeitpunkt noch nicht als 'on' erkannt ist, landen diese Befehle in der Queue. Nach dem Ausführen des 1. SB_SERVER_Alive wird in SB_SERVER_Read festgestellt dass die Queue Befehle enthält und es wird versucht diese zu schicken. Es wird aber nur der 1. Befehl geschickt und anschließend die Queue gelöscht. Um alle zwischengespeicherten Befehle zu verschicken habe ich in SB_SERVER_CMDStackPop die Zeile
    if ( $n <= $SB_SERVER_CmdStack{$name}{first_n} ) {
in    if ( $n <= $SB_SERVER_CmdStack{$name}{last_n} ) {geändert werden. Dadurch werden alle Befehle in der Queue abgeschickt.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: MarcoE am 14 November 2014, 10:28:48
Hi ChrisD,
ich habe gerade mal deine Änderungen eingespielt- definitiv besser. Jetzt habe ich nur noch ein Problem:
bei mir sind es zwei Squeezeboxen (einmal Squeeze Radio und einmal touch). Die beiden sind synchronisiert. Sprich schalte ich die eine an geht die andere mit an und bei aus selbiges.
Nur: bei fhem ändert sich nur der STATE der Box die ich eingeschaltet habe. Sprich schalte ich den SqueezeRadio ein bleibt laut FHEM die Touch aus (obwohl sie läuft- durch die Synchronisation) und natürlich bleiben auch die Lautsprecher aus...
Sende ich nun an die Touch einen "get StatusRequest" ändert sich der Status auf den richtigen Wert.

Hast Du dafür auch eine Idee?

Danke und Gruß,
Marco
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 14 November 2014, 10:48:36
@ChrisD: Danke für die ausfürhliche Beschreibung. Wenn ich den Post gestern abend noch gesehen hätte, dann hätte ich mir das Debuggen sparen können. Um 0:30h hatte die Themen dann soweit eingekreist und zumindest bei mir mal gefixed. Der beschriebene Effekt tritt aber nur auf, wenn man kein Alive-Checking des LMS macht. Der Loop des Server Status tritt auch dann nur auf, wenn der LMS nicht passwort geschützt ist.

Root-Cause der ganzen Sache sind alle möglichen bug-Fixes, die hier oder über anderen Wegen bei mir aufgeschlagen sind und die ich in gutem Glauben in das Modul integriert habe. Ich habe gestern abend das ganze Zeug erstmal vollständig aus dem Code entsorgt, da ich es, ehrlich gesagt, leid bin, den Support zu liefern, um dann festzustellen, dass der Bug von jemand anderem eingeführt wurde. Meine private Email läuft so langsam auch voll. :(

Wie auch immer:
ich komme zu dem Schluß, dass der ganze Mechnismus zur Prüfung, ob der LMS Server eingeschaltet ist vermutlich zu komplex ist. Sprich ich baue das wieder aus und das 97_SB_SERVER verlässt sich dann komplett auf "opened" bzw. "disconnected".
Desweiteren habe ich bei mir den LMS V7.8.1 drauf. Sobald man das Kommando "listen 1" schickt, sendet der alle Sekunde den kompletten LMS Server Status. Bin mir jetzt noch nicht sicher, ob das ein Bug im LMS ist, oder eine Option. Da muß aich nochmal schauen. Zumal die Zustände der Player in den Messages unterschiedlich sind, was zu dauerndem Ein/Aus des verstärkers führt.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 14 November 2014, 17:27:35
Hallo,

@bugster_de: Ich habe nur die Punkte beschrieben die für mich relevant waren, das Debuggen hättest du trotzdem machen müssen da ich nicht alle Code-Pfade überprüft habe (z.B. mit Login). Bei meinen Tests war das Alive-Checking übrigens aktiv, das Alive war auch das Einzige was alle 2 Minuten zwischen FHEM und LMS passierte (mangels listen 1). Somit tritt der beschriebene Effekt auch bei aktivem Alive-Checking auf.

@Marco: In 98_SB_PLAYER ist kein Code vorhanden der das Ein-/Ausschalten der synchronisierten Geräte behandelt. Wenn du ein Gerät direkt einschaltest schickt der LMS die Meldung 'power 1' an FHEM. FHEM setzt dann die Readings 'state' und 'power' auf 'on'. Für die synchronisierten Geräte wird dagegen vom LMS 'prefset server power 1' geschickt. Dies wird aber im Moment verworfen wodurch sich der Status der Geräte nicht ändert. Du kannst versuchen in 98_SB_PLAYER hinter den Zeilen     } elsif( $args[ 1 ] eq "volume" ) {
SB_SERVER_UpdateVolumeReadings( $hash, $args[ 2 ], true );
(in v6932 sind dies die Zeilen 771 und 772) dies:     } elsif( $args[ 1 ] eq "power" ) {
                if( $args[ 2 ] eq "1" ) {
                        readingsBulkUpdate( $hash, "state", "on" );
                        readingsBulkUpdate( $hash, "power", "on" );
                        SB_PLAYER_Amplifier( $hash );
                } elsif( $args[ 2 ] eq "0" ) {
                        readingsBulkUpdate( $hash, "presence", "absent" );
                        readingsBulkUpdate( $hash, "state", "off" );
                        readingsBulkUpdate( $hash, "power", "off" );
                        SB_PLAYER_Amplifier( $hash );
                }
            }
einzufügen. Nach einem reload 98_SB_PLAYER sollte der Status aller Geräte die zusammen ein- und ausgeschaltet werden aktualisiert werden.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 20 November 2014, 21:09:15
Hallo Leute,

so, ich habe mal was gemacht. Achtung: das ist Beta !

- das dauernde Ein/Aus des Verstärkers is gefixt
- der von ChrisD beschriebene Effekt ist gefixt
- ich habe das Auslesen der im Player gesetzten Alarme implementiert. Man erhält nun für jeden Alarm ein Reading (ALARM__xyz). In diesem Reading wird die Uhrzeit, die Wochentage, enabled, repeat, Lautstärke sowie das abzuspielende Stück angezeigt wird

Was noch nicht geht:
- wenn man einen Alarm auf dem Player löscht, dann wird das entsprechende Reading noch nicht gelöscht
- ab und zu gehen die Player auf "off" obwohl sie an sind. Mit einem statusRequest kommt aber der Status wieder

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 22 November 2014, 21:00:26
Hallo bugster_de,

Ich habe die neue Version getestet und dabei ist mir aufgefallen dass der Fehler in SB_SERVER_CMDStackPop nicht behoben wurde. Dadurch wird weiterhin nur der 1. Befehl der Queue abgearbeitet und alle anderen werden gelöscht.

Die Schleife in SB_SERVER_Alive die dazu führt dass nach einem fehlgeschlagenen AliveCheck im Block if( $hash->{ALIVECHECK} eq "waiting" )die Verbindung per DevIo_CloseDev geschlossen wird und anschließend nie wieder geöffnet wird ist auch noch enthalten. Ich habe meinen Fix aus Beitrag 335 wieder integriert und damit wird die Verbindung wieder korrekt aufgebaut.

Wenn mehrere Player miteinander synchronisiert sind wird der aktuell gespielte Titel und Interpret nur beim Master aktualisiert. Damit bei den anderen Geräten die Daten aktualisiert werden habe ich in SB_PLAYER_Parse hinter     # the song has changed, but we are easy and just ask the player
    IOWrite( $hash, "$hash->{PLAYERMAC} artist ?\n" );
    IOWrite( $hash, "$hash->{PLAYERMAC} album ?\n" );
    IOWrite( $hash, "$hash->{PLAYERMAC} title ?\n" );
    SB_PLAYER_CoverArt( $hash );
(Zeilen 530-534 in der Beta aus letztem Post) dies        if ($hash->{PLAYERMAC} eq $hash->{SYNCMASTER}) {
            if (defined($hash->{SYNCGROUP}) && ($hash->{SYNCGROUP} ne '?')) {
                my @pl=split(",",$hash->{SYNCGROUP});
                foreach (@pl) {
                    IOWrite( $hash, "$_ artist ?\n" );
                    IOWrite( $hash, "$_ album ?\n" );
                    IOWrite( $hash, "$_ title ?\n" );
                }
            }
        }
hinzugefügt.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: MarcoE am 24 November 2014, 09:04:18
Hallo,
super, daß sich in dem (für mich tollen!) Modul noch soviel bewegt! Danke!
Ich habe gerade die beta und die Änderungen von ChrisD eingebaut. Ob ich die Änderungen an den richtigen Stellen gemacht habe bezweifle ich etwas...
Nach dem Einschalten der Boxen per Webinterface des Mediaservers ändert sich leider der Zustand im FHEM erst nach statusRequest.
Ebenso scheint bei den letzten Änderungen im Player im amplifier der "trigger" wieder unter den Tisch gefallen zu sein wodurch sich die Verstärker wieder nicht einschalten (zumindest bei mir).
Daher ist der aktuelle Zustand nicht so wirklich gut :-( da scheint mir der Zustand von github+ChrisD Änderungen etwas besser gewesen zu sein.

Viele Grüße,
Marco
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 24 November 2014, 09:53:38
@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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 24 November 2014, 19:13:03
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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: MarcoE am 25 November 2014, 10:57:58
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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 25 November 2014, 12:45:15
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

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: MarcoE am 25 November 2014, 14:44:14
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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 25 November 2014, 23:48:32
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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 26 November 2014, 19:06:06
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... :/
Titel: Antw:Squeezebox Modul - erste Version
Beitrag 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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 26 November 2014, 19:46:44
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?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 26 November 2014, 20:17:13
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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 26 November 2014, 21:01:12
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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 26 November 2014, 21:41:11
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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 27 November 2014, 11:41:45
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.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 27 November 2014, 22:19:14
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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 27 November 2014, 22:45:00
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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 28 November 2014, 21:59:14
Hallo,

Es ist nicht nötig den Player zu löschen, es reicht das Attribut im Server auf false zu setzen (nicht löschen) und FHEM neu zu starten.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 04 Dezember 2014, 18:47:15
Hallo,
ich habe diese Thema vor 3 Wochen zum ersten Mal durchgelesen. Bei der Installation hatte ich auf dem RPI, wie andere auch, Probleme. Dazu von mir ein kleiner Tipp: Einmal mal die LANkonfig testen und schauen, ob der lokale Ping funktioniert...

Schade, dass es seit einigen eher schleppend weiter geht und keine neue Version verfügbar ist.
Die einzelnen Änderungen nachzuhalten ist schon schwierig. @ChrisD: Hast Du meine PN bekommen? Wäre toll, wenn Du mal Deine pm's zur Verfügung stellen könntest...

Grüße
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 05 Dezember 2014, 16:24:51
So ich habe noch einmal getestet. Die Verbindung des Servers scheint stabil zu sein. Der LMS läuft auf einem Ubuntu-Server und FHEM auf einem RPI.

Leider funktioniert die Coverurl-Abfrage bei Streams und auch lokalen Wiedergaben nicht. Habt ihr dazu eine Idee?

Grüße
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 05 Dezember 2014, 21:13:23
Hallo,

Die Cover-Abfrage kann aus verschiedenen Gründen nicht funktionieren:
- beim Titelwechsel wird die Coverart nicht vom Server angefordert, dies passiert nur bei den regelmäßigen Status-Requests
- bei den Status-Requests wird zwar Coverart abgefragt, allerdings wird anschließend nur der modulinterne Wert geändert, ein konfigurierter Weblink wird nicht aktualisiert
- wenn der Titel Leerzeichen enthält geht Coverart verloren wegen eines Problemes beim Parsen von Rückmeldungen die Leerzeichen enthalten

Der ersten beide Punkte lassen sich relativ leicht beheben, der 3. ist allerdings wesentlich schwieriger zu korrigieren.

@bugster_de: Ich glaube dass in 98_SB_PLAYER in der Zeile 1413
    fhem( "deletereadings $name ALARM__.*" );
ein Typfehler ist, es müsste deletereading statt deletereadings heißen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 05 Dezember 2014, 21:43:26
ja, das mit dem deletereadings habe ich auch im log gesehen und gegen deletereading ersetzt.
Danach war zumindest der Fehler weg.

Die Coverarturl habe ich mit einem Userreading auf das Internal gesetzt und dann ein notify statusrequest eingestellt.
Keine Ahnung, ob man das so macht...

Unabhängig davon bekomme ich keine Coverarturl und das bei unterschiedlichen Sendern. Das mit den Leerzeichen halte ich für unwahrscheinlich, da es mit einer der Vorgängerversionen funktionierte. Habe heute leider nur wenig Zeit...

Gruß Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 05 Dezember 2014, 22:02:53
Hallo,

Der Parser für die Rückmeldungen wurde in der letzten Version geändert, dadurch funktioniert es nicht mehr korrekt wenn Leerzeichen im Titel enthalten sind. Der folgende Code in 98_SB_PLAYER.pm ist schuld:
# is the keyword a multi-keyword with spaces?
if( index( $_, ":" ) == -1 ) {
    $leftover = $leftover . " " . $_;
    next;
}

if( $leftover ne "" ) {
    $cur = $leftover . " " . $_;
    $leftover = "";
} else {
    $cur = $_;
}

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 06 Dezember 2014, 09:07:17
Hallo,

ich habe weiter getestet...

Coverarturl scheint zu funtionieren. Folgender Eintrag erscheint durch mein Statusrequest-notify regelmäßig im Log:
2014.12.06 08:53:19 1: readingsUpdate(Squeezeslave,Cover,http://www.mysqueezebox.com/public/imageproxy?u=http%XX...XX.cloudfront.net%2Fs24896q.png&h=50&w=50) missed to call readingsBeginUpdate first.(Die ID habe ich verändert und der Fehler ist bei meinen SB-Radios auch vorhanden).

Außerdem bleibt der STATE und state auf off stehen und wird auch nicht abgefragt...
Wäre es evtl. möglich Coverarturl als Reading und nicht als Internal darzustellen?
Aktuell gehe ich den Umweg:
userReadings

Cover {InternalVal("SB_Bad","COVERARTURL","undef"); }

Grüße Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Dezember 2014, 10:57:31
Hallo,

Die Meldung
Zitat
2014.12.06 08:53:19 1: readingsUpdate(Squeezeslave,Cover,http://ww...
kommt weil readingsBeginUpdate und readingsEndUpdate verschachtelt aufgerufen werden. Die Aufrufe in der Funktion SB_PLAYER_ParsePlayerStatus sind nicht nötig da diese nur von SB_PLAYER_Parse aufgerufen werden kann. SB_PLAYER_Parse kümmert sich aber bereits um readingsXXXUpdate.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 07 Dezember 2014, 14:13:03
Hallo,
aktuell scheint alles zu funktionieren. Ich hatte tatsächlich vergessen das UserReading zu löschen... Werde weiter testen. @ ChrisD: Vielen Dank für Deine Mühe!!!

In einer der vorherigen Versionen war es so, dass der Favorit der gerade wiedergegeben wird auch im Dropdown angezeigt wird. Das ist imo leider nicht so.

Meinst Du/Ihr es wäre möglich das Sync um eine zus. Option zum Setzen der Lautstärkesync einzurichten?

Dann wäre alles perfekt...


Danke!

Grüße Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Dezember 2014, 18:10:41
Hallo,

Das Problem mit dem Favoriten habe ich nur wenn ich
- ein reload von 98_SB_PLAYER mache
- den Favoriten nicht über FHEM sondern extern (z.B. LMS-Web-Interface) ändere

Im 1. Fall vergisst 98_SB_PLAYER das interne Array mit den Favoriten. Dies kann durch einset SB_SERVER statusRequestbehoben werden. Durch die Abfrage werden die Favoriten vom Server an die Player-Module verteilt und die internen Arrays wieder gefüllt.

Für den 2. Fall ist eine Änderung in 98_SB_PLAYER nötig damit das Reading favorites korrekt gesetzt wird.

Was die Lautstärkeregelung betrifft habe ich nicht ganz verstanden was du vorhast. Die Synchronisation der Lautstärke kann in den Einstallungen der Player über die Web-Oberfläche des LMS konfiguriert werden. Möchtest du diese Möglichkeit in FHEM haben ? In dem Fall stellt sich die Frage ob dies als Option zum set sync hinzugefügt werden soll oder als neues set-Kommando implementiert werden soll (set syncVolume 0/1).

Grüße,

ChrisD

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 07 Dezember 2014, 19:14:45
Hallo,

das ist wahrscheinlich ein Mißverständnis...
Ich lasse die Favoriten mit einem einem Readingsgroup anzeigen. Die sind auch sichtbar, jedoch ist nicht der aktuell wiedergegebene ausgewählt, wenn dieser per Radio ausgwählt wurde.

Bezgl. der Lautstärke: Ich stelle mit einem Tablett sämtliche Radios dar und möchte steuern können, ob ich gemeinsam / getrennt ausschalte und, ob alle das Gleiche wiedergeben... --> Das funktioniert.

Schön wäre es, wenn ich mit einem zusätzlichen Reading ein Volumesync machen könnte. Genau wie Du schreibst: set syncVolume 0/1 ... wäre eine super Sache.

Viele Grüße
Dirk





Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Dezember 2014, 19:43:10
Hallo,

Wenn ich es richtig verstanden habe wählst du an einem Radio (externes Gerät) einen Favoriten aus und die Anzeige ändert sich nicht in FHEM. Dies ist der 2. von mir beschriebene Fall und benötigt eine Änderung in 98_SB_PLAYER.

Was die Lautstärke betrifft kannst du bereits jetzt die Synchronisation steuern, es fehlt nur die Auswertung und Darstellung des Zustandes. Mitset SB_Bad cliraw playerpref syncVolume 1kannst du die Synchronisation einschalten (0 schaltet wieder aus). Alternativ kannst du auch eventMap verwenden:
attr SB_Bad eventMap /cliraw playerpref syncVolume:syncVolume/
Damit funktioniert set SB_Bad syncVolume 0/1.

Grüße,

ChrisD

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 07 Dezember 2014, 20:16:11
Hallo,

das mit set SB_Bad cliraw playerpref syncVolume 1 ist genau das was ich gebraucht habe!
Der Zustand ändert sich bei mir dann eh nur über die Fhem-funktionen.

Danke!
Grüße Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 07 Dezember 2014, 20:39:31
Da ist mir gerade etwas aufgefallen.
Wenn ich
 set SB_Buero cliraw playerpref syncVolume 0
stelle und alle anderen auf
set SB_Buero cliraw playerpref syncVolume 1stelle dann kann ich die Lautstärke der anderen Radios verändern ohne das sich die Lautstärke des SB_Bad ändert.
Was ich nicht so gut finde ist, das wenn ich die Lautstärke SB_Bad verändere auch sich auch die der anderen verändert.

Kann man das ändern?

Grüße Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Dezember 2014, 22:21:16
Hallo,

So weit ich sehen kann bietet der Server keine Möglichkeit dies zu machen. Wenn du 3 Player A, B und C hast die miteinander synchronisiert sind und z.B syncVolume bei A und B auf 1 steht und bei C auf 0 führt das dazu dass Änderungen der Lautstärke von A, B oder C immer A und B ändern. Die Lautstärke von C kann dagegen nicht von den anderen beeinflusst werden.

Wenn du möchtest dass in diesem Fall eine Lautstärkeänderung von C sich nicht auf A und B auswirkt muss dies auf einem anderen Weg gelöst werden.  Eine Möglichkeit wäre ein Attribut pro Player (das ich aber nicht unbedingt syncVolume nennen würde da dies eine Funktion des Servers ist) das bei einer Lautstärkeänderung eines der Player bei allen anderen Playern der Sync-Gruppe bei denen das Attribut den gleichen Wert hat die Lautstärke anpasst. Nachteil hierbei ist dass es nur in FHEM funktionieren würde.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 08 Dezember 2014, 07:25:32
Hallo,

ich habe mir gerade noch einmal die Funktion des LMS angeschaut. In der Tat ist es so. Ziemlich proprietär, oder?
Ich denke die verbesserte Variante in Fhem wäre doch was...

Grüße
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 08 Dezember 2014, 16:38:43
und dann ist mir aufgefallen...

1.) , dass der LMS nicht abschaltet, wenn die gesyncten Radios auf off gestellt werden.
Das hat zur Folge, dass der Server auf dem LMS läuft nicht in den Standby geht. Das kann man aktuell nur mit einem "abort" auf den SB-Server erreichen. (Wenn an den Radio der Ausschalter betätigt wird, funktioniert das...)

2.) ,dass die Verbindung nach dem Serversuspend und Restart des LMS-Servers nicht wiederhergestellt wird.

Grüße
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 10 Dezember 2014, 22:58:11
Hallo,

zu 1: Kannst du das Logging im Server-Modul aktivieren (verbose auf 5), den Ausschaltvorgang über das Radio durchführen und die im Logfile enthaltenen Daten posten ?

zu 2: Welchen Wert hat das Attribut 'doalivecheck' ? Was zeigen die Internals ALIVECHECK und CLICONNECTION sowie das Reading power an nachdem der Server im Suspend ist ? Verwendest du RCC und/oder WOL ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 12 Dezember 2014, 14:13:31
Hallo ChrisD
Ich habe jetzt mal Deine Aenderungen nachgezogen. Das funktioniert soweit gut! Magst Du nicht einfach mal Deine beiden pm's posten, wurde schon mal gefragt! Bugster scheint ja ein wenig resigniert zu haben, waere schade um das tolle Modul!
Gruss Christoph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 13 Dezember 2014, 17:44:00
Hallo,

Ich glaube nicht dass Bugster aufgegeben hat. Er arbeitet seit über einem Jahr an den Modulen und sie sind ziemlich komplex. Ich habe einige kleine Korrekturen und Ergänzungen gemacht die diverse Probleme bei mir gelöst haben. Da ich aber nicht alle Funktionen verwende kann ich nicht ausschließen dass die Änderungen unerwünschte Nebeneffekte bei anderen haben.

So ist das Reconnect-Problem bei mir gelöst, bei Dirk dagegen funktioniert es mit genau den gleichen Modulen noch immer nicht. Das Gleiche gilt für die Aktualisierung des aktuell abgespielten Favoriten. Die Fehlersuche ist schwierig wenn der Fehler bei einem selbst nicht reproduzierbar ist.

Ich möchte meine Module nicht hier posten da dies den Support unnötig erschwert. Wenn Fehler gemeldet werden wird es schwer zu erkennen welche (oder wessen) Module zum Einsatz kommen und wer sich darum kümmern soll. Ich finde es besser dass Bugster weiterhin neue Modulversionen postet, eventuell mit Korrekturen die ich oder andere gemacht haben.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: deune am 16 Dezember 2014, 22:31:54
Hallo zusammen,

Kann mir evtl jemand von Euch helfen

Ich habe fast in jedem Raum ein Squeezebox Radio stehen, im Wohnzimmer ein Hifi-Berry.

Nun habe ich mir die aktuelle Version von Github heruntergeladen und mit
define lms SB_SERVER 192.999.999.999 [USER:xxxxxxx] [PASSWORD:xxxxxxxx]
versucht einzubinden und bekomme folgende Fehlermeldung: Cannot load module SB_SERVER

Nach einem reload 97_SB_SERVER bekomme ich folgenden Fehler, was mache ich falsch?

Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 50 at ./FHEM/97_SB_SERVER.pm line 13.

Liebe Grüße aus der Eifel
Holger
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 16 Dezember 2014, 23:17:42
Hallo,

Die Datei wurde wahrscheinlich nicht korrekt heruntergeladen und enthält noch HTML-Tags.

Zum Herunterladen einer einzelnen Datei klicke ich sie an, so dass der Quelltext mit dem Github-Interface angezeigt wird. Anschließend klicke ich auf 'Raw' um nur den Quelltext zu sehen. Diesen lade ich dann (mit Firefox) mit Rechtsklick und 'Speichern unter' herunter.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: FHEMAN am 17 Dezember 2014, 15:52:56
Hallo, erstmal geiles Projekt, ich hoffe, dass ich das nächstes Jahr im neuen Heim richtig nutzen kann.
Ich werde dazu mehrere RPi+ einsetzen.

Eine Frage dazu:
Könnte ihr mir einen Mini Verstärker empfehlen empfehlen?
UND: wie kann ich 4 oder 6 Lautsprecher daran anschließen? (für Flur oben + unten + ... gleichzeitig)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: deune am 17 Dezember 2014, 16:19:51
Hallo ChrisD,

vielen Dank für die schnell Hilfe, es hat funktioniert und seit dem bekomme ich das Grinsen nicht mehr aus dem Gesicht !

An derron,

wenn Du eh raspberry´s nutzt, dann kannst Du doch auch den hifiberry nutzen und den gibt es nun imt integriertem Amp.

Liebe Grüße

Holger
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: pc1246 am 19 Dezember 2014, 12:57:42
Hallo,

Ich glaube nicht dass Bugster aufgegeben hat. Er arbeitet seit über einem Jahr an den Modulen und sie sind ziemlich komplex. Ich habe einige kleine Korrekturen und Ergänzungen gemacht die diverse Probleme bei mir gelöst haben. Da ich aber nicht alle Funktionen verwende kann ich nicht ausschließen dass die Änderungen unerwünschte Nebeneffekte bei anderen haben.

So ist das Reconnect-Problem bei mir gelöst, bei Dirk dagegen funktioniert es mit genau den gleichen Modulen noch immer nicht. Das Gleiche gilt für die Aktualisierung des aktuell abgespielten Favoriten. Die Fehlersuche ist schwierig wenn der Fehler bei einem selbst nicht reproduzierbar ist.

Ich möchte meine Module nicht hier posten da dies den Support unnötig erschwert. Wenn Fehler gemeldet werden wird es schwer zu erkennen welche (oder wessen) Module zum Einsatz kommen und wer sich darum kümmern soll. Ich finde es besser dass Bugster weiterhin neue Modulversionen postet, eventuell mit Korrekturen die ich oder andere gemacht haben.

Grüße,

ChrisD

ChrisD
Bugster war ja hier schon laengere Zeit nicht mehr aktiv. Ich kann das auch verstehen, wenn man Ihn auch noch mit PM's zubombt! Schade um das schoene Modul!
Bei mir funzt es momentan nicht so richtig wie es aussieht, wenn ich nachher zu Hause bin werde ich mal forschen was los ist! Hab ja bis zum 13.01. Urlaub, da sollte etwas Zeit sein!
Gruss Christoph
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 19 Dezember 2014, 18:43:22
Hallo,
leider gibt es immer noch Probleme beim Reconnect zum Server, nachdem dieser aus dem Suspend gestartet ist...
Viele Grüße
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 19 Dezember 2014, 19:06:30
Nachtrag: Per Fhem Server aktivieren (WOL) => Per Fhem ist es nicht möglich die Wiedergabe zu starten. (Könnte auch an meiner Ungeduld liegen, vielleicht muss ich länger warten. Teste noch einmal ...)

Wenn am Radio eingeschaltet wird, kommt der Reconnect zustande...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 19 Dezember 2014, 22:43:06
Hallo,

Ich habe meine aktuelle Version auf Github (https://github.com/ChrisD70/FHEM-Modules (https://github.com/ChrisD70/FHEM-Modules)) gesetzt. Da es sich um Testversionen mit teilweise neuem Code sowie erweiterten Debug-Ausgaben handelt sollte man beim Einsatz auf einem Produktivsystem vorsichtig sein.

Änderungen in 97_SB_SERVER:
- Reconnect-Logik überarbeitet
- alle zwischengespeicherten Befehle senden
- ID des letzten Favoriten korrigiert
- Behandlung ö und Ü in SB_SERVER_FavoritesName2UID geändert
- Playlisten neu anfragen bei Änderung oder Löschen
- bei einem fehlenden Ping nicht sofort abschalten

Änderungen in 98_SB_PLAYER:
- Informationen aller Player einer Sync-Group aktualisieren
- 'prefset power' und 'prefset server mute' Meldungen des Servers verarbeiten
- Coverart verzögert abrufen, auch für Player in Sync-Group, Coverart als Reading
- Parsen der Leerzeichen in den Statusmeldungen geändert
- Update Readings geändert damit UserReadings funktionieren
- Unterstützung für syncVolume
- aktuell abgespielte Favoriten und Playlist setzen (scheint noch nicht immer zu funktionieren)
- Speicherort der Favoriten, Playlists und SyncMaster geändert (wegen reload)

Noch zu tun:
- Reconnect bei Server mit Login/Passwort testen
- integrierte RCC und WOL-Unterstützung testen
- Dokumentation für das Attribut syncVolume
- Ping auslagern (PRESENCE, optional ?)
- was soll mit zwischengespeicherten Befehlen passieren wenn der Server nicht verbunden ist
...

Wenn die Module mittels reload in ein laufendes System integriert werden muss danach ein statusRequest beim Server-Modul gemacht werden, z.B.:
set SBServer statusRequest
Zur Diagnose von Reconnect-Problemen sollte das Attribut verbose der SB_SERVER-Instanz auf 2 stehen, zur Diagnose von Problemen beim Update des aktuell gespielten Favoriten (oder Playlist) sollte verbose beim Player auf 2 stehen.

Allgemein gilt für den Reconnect:

Das Attribut doalivecheck der Serverinstanz muss auf true stehen.
Wenn die Verbindung zum Server abbricht gibt es 2 Möglichkeiten:
 - FHEM bemerkt es zuerst (Meldung 'xxx disconnected, waiting to reappear xxx' im Log), in dem Fall kann nur 1x pro Minute versucht werden eine Verbindung aufzubauen, wenn es gelingt steht im Log 'xxx reappeared'
- SB_SERVER bemerkt es zuerst, in dem Fall wird regelmäßig (einstellbar über das Attribut 'alivetimer', Standard: 2 Minuten) überprüft ob der Server wieder da ist. Dazu wird entweder RCC oder Ping verwendet. Wenn der Server wieder verfügbar ist dauert es bis zu alivetimer Sekunden bis dies erkannt wird.

Zum schnelleren Reconnect kann 'alivetimer' heruntergesetzt werden. Dies hat aber den Nachteil dass bei jedem Check durch das Anpingen FHEM 2 Sekunden blockiert ist.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 20 Dezember 2014, 10:13:34
Halloo ChriD,

möchte Du evtl. noch die Textfunktion aufnehmen? Ich bei meiner vorherigen Version den Callmonitor mit Ausgabe des AYnrufers auf der SB_Radio eingerichtet....

Übrigens, mit etwas mehr Geduld konnte ich die Radios nach dem Serversuspend starten...
Das geht mit dem Einschalten über die SB_Radios wesentlich schneller. Aber das hat ja wie Du schriebst techn. Hintergünde mit dem Ping... Schön finde ich, dass die Umsetzung des integrierten WOL geplant bzw. in Planung ist... Ist diese schon in der aktuellen Version enthalten?

Grüße
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 20 Dezember 2014, 12:26:30
Hallo,

WOL und die Textfunktion sind schon seit längerem enthalten und auch im 1. Beitrag schon dokumentiert.

Die Ausgabe von Texten erfolgt mit:
set sbradio show line1:text der ersten Zeile line2:text der zweiten Zeile duration:10Wenn keine 2. Zeile angezeigt werden sollen, muss trotzdem 'line2:' im Aufruf enthalten sein:
set sbradio show line1:text der ersten Zeile line2: duration:10
WOL muss mit in der Definition angegeben werden, statt
define mySBServer SB_SERVER 192.168.12.34lautet die Definition
define mySBServer SB_SERVER 192.168.12.34 WOL:myWOL
Anschließend führt ein
set mySBServer ondazu dass intern myWOL mit on aufgerufen wird. Das ändert im Moment aber noch nichts an der Verzögerung beim Verbindungsaufbau. Möglich wäre aber nach dem 'on' während einer gewissen Zeit (2 Minuten ?) schneller/öfter zu versuchen die Verbindung herzustellen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 20 Dezember 2014, 12:36:42
Danke für die Info...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 20 Dezember 2014, 23:34:10
Hallo,

Ich habe eine neue Testversion auf Github gestellt.

Änderungen:
- PRESENCE hinzugefügt
- bei Verwendung von WOL Verbindungsaufbau beschleunigen
- Login und Passwort funktionieren wieder
- Broadcast ON an Player erst wenn Login funktioniert hat
- diverse Anpassungen am Reconnect, DevIo_Disconnected statt DevIo_CloseDev
- wenn CMDStack voll ist, ältesten Eintrag löschen
- nur CMDStack Einträge senden die nicht älter als 5 Minuten sind
- Dokumentation erweitert

Wenn WOL über das SB_SERVER-Modul verwendet wird, wird jetzt während 2 Minuten öfters geprüft ob die Verbindung wieder aufgebaut werden kann.

Die Verbindung mit einem PRESENCE-Modul führt dazu dass FHEM nicht mehr (oder sehr selten) während ein paar Sekunden blockiert wird. Dazu muss erst ein PRESENCE-Modul definiert werden, z.B.:
define PR_mySBSERVER PRESENCE lan-ping 192.168.12.34
attr PR_mySBSERVER event-on-change .*
Anschließend muss zu der Definition der SB_SERVER-Instanz
PRESENCE:PR_mySBSERVERhinzugefügt werden.

Im Moment habe ich nicht die statusRequest-Funktion des PRESENCE-Modules genutzt da diese erst ab Version 7278 von heute (hoffentlich) korrekt funktioniert.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: weltspion am 21 Dezember 2014, 12:15:11
Ich bin mit meiner FHEM-Installation vorgestern von der Fritzbox auf einen Cubietruck umgezogen. Das hat soweit alles prima geklappt. Die Weboberfläche ist jetzt superschnell, kann ich nur empfehlen.

In dem Zuge habe ich mir auch frische Server- und Player-Dateien für die Squeezebox vom Github gezogen (am 18.12.14).

Leider feuert die 97_SB_SERVER.pm überhaupt keine Events mehr. Habe ich etwas verpasst? Oder gab es eine Änderung? Muss ich die Events explizit einschalten?

Ich steuere über das ON-/OFF-Event an der SB z.B. Inwall-Verstärker etc. - für mich also wichtig. Mit meiner alten Version (schon älter: vom Februar 2014 oder so, 40800 Bytes lang) klappt alles problemlos.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 21 Dezember 2014, 13:11:18
Hallo,

97_SB_SERVER sollte weiterhin Events erzeugen, diese lassen sich aber mit den Attributen event-on-XXX-reading unterdrücken. Beim Verbinsungsaufbau resp. Einschalten des Servers wird z.B. das 'power'-Reading aktualisiert auf welches getriggert werden kann:

Zitat
2014-12-21 13:00:42.009 SB_SERVER SB power: on

Bei den Playern ist es dagegen anders, hier werden standardmäßig alle Events unterdrückt. Dies ist aber schon seit längerem (oder immer) so und kann über das Attribut 'donotnotify' geändert werden:
attr meinPlayer donotnotify falseDas Attribut muss explizit auf false gesetzt werden, löschen reicht nicht aus.

Auf welches Event triggerst du genau ?
Was wird angezeigt wenn dulist deinSBServerNameeingibst ?
Was wird im Event-Monitor angezeigt wenn der Server aus- und eingeschaltet wird ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: weltspion am 22 Dezember 2014, 11:15:48
Hallo ChrisD,

mit den Parametern hatte ich schon herumgespielt, bevor ich in diesen Post geschrieben habe. Das veränderte nichts.

Das Attribut donotnotify false ist gesetzt.

Wenn ich die neue Server-Version stoppe, kommt
2014-12-22 10:54:37 SB_SERVER SB_Server DISCONNECTED
2014-12-22 10:54:37 SB_SERVER SB_Server power: off
und beim Starten
2014-12-22 10:55:37 SB_SERVER SB_Server CONNECTED
, also alles gut. Ansonsten ist der Bursche ruhig.

Sobald ich die neue durch die alte Version austausche, bekomme ich wieder Events (hier Ein- und Auschalten eine SB Touch aka SB_Bad):

2014-12-22 11:00:24 CUL_HM Steckdose_Bad_Musik set_on
2014-12-22 11:00:24 SB_PLAYER SB_Bad on
2014-12-22 11:00:24 SB_PLAYER SB_Bad power: on
2014-12-22 11:00:24 SB_PLAYER SB_Bad lastunkowncmd: menustatus ARRAY(0xbc7d488) add 00:04:20:22:3b:04
2014-12-22 11:00:24 CUL_HM Steckdose_Bad_Musik level: 100
2014-12-22 11:00:24 CUL_HM Steckdose_Bad_Musik pct: 100
2014-12-22 11:00:24 CUL_HM Steckdose_Bad_Musik deviceMsg: on (to CUL_0)
2014-12-22 11:00:24 CUL_HM Steckdose_Bad_Musik on
2014-12-22 11:00:24 CUL_HM Steckdose_Bad_Musik timedOn: off
2014-12-22 11:00:32 CUL_HM Steckdose_Bad_Musik set_off
2014-12-22 11:00:32 SB_PLAYER SB_Bad presence: absent
2014-12-22 11:00:32 SB_PLAYER SB_Bad off
2014-12-22 11:00:32 SB_PLAYER SB_Bad power: off
2014-12-22 11:00:32 SB_PLAYER SB_Bad lastunkowncmd: menustatus ARRAY(0xb7dc6c0) add 00:04:20:22:3b:04
2014-12-22 11:00:32 CUL_HM Steckdose_Bad_Musik level: 0
2014-12-22 11:00:32 CUL_HM Steckdose_Bad_Musik pct: 0
2014-12-22 11:00:32 CUL_HM Steckdose_Bad_Musik deviceMsg: off (to CUL_0)
2014-12-22 11:00:32 CUL_HM Steckdose_Bad_Musik off
2014-12-22 11:00:32 CUL_HM Steckdose_Bad_Musik timedOn: off

An der Konfiguration wurde zwischendurch nichts geändert.

Die Event-Steuerung ist recht simpel:
define Steckdose_Bad_onoff notify SB_Bad:(on|off) set Steckdose_Bad_Musik $EVENT
attr Steckdose_Bad_onoff room 00_Musik

Die ausgelesenen Attribut-Listen hänge ich hier an. Ebenso meine alte Server-PM.

Viele Grüße
weltspion
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 22 Dezember 2014, 21:48:17
Hallo,

Vielen Dank für die ausführlichen Informationen. Das fehlende power: on Ereignis zeigt auf ein Problem beim Auswerten des Verbindungsaufbau. In der von dir bisher benutzten 97_SB_SERVER.pm wurde der Zustand der Verbindung und von power ignoriert und die Befehle wurden einfach herausgeschickt.

Ich habe eine neue Version auf Github hochgeladen die erweiterte Logausgaben enthält. Kannst du das Attribut verbose beim Server auf 2 setzen und die neue Version von 97_SB_SERVER.pm testen (98_SB_PLAYER.pm 0011 bitte noch nicht verwenden) ? Es reicht den Server zu stoppen, kurz zu warten und den Server wieder zu starten. Kannst du mir anschließend die Log- und Event-Monitor-Einträge schicken ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 26 Dezember 2014, 13:54:19
Hallo Leute,

frohe Weihnachten erstmal und vielen Dank an ChrisD, dass er sich dem Modul angenommen hat.
ich bin in letzter zeit beruflich sehr viel unterwegs gewesen und die spärliche Freizeit galt dann meiner Tochter. Nichts gegen euch, aber meine Tochter hat da Vorrang :-)

Ergo ich habe zwar nicht aufgegeben, aber leider hat mein Tag auch nur 24h...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 27 Dezember 2014, 21:02:07
Hallo,

@Bugster: Dir ist es zu verdanken dass dieses Modul überhaupt existiert und du hast eine Menge deiner Freizeit in die Entwicklung und den Support gesteckt, dies sollten wir alle respektieren. Ich denke dass jeder verstehen sollte dass FHEM bei den meisten eine von vielen Freizeitbeschäftigungen ist und es wichtigere Sachen als FHEM gibt. Es ist vielleicht nicht schön wenn eine neue Version nicht sofort so funktioniert wie gewünscht, aber selbst im professionellen Umfeld dauert es manchmal trotz teurer Support-Verträge Wochen bis Probleme behoben werden.

@alle:

Ich habe noch ein paar kleine Änderungen an 98_SB_PLAYER gemacht:

- Coverart korrigiert wenn keine URL mitgeschickt wird
- Link für Default-Coverart korrigiert
- Coverart-Weblink nur bei Änderung modifizieren
- ? nicht als Playlistenname übernehmen
- wenn 'power' beim Server auf on geht nicht sofort 'power' bei allen Playern auf on setzen, GetStatus abwarten
- bei 'playlist stop' 'power' nicht auf off setzen
- 'power off' ändert 'presence' nicht mehr
- Amplifier aus verzögern (über Attribut 'amplifierDelayOff')
- Code geändert damit Events für Amplifier korrekt funktionieren
- diverse Logausgaben entfernt

Da sich das Handling des Attributes 'power' bei den Playern teilweise geändert hat, kann es nötig sein notifys anzupassen. Für das Ein- und Auschalten von Lautsprechern ist die 'amplifier'-Funktion eventuell eine Alternative. Dazu muss an die Definition des Players der Name des Aktors angehangen werden, aus
define SB_Bad SB_PLAYER 00:01:02:03:04:05wird
define SB_Bad SB_PLAYER 00:01:02:03:04:05 ampl:Steckdose_Bad_MusikÜber die Attribute 'amplifier' und 'amplifierDelayOff' lässt sich einstellen wie und wann geschaltet wird.

Anbei befinden sich meine aktuellen Testversionen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: hinrich2001 am 03 Januar 2015, 22:26:21
Hi,

mein Anwendungsfall wäre, Dateien bei bestimmten Ereignissen abzuspielen.
Bsp. Alarm (lautes Piepen oder Sirene) beim Auslösen eines Bewegungsmelders.
Meine fhem Hauptinstallation läuft auf einer FB 7390.
Nun habe ich zum Ausprobieren ein zweites fhem auf meinem NAS (Synology DS111) installiert.
Die beiden SB Module habe ich hier heruntergeladen.
https://github.com/mhop/fhem-mirror/tree/master/fhem/contrib

Auf der DS ist meine Musiksammlung und hier läuft natürlich auch der LMS drauf (Logitech Media Server Version: 7.7.3 - 1375965195 @ Mon Aug 19 11:42:55 PDT 2013).
4 Boxen hängen dran.

Zum Üben habe ich in fhem nun eine Box definiert.

#### Squeezbox Player Kueche

define SB_Kueche SB_PLAYER 00:04:20:2c:53:80
attr SB_Kueche IODev my_SB_SERVER
attr SB_Kueche amplifier play
attr SB_Kueche coverartheight 50
attr SB_Kueche coverartwidth 50
attr SB_Kueche donotnotify true
attr SB_Kueche fadeinsecs 10
attr SB_Kueche idismac true
attr SB_Kueche serverautoon true
attr SB_Kueche ttslanguage de
attr SB_Kueche ttslink http://translate.google.com/translate_tts?ie=UTF-8
attr SB_Kueche volumeLimit 100
attr SB_Kueche volumeStep 10

Die Basics funktionieren, d.h. im WebIF von fhem kann ich SB_Kueche an und ausschalten.
Auch "talk" hat funktioniert.
Allerdings nur 1x. Beim 2. Versuch hat die Box nichts mehr abgespielt.

Nun zu meiner eigentlichen Frage.
Den ganzen Thread habe ich durchgelsen, aber ich bekomme es nicht hin, eine bestimmte mp3 Datei abzuspielen.

Was muss ich machen (welches Kommando absetzen), um bspw. dieses File abzuspielen.

/volume1/music/Kinder/Sommerhits/06 Alles Banane.mp3

Wie gesagt, nur ein Beispiel :-)

Oder ist es wichtig, dass keine Leerzeichen im Dateinamen sind?
Oder muss es eine m3u-Datei sein?

Fragen über Fragen.


Danke vorab für eure Hilfe!

Gruß,
Hinrich
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 03 Januar 2015, 23:50:37
Hallo,

Wenn du gezielt eine Datei aus dem Dateisystem des Servers abspielen möchtest sollte das mit
set SB_Kueche cliraw playlist play /volume1/music/Kinder/Sommerhits/06%20Alles%20Banane.mp3gehen. Leerzeichen müssen durch %20 ersetzt werden.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: hinrich2001 am 04 Januar 2015, 10:30:42
Hallo ChrisD,

danke für deine schnelle Antwort.
Probiere ich spätestens heute Abend aus.

Gruß und schönen Sonntag,
Hinrich
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: hinrich2001 am 04 Januar 2015, 22:56:17
Hi,

so, der Test war erfolgreich, teilweise jedenfalls.

Ein

set SB_Kueche cliraw playlist play /volume1/music/Soundfiles/alarm_scharf_geschaltet.mp3
im WebIF von fhem spielte das mp3 File ab.
Super und danke vielmals!

Baue ich das nun ein ein Notify ein, wird die Datei nicht abgespielt.

define nf_dummy_alarm_scharf notify hilfsschalter_alarmanlage:on.* {fhem ("set dummy_alarm_scharf 1 ;; set SB_Kueche cliraw playlist play /volume1/music/Soundfiles/alarm_scharf_geschaltet.mp3")}
D.h. nicht ganz richtig. Sie wurde mal abgespielt, meist aber nicht.

Was mir noch aufgefallen ist, das Display auf der SB selbst ist eingeschaltet steht auf "stop", drücke ich dort auf "play" wird die Datei abgespielt.

Woran kann das liegen?

Mein Wunsch wäre, dass das File bei dem Notify immer abgespielt wird, egal in welcehm Modus sich die Box befindet (Radio, aus.....).

Danke und Gruß,
Hinrich

2015.01.04 22:06:42 4: hilfsschalter_alarmanlage: FS20 hilfsschalter_alarmanlage on
2015.01.04 22:06:42 5: Triggering hilfsschalter_alarmanlage (1 changes)
2015.01.04 22:06:42 5: Notify loop for hilfsschalter_alarmanlage on
2015.01.04 22:06:42 4: SB_SERVER_Notify(my_SB_SERVER): calledOwn:my_SB_SERVER Device:hilfsschalter_alarmanlage
2015.01.04 22:06:42 5: Triggering nf_dummy_alarm_scharf
2015.01.04 22:06:42 4: nf_dummy_alarm_scharf exec {fhem ("set dummy_alarm_scharf 1 ;; set SB_Kueche cliraw playlist play /volume1/music/Soundfiles/alarm_scharf_geschaltet.mp3")}
2015.01.04 22:06:42 5: Cmd: >{fhem ("set dummy_alarm_scharf 1 ; set SB_Kueche cliraw playlist play /volume1/music/Soundfiles/alarm_scharf_geschaltet.mp3")}<
2015.01.04 22:06:42 5: Cmd: >set dummy_alarm_scharf 1<
2015.01.04 22:06:42 4: dummy set dummy_alarm_scharf 1
2015.01.04 22:06:42 5: Triggering dummy_alarm_scharf (1 changes)
2015.01.04 22:06:42 5: Notify loop for dummy_alarm_scharf 1
2015.01.04 22:06:42 4: SB_SERVER_Notify(my_SB_SERVER): calledOwn:my_SB_SERVER Device:dummy_alarm_scharf
2015.01.04 22:06:42 5: Cmd: >set SB_Kueche cliraw playlist play /volume1/music/Soundfiles/alarm_scharf_geschaltet.mp3<
2015.01.04 22:06:42 5: SB_PLAYER_Set: called with cliraw
2015.01.04 22:06:42 5: SB_PLAYER_Set: cliraw: playlist play /volume1/music/Soundfiles/alarm_scharf_geschaltet.mp3
2015.01.04 22:06:42 4: SB_SERVER_Write(my_SB_SERVER): called with FN:00:04:20:2c:53:80 playlist play /volume1/music/Soundfiles/alarm_scharf_geschaltet.mp3

2015.01.04 22:06:42 5: Triggering SB_Kueche (1 changes)
2015.01.04 22:06:42 5: Notify loop for SB_Kueche cliraw playlist play /volume1/music/Soundfiles/alarm_scharf_geschaltet.mp3
2015.01.04 22:06:42 4: SB_SERVER_Notify(my_SB_SERVER): calledOwn:my_SB_SERVER Device:SB_Kueche
2015.01.04 22:06:42 4: hilfsschalter_abwesenheit: FS20 hilfsschalter_abwesenheit on
2015.01.04 22:06:42 5: Triggering hilfsschalter_abwesenheit (1 changes)
2015.01.04 22:06:42 5: Notify loop for hilfsschalter_abwesenheit on
2015.01.04 22:06:42 4: SB_SERVER_Notify(my_SB_SERVER): calledOwn:my_SB_SERVER Device:hilfsschalter_abwesenheit
2015.01.04 22:06:53 4: SB_SERVER_Alive(my_SB_SERVER): called
2015.01.04 22:06:53 5: SB_SERVER_Alive(my_SB_SERVER): RCC:on Ping:on
2015.01.04 22:06:53 5: SW: 6668656d616c697665636865636b0a
2015.01.04 22:06:53 4: SB_SERVER_Read(my_SB_SERVER): called
2015.01.04 22:06:53 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.01.04 22:06:53 5: New Squeezebox Server Read cycle starts here
2015.01.04 22:06:53 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.01.04 22:06:53 5: Triggering my_SB_SERVER (1 changes)
2015.01.04 22:06:53 5: Notify loop for my_SB_SERVER power: on
2015.01.04 22:06:53 4: SB_SERVER_Notify(my_SB_SERVER): calledOwn:my_SB_SERVER Device:my_SB_SERVER
2015.01.04 22:06:53 5: SW: 30303a30343a32303a32633a35333a383020617274697374203f0a
2015.01.04 22:06:53 5: SB_SERVER_Read(my_SB_SERVER): please implelement the sending of the CMDStack.
2015.01.04 22:06:53 5: SB_SERVER_Read: complete command received
2015.01.04 22:06:53 4: SB_SERVER_DispatchCommandLine(my_SB_SERVER): Line:fhemalivecheck...
2015.01.04 22:06:53 4: SB_SERVER_ParseCmds(my_SB_SERVER): called
2015.01.04 22:06:53 4: SB_SERVER_ParseCmds(my_SB_SERVER): alivecheck received
2015.01.04 22:06:53 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.01.04 22:06:53 5: Squeezebox Server Read cycle ends here
2015.01.04 22:06:53 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.01.04 22:06:53 4: SB_SERVER_Read(my_SB_SERVER): called
2015.01.04 22:06:53 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.01.04 22:06:53 5: New Squeezebox Server Read cycle starts here
2015.01.04 22:06:53 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.01.04 22:06:53 5: SB_SERVER_Read: complete command received
2015.01.04 22:06:53 4: SB_SERVER_DispatchCommandLine(my_SB_SERVER): Line:00:04:20:2c:53:80 artist Kein Interpret...
2015.01.04 22:06:53 5: SB_SERVER_DispatchCommandLine: fhem-id: 0004202c5380
2015.01.04 22:06:53 5: SB_SERVER__DispatchCommandLine: commands: artist Kein Interpret
2015.01.04 22:06:53 5: my_SB_SERVER dispatch SB_PLAYER:0004202c5380:artist Kein Interpret
2015.01.04 22:06:53 5: SB_PLAYER_Parse: called with SB_PLAYER:0004202c5380:artist Kein Interpret
2015.01.04 22:06:53 5: SB_PLAYER_Parse: type:SB_PLAYER, ID:0004202c5380 CMD:artist Kein Interpret
2015.01.04 22:06:53 5: SB_PLAYER_Parse: SB_Kueche CMD:artist ARGS:Kein Interpret...
2015.01.04 22:06:53 5: SB_PLAYER_Parse: SB_Kueche: leaving
2015.01.04 22:06:53 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.01.04 22:06:53 5: Squeezebox Server Read cycle ends here
2015.01.04 22:06:53 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.01.04 22:06:59 4: hilfsschalter_alarmanlage: FS20 hilfsschalter_alarmanlage off
2015.01.04 22:06:59 5: Triggering hilfsschalter_alarmanlage (1 changes)
2015.01.04 22:06:59 5: Notify loop for hilfsschalter_alarmanlage off
2015.01.04 22:06:59 4: SB_SERVER_Notify(my_SB_SERVER): calledOwn:my_SB_SERVER Device:hilfsschalter_alarmanlage
2015.01.04 22:06:59 5: Triggering nf_dummy_alarm_unscharf
2015.01.04 22:06:59 4: nf_dummy_alarm_unscharf exec {fhem ("set dummy_alarm_scharf 0")}
2015.01.04 22:06:59 5: Cmd: >{fhem ("set dummy_alarm_scharf 0")}<
2015.01.04 22:06:59 5: Cmd: >set dummy_alarm_scharf 0<
2015.01.04 22:06:59 4: dummy set dummy_alarm_scharf 0
2015.01.04 22:06:59 5: Triggering dummy_alarm_scharf (1 changes)
2015.01.04 22:06:59 5: Notify loop for dummy_alarm_scharf 0
2015.01.04 22:06:59 4: SB_SERVER_Notify(my_SB_SERVER): calledOwn:my_SB_SERVER Device:dummy_alarm_scharf
2015.01.04 22:07:03 4: SB_SERVER_Alive(my_SB_SERVER): called
2015.01.04 22:07:03 5: SB_SERVER_Alive(my_SB_SERVER): RCC:on Ping:on
2015.01.04 22:07:03 5: SW: 6668656d616c697665636865636b0a
2015.01.04 22:07:03 4: SB_SERVER_Read(my_SB_SERVER): called
2015.01.04 22:07:03 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.01.04 22:07:03 5: New Squeezebox Server Read cycle starts here
2015.01.04 22:07:03 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.01.04 22:07:03 5: SB_SERVER_Read: complete command received
2015.01.04 22:07:03 4: SB_SERVER_DispatchCommandLine(my_SB_SERVER): Line:fhemalivecheck...
2015.01.04 22:07:03 4: SB_SERVER_ParseCmds(my_SB_SERVER): called
2015.01.04 22:07:03 4: SB_SERVER_ParseCmds(my_SB_SERVER): alivecheck received
2015.01.04 22:07:03 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2015.01.04 22:07:03 5: Squeezebox Server Read cycle ends here
2015.01.04 22:07:03 5: +++++++++++++++++++++++++++++++++++++++++++++++++++++

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 05 Januar 2015, 13:01:41
Das Phänomen, dass das abzuspielende Stück in die Playlist geladen, aber nicht abgspielt wird, habe ich auch schon beobachtet. Mir ist das aufgefallen bei TTS Anweisungen mithilfe des SET Befehls Talk.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 05 Januar 2015, 22:17:29
Hallo,

@Hinrich: Wie war der Zustand des Players vor dem Abschicken des Befehls wenn die Datei nicht abgespielt wurde ?
Kannst du versuchen an den Befehl noch ein 'play' anzuhängen, also:
define nf_dummy_alarm_scharf notify hilfsschalter_alarmanlage:on.* {fhem ("set dummy_alarm_scharf 1 ;; set SB_Kueche cliraw playlist play /volume1/music/Soundfiles/alarm_scharf_geschaltet.mp3" ;; set SB_Kueche play)}
Anbei befinden sich 2 Testversionen der Module mit zusätzlichen Logausgaben. Kannst du mit 'verbose 1' für den Server die Daten eines funktionierenden und fehlgeschlagenen Aufrufes aufzeichnen (verbose beim Player bitte auf 0 lassen) ?

@siggi85: Ist es nur beim 'talk' passiert ? Welche Version der Module verwendest du ? Es hat eine Reihe an Änderungen am talk gegeben und es kann passieren dass Google kurzzeitig die IP blockt wenn zu viele Anfragen kommen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 06 Januar 2015, 07:41:56
@siggi85: Ist es nur beim 'talk' passiert ? Welche Version der Module verwendest du ? Es hat eine Reihe an Änderungen am talk gegeben und es kann passieren dass Google kurzzeitig die IP blockt wenn zu viele Anfragen kommen.

Ja, nur bei Talk. Musik spiele ich aber meist über die App ab, daher kann ich es nicht genau sagen. Geblockt wurde die IP nicht, da mit einem Play die Ansage dann abgespielt wurde. Wenn ich mich recht entsinne, habe ich in meinen notifies ein Play angehängt um das Problem zu umgehen.
Ich habe auf jeden Fall nicht die aktuelle Version hier aus dem Thread, werde ich demnächst mal einspielen, sonst macht Troubleshooting ja keinen Sinn.  ::)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Markus M. am 06 Januar 2015, 17:20:14
Mit der letzten Version hier aus dem Thread werden meine Favoriten leider nicht geladen, sie bleiben auf not yet defined.
Alarmzeiten werden angezeigt, allerdings mit den IDs, Set scheint noch auf 2 fixe Alarme zu zeigen. Bastelt da gerade wer?

Und kann es sein dass hier ein klein wenig Chaos herrscht?
Was im GIT liegt ist von November, von den letzten Änderungen keine Spur.
Wo finde ich denn die aktuellste Version?

Viele Grüsse,
Markus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Januar 2015, 22:37:10
Hallo,

Die offizielle Version steht wie im 1. Beitrag geschrieben auf Github https://github.com/mhop/fhem-mirror/tree/master/fhem/contrib (https://github.com/mhop/fhem-mirror/tree/master/fhem/contrib). bugster_de hat verschiedene Beta-Versionen hier im Forum geposted in denen neue Features (z.B. Alarme) zum Testen eingebaut sind, die letzte befindet sich in Beitrag 432.

Ich habe zu dieser Version einige Patches vorgeschlagen, die verschiedene kleinere Probleme lösen. Da es nicht immer einfach ist die Patches an der korrekten Stelle einzubauen habe ich meinen aktuellen Stand in Beitrag 487 gepostet.

Bevor die Änderungen in Github aufgenommen werden sollten sie getestet sein. Da du die letzte Version verwendest und bei dir die Favoriten und Alarme nicht korrekt funktionieren ist es somit auch noch zu früh die Änderungen aufzunehmen.

Du kannst aber dazu beitragen dass eine neue Version auf Github kommt indem du:
- die genau Version der Module angibst (version in FHEM-Kommandozeile eingeben und die 2 Zeilen von SB_* posten)
- angibst wie du sie integriert hast (über reload oder FHEM-Neustart)
- verbose beim Server und einem Player auf 4 oder 5 stellst und einen statusRequest an den Server aufzeichnest um dem Problem mit den Favoriten auf die Spur zu kommen
- einen Vorschlag machst wie die Alarme dargestellt und behandelt werden sollen (siehe dazu auch die Beiträge im November zu den Alarmen)

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Markus M. am 09 Januar 2015, 21:11:43
Hallo,

Die offizielle Version steht wie im 1. Beitrag geschrieben auf Github https://github.com/mhop/fhem-mirror/tree/master/fhem/contrib (https://github.com/mhop/fhem-mirror/tree/master/fhem/contrib). bugster_de hat verschiedene Beta-Versionen hier im Forum geposted in denen neue Features (z.B. Alarme) zum Testen eingebaut sind, die letzte befindet sich in Beitrag 432.

Ich habe zu dieser Version einige Patches vorgeschlagen, die verschiedene kleinere Probleme lösen. Da es nicht immer einfach ist die Patches an der korrekten Stelle einzubauen habe ich meinen aktuellen Stand in Beitrag 487 gepostet.

Ich war wohl nur irritiert von dem "Ich habe eine neue Testversion auf Github gestellt.".
Wo landen denn die Testversionen?

Zitat
Bevor die Änderungen in Github aufgenommen werden sollten sie getestet sein. Da du die letzte Version verwendest und bei dir die Favoriten und Alarme nicht korrekt funktionieren ist es somit auch noch zu früh die Änderungen aufzunehmen.

Hmm... Ich hab es eben nochmal getestet und die Favoriten sind wieder da.
Allerdings funktionieren sie trotzdem noch nicht zu 100% ;)

2015.01.09 20:14:46 2: SB_PLAYER_Parse(squeezebox_bedroom): CD - playlist name: [DI] Club Dubstep
2015.01.09 20:14:46 2: SB_PLAYER_Parse(squeezebox_bedroom): CD - UID: DIClubDubstep
2015.01.09 20:14:46 2: SB_PLAYER_Parse(squeezebox_bedroom): CD - not found, forcing
2015.01.09 20:14:46 2: SB_PLAYER_Parse(squeezebox_bedroom): CD - #Favs: 6
2015.01.09 20:14:46 2: SB_PLAYER_Parse(squeezebox_bedroom): CD - Favs: LiquidDubstep - fdabb91f.4
2015.01.09 20:14:46 2: SB_PLAYER_Parse(squeezebox_bedroom): CD - Favs: House - fdabb91f.6
2015.01.09 20:14:46 2: SB_PLAYER_Parse(squeezebox_bedroom): CD - Favs: Minimal - fdabb91f.3
2015.01.09 20:14:46 2: SB_PLAYER_Parse(squeezebox_bedroom): CD - Favs: Lounge - fdabb91f.5
2015.01.09 20:14:46 2: SB_PLAYER_Parse(squeezebox_bedroom): CD - Favs: DubstepUS - fdabb91f.1
2015.01.09 20:14:46 2: SB_PLAYER_Parse(squeezebox_bedroom): CD - Favs: ClubDubstep - fdabb91f.2

Wenn ich favorites als WebCmd verwende passt die Auswahl nicht, weil im Reading die UID und nicht der FavName steht.
Kannst du das ändern?
Was bei "not found, forcing" passiert hat sich mir aus dem Code leider nicht erschlossen.


Zitat
Du kannst aber dazu beitragen dass eine neue Version auf Github kommt indem du:
- die genau Version der Module angibst (version in FHEM-Kommandozeile eingeben und die 2 Zeilen von SB_* posten)
- angibst wie du sie integriert hast (über reload oder FHEM-Neustart)
- verbose beim Server und einem Player auf 4 oder 5 stellst und einen statusRequest an den Server aufzeichnest um dem Problem mit den Favoriten auf die Spur zu kommen

Über reload:# $Id: 98_SB_PLAYER.pm beta 20141120 0013 CD $
# $Id: 97_SB_SERVER.pm beta 20141120 0008 CD $

Zitat
- einen Vorschlag machst wie die Alarme dargestellt und behandelt werden sollen (siehe dazu auch die Beiträge im November zu den Alarmen)

Hab mich mal eben noch einlesen müssen.
Was hältst du von einer Auflistung wie im neuen Fritzbox-Modul? (siehe Bild im Anhang)

Konkret würde sich in etwa sowas anbieten (Beispiel für den zweiten Alarm, Montag und Donnerstag um 8 Uhr):
...
alarm2_id da84bd36 #kommen die in der "richtigen" Reihenfolge wie in der SB Oberfläche?
alarm2_state on
alarm2_time 08:00
alarm2_sound DIClubDubstep #erst mal nicht so wichtig
alarm2_shuffle album #auch nicht so wichtig
alarm2_wdays Mo Th
alarm2_repeat on #ebenfalls unwichtig
alarm2_volume 60 #wird das überhaupt pro Alarm gespeichert? Wäre genial wenn das ginge!

Der grösste Problemfall ist bei dieser Version allerdings, dass sich die Nummern ändern würden, wenn man einen Alarm löscht.
Ansonsten könnte man damit aber alles bequem abdecken.
Gibt es irgendwo eine Beschreibung der SB API zum setzen der Alarme?
Wenn ich helfen kann: gerne!

Viele Grüsse, Markus

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 10 Januar 2015, 21:12:46
Hallo,

Zitat
Ich war wohl nur irritiert von dem "Ich habe eine neue Testversion auf Github gestellt.".

Da ich ziemlich viel mit den Modulen herumexperimentiert habe, habe ich Github verwendet um die Änderungen nachvollziehen zu können. In Beitrag 477 hatte ich den Link angegeben (https://github.com/ChrisD70/FHEM-Modules (https://github.com/ChrisD70/FHEM-Modules)). Da ich am Anfang nicht wusste wie bugster_de das Modul weiterentwickeln wollte habe ich davon abgesehen die Module hier zu posten. Ich habe auch nicht vor alle Versionen hier ins Forum zu setzen da es die Suche nach der 'aktuellen' Version erschwert und es sich teilweise um ziemlich experimentelle Versionen handelt (wie aktuell mit save/recall und den Alarmen). Ziel ist es einen stabilen Stand zu erreichen und diesen wieder bei bugster_de einzuchecken.

Zitat
Wenn ich favorites als WebCmd verwende passt die Auswahl nicht, weil im Reading die UID und nicht der FavName steht.
Kannst du das ändern?

Bei Dropdowns dürfen u.a. keine Leerzeichen in den Texten enthalten sein, dadurch ist es nicht möglich die richtigen Namen zu verwenden. Es gibt zwar die Möglichkeit &nbsp; zu verwenden, dafür muss der Code aber an verschiedenen Stellen geändert werden damit wieder alles funktioniert und die Anzeige der Favoriten außerhalb des Dropdowns ist dann falsch.

Wenn du die Module über reload einbindest, musst du unbedingtset meinSBServer statusRequestausführen, da ansonsten die Favoriten und Playlisten nicht korrekt initialisiert werden.

Zitat
Was bei "not found, forcing" passiert hat sich mir aus dem Code leider nicht erschlossen.

Hierbei handelt es sich um eine Debug-Ausgabe um ein Problem bei einem anderen User zu finden, im aktuellen Code ist es nicht mehr enthalten.

Ich habe versucht deine Idee mit den Alarmen umzusetzen, eine erste Version (0015) findest du auf Github (Link siehe oben). Durch die Änderungen ist diese Version ist nicht ganz kompatibel zu den Vorgängerversionen was die Alarme betrifft.

Änderungen gegenüber der Version in Beitrag 487:

- 0014:
- Befehl playlist und playlist artist korrigiert
- playlist year und genre hinzugefügt
- save und recall wieder aktiviert (inkl. Position innerhalb vom Track), muss getestet werden
- Laufzeit aktueller Track anzeigen
- Anzahl Tracks in Playlist und aktueller Track anzeigen
- sayText Befehl hinzugefügt (== talk)
- Playlisten die mit fhem_* beginnen ignorieren
- '-' bei Favoriten und Playlists hinzugefügt
- Timer umbenannt
- Debug-Ausgaben für Favoriten entfernt

- 0015:
- Alarme nach Vorschlag von Markus M. implementiert,  dynamisch anlegen
und löschen
- Alarme, on/off zusätzlich zu enabled/disabled erlauben
- set P alarmX repeat, wdays, time und sound hinzugefügt
- bei 'sound' Liste der bekannten Elemente des Servers durchsuchen
- neue Alarme über set P allalarms add ... anlegen
- alle Alarme über set P allalarms delete löschen
- inaktive Alarme abfragen und anzeigen

Zitat
Gibt es irgendwo eine Beschreibung der SB API zum setzen der Alarme?
Die Beschreibung ist im SB-Server integriert, im Web-Interface unten links auf 'Hilfe' klicken, dann auf 'Technische Informationen' und zum Schluss auf 'The Logitech Media Server Command Line Interface'. Es gibt dort einen kurzen Abschnitt über die Alarme.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Markus M. am 11 Januar 2015, 17:24:27
Die nicht passenden Favoriten hatten gepasst, nachdem ich die Listen im LMS umbenannt hatte - sehr seltsam...


- 0015:
- Alarme nach Vorschlag von Markus M. implementiert

Grosses Dankeschön!
Im Anhang findest du ausgehend davon noch eine Möglichkeit, Snooze, Timeout etc. anzuzeigen und zu setzen.
Die Funktion "Alle Alarme" habe ich auf playerprefs umgebaut, die Zeit kann man auch ohne Sekunden setzen.
Kann FHEM eigentlich mehr als 2 Parameter für ein Command?
Habe keine Möglichkeit gefunden, weshalb ich weitere Readings eingebaut habe.

Gruss, Markus

EDIT: "Bessere" Angabe der Alarmtage die ich für das Fritzbox Modul gebaut hatte (idiotensicher), Setzen von alarm_fadein, Sofortiges lokales Setzen der Readings und Montag als erster Tag der Woche ;)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Markus M. am 12 Januar 2015, 01:05:29
Noch ein kleiner Fix:
Wer das Plugin für AirPlay (Repo (http://raw.github.com/StuartUSA/shairport_plugin/master/public.xml)) verwendet oder ein anderes Plugin das die Lautstärke setzt,
wird eventuell wirre Volume Readings wie 32.965 bemerken.

Hier hat LMS intern anscheinend einen Float Wert, warum auch immer.
Sollten wir genau wie in der LMS Oberfläche auf int biegen, schon weil es sonst besch..... aussieht:
Code: (Volume value sanitizing) [Auswählen]
sub SB_PLAYER_UpdateVolumeReadings( $$$ ) {
    my( $hash, $vol, $bulk ) = @_;
   
    my $name = $hash->{NAME};

    $vol = int($vol);
...
M


EDIT: Das ist oben mit in der aktualisierten Version, zusammen mit ein paar anderen Änderungen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 12 Januar 2015, 21:09:56
Hallo,

Vielen Dank für den Code, ich habe ihn mit ein paar kleinen Änderungen bei mir integriert.

Zitat
Kann FHEM eigentlich mehr als 2 Parameter für ein Command?
So weit ich sehe gibt es keinerlei Beschränkung, lediglich das UI ist beschränkt wenn es um Dropdowns, Slider, etc geht. So wären Befehle wie Timeout oder Snooze besser unter allalarms, allerdings kann man dann nicht mehr den Standard-Slider verwenden. Man kann zwar eigenen HTML-Code integrieren, dies sehe ich aber nicht als prioritär an da ich FHEM selten zum Bedienen des LMS verwende.

Habe keine Möglichkeit gefunden, weshalb ich weitere Readings eingebaut habe.Ich denke dass dies im Moment die beste Lösung ist. Es wäre aber besser die Readings in lowerCamelCase zu halten, so wie in den Developper-Richtlinien beschrieben.

Zitat
Sofortiges lokales Setzen der Readings
Dies finde ich keine gute Idee, meiner Meinung nach sollten die Readings den realen Zustand des Servers/Players darstellen. Bei Geräten die keinen Rückkanal haben (z.B. FS20) ist dies ok, hier denke ich ist es besser auf die Rückmeldung zu warten. Ich habe auch die Meldungen des Servers eingebaut wenn z.B. im Web-Interface des Servers die Parameter geändert werden.

Ich habe den Code für die Alarmtage angepasst, so unterstützt der LMS z.B. kein 'once', dies kann eventuell über 'repeat' gemacht werden.

Meine neue Version ist auf Github (https://github.com/ChrisD70/FHEM-Modules), hier die Änderungen:

- Code von Markus M. übernommen
- Befehle und Readings alarmsSnooze, alarmsTimeout, alarmsDefaultVolume, alarmsFadeIn und alarmsEnabled hinzugefügt (Dokumentation fehlt noch)
- allalarms enable/disable verwendet playerprefs
- Alarmzeit kann auch ohne Sekunden angegeben werden
- Lautstärke ohne Nachkommastellen darstellen
- Namen der neuen Readings an lowerCamelCase angepasst
- Internals entfernt wenn es Readings gibt
- Alarm-Playlisten nur noch laden wenn nötig
- bei set allalarms add und set alarmX wdays können statt Zahlen Kürzel für Wochentage angegeben werden
- 'all', 'daily' und 'none' als Wochentage hinzugefügt
- Anzeige korrigiert wenn kein Wochentag ausgewählt ist
- Modul in UTF8 konvertiert

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 13 Januar 2015, 08:21:02
Ich habe mir gestern mal deine Versionen geladen und habe mit den ersten paar Tests keine meiner bekannten Probleme beobachtet. Top!  :)

Danke auch noch mal an ChrisD und die anderen Entwickler, welche gerade das Modul reanimieren und vor dem Archivierungstod bewahrt haben. Jeder hat mal Abschnitte im Leben in denen er wenig Zeit hat und so geht es anscheinend momentan buster. Umso schöner, dass sich ChrisD der Sache angeommen hat! *daumenhoch*
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Littlefreddy am 14 Januar 2015, 13:23:05
Hallo zusammen,

also auch von meiner Seite aus vielen dank das es in diesem Modul weiter geht.
Ich bin erst mehr oder weniger frisch dabei in Sachen FHEM und Pearl. und bin total begeistert von FHEM und auch von diesem Modul

daher meine Frage, bevor ich mich jetzt in so Pearl Sachen einlese und die MY Utils fülle.
Ich suche nach einer Möglichkeit der Squeezebox einen Ordner mit auf den Weg zu geben womit die Player Playlist gefüllt wird.
die Besonderheit dabei, es soll in einem Ordner Hörbuch der neuste Ordner in die Playlist hinzugefügt werden.

Ich finde aber weder den eintrag hier in dem Modul die interne Playlist zu clearen / füllen noch die Möglichkeit ein komplettes Verzeichnis einzulesen.
Guck ich da vielleicht nur falsch ? kann mir da ggf. einer der Programmierkünstler helfen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 14 Januar 2015, 19:06:16
Hallo,

Mit dem Befehlset meinPlayer cliraw playlist clearkannst du die aktuelle Playlist leeren.

Du kannst ein Verzeichnis mit dem Befehlset meinPlayer playlist play Name des Verzeichnissesabspielen. Dies funktioniert im Moment aber nur wenn im Verzeichnisnamen keine Sonderzeichen enthalten sind. Ich muss mir genauer ansehen was beim Encoding schief geht.

Der Server weiß übrigens nicht welches der 'neuste Ordner' ist. Diesen musst du selbst herausfinden (oder kennen) und dem Server mit obigem Befehl übergeben.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Littlefreddy am 15 Januar 2015, 12:04:30
Super vielen dank,damit kann ich schon mal was anfangen.

Dann werde ich wohl mal gucken das ich mir was versuche selber zu bauen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wmr72 am 16 Januar 2015, 23:23:27
Ich habe mir eine readingsGroup für die Alarme gebaut und dabei festgestellt, dass die Readings z.B. nach einem "set <player> alarm1 <on|off>" nicht upgedatet werden. Ich hab das für's Ein-/Ausschalten jetzt mit folgendem Diff behoben, allerdings funktioniert das natürlich nur für genau diesen "set". Außerdem ist mir noch nicht wirklich klar, wie der Readings-Mechanismus in fhem überhaupt genau funktioniert, kann also gut sein, dass es zwar funktioniert aber trotzdem großer Mist ist.
Die Frage ist also: ist das überhaupt der richtige Weg? Vermutlich ist es sinnvoller nach dem "set" den Server nach den jetzt gültigen Werten zu fragen, nur wie.

--- FHEM/98_SB_PLAYER.pm.orig   2015-01-16 23:15:00.210876475 +0100
+++ FHEM/98_SB_PLAYER.pm        2015-01-16 22:56:09.227197492 +0100
@@ -1695,6 +1695,7 @@
             $cmdstr = "$hash->{PLAYERMAC} alarm update id:$id ";
             $cmdstr .= "enabled:1\n";
             IOWrite( $hash, $cmdstr );
+           readingsSingleUpdate( $hash, "alarm" . $n . "_state", "on", 1 );        # WMR
         }

     } elsif(( $arg[ 0 ] eq "disable" )||( $arg[ 0 ] eq "off" )) {   # CD 0015 'off' hinzugefügt
@@ -1702,6 +1703,7 @@
             $cmdstr = "$hash->{PLAYERMAC} alarm update id:$id ";
             $cmdstr .= "enabled:0\n";
             IOWrite( $hash, $cmdstr );
+            readingsSingleUpdate( $hash, "alarm" . $n . "_state", "off", 1 );        # WMR
         }

     } elsif( $arg[ 0 ] eq "volume" ) {
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 17 Januar 2015, 00:15:56
Hallo,

Nach einem set liefert der Server den aktuellen Zustand zurück und dieser wird auch korrekt ausgewertet. Es kann aber durch verschiedene Effekte dazu kommen dass die Aktualisierung der Anzeige nicht erfolgt.

Kannst du die Definiton der readingsGroup posten damit ich es nachvollziehen kann ?

Welche Versionen von FHEM, readingsGroup und der SB-Module verwendest du ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wmr72 am 17 Januar 2015, 10:15:28
Hallo,

Kannst du die Definiton der readingsGroup posten damit ich es nachvollziehen kann ?
Klar:
define rg_sbalarms readingsGroup TYPE=SB_PLAYER:alarm1_state,alarm1_time,alarm1_wdays,<br>,alarm2_state,alarm2_time,alarm2_wdays
Ich glaube aber nicht, dass es etwas direkt mit der readingsGroup zu tun hat. Du hast Recht, dass die Readings direkt vom Server upgedated werden, ich kann das mit einem list sb_player auf einer telnet-Connection verifzieren. Im FHEMWEB kommt das aber auf der Detail-Seite des SB_Player-Devices nicht an, trotz aktiviertem longpoll. Erst ein Reload der Seite hilft.

Zitat
Welche Versionen von FHEM, readingsGroup und der SB-Module verwendest du ?
# $Id: fhem.pl 7124 2014-12-05 07:10:20Z rudolfkoenig $
# $Id: 01_FHEMWEB.pm 7176 2014-12-09 19:11:36Z rudolfkoenig $
# $Id: 98_SB_PLAYER.pm beta 20141120 0016 CD/MM $
# $Id: 97_SB_SERVER.pm beta 20141120 0008 CD $
# $Id: 33_readingsGroup.pm 7161 2014-12-07 14:53:12Z justme1968 $
Die SB-Module sind die aus Deinem Commit ab1fb3291a.

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 17 Januar 2015, 11:56:32
Hallo,

Es ist mir schon länger bekannt dass die Readings auf der Detailseite nach einem 'set' nicht immer aktualisiert werden. Dies betrifft aber nicht nur die SB-Module.

Dabei passiert folgendes:

- der Befehl wird in der Detailansicht abgeschickt
- der Befehl wird von FHEM an den SB-Server geschickt
- die Seite wird automatisch vom Browser neu geladen (noch mit dem alten Wert)
- die Rückmeldung vom SB-Server kommt und FHEM aktualisiert die Readings
- Longpoll wird im Browser aktiviert und 'verpasst' die im vorherigen Schritt gemachte Aktualisierung

Wie du geschrieben hast behebt ein manueller Reload der Seite das Problem.

Ich sehe 3 Möglichkeiten das Problem zu lösen:
- FHEMWEB und Longpoll anpassen (wird nicht passieren)
- die Readings zeitverzögert aktualisieren, die nötige Zeitverzögerung ist aber abhängig von der Geschwindigkeit deines Browsers (kann ich implementieren)
- die Readings setzen ohne auf die Antwort des Servers zu warten (über ein Attribut 'updateReadingsOnSet')

Mit deiner Definition der readingsGroup wird bei mir der Zustand korrekt angezeigt wenn ich die Befehle absetze. Benutzt du die readingsGroup nur zur Anzeige oder hast du auch Befehle über 'commands' definiert ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 17 Januar 2015, 12:26:39
Hallo,

ich lese die ganze Zeit mit... Die Alarme habe ich jedoch nicht im Einsatz und kann auch leider nichts beisteuern.
Aktuell beschäftige ich damit, die synced und syncvolume in das Readingsgroup zu bekommen. Dafür hatte ich entsprechende Userreadings definiert. Die Comamnds habe ich auch drin und des funktioniert soweit. Einziges Problem sind die ständigen "Connection lost"-Meldungen, die ích nur in der RG-Ansicht bekomme. (Mit longpoll scheint das nichts zu tun zu haben).
Habt ihr das auch?

Grüße
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wmr72 am 17 Januar 2015, 13:48:26
Hallo,

ich hab um das Problem einzugrenzen aus der ReadingsGroup alle Attribute rausgeworfen, also auch keine Commands mehr. Trotzdem wird sie nicht upgedated. Das geänderte Reading auf der Detailseite wird wie gesagt auch erst bei Reload sichtbar, und zwar unabhängig von wo ein "set sb_player alarm1 off/on" kommt, das hat bei mir nichts damit zu tun, dass das set auf der Detailseite abgesetzt wird. Das Phänomen hab ich auch, wenn ich es in einem anderen Browsertab oder per telnet absetze. Longpoll funktioniert prinzipiell schon, bei anderen Devices klappt das.

VG,
WMR
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 17 Januar 2015, 13:56:41
Hallo,

Kannst du schauen wie das Attribut 'donotnotify' bei dem Player steht ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wmr72 am 17 Januar 2015, 14:26:45
Hi,

das Attribut stand auf true, keine Ahnung wie das da hin kam, ich kann mich zumindest nicht erinnern das bewusst gesetzt zu haben. Umstellen auf false jedenfalls behebt das Problem. Nächster Schritt wird jetzt die Commands wieder dranzuhängen.
Danke für die Hilfe!

Grüße,
WMR
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Markus M. am 17 Januar 2015, 20:29:45
+1 für updateReadingsOnSet ;)
Bekommen wir an irgendeiner Stelle im Server-Modul eigentlich eine Rückmeldung beim Setzen der Werte?
Falls ja, könnte man die evtl. hernehmen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 17 Januar 2015, 22:46:46
Hallo,

@Markus M.: Ich versuche es umzusetzen, einen Teil hast du ja bereits geschrieben. Der Server liefert auf jeden Befehl eine Antwort, diese wird im Moment verwendet um die Readings zu aktualisieren. Dies muss auch weiterhin gemacht werden, da die Steuerung des Servers und der Player auch von extern erfolgen kann. Das führt aber dazu dass die Aktualisierung der Werte im Frontend nicht immer korrekt erfolgt wie im vorigen Beitrag beschrieben.

@wmr72: Das Attribut wird automatisch gesetzt wenn der Player definiert wird. Ich kenne nicht den Grund wieso dies gemacht wurde. Wenn das Attribut gelöscht wird, wird übrigens 'true' als Defaultwert genommen (also keine Events). Aus Kompatibilitätsgründen möchte ich dies aber nicht ändern.

@Dirk: Wann treten die "Connection lost"-Meldungen auf, bei Änderungen (Update Readings), Befehlen oder auch wenn nichts passiert ?
Verwendest du bereits die aktuelle FHEM-Version (mit dem fhemweb.js Umbau) ?
Gibt es Meldungen im FHEM-Logfile ?
Kannst du apptime verwenden um zu sehen ob eine Funktion FHEM länger blockiert ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 18 Januar 2015, 13:26:54
Hallo,

fhemweb.js habe ich nicht im Einsatz.
Habe den Fehler bzw. die Ursache für die Connection Lost gefunden.
Es lag an den Userreadings, die ich erstellt hatte um die Internalvals aktualiert anzeigen zu können.
(Bitte um Nachsicht, der ein oder andere wird dabei bestimmt schmunzeln).
Habe mir jetzt ein paar dummys gebastelt und die ins RG aufgenommen.... Funktioniert!

Grüße Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: chris1284 am 18 Januar 2015, 14:09:28
hab das modul heute entdeckt und habe bereits eine pi als player und einen LMS auf meinem NAS laufen.
geladen von https://codeload.github.com/mhop/fhem-mirror/zip/master , version hat das modul leider nicht um zu schauen ob es das aktuellste ist.
das modul will keine saubere verbindung zum LMS aufbauen:
Zitat
Logitech Media Server Version: 7.7.1 - r33735 @ Mon Nov 28 16:49:58 MST 2011
Hostname: NAS
IP-Adresse des Servers: 192.168.2.2
Server-HTTP-Portnummer: 9000
Anzahl erkannter Player: 1

meine def des sb_servers
define LMS SB_SERVER 192.168.2.2:9000
attr LMS DbLogExclude .*
attr LMS alivetimer 120
attr LMS doalivecheck true
attr LMS httpport 9000
attr LMS maxcmdstack 200
attr LMS maxfavorites 30
attr LMS room 98_Multimedia
attr LMS verbose 5

nach reboot gibts diese Meldung
Zitat
configfile: LMS: unknown attribute httpport. Type 'attr LMS ?' for a detailed list.
httpport hat jedoch das modul angelegt.... wo ist der fehler?
der status ist opened, LASTANSWER <h1>400 Bad Request</h1>
log
Zitat
2015.01.18 14:03:19 3: Opening LMS device 192.168.2.2:9000
2015.01.18 14:03:19 3: LMS device opened
des weiteren, was ist hier der hintergrund?
Zitat
2015.01.18 14:05:55 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:ku_sen_th
2015.01.18 14:05:58 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:az_light_ledschlauch
2015.01.18 14:05:58 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:az_light_ledschlauch
2015.01.18 14:06:02 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:KS300
2015.01.18 14:06:04 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:bz_sen_th
2015.01.18 14:06:05 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:bz_sen_th
2015.01.18 14:06:06 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:bz_sen_th
2015.01.18 14:06:19 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:ChristinsiPhone
2015.01.18 14:06:22 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:ku_hz
2015.01.18 14:06:23 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:ku_hz_Clima
2015.01.18 14:06:23 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:ku_hz_Weather
2015.01.18 14:06:23 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:bz_hz
2015.01.18 14:06:24 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:bz_hz_Clima
2015.01.18 14:06:24 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:bz_hz_Weather
2015.01.18 14:06:30 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:ku_sen_th
2015.01.18 14:06:32 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:az_hz
2015.01.18 14:06:32 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:az_hz_Clima
2015.01.18 14:06:33 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:az_hz_Weather
2015.01.18 14:06:34 4: SB_SERVER_Notify(LMS): calledOwn:LMS Device:SysMon
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 18 Januar 2015, 19:01:05
Hallo,

Die Version die du heruntergeladen hast ist die letzte offizielle Version. Ich habe diese in der Zwischenzeit mit Hilfe von Markus M. erweitert und leicht korrigiert. Meine aktuelle Version findest du unter https://github.com/ChrisD70/FHEM-Modules (https://github.com/ChrisD70/FHEM-Modules).

Kannst du bitte diese Version ausprobieren. Ziel ist es einen stabilen Stand zu erreichen und diesen wieder in https://github.com/mhop/fhem-mirror (https://github.com/mhop/fhem-mirror) zu integrieren.

Die Meldungen bezüglich httpport und dem notify sind darin behoben.

Die Meldung
Zitat
LASTANSWER <h1>400 Bad Request</h1>
deutet darauf hin dass du eine Verbindung zum Web-Port aufbaust und nicht zum CLI-Port. Versuche die Definition des Servers von
define LMS SB_SERVER 192.168.2.2:9000indefine LMS SB_SERVER 192.168.2.2:9090zu ändern. Für die Kommunikation wird das CLI verwendet, der httpport wird im Moment nur für die Coverbilder benötigt.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: chris1284 am 18 Januar 2015, 19:08:09
sauber. das problem lag aber noch ganz wo anderst. auf einem NSA325V2 läuft cli nicht auf 9090 sondenr kaum dokumentierten port 9595 ...
mit dem port geht es sofort, player kann gesteuert werden und die server-stati (version zb ) passen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 19 Januar 2015, 13:19:33
Hi,

ich habe noch einen Logeintrag gefunden...
PERL WARNING: Argument "?" isn't numeric in numeric eq (==) at ./FHEM/98_SB_PLAYER.pm line 2331.

Das scheint ja nur bei mir aufzutreten... Eine Idee?
Oder soll ich es einfach ändern, so wie es vorgeschlagen wird?

Danke!

Gruß
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 19 Januar 2015, 22:41:12
Hallo,

Die Warnung kann bei jedem auftreten, ich habe den Code geändert. Auf https://github.com/ChrisD70/FHEM-Modules (https://github.com/ChrisD70/FHEM-Modules) befindet sich eine neue Version (0017) mit folgenden Änderungen:

- alarmsEnabled verwendet überall on/off
- shuffle song und album hinzugefügt
- Attribut updateReadingsOnSet hinzugefügt, wenn auf true werden die Readings bereits beim 'set' (mit einigen Ausnahmen) aktualisiert (experimentell, bitte testen)
- Zeichencodierung geändert für die playlist Befehle, bitte testen !
- Fehlermeldung bei ISREMOTESTREAM behoben
- Dokumentation vervollständigt (ist aber noch immer nicht komplett)

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: chris1284 am 21 Januar 2015, 19:32:51
das player-modul funktioniert übrigens auch super mit https://play.google.com/store/apps/details?id=de.bluegaspode.squeezeplayer auf meinem wand-tablet. der player läuft stumpf immer im hintergrund
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: chris1284 am 21 Januar 2015, 21:24:59
ich habe nun 3 player und mir fehlt zum mediaserver noch eine playerfunktion. und zwar beim sync kann ich aktuell in fhem nur sync mit player x oder player y auf einmal wählen.
ich würde mir ein
set player01 sync [alle anderen player] wünschen. sprich mit einem klick synce ich player 2 und 3 mit 1 oder 1,2 mit 3 usw
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 22 Januar 2015, 08:07:58
Das geht. Zuerst einen Player mit einem anderen Verbinden:


set SB cliraw sync SB2
Und dann einen weiteren Player zur Gruppe hinzufügen

set SB cliraw sync SB3
usw.

Ich habe mir dafür eine Funktion in der myUtils hinterlegt:

sub squeezeSync($$;$) {
  my ($slaves,$art,$master)=@_;
  my @dvs=();
  my $dev="";
  my $command="";
  my $i=0;
  @dvs=split(",",$slaves);
  if ($art eq "connect" && defined($master)) {
  foreach (@dvs) {
       $i++;
           $dev=$_;
       fhem("set $dev:FILTER=STATE!=on on");
           fhem("set $master cliraw sync $dev");
           Log 1,"Squeezebox: $dev synced to $master";
  }
      fhem("set $master play");
      return 1;
  }
  elsif ($art eq "disconnect") {
  foreach (@dvs) {
      $dev=$_;
      fhem("set $dev cliraw sync -;sleep 1;set $dev:FILTER=STATE!=off off");
          Log 1,"Squeezebox: $dev unsynced";
        }
    return 1;
  }
  else{return 0};
}

Aufruf:

squeezeSync(slave1[,slave2,slave..],connect|disconnect,master)
master kann beim disconnect weg gelassen werden.

Beispiele:

2 Squeezeboxen miteinander verbinden (SB1 spielt etwas):

squeezeSync("SB2","connect","SB1")

3 Squeezeboxen miteinander verbinden (SB1 spielt etwas):

squeezeSync("SB2,SB3","connect","SB1")

Eine Squeezebox aus der Gruppe lösen:

squeezeSync("SB2","disconnect")


usw.

Vorausetzung ist hier, dass alle Player im Media Server den gleichen Namen haben, wie in FHEM!!!

Ich benutzte diese Subroutine. Statt cliraw gibt es mittlerweile einen nativen sync Befehl des Moduls (glaube zu Hause habe ich das schon angepasst), aber sollte auch so immer noch funktionieren. :)

EDIT: Allerdings eine Möglichkeit mehrere Player direkt über das Modul zu syncen wäre sicher auch keine schlechte Idee. ;)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 22 Januar 2015, 08:21:48
ich habe nun 3 player und mir fehlt zum mediaserver noch eine playerfunktion. und zwar beim sync kann ich aktuell in fhem nur sync mit player x oder player y auf einmal wählen.
ich würde mir ein
set player01 sync [alle anderen player] wünschen. sprich mit einem klick synce ich player 2 und 3 mit 1 oder 1,2 mit 3 usw

Ich habe es nicht ausprobiert, aber vielleicht funktioniert folgendes: Wenn ich das richtig verstehe, ist der Player mit dem gescynct :) wird der Master. Also könnte man doch ein

set [alle anderen Player] sync player01
machen - oder mit regex:

set player(02|03|04) sync player01
Wie gesagt: noch nicht selbst ausprobiert...

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: chris1284 am 22 Januar 2015, 18:06:29
die letzte version spamed ganz schön rum im logfile...

Zitat
2015.01.22 17:53:05 2: SB_SERVER_Alive(LMS): using internal ping
2015.01.22 17:53:05 2: SB_SERVER_Alive(LMS): RCC:off Ping:on
2015.01.22 17:53:11 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:53:12 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:53:45 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:54:19 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:54:52 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:55:00 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:55:05 2: SB_SERVER_Alive(LMS): called
2015.01.22 17:55:05 2: SB_SERVER_Alive(LMS): using internal ping
2015.01.22 17:55:05 2: SB_SERVER_Alive(LMS): RCC:off Ping:on
2015.01.22 17:55:25 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:56:08 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:56:21 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:56:46 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:56:51 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:57:02 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:57:05 2: SB_SERVER_Alive(LMS): called
2015.01.22 17:57:05 2: SB_SERVER_Alive(LMS): using internal ping
2015.01.22 17:57:05 2: SB_SERVER_Alive(LMS): RCC:off Ping:on
2015.01.22 17:57:10 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:57:19 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:57:34 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:57:44 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:58:16 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:58:18 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:58:21 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:58:21 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:58:34 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:59:01 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 17:59:05 2: SB_SERVER_Alive(LMS): called
2015.01.22 17:59:05 2: SB_SERVER_Alive(LMS): using internal ping
2015.01.22 17:59:05 2: SB_SERVER_Alive(LMS): RCC:off Ping:on
2015.01.22 17:59:44 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 18:00:23 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 18:00:27 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 18:01:05 2: SB_SERVER_Alive(LMS): called
2015.01.22 18:01:05 2: SB_SERVER_Alive(LMS): using internal ping
2015.01.22 18:01:05 2: SB_SERVER_Alive(LMS): RCC:off Ping:on
2015.01.22 18:01:10 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 18:01:47 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 18:01:55 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 18:02:07 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 18:02:08 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
2015.01.22 18:02:15 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 22 Januar 2015, 19:19:50
Hallo,

Die Meldungen von Blocking.pm haben nichts mit den SB-Modulen zu tun da diese Blocking nicht verwenden. Die Fehlermeldung gibt es bei einer Reihe von Usern, z.B. hier (http://forum.fhem.de/index.php/topic,25180.msg182017.html#msg182017) mit Lösungsvorschlag.

Die Meldungen vom SB_SERVER_Alive kannst du abschalten indem du verbose auf 0 setzt. verbose braucht nur höher gestellt zu werden wenn Fehler beim Verbindungsaufbau/abbau im SB_Server gesucht werden.

Grüße,

ChrisD



Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 24 Januar 2015, 15:12:20
Hallo,

Ich habe mir die Synchronisation angesehen, hier die aktuelle Funktionsweise:
Beispiel, 4 Player P1-P4, nicht synchronisiert
set P1 sync P2P1 und P2 bilden eine Gruppe, P3 und P4 in keiner Gruppe
set P2 sync P3P3 wird der Gruppe in der sich P2 befindet hinzugefügt, P1-P3 in der gleichen Gruppe, P4 in keiner Gruppe
set P4 sync P1P1 wird aus seiner Gruppe entfernt und bildet mit P4 eine neue Gruppe, P1 und P4 in einer Gruppe, P2 und P3 in einer anderen.

Ich habe den sync-Befehl erweitert:
set P1 sync P2,P3führt dazu dass die Player P2 und P3 der Sync-Gruppe in der sich P1 befindet hinzugefügt werden (mit dem obigen Beispiel wären damit alle Player in einer Gruppe)
set P1 sync P2,P3 newführt dazu dass Player P2 und P3 mit P1 eine neue Sync-Gruppe bilden, falls P1 bereits in einer Gruppe war, wird er daraus entfernt.

Ich habe auch 2 weitere Internals hinzugefügt, die die Playernamen der synchronisierten Player enthalten, diese entsprechen aber nicht unbedingt den FHEM-Gerätenamen.

Weiterhin werden die Internals SYNCGROUP und SYNCMASTER jetzt richtig aktualisiert wenn die Synchronisation geändert wird, unabhängig davon ob über FHEM oder von extern.

Die neue Version befindet sich wie üblich hier (https://github.com/ChrisD70/FHEM-Modules).

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Skram am 29 Januar 2015, 22:29:12
Moin moin!

Ich habe mit den jüngsten Änderungen nicht ganz Schritt gehalten.
Ich möchte bei einem bestimmten Ereignis (auf meiner Fernbedienung) einen Radiosender/URL abspielen. Geht das?
Also sinngemäß: SB_PLAYER SB_Kueche playlist URL http://opml.radiotime.com/Tune.ashx?id=s17492
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 29 Januar 2015, 23:00:43
Hallo,

Mit der aktuellen Version kannst du mit dem Befehl
set playerName playlist play Urleine URL abspielen.

Mit Hilfe eines notify kannst du auf das Ereignis der Fernbedienung reagieren, z.B. bei LIRC:
define n_FB_Sender1 notify lirc:irSender1.* set SB_Kueche playlist play http://opml.radiotime.com/Tune.ashx?id=s17492
Welche Fernbedienung verwendest du ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: mattwire am 29 Januar 2015, 23:51:19
Hi ChrisD,

Dieses Modul Funktioniert ganz gut fuer mich!  Ich habe ein kleine Patch eines "synced" reading Implementieren:
https://github.com/mattwire/fhem/commit/2ac0291697e04e5609b347e28688ac949d35dc33.diff

Dann kann ich, zum Beispeil in ein readingsGroup playername:synced schauen.

Matthew
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 30 Januar 2015, 00:35:54
Kann mir jemand sagen wie der Syntax für das stellen eines Weckers ist? Hab grade das Modul geupdatet und jetzt geht's nicht mehr.

Grüße

Alex


Gesendet von iPad mit Tapatalk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 30 Januar 2015, 15:18:07
ich melde mich auch noch einmal...
mir ist aufgefallen, dass die Radiosender, wie auch meine lokalen Wiedergabelisten in den Favoriten angezeigt werden,
wenn ich jedoch in der RG den Favoriten 'Wiedergabeliste' auswähle (wird zwar wiedergegeben), zeigt das Feld als Auswahl '-'.
Gruß Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: wmr72 am 30 Januar 2015, 16:37:56
Kann mir jemand sagen wie der Syntax für das stellen eines Weckers ist? Hab grade das Modul geupdatet und jetzt geht's nicht mehr.

Das müsste so gehen
set <playerdevice> alarm<n> time <hh:mm>
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 30 Januar 2015, 19:31:31
Hallo,

@Alex: Durch einen Fehler in der Version 0018 hat das Anlegen von Alarmen nicht mehr funktioniert. Mit der neuen Version 0019 sollte z.B.
set meinPlayer alarm1 set 2 08:00wieder funktionieren. Die Alarme wurden erweitert um mehr als 2 zu unterstützen, ich habe aber die Dokumentation noch nicht angepasst.

@Matthew: Danke, habe ich eingebaut.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Markus M. am 30 Januar 2015, 20:31:56
Kann mir jemand sagen wie der Syntax für das stellen eines Weckers ist? Hab grade das Modul geupdatet und jetzt geht's nicht mehr.

Sorry, das hab ich verbrochen ;)
Ich gelobe Besserung, was die Doku angeht!

In der Kurzfassung kann man jetzt über alarmN direkt auf die einzelnen Alarmzeiten zugreifen und einzelne Attribute steuern, was den Hintergrund hat dass man sich anstatt mit den IDs zu kämpfen und Zeiten hinzuzufügen einfach fixe Alarme anlegen kann (z.B. einen für die Woche, einen für's Wochenende oder auch einen für jeden Tag der Woche) und diese dann mit einem bekannten Namen ansteuern kann.
Wenn du welche programmatisch anlegst oder löschst, hast du in meinem neuen Konzept eigentlich schon was falsch gemacht ;)
Das ist jetzt eher darauf ausgelegt, dass man die Dinger einmal anlegt und nicht mehr löscht.

Hier mal eine Zusammenfassung was zumindest in meiner letzten Version alles ging - wenn irgendwas davon anders umgesetzt wurde, wird Chris mich sicher verbessern:
set meinPlayer alarmN
                     set <dayset> <time>     

                     enable
                     disable

                     time <time>

                     wdays <days>

                     repeat <rpt>

                     volume <vol>

                     delete

<time>    Format 00:00 oder 00:00:00
<dayset>  Alle gewünschten Tage im Format 1234, 0-1-2-3-4-5-6 oder Su,Mo,Tu,We,Th,Fr,Sa (Englisch!) mit/ohne Trennzeichen aber als ein String
<days>    Tage numerisch, Deutsch oder Englisch bunt gemischt mit/ohne beliebige Trennzeichen oder Leerstellen
<rpt>     1 0 on off
<vol>     numerisch

Hoffe damit kannst du was anfangen.

Markus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 30 Januar 2015, 22:54:29
Hallo,

@Dirk: Kannst du mir den Inhalt der Internals FAVSTR und SERVERPLAYLISTS eines der Player vor und nach einem
set SqueezeServer statusRequest schicken ?

Wenn eine Playlist abgespielt wird, versucht das Modul zu erkennen ob es sich um einen Favoriten handelt und aktualisiert dementsprechend das Reading favorites. Findet es keinen passenden Favoriten wird das Reading auf - gesetzt. In der Liste der Favoriten dürften allerdings keine Playlisten enthalten sein.

@Markus: Es hätte so funktionieren sollen wie von dir beschrieben, durch einen Fehler beim Ein- und Umbauen des Codes war das aber bei set und wdays nicht mehr der Fall.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 31 Januar 2015, 09:16:03
Hallo,

In der Version 0020 (https://github.com/ChrisD70/FHEM-Modules) habe ich einen weiteren Fehler bei 'alarmX set' behoben der dazu führt dass bestehende Alarme nicht überschrieben wurden.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 31 Januar 2015, 09:32:03
Hallo,


Auswahl Einslive....:
FAVSTR                         1LIVE-DasjungeRadiodesWDR,ZufTitel,SWR3Elchradio,ANTENNEBAYERNTop40
SERVERPLAYLISTS

Da ändert sich bei einem Statusrequest nichts. Egal, ob es ein Radiosender oder eine Wiedegabeliste handelt...
Es könnte nur sein, dass es Probleme mit dem Namen der Wiedergabeliste gibt. Im LMS heisst sie "Zufällige Titel".
(Den Namen kann man anscheinend nicht ändern...).

Ich habe ml die möglichen Vordefinitionen ausgewählt:
1LIVE-DasjungeRadiodesWDR,ZufAlben,ZufTitel,SWR3Elchradio,ZufJahrgänge,ANTENNEBAYERNTop40,ZufInterpreten.

Im LMS heißen diese:
Zufällige Titel
Zufällige Interpreten
Zufällige Alben
Zufällige Jahrgänge

Gruß
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 01 Februar 2015, 11:46:41
Hallo,

Welche Version des LMS verwendest du ? SERVERPLAYLISTS ist leer was bedeuten würde dass du keine Playlisten hast, ist das so ?

Ich habe mit 7.75 getestet und dort werden die 'Zufällige *' Einträge nicht als Wiedergabelisten zurückgegeben. Ich kann sie zwar zu den Favoriten hinzufügen aber nicht als Wiedergabeliste speichern. Die Namen dieser Einträge sind auch sprachabhängig und verweisen auf 'randomplay'.

Ich habe in der neuen Version von SB_SERVER (https://github.com/ChrisD70/FHEM-Modules) bei den Favoriten die Auswertung der Namen geändert so dass Umlaute im ersten Namensteil nicht mehr zum Abschneiden führen. Weiterhin werden Umlaute jetzt konvertiert (ä -> ae, ...) und nicht mehr gelöscht. Das Leerzeichen wird auch nicht mehr entfernt sondern durch _ ersetzt. Dadurch ändern sich aber die Namen der Favoriten und Playlisten wodurch Code der direkt mit den Namen arbeitet angepasst werden muss.

In SB_PLAYER habe ich den Code der versucht den Favoriten aus den Rückmeldungen des LMS zu erraten angepasst, so dass die 'Zufällige *'-Einträge funktionieren sollten.

Zum Aktivieren der neuen Versionen zuerst
reload 98_SB_PLAYERgefolgt von
reload 97_SB_SERVERverwenden.

Sollen die 'Zufällige *'-Einträge automatisch zur Liste der Wiedergabelisten hinzugefügt werden ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 01 Februar 2015, 15:11:03
Hallo,

vielen Dank! Die Auswahl bleibt jetzt im Dropdown.
Wiedergabelisten habe ich in der Tat noch keine und mein LMS ist ein 7.7.3.
Hatte noch keine Probleme und daher (noch) keinen Anlass auf eine neuere Version zu wechseln.  8)
Ob da autom. hinzufügen der Wiedergabelisten Sinn macht erschliesst sich mir aktuell noch nicht... Muss mich erst noch damit beschäftigen...Das mit der Übernahme der FAVS reicht mir erst einmal...

Gruß Dirk

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 01 Februar 2015, 15:18:14
Ups...
bei dem Player bei dem ich den FAV Zufällige... auswähle, bleibt der Wert im Dropdown erhalten.
Bei den anderen Playern, die synced sind, steht im favorites-Reading: not.

Wäre schön, wenn das auch noch ginge...

Gruß
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 01 Februar 2015, 22:01:01
Hallo,

Ich habe versucht das Favorites-Reading in Version 0022 (https://github.com/ChrisD70/FHEM-Modules) zu synchronisieren, kannst du testen ob es funktioniert ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 02 Februar 2015, 10:19:15
Hallo,

das Readingupdate funktioniert.
Leider werden die Coverarts nicht mehr aktualisiert...
(Erst nach Seitenneuaufbau )

Gruß
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Germanboy4u am 02 Februar 2015, 11:42:02
Bekomme immer die Meldung bei einem reload:
Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 51 at ./FHEM/97_SB_SERVER.pm line 13.
Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 51 at ./FHEM/98_SB_PLAYER.pm line 13.

Kann auch kein Server definieren. Meldung:
Cannot load module SB_SERVER

Was hab ich falsch gemacht? ;)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 02 Februar 2015, 18:55:37
Komisch, jetzt kommt doch wieder kein FAVsync... "not". LMS und Fhem habe ich neu gestartet. Jetzt fällt mir auf, dass der Sync nur funktioniert, wenn ich am Master-Player den FAV (Zufaellige..) auswähle.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 02 Februar 2015, 21:09:57
Hallo,

@Germanboy4u: Beim Herunterladen von Github sind die Dateien wahrscheinlich im falschen Format angekommen. Dies passiert u.a. wenn man versucht auf der Übersichtsseite die Module mit 'Speichern unter' herunterzuladen. Es gibt 2 Möglichkeiten den Code im korrekten Format zu bekommen:

- alle Dateien über 'Download ZIP' herunterladen, nur die beiden SB-Module entpacken und ins FHEM-Verzeichnis kopieren
- mit der linken Maustaste auf den Modulnamen klicken so dass der Code angezeigt wird, dann rechts auf 'RAW' klicken und 'Speichern unter' auswählen

@Dirk: Das Synchronisieren des Favoritennamens ist etwas schwieriger da es vom LMS keine richtige Rückmeldung dazu gibt. In der Version 0024 (https://github.com/ChrisD70/FHEM-Modules) habe ich den Fehler behoben der dazu führt dass die Synchronisation nur vom Master aus funktioniert. In SB_SERVER 0010 habe ich auch das Encoding geändert so dass Umlaute korrekt konvertiert werden.

In der Version 7.7.x des Server habe ich keine Möglichkeit gefunden den Status von randomplay abzufragen. In 7.8 kann man abfragen ob randomplay aktiv ist, allerdings gibt es keine Rückmeldung in welchem Modus. Ich habe bei mir das randomplay-Plugin modifiziert um an den Modus zu kommen, ich glaube aber nicht dass dies die optimale Lösung ist. Daher ist es beim Starten von FHEM im Moment nicht möglich zu erkennen welcher Favorit aktiv ist wenn randomplay verwendet wird.

Was bei den Coverarts passiert ist mir nicht klar.
- wird das coverarturl-Reading generell nicht mehr aktualisiert, was zeigt der Event-Monitor an ?
- tritt es nur auf wenn die Player synchronisiert sind ?
- verwendest du in der Definition der Player 'coverart' ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 03 Februar 2015, 17:06:40
Hallo,

die Definition im RG (Valueicon) sieht so aus: 'coverarturl' => '<div><img src="%VALUE"></div>'
Die Aktualisierung funktioniert nur nicht, wenn die Wiedergabeliste läuft. In dem Fall bekomme ich nur per F5 das aktuelle Cover.
Im Eventmonitor steht nichts... Ob das auch so ist, wenn die Player nicht synced sind, muß ich noch testen.

Soll ich den LMS updaten bzw. auf eine höhere Version bringen? (Dann müsste ich mal schauen, wo ich den herbekomme).

Gruß
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 04 Februar 2015, 20:30:57
Hallo,

Verwendest du beim Player das Attribut event-on-change-reading ?

Wenn ja, kannst du zusätzlich event-on-update-reading setzen:
attr meinPlayer event-on-update-reading coverarturlund testen ob damit die Bilder aktualisiert werden.

Wenn der LMS stabil läuft würde ich kein Update machen. Selbst mit 7.9 ist es ohne Änderung am randomplay-Plugin nicht möglich den kompletten Zustand abzufragen. Ich kann dir aber meine geänderte Version schicken wenn du damit testen möchtest.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 06 Februar 2015, 10:19:56
Hallo,

ich habe da mal eine Frage, ggf. sogar ein Feature Request.
Ich nutze seit kurzem Spotify in Verbindung mit meinem LMS. Über das Spotify Plugin von Tridoe kann ich nun über das LMS Webinterface Spotify Wiedergabelisten in meine Squeezelite Player schieben und da abspielen. Dies würde ich nun natürlich gerne über FHEM machen. :)

Wie kann ich LMS Plugins (in meinem speziellen Fall halt Spotify) ansprechen über FHEM? Mir würde erst mal auch eine Lösung per cliraw reichen, in denen die Playlist hardcoded eingetragen ist.
Ich benötige momentan kein "Auslesen der verfügbaren Spotify Playlisten" in FHEM. Will mir halt nur Verknüpfungen bauen für meine gängigen Playlists. :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 06 Februar 2015, 20:41:54
Hallo,

Ich habe leider nur sehr wenig Informationen über das Plugin gefunden und verwende es auch selbst nicht.

Eventuell funktioniert
set meinPlayer playlist play spotify:user:Username:playlist:id
Weitere Möglichkeiten scheinen
set meinPlayer playlist play spotify:track:id
set meinPlayer playlist play spotify:artist:id
set meinPlayer playlist play spotify:album:id
zu sein, wobei 'id' immer 22-stellig ist.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 06 Februar 2015, 22:34:48
Hallo,

Ich habe leider nur sehr wenig Informationen über das Plugin gefunden und verwende es auch selbst nicht.

Eventuell funktioniert
set meinPlayer playlist play spotify:user:Username:playlist:id
Weitere Möglichkeiten scheinen
set meinPlayer playlist play spotify:track:id
set meinPlayer playlist play spotify:artist:id
set meinPlayer playlist play spotify:album:id
zu sein, wobei 'id' immer 22-stellig ist.

Grüße,

ChrisD

Die erste Möglichkeit scheint zu funktionieren. :) Vielen Dank, dass du extra für mich recherchiert hast! Dann kann ich die Tage meine Verknüpfungen für meine Playlists fertig bauen.  ;D
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 07 Februar 2015, 08:51:10
Hallo,

Verwendest du beim Player das Attribut event-on-change-reading ?

Wenn ja, kannst du zusätzlich event-on-update-reading setzen:
attr meinPlayer event-on-update-reading coverarturlund testen ob damit die Bilder aktualisiert werden.

Wenn der LMS stabil läuft würde ich kein Update machen. Selbst mit 7.9 ist es ohne Änderung am randomplay-Plugin nicht möglich den kompletten Zustand abzufragen. Ich kann dir aber meine geänderte Version schicken wenn du damit testen möchtest.


Grüße,

ChrisD

Hallo,

da der LMS aktuell stabil läuft möchte ich den ersteinmal nicht updaten.
Das Attribut event-on-change-reading verwende ich nicht. Es muß was anderes sein.

Gruß Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Februar 2015, 09:02:05
Hallo,

Kannst du noch beim Player schauen ob das Attribut 'donotnotify' nach dem Update wieder auf true steht oder nicht vorhanden ist ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 07 Februar 2015, 09:05:46
Es steht bei allen Playern auf false.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Februar 2015, 09:19:48
Hallo,

Ein möglicher Grund dass die Bilder nicht aktualisert werden ist das Cache-Verhalten des Browsers, allerdings müssten dann trotzdem im Event-Monitor regelmäßig coverarturl-Updates sichtbar sein. Kannst du nochmal überprüfen ob beim Wechsel des Tracks (zeitverzögert) keine Events kommen ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 07 Februar 2015, 09:33:11
Im Eventmonitor tauchen die Readings auf. Es wird ein Cover angezeigt, das aber nicht aktuell ist. Weil der Eventmonitor ja dauernd scrolled habe ich den Inhalt in ein Worddokument gepastet. In Word wird dann das richtige Cover angezeigt.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Februar 2015, 09:46:40
Hallo,

Kannst du die Version 0025 (https://github.com/ChrisD70/FHEM-Modules) testen ? Ich habe versucht die Url anzupassen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 07 Februar 2015, 09:56:17
Das funktioniert. Ist nur etwas unschön, da durch das anscheinende, zwischenzeitliche setzen von einem coverart "", das ganze RG flackert.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Februar 2015, 12:07:08
Hallo,

Du kannst versuchen das Flackern zu reduzieren indem du die Größe des Bildes explizit angibst, z.B. bei 50x50:

'coverarturl' => '<div><img src="%VALUE" height="50" width="50"></div>'
Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 07 Februar 2015, 12:46:40
Ja, aber die Platzhalter erzeugen dieses Phänomen...
s. Anlage.


Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Februar 2015, 13:34:38
Hallo,

Wie sieht es ohne height und width aus ?

Ich habe das fehlende-Bild-Symbol nur in Firefox kurz während des Neuladens. Chrome, IE und Webviewcontrol zeigen dieses Verhalten übrigens nicht, sie scheinen zuerst das neue Bild zu laden und dann zu ersetzen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 07 Februar 2015, 13:35:36
Anscheinend besteht auch noch ein Problem mit den Umaluten:

Reading eines Players:
favorites  Zufällige_Titel
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 07 Februar 2015, 13:37:53
Hallo,

Wie sieht es ohne height und width aus ?

Ich habe das fehlende-Bild-Symbol nur in Firefox kurz während des Neuladens. Chrome, IE und Webviewcontrol zeigen dieses Verhalten übrigens nicht, sie scheinen zuerst das neue Bild zu laden und dann zu ersetzen.

Grüße,

ChrisD

Ohne Height/ Width ist das auch so. Aber wenn es mit Firefox zusammenhängt, ist das nicht so schlimm, da ich ein Tablet als Display nehmen werde...

Aber vorher war das nicht so und es flackert mehrmals. Anscheinend für jeden Player einmal. Beim Aktualieren eines Playerreadings werden anscheind auch die anderen noch einmal anktualisiert.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: trapperjohn am 07 Februar 2015, 15:38:51
Hi,

erst mal danke für das Modul, hat mir bei meiner Badezimmerradio-Integration sehr geholfen!  :D

Erst zwei kurze Anmerkungen: Die MAC Adressen sind case-sensitive... ich hab gestern stundenlang probiert die funktionierende Steuerung eines SB Radios auf einen Squeezelite Player zu übertragen - ohne Erfolg. Irgendwann hab ich dann gesehen, dass das Modul immer wieder einen eigenen Player per autocreate anlegt, der sich nur in der Groß/Kleinschreibung der MAC Adresse unterscheidet. Also die eigene Konfig angepasst und läuft. Muss man nur wissen ;-)

Dann ist mir noch aufgefallen, dass im ersten Post für die Lautstärkeregelung ein volUp/volDown/volStep angegeben ist. Aber bei mir funktioniert nur volumeUp/volumeDown/volumeStep. Wenn ich das im Source richtig gesehen hab, wird die Kurzform nicht (mehr?) unterstützt.

Und zuletzt eine Frage: Ich muss nach jedem Neustart/rereadcfg immer manuell ein "statusRequest" zum SB Server absetzen. Wenn ich das nicht mache, kann ich bspw. keine Playlists starten. Was muss man tun, damit dieser statusRequest automatisch erfolgt?

Danke,
Florian
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 07 Februar 2015, 15:46:37
Dann ist mir noch aufgefallen, dass im ersten Post für die Lautstärkeregelung ein volUp/volDown/volStep angegeben ist. Aber bei mir funktioniert nur volumeUp/volumeDown/volumeStep. Wenn ich das im Source richtig gesehen hab, wird die Kurzform nicht (mehr?) unterstützt.

Du siehst ja im Frontend, welche Attribute es gibt. Sowas nur über das Frontend machen und nichts kann schief gehen.

Und zuletzt eine Frage: Ich muss nach jedem Neustart/rereadcfg immer manuell ein "statusRequest" zum SB Server absetzen. Wenn ich das nicht mache, kann ich bspw. keine Playlists starten. Was muss man tun, damit dieser statusRequest automatisch erfolgt?

Ein notify auf global:INITIALIZED.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: trapperjohn am 07 Februar 2015, 16:03:18

Ein notify auf global:INITIALIZED.

Super, danke!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Februar 2015, 16:38:10
Hallo,

@Dirk: Ich habe in den letzten Versionen nichts mehr am CoverArt selbst geändert, ich muss mir aber noch genauer ansehen wieso das Reading so oft (unnötigerweise) aktualisiert wird. Was die Umlaute betrifft sollte dies mit der letzten Version von Server (0010) und Player (>=0024) behoben sein. Wenn du diese Versionen bereits verwendest kannst du ein statusRequest beim Server machen um zu sehen ob sich etwas ändert ?

@trapperjohn:
Zitat
Die MAC Adressen sind case-sensitive...
Ich werde das define so ändern dass die MAC-Adresse automatisch in Kleinschreibung konvertiert wird.

Zitat
Wenn ich das im Source richtig gesehen hab, wird die Kurzform nicht (mehr?) unterstützt.
Die Kurzform scheint schon seit längerem nicht mehr enthalten zu sein, wahrscheinlich wurde sie beim Anpassen der Befehle an die DevelopmentGuidelinesAV entfernt. Ich werde die Dokumentation des Moduls anpassen.

Zitat
Und zuletzt eine Frage: Ich muss nach jedem Neustart/rereadcfg immer manuell ein "statusRequest" zum SB Server absetzen. Wenn ich das nicht mache, kann ich bspw. keine Playlists starten. Was muss man tun, damit dieser statusRequest automatisch erfolgt?
Dies sollte nach einem Neustart automatisch erfolgen, wenn es nicht der Fall ist gibt es noch ein Problem. Kannst du:

- dein notify abschalten
- das Attribut 'verbose' beim Server auf 4 setzen
- Save config anklicken
- FHEM beenden
- FHEM neu starten
- etwas warten
- die Zeilen aus der FHEM-Logdatei posten die SB_SERVER enthalten
- das Attribut 'verbose' beim Server wieder löschen
- das notify wieder reaktivieren

Was bei einem rereadcfg passiert habe ich noch nicht überprüft, dies muss ich mir genauer ansehen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 08 Februar 2015, 08:49:38
Hallo,

anscheinend wird beim Neustart kein Statusrequest durchgeführt.
Nachdem ich den von Hand gemacht habe sind die Umlaute wieder da.

Ich lasse mir übrigens Anrufe per Talk mitteilen. Ich lese den Favorit, sende den Text per Talk und stelle zurück auf den vorherigen Favorit. Mein Problem ist, dass wenn der Favorit "Zufällige_Titel" nicht angezeigt wird, ich auch die Wiedergabe nach dem Talk nicht fortsetzen bzw. starten kann. Hast Du eine Idee wie ich das lösen könnte? Fortsetzen wäre natürlich besser als neu starten.

Danke!

Gruß Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 08 Februar 2015, 12:24:23
Hallo,

Kannst du einen Neustart von FHEM machen mit verbose 4 beim SB_SERVER und das Log posten (vor allem die Zeilen mit ...4: SB_SERVER_...) ?

Ich bin dabei mir 'talk' anzusehen, allerdings gibt es dabei einige Probleme beim 'Fortsetzen', insbesondere bei aktivem Shuffle und zufälligen Favoriten. Das automatische Fortsetzen nach einem 'talk' bei normalen Playlisten sollte jetzt bereits funktionieren.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 08 Februar 2015, 12:36:28
I am using v25, and I encounter issues with coverarts, which only work on local files. They are broken on radios and spotify (using triode's plugin).

I don't understand where is the ARTWORKURL coming from.

Here is an example of a  coverarturl I get : http://www.mysqueezebox.com/public/imageproxy?u=imageproxy%2Fspotify%3Aimage%3A6d2a1eb52391c214096b04cf46a18bf2a8ccdddb%2Fimage.jpg&h=50&w=50 (http://www.mysqueezebox.com/public/imageproxy?u=imageproxy%2Fspotify%3Aimage%3A6d2a1eb52391c214096b04cf46a18bf2a8ccdddb%2Fimage.jpg&h=50&w=50)

Why isn't the local LMS server  URL (e.g. http://LMS:9000/music/current/cover_50x50.jpg?player= &x=randomnumber) used in all cases ? It seems that for remote sites image is not redimensioned, but it is possible to render it the right size in a readingsGroup :
valueIcon { 'coverarturl' => '<div><img src="%VALUE" width="50 height="50"></div>' }
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 08 Februar 2015, 13:36:37
Hi,

The ARTWORKURL is coming from the server and is part of the status message (tag artwork_url). The server does not generate a local copy of the image for remote streams, therefore you can not use http://LMS:9000/music/current/cover_50x50.jpg...

Can you give an example of a radio station that doesn't work ? The images should be redimensioned through the imageproxy on mysqueezebox.com, can you post an url that doesn't work ?

I think that spotify requires special handling for cover art, can you post the content of the internal ARTWORKURL ?

Regards,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: trapperjohn am 08 Februar 2015, 14:11:56
- dein notify abschalten
- das Attribut 'verbose' beim Server auf 4 setzen
- Save config anklicken
- FHEM beenden
- FHEM neu starten
- etwas warten
- die Zeilen aus der FHEM-Logdatei posten die SB_SERVER enthalten
- das Attribut 'verbose' beim Server wieder löschen
- das notify wieder reaktivieren

Das sieht dann so aus:

2015.02.08 14:02:50 3: Opening Squeeze device 127.0.0.1:9090
2015.02.08 14:02:50 3: Squeeze device opened
[...]
2015.02.08 14:02:50 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:global
[...]
2015.02.08 14:02:50 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:HMLAN1
[...]
2015.02.08 14:02:50 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:HMLAN1
[...]
2015.02.08 14:02:51 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:RfxTrx
[...]
2015.02.08 14:02:51 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:RfxTrx
[...]
2015.02.08 14:02:55 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:WindowWestLeft
2015.02.08 14:02:55 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:ActionDetector
[...]
2015.02.08 14:02:55 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:WindowWestRight
2015.02.08 14:02:55 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:ActionDetector
[...]
2015.02.08 14:02:56 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:Awning
[...]
2015.02.08 14:02:57 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:GardenLights
2015.02.08 14:03:00 4: SB_SERVER_DoInit(Squeeze): called
2015.02.08 14:03:00 4: SB_SERVER_Broadcast(Squeeze): called
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d artist ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d album ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d title ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d playlist url ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d remote ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d status 0 500 tags:Kc
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d player ip ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d player model ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d player canpoweroff ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d name ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d power ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d connected ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 artist ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 album ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 title ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 playlist url ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 remote ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 status 0 500 tags:Kc
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 player ip ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 player model ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 player canpoweroff ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 name ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 power ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 connected ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce artist ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce album ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce title ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce playlist url ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce remote ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce status 0 500 tags:Kc
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce player ip ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce player model ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce player canpoweroff ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce name ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce power ?
2015.02.08 14:03:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce connected ?
2015.02.08 14:03:20 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:TX3
2015.02.08 14:03:57 1: SB_PLAYER_Get: called with Squeeze.Pi ?
2015.02.08 14:04:24 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:TX3
2015.02.08 14:04:50 4: SB_SERVER_Alive(Squeeze): called
2015.02.08 14:04:50 4: SB_SERVER_Read(Squeeze): called
2015.02.08 14:04:50 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:Squeeze
2015.02.08 14:04:50 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:fhemalivecheck...
2015.02.08 14:04:50 4: SB_SERVER_ParseCmds(Squeeze): called
2015.02.08 14:04:50 4: SB_SERVER_ParseCmds(Squeeze): alivecheck received
2015.02.08 14:04:50 4: SB_SERVER_Read(Squeeze): called
2015.02.08 14:04:50 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d artist ?...
2015.02.08 14:05:00 4: SB_SERVER_Alive(Squeeze): called
2015.02.08 14:05:00 4: SB_SERVER_Read(Squeeze): called
2015.02.08 14:05:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:fhemalivecheck...
2015.02.08 14:05:00 4: SB_SERVER_ParseCmds(Squeeze): called
2015.02.08 14:05:00 4: SB_SERVER_ParseCmds(Squeeze): alivecheck received
2015.02.08 14:05:26 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:TX3
2015.02.08 14:06:28 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:TX3
2015.02.08 14:06:50 4: SB_SERVER_Alive(Squeeze): called
2015.02.08 14:06:50 4: SB_SERVER_Read(Squeeze): called
2015.02.08 14:06:50 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:fhemalivecheck...
2015.02.08 14:06:50 4: SB_SERVER_ParseCmds(Squeeze): called
2015.02.08 14:06:50 4: SB_SERVER_ParseCmds(Squeeze): alivecheck received
2015.02.08 14:07:00 4: SB_SERVER_Alive(Squeeze): called
2015.02.08 14:07:00 4: SB_SERVER_Read(Squeeze): called
2015.02.08 14:07:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:fhemalivecheck...
2015.02.08 14:07:00 4: SB_SERVER_ParseCmds(Squeeze): called
2015.02.08 14:07:00 4: SB_SERVER_ParseCmds(Squeeze): alivecheck received
2015.02.08 14:07:30 4: SB_SERVER_Notify(Squeeze): calledOwn:Squeeze Device:TX3
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d artist ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d album ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d title ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d playlist url ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d remote ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d status 0 500 tags:Kc
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d player ip ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d player model ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d player canpoweroff ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d name ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d power ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d connected ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 artist ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 album ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 title ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 playlist url ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 remote ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 status 0 500 tags:Kc
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 player ip ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 player model ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 player canpoweroff ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 name ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 power ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 connected ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce artist ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce album ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce title ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce playlist url ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce remote ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce status 0 500 tags:Kc
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce player ip ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce player model ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce player canpoweroff ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce name ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce power ?
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce connected ?
2015.02.08 14:08:00 4: SB_SERVER_Read(Squeeze): called
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d artist ?...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d album ?...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d title ?...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d playlist url ?...
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:12:a6:0d mode ?
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d remote ?...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d status 0 500 tags:Kc...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d player ip ?...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d player model ?...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d player canpoweroff ?...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d name ?...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d power ?...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d connected ?...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 artist Billy Idol...
2015.02.08 14:08:00 4: SB_SERVER_Read(Squeeze): called
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 album...
2015.02.08 14:08:00 4: SB_SERVER_Read(Squeeze): called
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 title Flesh For Fantasy...
2015.02.08 14:08:00 4: SB_SERVER_Read(Squeeze): called
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 playlist url ...
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:00:04:20:27:65:58 mode ?
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 remote 1...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 status 0 500 tags:Kc player_name:Küche player_connected:1 player_ip:192.168.1.103:60154 power:1 signalstrength:35 mode:play remote:1 current_title:105.5 Spreeradio Livestream time:4281.00390319061 rate:1 mixer volume:26 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:865 playlist_cur_index:0 playlist_timestamp:1423396597.0024 playlist_tracks:1 remoteMeta:HASH(0xa302128) playlist index:0 id:-170553312 title:Flesh For Fantasy artwork_url:http://d3tybumvrk5xfv.cloudfront.net/gn/2L1TDDNH81g.jpg coverid:-170553312...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 player ip ? 192.168.1.103:60154...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 player model ? baby...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 player canpoweroff ? 1...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 name Küche...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 power 1...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 connected 1...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce artist Placebo...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce album...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce title Loud Like Love...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce playlist url Slim::Schema::Playlist=HASH(0xa23f5c0)...
2015.02.08 14:08:00 4: SB_SERVER_Write(Squeeze): called with FN:b8:27:eb:27:5a:ce mode ?
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce remote 1...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce status 0 500 tags:Kc player_name:Badezimmer player_connected:1 player_ip:192.168.1.184:51171 power:0 signalstrength:0 mode:stop remote:1 current_title:Placebo - Loud Like Love time:0 rate:1 mixer volume:63 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_id:19401 playlist_name:Badezimmer playlist_modified:0 playlist_cur_index:1 playlist_timestamp:1423381764.01402 playlist_tracks:5 remoteMeta:HASH(0x88b0af8) playlist index:0 id:-170539640 title:Timber (feat. Ke$ha) artwork_url:html/images/radio.png coverid:-170539640 playlist index:1 id:-169822864 title:Loud Like Love artwork_url:html/images/radio.png coverid:-169822864 playlist index:2 id:-169878432 title:direkt artwork_url:html/images/radio.png coverid:-169878432 playlist index:3 id:-142113008 title:I Bet You Look Good On the Dancefloor artwork_url:html/images/radio.png coverid:-142113008 playlist index:4 id:-169719056 title:Die besten Songs aller Zeiten artwork_url:html/images/favorites.png coverid:-169719056...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce player ip ? 192.168.1.103:60154...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce player model ? baby...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce player canpoweroff ? 1...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce name Badezimmer...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce power 0...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce connected 1...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:12:a6:0d mode ?...
2015.02.08 14:08:00 4: SB_SERVER_Read(Squeeze): called
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:00:04:20:27:65:58 mode play...
2015.02.08 14:08:00 4: SB_SERVER_DispatchCommandLine(Squeeze): Line:b8:27:eb:27:5a:ce mode stop...
2015.02.08 14:08:06 1: SB_PLAYER_Get: called with Squeeze.Pi ?

Undsoweiter...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 08 Februar 2015, 14:28:11
Hallo,

Kannst du bitte nochmal mit den aktuellen Versionen (0010/0025) von hier (https://github.com/ChrisD70/FHEM-Modules) testen ?

Grüße,

ChrisD



Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: trapperjohn am 08 Februar 2015, 14:40:40
Kannst du bitte nochmal mit den aktuellen Versionen (0010/0025) von hier (https://github.com/ChrisD70/FHEM-Modules) testen ?

Mit denen funktioniert's nach einem Neustart, danke! Kann ich die problemlos weiterverwenden oder kann ich mit unschönen Nebeneffekten rechnen?  ;)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 08 Februar 2015, 15:21:37
Can you give an example of a radio station that doesn't work ? The images should be redimensioned through the imageproxy on mysqueezebox.com, can you post an url that doesn't work ?
No radio is working. e.g. :
radio :  Blues Classics- AddictedToRadio.com (États-Unis)   
URL :  http://opml.radiotime.com/Tune.ashx?id=s49071&formats=aac,ogg,mp3,wma,wmvoice&partnerId=16&serial=ec6dbc95aaefbf997e8d7ea8be2be02f (http://opml.radiotime.com/Tune.ashx?id=s49071&formats=aac,ogg,mp3,wma,wmvoice&partnerId=16&serial=ec6dbc95aaefbf997e8d7ea8be2be02f) 
ARTWORKURL : %2Fimageproxy%2Fhttp%253A%252F%252Fd3tybumvrk5xfv.cloudfront.net%252Fgn%252F3XD0MCXT0Dg.jpg%2Fimage.jpg

I think that spotify requires special handling for cover art, can you post the content of the internal ARTWORKURL ?
ARTWORKURL : imageproxy%2Fspotify%3Aimage%3A0b43d3af942e79539ff47f88019c45ba3b78d066%2Fimage.jpg

Required icon (e.g. http://www.mysqueezebox.com/public/imageproxy?u=imageproxy%2Fspotify%3Aimage%3A0b43d3af942e79539ff47f88019c45ba3b78d066%2Fimage.jpg&h=50&w=50 (http://www.mysqueezebox.com/public/imageproxy?u=imageproxy%2Fspotify%3Aimage%3A0b43d3af942e79539ff47f88019c45ba3b78d066%2Fimage.jpg&h=50&w=50) ) gives the following error in a browser :
Error reading file imageproxy/spotify:image:0b43d3af942e79539ff47f88019c45ba3b78d066/image.jpg: read_file '/opt/sn/imageproxy/spotify:image:0b43d3af942e79539ff47f88019c45ba3b78d066/image.jpg' - sysopen: No such file or directory at /opt/sn/script/../lib/SDI/SqueezeNetwork/Controller/Public/ImageProxy.pm line 104

Note that the local URL works for both radios and spotify on my setup. Perheaps it is related to my version of LMS (Logitech Media Server Version : 7.9.0 - 1411111485 @ Mon Sep 22 04:01:30 UTC 2014) ?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 08 Februar 2015, 16:13:41
After little investigations, it appears that last community version of LMS (7.9.0) handles coverart_url smoothly locally and does not need special treatments. This works well for me, for both radios, local files and Spotify :

    # compile the link to the album cover
#    if( $hash->{ISREMOTESTREAM} eq "0" ) {
        $hash->{COVERARTURL} = "http://" . $hash->{SBSERVER} . "/music/" .
            "current/cover_" . AttrVal( $name, "coverartheight", 50 ) .
            "x" . AttrVal( $name, "coverartwidth", 50 ) .
            ".jpg?player=$hash->{PLAYERMAC}&x=".int(rand(100000));      # CD 0025 added rand() to force browser refresh
#    } elsif( $hash->{ISREMOTESTREAM} eq "1" ) { # CD 0017 Abfrage  || ( $hash->{ISREMOTESTREAM} == 1 ) entfernt
        # CD 0011 überprüfen ob überhaupt eine URL vorhanden ist
#        if($hash->{ARTWORKURL} ne "?") {
#            $hash->{COVERARTURL} = "http://www.mysqueezebox.com/public/" .
#                "imageproxy?u=" . $hash->{ARTWORKURL} .
#                "&h=" . AttrVal( $name, "coverartheight", 50 ) .
#                "&w=". AttrVal( $name, "coverartwidth", 50 );
#        } else {
#            $hash->{COVERARTURL} = "http://" . $hash->{SBSERVER} . "/music/" .
#                $hash->{COVERID} . "/cover_" . AttrVal( $name, "coverartheight", 50 ) .
#                "x" . AttrVal( $name, "coverartwidth", 50 ) . ".jpg";
#        }
        # CD 0011 Ende
#    } else {
#        $hash->{COVERARTURL} = "http://" . $hash->{SBSERVER} . "/music/" .
#            $hash->{COVERID} . "/cover_" . AttrVal( $name, "coverartheight", 50 ) .     # CD 0011 -160206228 durch $hash->{COVERID} ersetzt
#            "x" . AttrVal( $name, "coverartwidth", 50 ) . ".jpg";
#    }

I do not know which versions have this behavior. It would be nice to check for the LMS version in order to handle this correctly in all cases
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 08 Februar 2015, 16:38:11
Hi,

Zitat
I do not know which versions have this behavior. It would be nice to check for the LMS version in order to handle this correctly in all cases

LMS < 7.8: does not have the local proxy for resizing the image
LMS >=7.8: has the proxy but it must be activated in the preferences (Performance section)

So checking for the version is not enough, I think that I will check on the presence of 'imageproxy' in ARTWORKURL.

Regards,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 08 Februar 2015, 16:49:10
Hallo,

@trapperjohn: Nebeneffekte kann ich natürlich nicht ausschließen, es sind mir im Moment aber keine gravierenden bekannt. Es ist auch einfacher Fehler zu finden und zu beheben wenn du die aktuelle Version verwendest.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 08 Februar 2015, 16:56:33
So checking for the version is not enough, I think that I will check on the presence of 'imageproxy' in ARTWORKURL.
Thanks ChrisD, that would be great !
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: aeronaut am 09 Februar 2015, 21:45:19
Hi, ich habe Verständnisfragen :-\ einmal zu der Squeezebox an sich und einmal zum Reifegrade der Anbindung.

Folgender Anwendungsfall: Einstellen/Abfrage der Weckzeit eines Weckers, der in Kastenform am Bett steht, sowohl von FHEM aus als auch direkt am Gerät.

Damit könnte ich die Badheizung 15 Minuten vor dem Aufstehen schon mal einschalten und behalte ein Standgerät direkt am Bett  :D

Was ich bis jetzt verstanden habe:

Ist das soweit korrekt?

Kann die Weckzeit von FHEM aus ausgelesen und gesetzt werden?

Welches Squeezeboxmodell man dafür nimmt ist egal, da die Kommunikation via SqueezeServer geschieht?

lg
aeronaut
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 10 Februar 2015, 07:35:32
Hallo,

Kannst du bitte nochmal mit den aktuellen Versionen (0010/0025) von hier (https://github.com/ChrisD70/FHEM-Modules) testen ?

Grüße,

ChrisD

Hallo,

hatte gar nicht mitbekommen, dass ich damit gemenit war. Also die letzte Version 11/26 läuft gar nicht so gut. Die favorites (Zufällige_Titel) werden von den anderen Playern nicht angezeigt. Auch nicht, wenn ich am Masterplayer umstelle.

Die Cover werden bei Zuf. Wiedergabe nur an einem Player (SB_Garten) aktualisiert. Das hat nicht damit zu tun an welchem ich den nächsten Titel wähle. (F5 bringt auch nichts).

Gruß
Dirk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: trapperjohn am 10 Februar 2015, 10:31:23

Folgender Anwendungsfall: Einstellen/Abfrage der Weckzeit eines Weckers, der in Kastenform am Bett steht, sowohl von FHEM aus als auch direkt am Gerät.

Falls du dich jetzt schon per (Android) Handy wecken solltest, könntest du einfach Tasker nutzen, um mit FHEM zu reden...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: mrbreil am 10 Februar 2015, 16:09:32
Also das klingt für mich alles nach etwas sehr mächtigen und praktikablen. Aber was ich einfach noch nicht kapiere, wie ihr das mit der sprachausgabe macht, das ist in meinen Augen ja das super Feature.

Das wären ja ne riesen Menge Zeilen in der config.

*schauen ob Musik gespielt wird
*den Player finden der als "Master" fungiert
*die playlist speichern
*alle Player in eine Gruppe holen
* Text ausprechen
* Gruppe wieder auflösen
*Playlist wieder laden und auf den gleichen Playern an der gleichen Stelle weiter spielen



Oder denke ich hier absolut in die falsche Richtung?
Sind ja nun doch schon einige Seiten über die der Beitrag geht.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 10 Februar 2015, 19:25:18
Hallo,

Ich habe aktualisierte Versionen für Server und Player auf Github (https://github.com/ChrisD70/FHEM-Modules) gesetzt. Änderungen:

SB_SERVER 0011
- weitere Zeichen aus Favoriten und Playlisten ausfiltern da sie zu Problemen in FHEM führen
- Alarm-Playlisten zentral verteilen

SB_PLAYER 0027
- Alarm-Playlisten vom Server übernehmen
- Coverart für LMS 7.8 und 7.9 angepasst
- MAC-Adresse immer in Lowercase knovertieren
- volDown und volUp aus der Dokumentation entfernt

Wichtig ist dass nach einem reload der beiden Module ein
set meinLMSServer statusRequestgemacht wird.

@Dirk: Ich habe den Fehler in der Version 0026 korrigiert der dazu führt dass Cover Art nicht mehr aktualisiert wird. Kannst du mit 0027 testen ? Was die Favoriten betrifft ist mir nicht klar was passiert, in dem Log das du mir geschickt hast sieht alles korrekt aus. Ich muss mir das nochmal genauer ansehen. Bei meinen Tests wurden die Favoriten korrekt aktualisiert. Was nicht funktioniert ist das Erkennen der 'zufälligen' Favoriten nach einem FHEM-Neustart da der LMS diese Information nicht herausgibt.

@Olivier: I added code for LMS 7.8/7.9, can you test it ?

@aeronaut: Das kann funktionieren, Voraussetzung ist aber dass der SqueezeServer permanent läuft und nicht erst 5 Minuten vor dem Alarm durch das Radio per WOL geweckt wird.

@mrbeil: Für die Sprachausgabe wird die aktuelle Playlist zwischengespeichert, der Text wird ausgegeben und die Playlist wird danach fortgesetzt, zumindest in der Theorie. Es scheint aber nicht immer zu funktionieren, allerdings hatte ich noch keine Zeit mir das im Detail anzusehen, es fehlen mir auch Rückmeldungen was genau nicht funktioniert. Die von dir beschriebene Variante (neue Gruppe, Ansage auf allen Playern parallel, alte Gruppe wieder herstellen) muss im Moment von Hand gemacht werden. Ich bin aber offen für Vorschläge was die Sprachausgabe betrifft (und brauche danach Tester).

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: mrbreil am 10 Februar 2015, 20:49:19
Danke, das war ja erstmal eine theoretische Frage. Hatte noch nie ne Squeezebox, aber durch diesen Thread, bin ich sofort los gerannt und habe mir zwei pi besorgt. Leider klappt das Abspielen im Moment (hoffentlich bleibt es beim Moment) nur mit dem PiCorePlayer Image gut, alle anderen Lösungen klingen ja grausam und ich gehöre nicht zu den Audiophilen. Leider kann man bei diesen Image keine weiteren Pakete einspielen, wenn schon so ein pi in jedem Zimmer ist kann er auch gleich die Temperatur messen oder per Bluetooth die Anwesenheit feststellen.  Aber das soll hier nicht das Thema sein.
Zum testen bin ich gerne bereit, sobald ich die Hardware im Griff habe. Aber die Idee ist schon mal Genial, auch meine Regierung ;) war begeistert und stellt mir Fördermittel ;D.

schönen Abend noch
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: aeronaut am 10 Februar 2015, 21:42:46
Danke, ChrisD. Der Server kann, wenn ich es richtig verstanden habe, problemlos unter Linux laufen, also auch parallel zum FHEM auf Cubie/Raspi. Dann könnte es also klappen :)

Nutzt das Wecker-Szenario mit Steuerung der Weckzeiten über FHEM schon jemand erfolgreich und/oder kann ggf. über Probleme berichten? Ich frage, weil eine Squeezebox zu teuer für Experimente ist ...

lg
aeronaut
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 10 Februar 2015, 22:47:05
@Olivier: I added code for LMS 7.8/7.9, can you test it ?
It works fine, thanks !
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 10 Februar 2015, 23:01:04
@ChrisD
About voice : one year ago I had written some code in order to try to make it work like this :
set SBP save
set SBP talk bla-bla
set SBP talk bla-bla
set SBP recall
The idea was to stack talks while there are not finished, then recall the previous playlist at current position. My first attempt (published) was really buggy but second one was working better on my setup. If you are interested I can send it to you if you want to look at it.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: mrbreil am 11 Februar 2015, 16:33:56
@oliv06
Yes, you upload it please . Everyone wants to read it and test it.

sponsored by google translator because although I can read a little English , but of writing I am not powerful
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 11 Februar 2015, 23:06:04
Hi,

If you send me the code I'll try to integrate it. I added already my own version as bugster removed the code (yours ?) for save/recall in his last version. My version does not support stacking and lacks some other features (split if string is longer than 100 characters, handle Google blacklist, make sure that the playlist is really played, separate volume for talk, talk only on one player in a sync-group, restoration of favorite an playlistnames, ...).

Regards,

ChrisD

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 12 Februar 2015, 00:08:12
@ChrisD
I tried my old code this evening with no luck ! I even had to restart LMS to let it play something... It is probably better to continue on your own which is very promising. Your save/recall function is nicer than Logitech's save playlist function I had simply integrated ...

One idea you could perheaps keep is saving state and playStatus as well in readings (e.g. savedState and SavedPlayStatus) and restore it at recall.
 
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 15 Februar 2015, 20:39:03
Hi,

Can you nevertheless send me your code, it could help me implement the talk function in a clean way. The current code is a quick hack i did for my own need.

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: oliv06 am 16 Februar 2015, 23:08:10
I sent you a PM with code (I am not proud of it at all  :-[ )
Hope it can give you ideas.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 24 Februar 2015, 09:16:08
Gibt es einen neuen Stand zum "talk" Thema? Falls nicht ist das ok, wollte aber mal nachfragen weil ich nun schon einige Zeit nichts neues dazu gelesen habe. :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 24 Februar 2015, 14:22:34
Hallo,

Ich bin noch mit dem talk beschäftigt. Im Moment habe ich leider noch keine Version die alle meine Tests bestanden hat. Solange das nicht der Fall ist möchte ich sie nur ungern veröffentlichen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 25 Februar 2015, 08:08:50
Hallo,

Ich bin noch mit dem talk beschäftigt. Im Moment habe ich leider noch keine Version die alle meine Tests bestanden hat. Solange das nicht der Fall ist möchte ich sie nur ungern veröffentlichen.

Grüße,

ChrisD

Danke für die Info!
Mach dir keinen Stress. Ist aber schön zu hören, dass es weiter geht.  :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 25 Februar 2015, 09:42:32
T´schuldigung wenn ich mich hier so einmische.

Aber imho ist es unpraktisch in zig Modulen jeweils die (letztlich) gleiche Funktionalität nachzubilden. In diesem Fall Talk im Squeezebox Modul.

Wäre es nicht wesentlich schlauer und einfacher, das vorhandene Text2Speech-Modul zu nehmen? Letztlich produziert es, bevor die Sprachausgabe kommt, ja nichts weiter als eine Audio Datei. Selbige wird eindeutig referenziert und landet in einem Cacher Verzeichnis, für wenn man sie mal wieder brauchen sollte.

Vielleicht wäre es einfacher, sich mal mit Tobias kurzzuschließen, ob man nicht noch ein anderes Attribut setzen kann, so dass ein auswertbares Reading rauskommt wenn die Datei fertig ist, ohne dass das Modul noch versucht, die Datei selber zu Gehör zu bringen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 25 Februar 2015, 10:00:45
Zumal Text2Speech auch mit längeren Sätzen und anderen Besonderheiten umgehen kann.

Allerdings ist es aktuell sehr praktisch, auf einem Tablet einfach "SqueezePlayer" zu installieren und es mit diesem Modul für die Sprachausgabe zu verwenden. Aktuell fällt mir kein leichterer Weg dafür (außer Webviewcontrol, das aber nur in Verbindung mit FHEMWEB als Frontend TTS kann) ein. Da hilft dann das Text2Speech Modul auch nicht. Man kann eben nicht auf jedem Device, das man zur Sprachausgabe verwenden möchte, FHEM installieren und Text2Speech verwenden. Und wenn ein Device vorhanden ist (Squeezebox, Sonos..), stellt man sich ungern noch einen Rapsi o.ä. mit Boxen hin.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 25 Februar 2015, 10:01:45
Hallo,

Danke für den Hinweis, allerdings hilft das Text2Speech-Modul nicht weiter. Das Problem ist nicht die Ausgabe des Textes, dies benötgt nur eine Zeile und funktioniert schon seit längerem da sich der LMS automatisch um alles kümmert wenn man ihm die korrekte URL gibt. Schwierig ist es aber den Zustand der Player (ein/aus, gesynct, Playliste, Favorit, Lautstärke, aktueller Track und Position, ...) korrekt zu erkennen, zwischenzuspeichern und nachher wieder herzustellen.

Grüße,

ChrisD

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Matscher am 25 Februar 2015, 10:47:03
Ich verwende das Modul nur mit der Talk Funktion. Am Haupteingang habe ich einen 4 Kanal Funkschalter mit dem ich verschiedene Dinge abfragen kann, bevor ich das Haus verlasse. Zum einen ist es der Fensterstatus, ob alle wichtigen Fenster und Türen geschlossen sind und natürlich die Temperatur. Das alles funktioniert super, da die SqueezeBox unweit vom Eingang entfernt ist und ich sie gut mit 60% Volume höre. Was natürlich für die Ansage automatisch angepasst wird.

Und das ist äußerst praktisch. Das Text2Speech Modul kann mir da nicht weiterhelfen und schon gar nicht diese Funktionalität ersetzen. :) Talk sollte auf jeden Fall weiterhin Bestandteil von Squeezebox Modul bleiben. Und wenn der LMS das ohne Probleme handhaben kann, warum dann was anderes nutzen. Ist halt eine Eigenschaft des LMS und nutzbar für SqueezeBox(en) und kompatible Devices.

Danke und Grüße
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 25 Februar 2015, 11:32:14
Grundsätzlich war der Gedanke ja nicht verkehrt, eine vorhandene Methode zu nutzen als das Rad immer wieder neu zu erfinden. Standartisierung umgeht viele zukünftige Probleme oder Anpassungen.
Allerdings ist das Problem hier ein anderes (aktuelle Zustände der Player, Plalists etc.).  Daher ist die separate Implementierung an dieser Stelle definitiv notwendig.

Ich persönlich habe auch Squeezeplayer im Einsatz und eine Zeit lang fast aussschließlich die talk Funktionalität genutzt. Da ich mittlerweile aber auch die Musik Funktionalität nutze (Spotify), warte ich sehnsüchtig auf eine Implementierung beides unter einen Hut zu bekommen. :D
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 25 Februar 2015, 12:27:50
Zitat
Allerdings ist es aktuell sehr praktisch, auf einem Tablet einfach "SqueezePlayer" zu installieren und es mit diesem Modul für die Sprachausgabe zu verwenden. Aktuell fällt mir kein leichterer Weg dafür (außer Webviewcontrol, das aber nur in Verbindung mit FHEMWEB als Frontend TTS kann) ein. Da hilft dann das Text2Speech Modul auch nicht. Man kann eben nicht auf jedem Device, das man zur Sprachausgabe verwenden möchte, FHEM installieren und Text2Speech verwenden. Und wenn ein Device vorhanden ist (Squeezebox, Sonos..), stellt man sich ungern noch einen Rapsi o.ä. mit Boxen hin.

Tschuldigung, da liegt ein Mißverständnis vor.

Es geht nicht darum, auf jedem Device ein Text2Speech zu haben. Ganz und garnicht.

Es ist etwas anders gelagert:
1. fhem weiß, dass jetzt ein gesprochener Text kommen soll
2. das Text2Speech Modul (auf dem fhem Server laufend) erstellt die passende MP3
3. fhem sichert den Zustand der Clients
4. fhem läßt die Clients (oder den betroffenen Client, müssen ja nicht alle sein) die auf dem Server liegende MP3 abspielen
5. der vorherige Zustand (siehe 3.) wird wieder hergestellt


In diesem Szenario dient Text2Speech eben NICHT dzau, die Sprachausgabe hörbar zu machen! Es soll lediglich die MP3 erstellen. Zu Gehör bringen tut diese dann der LMS, der kurz die Clients syncht und diese eine MP3 abspielt...

Zitat
Allerdings ist das Problem hier ein anderes (aktuelle Zustände der Player, Plalists etc.)
Wußte ich nicht. Ich dachte, der LMS weiß, was seine Clients grade treiben?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 25 Februar 2015, 12:59:02
Hallo,

Beim Einsatz des Text2Speech-Modules ergeben sich verschiedene neue Probleme und Einschränkungen ohne dass die existierenden gelöst würden.

Der LMS kann direkt die TTS-Daten von z.B. Google wiedergeben, er benötigt dazu keine MP3-Datei. Es handelt sich für ihn dabei um eine normale Playlist. Er hat aber leider keine Möglichkeit den kompletten Zustand eines oder mehrerer Player abzuspeichern und wieder herzustellen, dies muss deshalb in FHEM passieren.

Ich bin im Moment dabei die Punkte 3 und 5 deiner Liste zu überarbeiten und testen. Ich sehe im Moment keinen Bedarf den einzigen Teil den der LMS nativ beherrscht durch ein anderes Modul zu ersetzen. Dadurch steigt der Aufwand der Implementierung ohne einen wirklichen Vorteil zu bieten.

Zitat
Wußte ich nicht. Ich dachte, der LMS weiß, was seine Clients grade treiben?
Der LMS (und zum Teil FHEM) weiß schon was die Clients machen, es gibt nur wie oben beschrieben keine fertige Funktion den Zustand zu sichern.

Wenn du funktionierenden Code für die Anbindung von Text2Speech bereitstellst werde ich ihn gerne einbauen.

Grüße,

ChrisD

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 02 März 2015, 23:02:40
Hallo,

Ich habe eine Testversion (Server 0012 (https://github.com/ChrisD70/FHEM-Modules/raw/master/97_SB_SERVER.pm)/Player 0028 (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm)) mit dem neuen talk-Code erstellt.

Es gibt 2 neue Attribute:
- ttsVolume: Lautstärke für die TTS-Ausgabe
- ttsOptions: Liste von Optionen (durch , getrennt), aktuell implementiert sind debug (sollte zu Testzwecken auf jeden Fall gesetzt sein) und nosaverestore (Zustand wird nicht abgepeichert und wieder hergestellt)

Weiterhin gibt es den neuen Befehl resetTTS, damit lässt sich bei einem 'Hänger' der interne Zustand zurücksetzen.

Ich habe auch das Reading talkStatus wieder integriert, es zeigt den Zustand der Sprachausgabe an.

Was funktionieren sollte:
- Zustand des Players abspeichern und wieder herstellen (außer verschiedene Plugins)
- bei MP3s wird nicht mehr von vorne gestartet, die Wiedergabe wird an der unterbrochenen Stelle fortgesetzt
- Texte >100 Zeichen werden unterstützt
- wenn während der Textausgabe ein neuer talk-Befehl kommt wird dieser an die Ausgabe angehängt

Was fehlt:
- Ausgabe auf einen Player einer Gruppe beschränken
- Lautstärke aller Player einer Gruppe anpassen
- alle Player einer Gruppe einschalten
- Unterstützung für Plugins (randomplay, spotify, ...)
- Musik/Geräuschausgabe (wie bei Sonos)
- ...

Zur Installation müssen die beiden Module ins FHEM-Modulverzeichnis kopiert werden. Danach muss entweder FHEM neu gestartet werden oder aber die Module mit
reload 98_SB_PLAYER
reload 97_SB_SERVER
set meinSBServer statusRequest
aktiviert werden.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 03 März 2015, 03:06:45
Also irgendwie krieg ichs nicht hin.

Ich wähle einen Favoriten (Album) aus.
Dann spielt die Squeezbox Musik.
Dann sage ich

set SB.. save
set SB.. talk 123
set SB.. recall

Die Squeezbox sagt 123 und danach ist und bleibt die Playlist leer.

habe auch schon ohne save und recall versucht.

Kann es sein das ich eine Bestimmte Server-Version brauche?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 03 März 2015, 07:58:10
Hallo,

Du brauchst die Versionen aus meinem vorherigen Post. Wenn du beim Player im Dropdown der Attribute 'ttsVolume' stehen hast, hast du die richtige Version.

Es ist nicht mehr nötig save und recall zu verwenden, dies passiert automatisch.

Zur Fehlersuche solltest du das Attribut ttsOptions auf debug setzen
attr meinPlayer ttsOptions debug, den Favoriten auswählen und abspielen lassen, set SBServer talk 123 eingeben und schauen was im Log steht.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 03 März 2015, 08:34:50
Ich hab gestern noch relativ lang rumgebastelt. Zum Schluss lief die gesamte Anlage extrem instabil. Ich hab das Modul jetzt erstmal zum testen von meinem Produktivsystem verbannt. Ich verwende Playerversion 28 und Server 12. wenn ich nur talk eingebe sagt die Box was und danach passiert nichts mehr. Die Playlist ist Dan leer. Ich Probier das mit dem Debug heute nochmal. Muss die Playlist eine mind. Zeit bestehen damit das Funktioniert oder reichen 4, 5 Sekunden anspielen?

Ich hab Serverversion 7.7.3 ist das ein Problem?


Gesendet von iPhone mit Tapatalk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 03 März 2015, 11:15:16
Hier mal ein Auszug aus meine Log.

2015.03.03 10:35:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:35:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:37:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:37:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:39:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:39:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:41:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:41:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:43:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:43:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:45:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:45:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:47:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:47:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:49:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:49:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:51:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:51:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:53:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:53:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:55:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:55:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:57:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:57:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 10:59:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 10:59:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 11:01:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 11:01:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 11:03:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 11:03:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 11:05:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 11:05:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 11:07:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 11:07:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 11:07:49 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: save state
2015.03.03 11:07:49 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: load playlist
2015.03.03 11:07:50 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: wait for play
2015.03.03 11:07:50 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: playing
2015.03.03 11:07:52 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: stopped
2015.03.03 11:07:52 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: restore state
2015.03.03 11:07:52 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: idle
2015.03.03 11:09:11 1: PERL WARNING: Argument "5.42 Mbits/s" isn't numeric in sprintf at (eval 102) line 1.
2015.03.03 11:09:11 3: eval: {sprintf("%.1f",ReadingsVal('InetTest','upload',''))}
2015.03.03 11:09:11 1: PERL WARNING: Argument "45.23 Mbits/s" isn't numeric in sprintf at (eval 103) line 1.
2015.03.03 11:09:11 3: eval: {sprintf("%.1f",ReadingsVal('InetTest','download',''))}
2015.03.03 11:09:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 11:09:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 11:09:52 1: PERL WARNING: Argument "5.50 Mbits/s" isn't numeric in sprintf at (eval 107) line 1.
2015.03.03 11:09:52 3: eval: {sprintf("%.1f",ReadingsVal('InetTest','upload',''))}
2015.03.03 11:09:52 1: PERL WARNING: Argument "45.06 Mbits/s" isn't numeric in sprintf at (eval 108) line 1.
2015.03.03 11:09:52 3: eval: {sprintf("%.1f",ReadingsVal('InetTest','download',''))}
2015.03.03 11:10:11 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: save state
2015.03.03 11:10:11 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: load playlist
2015.03.03 11:10:11 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: wait for play
2015.03.03 11:10:11 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: playing
2015.03.03 11:10:14 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: stopped
2015.03.03 11:10:14 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: restore state
2015.03.03 11:10:14 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: idle
2015.03.03 11:11:22 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 11:11:22 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on

Mit diesem "SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on" wird mein Log ziemlich zugemüllt.
mein Server läuft durchgehend kann ich das irgendwie abschalten?

Beim "talk" ist es das selbe wie gestern. nach der ANsage kommt keine Musik mehr.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 03 März 2015, 11:37:49
Ich habe momentan 2 Player aktiv. Auf einem funktioniert die neue Talk Funktionalität einwandfrei! Entgegen deiner Beschreibung sogar mit dem 3rd Party Spotify Plugin von Triode!!! Es spielt Musik einer Spotify Playlist, der Talk wird ausgeführt, und die Musik spielt danach an gleicher Stelle weiter!!!  ;D ;D ;D

Auf dem anderen Player habe ich aber ein Problem. Dies scheint jedoch nicht an deinem Modul zu liegen, aber ich frage an dieser Stelle trotzdem mal ob jemand weiß was das sein könnte.
Wenn ich Radio Streams lade, kann ich diese auf diesem Player ganz normal abspielen. Sobald ich jedoch eine google TTS Anweisung lade (egal ob über FHEM Modul oder manuell über die LMS Webseite) dann wird das Item in die Playlist geladen und spielt ab ohne etwas auszugeben und ohne fertig zu werden. Da er nicht fertig wird, erkennt deine Talk Funktionalität auch kein Ende. Jemand ne Ahnung was das sein kann?

Der funktionierenden Squeezelite Player läuft auf einem Raspberry Pi mit squeezeplug (http://www.squeezeplug.eu/). Der nicht funktionierende Squeezelite Player läuft auf einem Raspberry Pi 2 und wurde anhand dieser Anleitung (http://www.gerrelt.nl/RaspberryPi/wordpress/tutorial-installing-squeezelite-player-on-raspbian/) installiert.
Der LMS läuft auf dem Raspberry Pi 2 des nicht funktionierenden Players in der Version 7.8.0.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 03 März 2015, 11:59:45
Hallo,
ich habe ein ähnliches Phänomen: ich habe mehrere Raspberrys als Player. Auf allen läuft das picoreplayer Image. Seit ich die Raspberrys mit einem Hifiberry Amp aufgerüstet habe, funktioniert Google TTS nicht mehr. Als ich testweise wieder auf den analogen Ausgang vom Raspberry gewechselt hatte, ging es wieder, aber auf dem Amp bekomme ich es nicht hin...
Vielleicht hat da jemand eine Idee?

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 03 März 2015, 20:58:02
Hallo,

@DJAlex: Die Ausgaben im Log kannst du durch Ändern des Attributes verbose abstellen:
attr AlexMusik1 verbose 2
Ich habe eine neue Version des Players erstellt (0029 (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm)) die nur erweiterte Logausgaben enthält. Kannst du mit dieser nochmal testen ? Vor dem Test solltest du das Attribut ttsOptions des Players so abändern:
attr MainPlayer ttsOptions debug,debugsaverestoreDie Länge der Textausgabe sollte keine Rolle spielen, ich habe mit Texten zwischen 900ms und 7s getestet. Die Serverversion dürfte auch nicht das Problem sein da ich auch mit 7.7.3 getestet habe. Ich hoffe dass aus den zusätzlichen Logausgaben ersichtlich wird wieso es nicht funktioniert.

@siggi85: Ich konnte das Spotify-Plugin nicht testen, deshalb habe ich es vorsichtshalber aufgezählt. Was das Problem mit dem Abspielen angeht so tritt es auch manchmal bei mir auf, allerdings nicht nur mit TTS sondern auch bei Radiostreams. Welche Version von Squeezelite verwendest du ?

@RoBra81: Ich verwende zum Teil auch Hifiberry Amps mit Squeezelite und die Wiedergabe vom TTS funktioniert. Mit welchen Parametern läuft Squeezelite ? Die Daten von Google werden als MPEG Audio Version 2, Layer 3, 16.0 KHz, 32.0 Kbps CBR, mono ausgeliefert, eventuell gibt es Probleme mit der Samplerate. Anbei eine Testdatei in diesem Format, kannst du versuchen sie über den LMS auf dem Player auszugeben ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: mrbreil am 03 März 2015, 21:38:20
Erst funktionierte TTS zweimal, ab dann gar nicht mehr. Kann es leider nicht reproduzieren. Er sagt zwar seinen Text aber danach bleibt die playlist leer.

2015.03.03 21:35:09 5: SB_PLAYER_Set: called with ?
2015.03.03 21:35:10 5: SB_PLAYER_Set: called with ?
2015.03.03 21:35:10 4: SB_PLAYER_Get: called with SB_PLAYER_b827eb4d7c72 ?
2015.03.03 21:35:37 5: SB_PLAYER_Set: called with sayText
2015.03.03 21:35:37 0: SB_PLAYER_SetTTSState: SB_PLAYER_b827eb4d7c72: ttsstate: save state
2015.03.03 21:35:37 0: SB_PLAYER_Save: SB_PLAYER_b827eb4d7c72: multiple tracks in playlist, using playlist save
2015.03.03 21:35:37 0: SB_PLAYER_Save: SB_PLAYER_b827eb4d7c72: power on
2015.03.03 21:35:37 0: SB_PLAYER_Save: SB_PLAYER_b827eb4d7c72: elapsedTime 52.4900460510254
2015.03.03 21:35:37 0: SB_PLAYER_Save: SB_PLAYER_b827eb4d7c72: playlistCurrentTrack 0
2015.03.03 21:35:37 0: SB_PLAYER_Save: SB_PLAYER_b827eb4d7c72: playStatus playing
2015.03.03 21:35:37 0: SB_PLAYER_Save: SB_PLAYER_b827eb4d7c72: repeat off
2015.03.03 21:35:37 0: SB_PLAYER_Save: SB_PLAYER_b827eb4d7c72: volumeStraight 60
2015.03.03 21:35:37 0: SB_PLAYER_Save: SB_PLAYER_b827eb4d7c72: playlist -
2015.03.03 21:35:37 0: SB_PLAYER_Save: SB_PLAYER_b827eb4d7c72: favorite not
2015.03.03 21:35:37 0: SB_PLAYER_SetTTSState: SB_PLAYER_b827eb4d7c72: ttsstate: load playlist
2015.03.03 21:35:37 5: SB_PLAYER_Set: called with ?
2015.03.03 21:35:37 4: SB_PLAYER_Get: called with SB_PLAYER_b827eb4d7c72 ?
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:save fhem_SB_PLAYER_b827eb4d7c72 silent:1 writeError:1...
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:repeat 0...
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:clear...
2015.03.03 21:35:37 5: SB_PLAYER_GetStatus: called
2015.03.03 21:35:37 5: SB_PLAYER_GetStatus: leaving
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:add http://translate.google.com/translate_tts?ie=UTF-8&tl=de&q=rauchen....
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:mode ARGS:stop...
2015.03.03 21:35:37 5: SB_PLAYER_Parse(SB_PLAYER_b827eb4d7c72): mode:mode args:stop
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:stop...
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:load_done...
2015.03.03 21:35:37 0: SB_PLAYER_SetTTSState: SB_PLAYER_b827eb4d7c72: ttsstate: wait for play
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:artist ARGS:...
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:album ARGS:...
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:title ARGS:...
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:url...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:remote ARGS:1...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:status ARGS:0 500 tags:Kc player_name:Wohnzimmer player_connected:1 player_ip:192.168.1.59:43094 power:1 signalstrength:0 mode:stop mixer volume:60 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1425414937.87224 playlist_tracks:1 remoteMeta:HASH(0x7c4e4e0) playlist index:0 id:-116081664 title: artwork_url:html/images/radio.png coverid:-116081664...
2015.03.03 21:35:38 5: SB_PLAYER_ParsePlayerStatus(SB_PLAYER_b827eb4d7c72): data to parse: tags:Kc player_name:Wohnzimmer player_connected:1 player_ip:192.168.1.59:43094 power:1 signalstrength:0 mode:stop mixervolume:60 playlistrepeat:0 playlistshuffle:0 playlistmode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1425414937.87224 playlist_tracks:1 remoteMeta:HASH(0x7c4e4e0) playlistindex:0 id:-116081664 title: artwork_url:html/images/radio.png coverid:-116081664
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:alarms ARGS:0 200 tags:all filter:all fade:1 count:0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playerpref ARGS:alarmsEnabled 1...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playerpref ARGS:alarmDefaultVolume 50...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playerpref ARGS:alarmTimeoutSeconds 3600...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playerpref ARGS:alarmSnoozeSeconds 540...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playerpref ARGS:syncVolume 0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:name...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:duration ARGS:0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:time ARGS:0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:mode ARGS:stop...
2015.03.03 21:35:38 5: SB_PLAYER_Parse(SB_PLAYER_b827eb4d7c72): mode:mode args:stop
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:play ARGS:...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:jump 0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:mode ARGS:play...
2015.03.03 21:35:38 5: SB_PLAYER_Parse(SB_PLAYER_b827eb4d7c72): mode:mode args:play
2015.03.03 21:35:38 0: SB_PLAYER_SetTTSState: SB_PLAYER_b827eb4d7c72: ttsstate: playing
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:open http://translate.google.com/translate_tts?ie=UTF-8&tl=de&q=rauchen....
2015.03.03 21:35:38 5: SB_PLAYER_GetStatus: called
2015.03.03 21:35:38 5: SB_PLAYER_GetStatus: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:open http://translate.google.com/translate_tts?ie=UTF-8&tl=de&q=rauchen....
2015.03.03 21:35:38 5: SB_PLAYER_GetStatus: called
2015.03.03 21:35:38 5: SB_PLAYER_GetStatus: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:mode ARGS:play...
2015.03.03 21:35:38 5: SB_PLAYER_Parse(SB_PLAYER_b827eb4d7c72): mode:mode args:play
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:newsong 0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:artist ARGS:...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:album ARGS:...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:title ARGS:http://translate.google.com/translate_tts?ie=UTF-8&tl=de&q=rauchen....
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:name...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:duration ARGS:0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:index 0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:time ARGS:0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:mode ARGS:play...
2015.03.03 21:35:38 5: SB_PLAYER_Parse(SB_PLAYER_b827eb4d7c72): mode:mode args:play
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:newsong 0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:artist ARGS:...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:album ARGS:...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:title ARGS:http://translate.google.com/translate_tts?ie=UTF-8&tl=de&q=rauchen....
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:name...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:duration ARGS:0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:index 0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:time ARGS:0...
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:mode ARGS:play...
2015.03.03 21:35:38 5: SB_PLAYER_Parse(SB_PLAYER_b827eb4d7c72): mode:mode args:play
2015.03.03 21:35:38 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:stop...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:mode ARGS:stop...
2015.03.03 21:35:39 5: SB_PLAYER_Parse(SB_PLAYER_b827eb4d7c72): mode:mode args:stop
2015.03.03 21:35:39 0: SB_PLAYER_SetTTSState: SB_PLAYER_b827eb4d7c72: ttsstate: stopped
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 0: SB_PLAYER_SetTTSState: SB_PLAYER_b827eb4d7c72: ttsstate: restore state
2015.03.03 21:35:39 0: SB_PLAYER_Recall: SB_PLAYER_b827eb4d7c72: restoring...
2015.03.03 21:35:39 0: SB_PLAYER_SetTTSState: SB_PLAYER_b827eb4d7c72: ttsstate: idle
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:shuffle 0...
2015.03.03 21:35:39 5: SB_PLAYER_GetStatus: called
2015.03.03 21:35:39 5: SB_PLAYER_GetStatus: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:resume /media/Daten/musik/Lossless/fhem_SB_PLAYER_b827eb4d7c72...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:load_done...
2015.03.03 21:35:39 0: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: load_done
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:mixer ARGS:volume 60...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:play ARGS:10...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:time ARGS:52.4900460510254...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:artist ARGS:...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:album ARGS:...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:title ARGS:...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:url...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:remote ARGS:...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:status ARGS:0 500 tags:Kc player_name:Wohnzimmer player_connected:1 player_ip:192.168.1.59:43094 power:1 signalstrength:0 mode:stop mixer volume:60 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_tracks:0...
2015.03.03 21:35:39 5: SB_PLAYER_ParsePlayerStatus(SB_PLAYER_b827eb4d7c72): data to parse: tags:Kc player_name:Wohnzimmer player_connected:1 player_ip:192.168.1.59:43094 power:1 signalstrength:0 mode:stop mixervolume:60 playlistrepeat:0 playlistshuffle:0 playlistmode:off seq_no:0 playlist_tracks:0
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:alarms ARGS:0 200 tags:all filter:all fade:1 count:0...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playerpref ARGS:alarmsEnabled 1...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playerpref ARGS:alarmDefaultVolume 50...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:prefset ARGS:server currentSong...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playerpref ARGS:alarmTimeoutSeconds 3600...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playerpref ARGS:alarmSnoozeSeconds 540...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playerpref ARGS:syncVolume 0...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:name...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:duration ARGS:...
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:mode ARGS:stop...
2015.03.03 21:35:39 5: SB_PLAYER_Parse(SB_PLAYER_b827eb4d7c72): mode:mode args:stop
2015.03.03 21:35:39 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:41 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:status ARGS:- 1 tags:Kc player_name:Wohnzimmer player_connected:1 player_ip:192.168.1.59:43094 power:1 signalstrength:0 mode:stop mixer volume:60 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_tracks:0...
2015.03.03 21:35:41 5: SB_PLAYER_ParsePlayerStatus(SB_PLAYER_b827eb4d7c72): data to parse: tags:Kc player_name:Wohnzimmer player_connected:1 player_ip:192.168.1.59:43094 power:1 signalstrength:0 mode:stop mixervolume:60 playlistrepeat:0 playlistshuffle:0 playlistmode:off seq_no:0 playlist_tracks:0
2015.03.03 21:35:41 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
2015.03.03 21:35:41 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:status ARGS:- 1 tags:Kc player_name:Wohnzimmer player_connected:1 player_ip:192.168.1.59:43094 power:1 signalstrength:0 mode:stop mixer volume:60 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_tracks:0...
2015.03.03 21:35:41 5: SB_PLAYER_ParsePlayerStatus(SB_PLAYER_b827eb4d7c72): data to parse: tags:Kc player_name:Wohnzimmer player_connected:1 player_ip:192.168.1.59:43094 power:1 signalstrength:0 mode:stop mixervolume:60 playlistrepeat:0 playlistshuffle:0 playlistmode:off seq_no:0 playlist_tracks:0
2015.03.03 21:35:41 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72: leaving
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 03 März 2015, 21:58:34
Hallo,

Beim Speichern der Playlist ist ein Fehler aufgetreten:
Zitat
2015.03.03 21:35:37 5: SB_PLAYER_Parse: SB_PLAYER_b827eb4d7c72 CMD:playlist ARGS:save fhem_SB_PLAYER_b827eb4d7c72 silent:1 writeError:1...

Da dies im Moment nicht abgefangen wird funktioniert das Wiederherstellen nicht. Kannst du schauen ob im Log des LMS ein Hinweis zu finden ist wieso das Speichern nicht möglich ist ?

Zum weiteren Testen mit lokaler Musik kannst du versuchen bei ttsOptions internalsave hinzufügen:
attr meinPlayer ttsOptions debug,debugsaverestore,internalsaveDies funktioniert aber nicht mit Radio-Streams, es gibt dann eine Warnung im Log.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 03 März 2015, 22:00:48
Wenn ich ehrlich bin weiß ich gerade nicht welches Logfile ich hier hochladen soll.
FHEM, SB_Server, SB_Player

hier mal das von FHEM

2015.03.03 21:55:34 3: SB_SERVER_Alive(AlexMusik1): called
2015.03.03 21:55:34 3: SB_SERVER_Alive(AlexMusik1): RCC:off Ping:on
2015.03.03 21:56:11 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: save state
2015.03.03 21:56:11 0: SB_PLAYER_Save: SB_PLAYER_0004202bbebe: multiple tracks in playlist, using playlist save
2015.03.03 21:56:11 0: SB_PLAYER_Save: SB_PLAYER_0004202bbebe: power on
2015.03.03 21:56:11 0: SB_PLAYER_Save: SB_PLAYER_0004202bbebe: elapsedTime 128.672724790573
2015.03.03 21:56:11 0: SB_PLAYER_Save: SB_PLAYER_0004202bbebe: playlistCurrentTrack 14
2015.03.03 21:56:11 0: SB_PLAYER_Save: SB_PLAYER_0004202bbebe: playStatus playing
2015.03.03 21:56:11 0: SB_PLAYER_Save: SB_PLAYER_0004202bbebe: repeat off
2015.03.03 21:56:11 0: SB_PLAYER_Save: SB_PLAYER_0004202bbebe: volumeStraight 21
2015.03.03 21:56:11 0: SB_PLAYER_Save: SB_PLAYER_0004202bbebe: playlist -
2015.03.03 21:56:11 0: SB_PLAYER_Save: SB_PLAYER_0004202bbebe: favorite Germanys_Next_Topmodel_2010_CD_2
2015.03.03 21:56:11 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: load playlist
2015.03.03 21:56:12 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: wait for play
2015.03.03 21:56:12 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: playing
2015.03.03 21:56:14 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: stopped
2015.03.03 21:56:14 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: restore state
2015.03.03 21:56:14 0: SB_PLAYER_Recall: SB_PLAYER_0004202bbebe: restoring...
2015.03.03 21:56:14 0: SB_PLAYER_SetTTSState: SB_PLAYER_0004202bbebe: ttsstate: idle
2015.03.03 21:56:14 0: SB_PLAYER_Parse: SB_PLAYER_0004202bbebe: load_done
2015.03.03 21:56:46 0: SB_PLAYER_Parse: SB_PLAYER_0004202bbebe: mode play
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 03 März 2015, 22:03:27
Ahhhhh,


jetzt klappt es.

mit:

attr meinPlayer ttsOptions debug,debugsaverestore,internalsave
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: mrbreil am 03 März 2015, 22:09:29
Ich glaube einfach mal du meinst mich ChrisD. Erstmal vielen Dank für deine erstaunliche und dadurch auch sehr Zeit intensive Arbeit.

Warum auch immer, aber als ich gerade eben nochmal getestet habe, um dir die logs zu geben, hat es funktioniert. Ich kann dir also nur die logs mit der passenden zeit geben.

[15-03-03 21:35:39.4215] Slim::Utils::Misc::fixPath (587) Error: Dealing with single audiodir (/media/Daten/musik/Lossless) instead of mediadirs (
  "fhem_SB_PLAYER_b827eb4d7c72",
  [
    "/media/Daten/musik/Lossless",
    "/media/Daten/musik/Sonstiges",
    "/media/Daten/musik/Musik",
  ],
)
[15-03-03 21:35:39.4224] Slim::Utils::Misc::fixPath (587) Backtrace:

   frame 0: Slim::Utils::Log::logBacktrace (/usr/share/perl5/Slim/Utils/Misc.pm line 587)
   frame 1: Slim::Utils::Misc::fixPath (/usr/share/perl5/Slim/Control/Commands.pm line 1412)
   frame 2: Slim::Control::Commands::playlistXitemCommand (/usr/share/perl5/Slim/Control/Request.pm line 1884)
   frame 3: (eval) (/usr/share/perl5/Slim/Control/Request.pm line 1884)
   frame 4: Slim::Control::Request::execute (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 647)
   frame 5: Slim::Plugin::CLI::Plugin::cli_process (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 418)
   frame 6: Slim::Plugin::CLI::Plugin::client_socket_buf_parse (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 363)
   frame 7: Slim::Plugin::CLI::Plugin::client_socket_read (/usr/share/perl5/Slim/Networking/IO/Select.pm line 139)
   frame 8: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 123)
   frame 9: Slim::Networking::IO::Select::__ANON__ (/usr/share/perl5/Slim/Networking/IO/Select.pm line 184)
   frame 10: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 184)
   frame 11: Slim::Networking::IO::Select::loop (/usr/sbin/squeezeboxserver line 694)
   frame 12: main::idle (/usr/sbin/squeezeboxserver line 644)
   frame 13: main::main (/usr/sbin/squeezeboxserver line 1157)

[15-03-03 21:35:39.4561] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 21:35:39.4567] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 21:36:45.6735] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 21:36:45.6742] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: mrbreil am 03 März 2015, 22:22:57
Was ich reproduzieren kann ist

attr meinPlayer ttsOptions debug,debugsaverestore,internalsave
Wiedergabe nach dem Text funktioniert; Radio funktioniert wie du beschrieben nicht

 attr meinPlayer ttsOptions debug,debugsaverestore
Wiedergabe nach dem Text funktioniert leider nicht.



Das mit dem Radio würde mich ja nicht weiter stören, aber um den Haussegen zu waren, wäre es spitze wenn das funktionieren würde.
Wenn ich dir noch irgendwie helfen kann? 
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 03 März 2015, 22:24:34
Also ich hab noch ein bisschen ausprobiert wenn ich

attr meinPlayer ttsOptions internalsave
setze funktioniert Wiedergabe nach Sprachausgabe wenn das nicht gesetzt ist geht es bei mir nicht.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 03 März 2015, 22:31:59
@siggi85: Ich konnte das Spotify-Plugin nicht testen, deshalb habe ich es vorsichtshalber aufgezählt. Was das Problem mit dem Abspielen angeht so tritt es auch manchmal bei mir auf, allerdings nicht nur mit TTS sondern auch bei Radiostreams. Welche Version von Squeezelite verwendest du ?

@RoBra81: Ich verwende zum Teil auch Hifiberry Amps mit Squeezelite und die Wiedergabe vom TTS funktioniert. Mit welchen Parametern läuft Squeezelite ? Die Daten von Google werden als MPEG Audio Version 2, Layer 3, 16.0 KHz, 32.0 Kbps CBR, mono ausgeliefert, eventuell gibt es Probleme mit der Samplerate. Anbei eine Testdatei in diesem Format, kannst du versuchen sie über den LMS auf dem Player auszugeben ?

Also auf dem funktionierenden Squeezeplug System läuft die Squeezelite Version 1.6. Auf dem nicht funktionierenden System läuft die Version 1.7. Ich lasse die Player mit den exakt gleichen Optionen starten:
/usr/bin/squeezelite-armv6hf  -o front:CARD=Device -n PLAYERNAME -m MACADRESSE -a :::0Die mp3 Datei, die du von der Google TTS Engine geladen hast, funktioniert genauso als wenn ich den Strem nutze, auf dem Squeezeplug System ja, auf dem anderen Endlosabspielen ohne Wiedergabe.

Wo kann ich Samplerate etc. prüfen oder einstellen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 03 März 2015, 22:33:22
Hallo,

@DJAlex:
Das Log ist das richtige.

Bei dir gibt es wahrscheinlich das gleiche Problem beim Speichern wie bei mrbeil. internalsave hat den Nachteil dass es (noch) nicht mit Radio-Streams funktioniert. Es wäre deshalb interessant zu sehen ob im Log des LMS etwas zu finden ist. Das Log findest du im Web-Interface des LMS unter Einstellungen (rechts unten), Informationen (letzter Tab oben), Logitech Media Server-Logdatei
 (nach unten scrollen wenn nicht sichtbar). Alternativ geht es auch über den Link
http://<IP des LMS>:<WEB Port>/server.log?lines=100
@mrbeil:
Danke für das Log, ich werde versuchen herauszufinden wieso das Speichern fehlschlägt.

@beide:
Auf welcher Plattform läuft der LMS bei euch ?
Ist ein Wiedergabelisten-Ordner auf dem LMS definiert ? (Web-Interface LMS, Einstellungen, Grundeinstellungen)

Ich sehe mir an wie ich das interne Abspeichern von Radio-Streams machen kann. Im Moment können über internalsave maximal 500 Tracks abgespeichert werden, alles was darüber hinausgeht wird nicht wieder hergestellt.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 03 März 2015, 22:39:32
Hier ist mal das Log vom LMS:

[15-03-03 20:45:16.4509] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 20:45:30.9496] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 20:45:30.9505] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 20:50:16.4980] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 20:50:16.4989] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 20:50:30.9747] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 20:50:30.9760] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 20:55:16.5378] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 20:55:16.5388] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 20:55:31.0004] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 20:55:31.0015] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 21:00:16.5776] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 21:00:16.5786] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 21:00:31.0254] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 21:00:31.0263] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 21:05:16.6177] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 21:05:16.6187] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 21:05:31.0509] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 21:05:31.0519] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 21:56:12.2771] Slim::Formats::Playlists::Base::_filehandleFromNameOrString (81) Error: Could't open /media/9CEA5239EA520FBE/ServerFolders/Musik/Playlist Files/fhem_SB_PLAYER_0004202bbebe.m3u for writing.
[15-03-03 21:56:14.3913] Slim::Utils::Misc::fixPath (580) Error: Dealing with single audiodir (/media/0dabed74-4410-411d-943d-b3338ebb513d/ServerFolders/Musik/Musik Archiv 2012010113/Musik Archiv 2012/Fertig bearbeitet) instead of mediadirs [
  "/media/0dabed74-4410-411d-943d-b3338ebb513d/ServerFolders/Musik/Musik Archiv 2012010113/Musik Archiv 2012/Fertig bearbeitet",
  "/opt",
]
[15-03-03 21:56:14.3928] Slim::Utils::Misc::fixPath (580) Backtrace:

   frame 0: Slim::Utils::Log::logBacktrace (/usr/share/perl5/Slim/Utils/Misc.pm line 580)
   frame 1: Slim::Utils::Misc::fixPath (/usr/share/perl5/Slim/Control/Commands.pm line 1412)
   frame 2: Slim::Control::Commands::playlistXitemCommand (/usr/share/perl5/Slim/Control/Request.pm line 1884)
   frame 3: (eval) (/usr/share/perl5/Slim/Control/Request.pm line 1884)
   frame 4: Slim::Control::Request::execute (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 647)
   frame 5: Slim::Plugin::CLI::Plugin::cli_process (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 418)
   frame 6: Slim::Plugin::CLI::Plugin::client_socket_buf_parse (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 363)
   frame 7: Slim::Plugin::CLI::Plugin::client_socket_read (/usr/share/perl5/Slim/Networking/IO/Select.pm line 139)
   frame 8: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 123)
   frame 9: Slim::Networking::IO::Select::__ANON__ (/usr/share/perl5/Slim/Networking/IO/Select.pm line 184)
   frame 10: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 184)
   frame 11: Slim::Networking::IO::Select::loop (/usr/sbin/squeezeboxserver line 695)
   frame 12: main::idle (/usr/sbin/squeezeboxserver line 645)
   frame 13: main::main (/usr/sbin/squeezeboxserver line 1158)

[15-03-03 21:56:14.4611] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 21:56:14.4622] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 21:56:27.7238] Slim::Utils::Misc::fixPath (580) Error: Dealing with single audiodir (/media/0dabed74-4410-411d-943d-b3338ebb513d/ServerFolders/Musik/Musik Archiv 2012010113/Musik Archiv 2012/Fertig bearbeitet) instead of mediadirs [
  "/media/0dabed74-4410-411d-943d-b3338ebb513d/ServerFolders/Musik/Musik Archiv 2012010113/Musik Archiv 2012/Fertig bearbeitet",
  "/opt",
]
[15-03-03 21:56:27.7253] Slim::Utils::Misc::fixPath (580) Backtrace:

   frame 0: Slim::Utils::Log::logBacktrace (/usr/share/perl5/Slim/Utils/Misc.pm line 580)
   frame 1: Slim::Utils::Misc::fixPath (/usr/share/perl5/Slim/Control/Commands.pm line 1412)
   frame 2: Slim::Control::Commands::playlistXitemCommand (/usr/share/perl5/Slim/Control/Request.pm line 1884)
   frame 3: (eval) (/usr/share/perl5/Slim/Control/Request.pm line 1884)
   frame 4: Slim::Control::Request::execute (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 647)
   frame 5: Slim::Plugin::CLI::Plugin::cli_process (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 418)
   frame 6: Slim::Plugin::CLI::Plugin::client_socket_buf_parse (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 363)
   frame 7: Slim::Plugin::CLI::Plugin::client_socket_read (/usr/share/perl5/Slim/Networking/IO/Select.pm line 139)
   frame 8: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 123)
   frame 9: Slim::Networking::IO::Select::__ANON__ (/usr/share/perl5/Slim/Networking/IO/Select.pm line 184)
   frame 10: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 184)
   frame 11: Slim::Networking::IO::Select::loop (/usr/sbin/squeezeboxserver line 689)
   frame 12: main::idle (/usr/sbin/squeezeboxserver line 645)
   frame 13: main::main (/usr/sbin/squeezeboxserver line 1158)

[15-03-03 21:56:27.7950] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 21:56:27.7960] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 22:16:09.5570] Slim::Plugin::CLI::Plugin::cli_process (649) Request [display] failed with error: Bad params!
[15-03-03 22:16:53.8892] Slim::Formats::Playlists::Base::_filehandleFromNameOrString (81) Error: Could't open /media/9CEA5239EA520FBE/ServerFolders/Musik/Playlist Files/fhem_SB_PLAYER_0004202bbebe.m3u for writing.
[15-03-03 22:16:55.9909] Slim::Utils::Misc::fixPath (580) Error: Dealing with single audiodir (/media/0dabed74-4410-411d-943d-b3338ebb513d/ServerFolders/Musik/Musik Archiv 2012010113/Musik Archiv 2012/Fertig bearbeitet) instead of mediadirs [
  "/media/0dabed74-4410-411d-943d-b3338ebb513d/ServerFolders/Musik/Musik Archiv 2012010113/Musik Archiv 2012/Fertig bearbeitet",
  "/opt",
]
[15-03-03 22:16:55.9923] Slim::Utils::Misc::fixPath (580) Backtrace:

   frame 0: Slim::Utils::Log::logBacktrace (/usr/share/perl5/Slim/Utils/Misc.pm line 580)
   frame 1: Slim::Utils::Misc::fixPath (/usr/share/perl5/Slim/Control/Commands.pm line 1412)
   frame 2: Slim::Control::Commands::playlistXitemCommand (/usr/share/perl5/Slim/Control/Request.pm line 1884)
   frame 3: (eval) (/usr/share/perl5/Slim/Control/Request.pm line 1884)
   frame 4: Slim::Control::Request::execute (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 647)
   frame 5: Slim::Plugin::CLI::Plugin::cli_process (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 418)
   frame 6: Slim::Plugin::CLI::Plugin::client_socket_buf_parse (/usr/share/perl5/Slim/Plugin/CLI/Plugin.pm line 363)
   frame 7: Slim::Plugin::CLI::Plugin::client_socket_read (/usr/share/perl5/Slim/Networking/IO/Select.pm line 139)
   frame 8: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 123)
   frame 9: Slim::Networking::IO::Select::__ANON__ (/usr/share/perl5/Slim/Networking/IO/Select.pm line 184)
   frame 10: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 184)
   frame 11: Slim::Networking::IO::Select::loop (/usr/sbin/squeezeboxserver line 695)
   frame 12: main::idle (/usr/sbin/squeezeboxserver line 645)
   frame 13: main::main (/usr/sbin/squeezeboxserver line 1158)

[15-03-03 22:16:56.0696] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 22:16:56.0706] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 22:26:44.2828] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 22:26:44.2838] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 22:26:55.4596] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 22:26:55.4606] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 22:27:07.4358] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 22:27:07.4368] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!
[15-03-03 22:27:15.7489] Slim::Control::Queries::_songData (4320) Error: Called with invalid object or path: dalgN!
[15-03-03 22:27:15.7499] Slim::Control::Queries::_songData (4329) Error: Can't make track from: dalgN!

Playlistordner hab ich aber ich hab noch nie ne Playlist gespeichert.  :-)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: mrbreil am 03 März 2015, 22:42:09
LMS Läuft auf Debian GNU/Linux 7.

Die Klienten laufen unter Raspbian GNU/Linux 7.

der Wiedergabelisten-Ordner ist definiert und auch per LMS beschreibbar, per LMS Oberfläche ausprobiert.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 03 März 2015, 22:46:11
Ich glaub ich hab die Lösung.

Hab den Playlistordner mal testweise auf das FHEm Verzeichnis gelegt und das Attribut internalsave gelöscht und siehe da...

es geht, zumindest mit lokalen Files.


Edit: und Radios gehen auch.

Ich vermute stark das es bei mrbreil auch eine Problem mit dem Ort der Playlist ist. Vermutlich Berechtigungsprobleme.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 03 März 2015, 22:52:29
Hallo,

@siggi85:
Verwendest du die integrierte Soundkarte oder einen externen DAC ?
Welche Ausgabegeräte zeigt squeezelite an wenn du
/usr/bin/squeezelite-armv6hf -leingibst ?
Kannst du versuchen die Startoptionen von squeezelite von
front:CARD=Deviceinhw:CARD=Devicezu ändern ?

@DJAlex:
Auf den Ordner
Zitat
/media/9CEA5239EA520FBE/ServerFolders/Musik/Playlist Files
scheint es nicht möglich zu sein zu schreiben, deshalb kommt es zum Fehler. Kannst du weiter testen ob das Problem definitiv behoben ist oder ob es wie bei mrbeil nur manchmal funktioniert ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 03 März 2015, 22:58:03
@siggi85:
Verwendest du die integrierte Soundkarte oder einen externen DAC ?
Welche Ausgabegeräte zeigt squeezelite an wenn du
/usr/bin/squeezelite-armv6hf -leingibst ?
Kannst du versuchen die Startoptionen von squeezelite von
front:CARD=Deviceinhw:CARD=Devicezu ändern ?

Auf dem funktionierenden Device häng die USB Soundkarte an einem USB Hub und auf dem problematischen Device hängt sie direkt auf einem USB Port des Raspberrys. Vermutlich war das das Problem, denn hw:CARD=Device brachte die Lösung, nun funktioniert es! Vielen Dank für deine Hilfe, die Modulanpassung und dass du immer so viel Geduld mit uns hast. ;D
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Badflex am 04 März 2015, 10:09:29
Hallo an alle, ich hab keine squeezbox und wollte bevor ich hier alles durchlese fragen, ob es möglich ist, mein raspberrypi als stand alone Server/player zu nutzen ?
So das ich über fhem Musik zb. Über Netzwerk oder Bluetooth auf andere Geräte streamen kann.

Oder gibt es da eine elegantere Variante?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 05 März 2015, 10:13:57
@RoBra81: Ich verwende zum Teil auch Hifiberry Amps mit Squeezelite und die Wiedergabe vom TTS funktioniert. Mit welchen Parametern läuft Squeezelite ? Die Daten von Google werden als MPEG Audio Version 2, Layer 3, 16.0 KHz, 32.0 Kbps CBR, mono ausgeliefert, eventuell gibt es Probleme mit der Samplerate. Anbei eine Testdatei in diesem Format, kannst du versuchen sie über den LMS auf dem Player auszugeben ?

Hallo ChrisD,

der PicorePlayer starte squeezelite mit

/mnt/mmcblk0p2/tce/squeezelite-armv6hf -n "OG.ez.RA.Player" -o hw:CARD=sndrpihifiberry -a 80:4:: -m b8:27:eb:df:aa:b0 -u X &
Deine Testdatei konnte ich erfolgreich abspielen, aber Google TTS funktioniert leider nicht. Zum Beispiel läuft folgender Google-Link duaerhaft ohne etwas zu sagen:

http://translate.google.com/translate_tts?ie=UTF-8&tl=de&q=Das+ist+ein+Test
Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 05 März 2015, 21:19:52
Hallo,

@Ronny:
Ich habe PiCorePlayer auf einem Pi mit Hifiberry ausprobiert und den gleichen Effekt wie du. Ich habe daraufhin über SSH Squeezelite durch die Version ersetzt die ich auf meinen anderen Playern verwende und damit funktioniert die Wiedergabe vom TTS. Nach dem Einloggen per ssh habe ich folgendes eingegeben:
sudo su
cd
wget http://squeezelite-downloads.googlecode.com/git/squeezelite-armv6hf
chmod +x squeezelite-armv6hf
cp squeezelite-armv6hf /mnt/mmcblk0p2/tce
Damit wird die Version 1.7 installiert. Nach einem Neustart von Squeezelite (oder einem Reboot) über das Web-Interface funktioniert es bei mir.

@Badflex:
Es gibt mehrere Möglichkeiten von FHEM aus die Musikausgabe zu steuern: MPD, Streamradio, Sonos, Squeezebox, ...
Für welches System du dich entscheidest hängt davon ab was es können soll, wieviel Geld du ausgeben und wieviel Zeit du investieren möchtest. Du kannst den Raspberry Pi als Server/Player verwenden, je nach Größe deiner Musiksammlung kann es aber zu Problemen mit der Performance kommen. Wenn du Squeezebox verwenden möchtest kannst du die Dateien aus Beitrag 605 verwenden. Im 1. Beitrag findest du die Dokumentation der Module.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 05 März 2015, 21:34:00
Hallo ChrisD,

vielen Dank! Ich habe über die Web-Oberfläche die Version 1.7 (die von Troide) installiert und damit geht's.  :)

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: duke-f am 06 März 2015, 00:20:50
Ich weiß nicht, ob meine Frage hier oder unter dem Thema "DOIF" richtig wäre - deshalb probier ich es hier.

Ich möchte gerne, dass meine Stereoanlage einschält, wenn der Squeezelite-Player gestartet wird in seinem Webinterface. Dazu habe ich folgendes definiert:

define DI_Logitech_Lux_on DOIF ([SB_PLAYER_Cubie] eq "on") (set IRTrans on,set Hifi on,define LT_Lux_on at +00:00:25 {Luxman_on()},define LT_Lux_T2 at +00:00:35 {Luxman_Tape2()},define LT_Lux_CD_off at +00:00:45 {Luxman_CD_off()})
attr DI_Logitech_Lux_on do always

Es fehlt noch die Frage:
Warum geht das nicht? :-\

Sieht etwas kompliziert aus, aber die Kommandofolge als solche funktioniert so. Allerdings bekomme ich im Falle des Startens (oder eines anderen beliebigen Kommandos) des Squeezelite im Log den Eintrag:

SB_PLAYER_Get: called with SB_PLAYER_Cubie ?

Der Status von SB_Player_Cubie wird als on gezeigt, aber das DOIF springt nicht an (auch ein äquivalentes notify nicht).
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 06 März 2015, 08:23:23
Hallo,

Kannst du schauen wie bei deinem Player das Attribut donotnotify steht ?
Wenn es nicht existiert oder auf true steht musst du es auf false setzen:
attr SB_PLAYER_Cubie donotnotify false
Die Meldung
Zitat
SB_PLAYER_Get: called with SB_PLAYER_Cubie ?
kommt weil verbose beim Player auf 4 oder 5 steht. Für die Darstellung des Dropdowns im Detail ruft FHEM die Funktion auf um zu wissen was alles ausgewählt werden kann.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 06 März 2015, 08:37:26
Kannst du schauen wie bei deinem Player das Attribut donotnotify steht ?

Was mir zu diesem Thema aufgefallen ist: Mindestens bis zur vorletzten Version wurde dieses Attribut (meiner Meinung nach) immer wieder automatisch gesetzt (bei Neustart?), wenn man es gelöscht hat - daher habe ich mir ein notify gebaut, das das Attribut nach Neustart löscht...

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 06 März 2015, 09:10:30
Hallo,

Das Attribut donotnotify wird wahrscheinlich seit jeher beim define auf true gesetzt. Ich habe dies bisher nicht geändert da durch die Module viele Events erzeugt werden die nicht jeder in seinen Logs haben möchte.

Abgesehen von deiner Lösung kann man das Attribut auch auf false setzen, dieser Zustand wird mit abgespeichert und bleibt auch nach einem Neustart bestehen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: duke-f am 06 März 2015, 10:31:35
Bin wohl nach einem Jahr immer noch blutiger Anfänger.
Ja, donotnotify war auf true gesetzt. Hab's auf false gesetzt und jetzt geht's

Besten Dank.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: vbs am 07 März 2015, 21:16:38
Ich habe zwei Squeezebox Radios und überlege, ob man damit sinnvoll Text-to-Speech machen könnte. Das Problem ist jedoch: Wenn ich die talk-Funktion benutze (also zB "set mySb talk Achtung Haus brennt"), dann wird dabei der eingestellte Stream gewechselt. Also wenn gerade Musik läuft, dann wird sie nach dem talk nicht weiter gespielt. Und wenn ich am Gerät auf Play  drücke, dann wird nochmal der Text gesprochen, aber Stream is weg. :(

Gibt es eine Möglichkeit, dass nach dem Talk wieder auf den ursprünglichen Stream zurück gewechselt wird? Ich wollte sowas auch gerne selbst in FHEM machen, aber ich finde auch kein Reading, aus dem man die aktuellen Stream-Adresse auslesen könnte vor dem Aufruf der Talk-Funktion.

Danke!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 März 2015, 21:29:49
Hallo,

Welche Version der SB-Module verwendest du ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: vbs am 08 März 2015, 01:03:00
Guter Hinweis: Jetzt benutze ich die neuste Version aus dem Master. :) Da das Modul ja aus contrib kommt, hatte ich tatsächlich nicht die aktuelle.

Es hat sich jetzt auch etwas verändert: Wenn ich talk mache, dann wird ein neuer Playlist-Eintrag erzeugt, aber noch nicht abgespielt. Wenn ich ihn dann spielen will, muss ich dann einmal "next" machen.

Was wäre wohl der sauberste Weg, um talk direkt abzuspielen und danach den vorherigen Playlist-Eintrag weiter zu machen?

Eine Idee wäre:
-Wenn gerade abgespielt wird, dann soll beim Befehl talk der talk-Playlist-Eintrag VOR der aktuellen Playlist-Position eingefügt werden und dann einmal "prev" aufgerufen werden. So dass dann die Sprachausgabe abgespielt wird und dann mit dem vorherigen Playlist-Eintrag weitergemacht wird
-Wenn gerade nichts abgespielt wird, dann sollte einfach der Eintrag erzeugt und abgespielt werden
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 08 März 2015, 07:16:46
Die neueste Version in der das Talk überarbeitet wurde findest du in Post 606 auf Seite 61 dieses Threads. Wenn das Wiederherstellen der Playlist nach dem Talk mit dieses Version nicht richtig funktioniert, findest du in den darauf folgenden Beiträgen reichlich Hinweise, was du prüfen könntest...

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: vbs am 08 März 2015, 12:05:42
Klasse, danke! Funktioniert jetzt auf Anhieb! Werde ich mal etwas mit rumspielen!

Und sorry, ich glaub ich hab schlecht gesucht... :(
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 10 März 2015, 09:21:29
Also bei mir funktioniert jetzt alles super. Alarm geht wieder problemlos, talk geht auch richtig gut. Vielen Dank für dieses super Modul!!!

Jetzt hätt ich da noch ein kleines Problem wo ich keine Lösung finde. Meine SB hängt an einem AV-Reciever der hat eine kleine Verzögerung bis er die Leistung auf die Boxen bringt. Das führt dazu dass die Sprachausgabe am Anfang immer etwas beschnitten wird. Gibts ne Möglichkeit eine halbe Sekunde "Stille" zu erzeugen bevor die Sprache kommt. Am besten direkt über den Google-Stream.

ich dachte mir das so: man setzt das

attr wait 0.5

und vor den TTS Text wird eine Zeichenkette gesetzt die eine kurze Pause erzeugt und dann kommt die Sprachausgabe.

wäre sowas machbar?




Gesendet von iPhone mit Tapatalk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 10 März 2015, 09:26:58
Als Workaround für die Stille kannst du deinen Text so formulieren:

set DEVICE talk . . . . Der Briefkasten wurde geöffnet
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Gueco315 am 10 März 2015, 11:15:11
Hallo,

ich nutze die SB_Player und SB_Server Funktion, alles funktioniert soweit prima. Ich habe ein Logitech UE Smartradio welches ich per interner Installation auf eine Squeezebox umgestellt habe.
Bei Fhem wurde das Radio problemlos erkannt und lässt sich auch steuern.
Nun habe ich das Problem, ich möchte das Radio per Fhem (at) einschalten und "es soll abspielen". Einschalten geht problemlos, leider startet (per play) das Radio nicht!!!! Auf die Eingabe von "set <SB_Player> play oder start" ... :Keine Reaktion. Habe schon tagelang gegoogelt. Kann man den Player nicht mit einem Parameter starten?? Serverseitig (Logitech Server läuft auf einer Synology)  habe ich auch keine Einstellung gefunden. - Danke im voraus.

Gruß Günter

Gelöst mit Notify:
define Sq_buero_play notify Squeeze_buero:on set Squeeze_buero play

Gruß
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 10 März 2015, 11:58:56
super danke das Probier ich mal aus. wenn man per attr "..." vor jeden talk Befehl einer SB einfügen könnte wär das bestimmt nicht schlecht. könnte mir vorstellen das dass Problem mehrere mit ner SB-Touch haben. geht sowas?


Gesendet von iPhone mit Tapatalk
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: duke-f am 10 März 2015, 18:30:27
Hätte da noch eine rein kosmetische Frage:
Ich nutze den LMS gerne mit der Anzeige im Standardformat. Nun wollte ich diesen auch in einem Room zusammen mit anderen passenden Schaltern in einer Ansicht zusammen als Weblink iframe.
Jetzt ist aber diese Ansicht immer stark abhängig davon, was ich in einem anderen für die Ansicht des LMS eingestellt habe, was die Breite der beiden Hauptframes des LMS betrifft (Menüseite und Player). Mache ich das Menu etwas zu schmal, verschwindet es im Frame inerhalb FHEM total und ich kann das darin dann auch nicht mehr ändern. Gibt es da eine Möglichkeit, die Ansicht zu variieren? Ist sicher kein FHEM-spezifisches Problem, wie ich sehe. Wenn ich das Browserfenster mit nur dem LMS zu schmal mache, verschwindet auch der Menü-Frame.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Von-XS1-Nach-FHEM am 12 März 2015, 10:56:29
Ich habe die gleiche Frage mit dem Kurze pause.

Kann mann das nicht global definieren?

Zitat
super danke das Probier ich mal aus. wenn man per attr "..." vor jeden talk Befehl einer SB einfügen könnte wär das bestimmt nicht schlecht. könnte mir vorstellen das dass Problem mehrere mit ner SB-Touch haben. geht sowas?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Von-XS1-Nach-FHEM am 12 März 2015, 11:13:32
Ich habe das gerade getestet was Marvin geschrieben hat

Zitat
set DEVICE talk . . . . Der Briefkasten wurde geöffnet

Aber dann bekomme ich diese Aufteilung und Warnungen:

Zitat
MyTTS: Auflistung der Textbausteine nach Aufbereitung:
2015.03.12 11:08:09 4: MyTTS: 0 => hallo das ist ein tes .
2015.03.12 11:08:09 4: MyTTS: 1 => .
2015.03.12 11:08:09 4: MyTTS: 2 => .
2015.03.12 11:08:09 4: MyTTS: 3 => .
2015.03.12 11:08:09 4: MyTTS: 4 => .
2015.03.12 11:08:09 4: MyTTS: 5 => die stimme geht jetzt weiter!

Prototype after '@' for main::Text2Speech_SplitString : @$$$$                             at ./FHEM/98_Text2Speech.pm line 451, <$fh> line 654.


PERL WARNING: Problem closing 'cache/.': Is a directory at ./FHEM/98_Text2Speech.pm line 529
2015.03.12 11:08:19 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_Text2Speech.pm line 531.
2015.03.12 11:08:19 4: HTTP FHEMWEB:192.168.2.185:52127 GET /fhem/pgm2/fhemweb.js

Ich glaube das ist nicht der sin der Sache oder?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Von-XS1-Nach-FHEM am 12 März 2015, 11:17:13
Gibt es da keine Möglichkeit zum beispiel ein Kommando TTS_SentenceAppendix_Anfang zu definieren? Weil TTS_SentenceAppendix und  silence.mp3 funktioniert am ende auch prima!

Zitat
TTS_SentenceAppendix
Optional: Angabe einer mp3-Datei die mit jeder Sprachausgabe am Ende ausgegeben wird.
Voraussetzung ist die Nutzung von MP3Wrap. Die Sprachbausteine müssen bereits als mp3 im CacheFileDir vorliegen. Beispiel: silence.mp3

Aber ich glaube das hier geht (leider noch immer nicht Global)

http://forum.fhem.de/index.php/topic,18481.msg137666/topicseen.html#msg137666 (http://forum.fhem.de/index.php/topic,18481.msg137666/topicseen.html#msg137666)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 12 März 2015, 23:00:38
Hallo,

Zum Testen gibt es neue Versionen von Server und Player.

Geändert wurden:

97_SB_SERVER (https://github.com/ChrisD70/FHEM-Modules/raw/master/97_SB_SERVER.pm):
  - updateModules hinzugefügt

98_SB_PLAYER (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm):
  - wenn der Player ausgeschaltet ist zuerst einschalten bevor play gesendet wird
  - ttsDelay hinzugefügt
  - ttsOptions:ttsforcegroupon implementiert
  - ttsOptions:internalSave unterstützt auch Remote-Streams

Es ist jetzt auch möglich die Module direkt von FHEM aus zu installieren/updaten. Dazu muss im Web-Interface von FHEM
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txteingegeben werden.

Mit dem Attribut ttsDelay kann festgelegt werden um wieviel die Ausgabe verzögert wird. Es gibt 2 Möglichkeiten:
- es wird eine Zeit in Sekunden angegeben, z.B.
attr meinPlayer ttsDelay 2verzögert jede Ausgabe um 2s.

- es werden 2 Zeiten durch Komma getrennt angegeben, z.B.
attr meinPlayer ttsDelay 0.2,3verzögert die Ausgabe um 200ms wenn der Player bereits eingeschaltet ist und um 3s wenn der Player nicht eingeschaltet ist.

@Günter:
Ich habe den Befehl play geändert wenn der Player ausgeschaltet ist, kannst du mit der neuen Version testen ob die Wiedergabe ohne dein notify funktioniert (attr Sq_buero_play disable 1)?

@mrbreil:
Kannst du mit der neuen Version testen ob TTS mit internalSave und Remote-Streams funktioniert ?

@Von-XS1-Nach-FHEM:
Die Squeezebox-Module verwenden kein Text2Speech da der LMS dies selbst kann. Da das Text2Speech-Modul anders funktioniert kannst du die Lösung mit den Punkten nicht ohne weiteres übernehmen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Von-XS1-Nach-FHEM am 13 März 2015, 18:29:15
Hallo, super.

OK danke für deine Antwort. Aber.........

Andere Frage wie bekomme ich diese Verzögerung Möglichkeit dann in MyTTS Text2Speech Engine wenn mann kein Squeezebox hat und zum beispiel ein normale Lautsprecher benutzt angeschlossen auf FHEM?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 13 März 2015, 19:34:30
ChrisD, wow. Wie schnell du auf die Belange hier im Thread mit neuen Versionen reagierst!
Ich will nicht zu weit nach vorne preschen, aber ich bin der Meinung (sagt bitte wenn ihr das anders seht), dass das Modul sich immer mehr Richtung Stable Release bewegt. Natürlich hast du gerade erst wieder neue Versionen hochgelegen welche getestet werden müssen, aber so langsam scheinen alle Probleme die mal vorhanden waren behoben zu sein. Eure Meinungen hierzu?!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: mrbreil am 14 März 2015, 09:44:26
Das ist ja wieder eine super Arbeit.  Radio wird jetzt auch wieder hergestellt nach dem die ansage kam. Jetzt kann ich meine Bastellösung mit text2speech in Rente schicken. Das einzige Feature welches ich bei text2speech noch Spitze finde, ist das es vor einer ansage noch eine mp3 abspielen kann. Bei mir ist das eine Art Gong, so nach dem Motto, Achtung zuhören, ich habe etwas zu sagen. Mir ist bewußt das du viel Arbeit mit diesem Modul hast und das ich/wir immer noch ein extra mehr haben wollen,  aber ließe sich das auch technisch einbauen in einer späteren Version? Oder ist das mit den squeezeboxen gar nicht realisierbar?

Ich bin auch der Meinung das es eingecheckt werden kann, bei mir gibt es keine Bugs.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gibacht am 14 März 2015, 09:48:34
Da schliesse ich mich mrbreil an...
Gute Idee  8)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: thecreep am 14 März 2015, 11:33:28
Hallo,

ich bin absoluter Neuling und habe jetzt FHEM seit 2Tagen auf einem Raspberry Pi installiert ebenfalls habe ich den LMS und einen squeezelite installiert.

Jetzt bin ich ein wenig mit FHEM und diesem Squeezebox Modul am testen.

Meine Frage wäre:
Wie stelle ich es an, daß sobald sich das Volume meines SB_PLAYER ändert, der neue Lautstärkenwert in eine Dummy geschrieben wird?
Das gleiche versuche ich ebenfalls mit dem playStatus (playing, paused, stopped).

Für ein Beispiel, wie ich das umsetzen kann, wäre ich dankbar.

N.B. : Gibt es eine Dokumentation des Squeezebox Moduls?

Gruß
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 14 März 2015, 17:35:41
Hallo,

@thecreep:
Die Dokumentation findest du im 1. Beitrag dieses Threads. Sie ist auch in den Modulen selbst und sollte nach der Installation und nach einem Update von FHEM in der Commandref enthalten sein.

Zitat
Wie stelle ich es an, daß sobald sich das Volume meines SB_PLAYER ändert, der neue Lautstärkenwert in eine Dummy geschrieben wird?
Dies kannst du über ein notify machen, siehe Commandref, z.B.:
define v dummy
define n_VolumeMeinPlayer notify meinPlayer:volume.* set v %EVTPART1
Damit es funktioniert musst du aber das Attribut donotnotify deines Players auf false setzen:
attr meinPlayer donotnotify false
@mrbeil:
Ich werde das Abspielen von MP3s (oder beliebigen Streams) einbauen, weiß aber noch nicht ob ich die Syntax von Text2Speech oder Sonos nehmen soll.

@Von-XS1-Nach-FHEM:
Wenn du Text2Speech verwendest musst du entweder die Lösung von Rince die du gefunden hast verwenden oder den Modulautor bitten ein entsprechendes Attribut hinzuzufügen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: thecreep am 14 März 2015, 17:55:15
Vielen Dank, kenne mich halt noch nicht so gut mit FHEM und  Perl aus.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: vbs am 15 März 2015, 20:40:49
Wäre es evtl. sinnvoll, folgende Meldungen auf LogLevel 4 zu setzen? Die kommen ja recht häufig.

2015.03.15 19:34:24 3: SB_SERVER_Alive(sbserver): called
2015.03.15 19:34:24 3: SB_SERVER_Alive(sbserver): RCC:off Ping:on
2015.03.15 19:36:24 3: SB_SERVER_Alive(sbserver): called
2015.03.15 19:36:24 3: SB_SERVER_Alive(sbserver): RCC:off Ping:on
2015.03.15 19:38:24 3: SB_SERVER_Alive(sbserver): called
2015.03.15 19:38:24 3: SB_SERVER_Alive(sbserver): RCC:off Ping:on
2015.03.15 19:40:24 3: SB_SERVER_Alive(sbserver): called
2015.03.15 19:40:24 3: SB_SERVER_Alive(sbserver): RCC:off Ping:on
2015.03.15 19:42:24 3: SB_SERVER_Alive(sbserver): called
2015.03.15 19:42:24 3: SB_SERVER_Alive(sbserver): RCC:off Ping:on
2015.03.15 19:44:24 3: SB_SERVER_Alive(sbserver): called
2015.03.15 19:44:24 3: SB_SERVER_Alive(sbserver): RCC:off Ping:on

Ich meine, den neuesten Stand zu haben. Ich habe das Modul mit diesem Befehl upgedatet:
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt
Komischerweise kommen folgende Meldungen immer wieder, auch wenn ich den Update-Befehl (+Neustart) später nochmal eingebe:
UPD FHEM/97_SB_SERVER.pm
UPD FHEM/98_SB_PLAYER.pm

New entries in the CHANGED file:
97_SB_SERVER:
  150308 0013 - updateModules hinzugefügt
98_SB_PLAYER:
  150312 0030 - wenn Player ausgeschaltet ist zuerst einschalten bevor play gesendet wird
              - ttsDelay hinzugefügt
              - ttsOptions:ttsforcegroupon implementiert
              - ttsOptions:internalSave unterstützt auch Remote-Streams
                                                                                                 .
Historie Änderungen:
                                                                                                 .
97_SB_SERVER:
  150308 0013 - updateModules hinzugefügt
  150301 0012 - fhemrelay nicht mehr an LMS schicken sondern direkt an Dispatch übergeben
  150209 0011 - Alarmplaylisten an Player übertragen (benötigt 98_SB_PLAYER 0026 oder höher)
              - weitere ungültige Zeichen aus Favoriten und Playlisten ausfiltern
  150202 0010 - Encoding der Playlisten und Favoriten korrigiert
  150201 0009 - URL der Favoriten abfragen und an Player verteilen
              - Namen der Favoriten nicht mehr abschneiden bei Umlauten
              - Umlaute bei Favoriten umwandeln statt zu löschen
              - diverse Loglevel geändert
              - in UTF8 gespeichert
  141222 0008 - Testversion mit zusätzlichen Logausgaben
  141220 0007 - PRESENCE hinzugefügt
              - bei Verwendung von WOL Verbindungsaufbau beschleunigen
              - Login und Passwort funktionieren wieder
              - Broadcast ON an Player erst wenn Login funktioniert hat
... rest of lines skipped.

update finished, "shutdown restart" is needed to activate the changes.

fheminfo server response: ==> ok

Sollte er nicht bei einem erneuten Update sowas sagen wie "nothing to do"?

Besten Dank!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 15 März 2015, 22:02:17
Hallo,

Bei einem 'update force' wird jedes Mal alles heruntergeladen. Wenn du 'update force' einmalig verwendest hast kannst du
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txtverwenden, dabei wird geprüft ob geänderte Dateien vorhanden sind.

Ich habe in 97_SB_SERVER die Loglevel geändert, du kannst somit direkt ausprobieren ob 'update all ...' funktioniert. Es sollte beim 1. Aufruf nur 97_SB_SERVER aktualisiert werden, bei folgenden Aufrufen sollte 'nothing to do' kommen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: vbs am 15 März 2015, 23:59:33
Super, vielen Dank! Update hat geklappt und logs sind weg! Und Sorry: hatte das 'force' übersehen...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 16 März 2015, 09:24:02
Hallo,

Ich habe 98_SB_PLAYER aktualisiert (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm), geändert wurden:

- wenn Player während TTS verschwindet Zustand zurücksetzen
- wenn Player während TTS ausgeschaltet wird nicht wieder einschalten
- ttsVolume auf volumeLimit begrenzen außer ignorevolumelimit ist in ttsOptions gesetzt
- ttsVolume bei synchronisierten Playern setzen

Zum Aktualisieren:
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt
Ich werde diese Version in den nächsten Tagen wieder nach Contrib einchecken wenn keine weiteren Fehler mehr auftreten. Ich werde auch versuchen die Dokumentation, insbesondere des Players, zu vervollständigen so dass die Module von Contrib nach FHEM verschoben werden können.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: duke-f am 16 März 2015, 10:18:59
Muss es jetzt einfach auch mal sagen: Echt tolles Modul!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: vbs am 19 März 2015, 13:23:32
Auch von mir nochmals danke für das Modul! Gefällt mir sehr gut!

Ich hatte bis gestern ein Problem:
Und zwar ist mir aufgefallen, dass der State der SB_PLAYER-Devices bei mir nicht im Hintergrund aktualisiert wird. Also wenn ich den Player einschalte, dann ändert sich der Status nicht automatisch auf "an". Ich musste immer erst F5 drücken, um den aktuellen Status zu bekommen.

Mir ist dann im Quellcode das Attribut "donotnotify" aufgefallen. Das hab ich aus meinen Geräten entfernt und nun funktioniert das Update des Status in der GUI wieder. Nur falls mal jemand das gleiche Problem haben sollte... Habe jetzt erstmal noch keine negativen Seiteneffekte durch das Entfernen des Attributs bemerkt.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 19 März 2015, 13:27:29
Mir ist dann im Quellcode das Attribut "donotnotify" aufgefallen. Das hab ich aus meinen Geräten entfernt und nun funktioniert das Update des Status in der GUI wieder.

Wenn du es nur entfernt hast (deleteattr) wird es beim Neustart von FHEM wiederkommen - du musst es korrekterweise auf false setzen...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: vbs am 19 März 2015, 13:29:03
Stimmt, danke für den Hinweis.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 22 März 2015, 13:48:05
So bin jetzt auch endlich mal zum testen gekommen.

Der TTS Delay tut aber leider nicht das so wie ich mir das vorgestellt hab.
Also er funktioniert perfekt, aber das AV-Recieverproblem löst er nicht.

Anscheinend wird beim Delay nur die Ausgabe verzögert.
Um den Receiver-Delay zu überbrücken brauch ich aber ein Signal am Receiver.

ich hab jetzt mal umprobiert am besten funktioniert es wenn ich vor jeder Ausgabe "12" eingebe.
Aber das ist glaub ich nur eine Lösung für meinen Receiver.

Wäre es möglich per Attribut einen String zu setzen der in diesem Player für jeden talk Befehl vor den jeweiligen Text gesetzt wird?

Grüße

Alex
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 22 März 2015, 13:50:03
So und eine Frage zur Alarmfunktion hätte ich noch.

Ich setze meine Alarme entsprechend einiger if's mit einem Dummy und einem notify.
Leider habe ich keine Möglichkeit gefunden das repeat bei einem Alarm zu setzten.
Geht das? wenn ja wie?

Grüße

Alex
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 22 März 2015, 15:59:58
Hallo,

Wird der AV-Receiver beim Abspielen erst eingeschaltet und braucht dann seine Zeit bis er etwas ausgibt oder gibt es die Verzögerung immer ?

Ich habe in Version 0032 (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm) ein Attribut ttsPrefix hinzugefügt mit dem ein fester Text vor jede Ausgabe gehängt wird.

Zum Aktualisieren:
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt
Das repeat bei den Alarmen kannst du über
set meinPlayer alarm1 repeat 1einschalten (yes und on können auch statt 1 verwendet werden).

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: DJAlex am 23 März 2015, 23:37:48
Die verzögerung gibt es immer.

Die SqueezeboxTouch hängt über nen optischen Eingang an dem Receiver.
Wenn kein Ton kommt schaltet der den Kanal ab. Wenn er den Kanal wieder anschaltet dauert das 2 Sekunden.
Und da verschluckts dann was von der Sprachaussage. Deshalb müsste ich am besten 2 Sekunden ein sehr leises Geräusch produzieren bevor die Ansage losgeht. Aber jetzt probier ichs erstmal mit dem Prefix.

Danke schon mal

Grüße

Alex
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 28 März 2015, 00:37:33
Hallo,

Ich habe die Versionen 0014 von SB_SERVER und 0031 von SB_PLAYER nach contrib eingecheckt. Damit können die Links im 1. Beitrag benutzt werden um die 'offizielle' Version herunterzuladen.

In der aktuellen Testversion 0033 habe ich 'talk' um 2 Punkte erweitert:

1. Abspielen von mp3s:

Im talk-Aufruf können jetzt Dateinamen von mp3s mit angegeben werden, die Syntax ist die gleiche wie beim Sonos-Modul:
set meinPlayer talk |/mnt/audio/gong.mp3| Test |/mnt/audio/gong.mp3|Mit Hilfe des Attributes 'ttsMP3FileDir' kann ein fester Pfad definiert werden aus dem die mp3s kommen:
attr meinPlayer ttsMP3FileDir /mnt/audio/Damit lässt sich obige Zeile so schreiben:
set meinPlayer talk |gong.mp3| Test |gong.mp3|
2. Unterstützung von Text2Speech (experimentell)

Es ist jetzt möglich Text2Speech für das Erzeugen der Sprachdateien zu verwenden.
Vorteile:
- alle Optionen von Text2Speech können verwendet werden
- Dateien werden gecacht
Nachteile:
- Konfiguration komplizierter
- keine Sprachauswahl (immer 'de')
- die unter 1 beschriebene Möglichkeit mp3s abzuspielen funktioniert nicht

Zum Testen wird eine modifizierte Version von Text2Speech benötigt, diese gibt es hier (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_Text2SpeechSB.pm). Es handelt sich dabei um die aktuelle Version 7588 von Tobias mit einigen Änderungen. Sie kann parallel zur offiziellen Version installiert weil ich den Namen geändert habe.

Definition:
define mySBTTS Text2SpeechSB SB_PLAYERAnschließend können die Attribute von mySBTTS nach Bedarf gesetzt werden.

Beim Player der Text2Speech verwenden soll muss das Attribut ttslink geändert werden in:
Text2Speech:mySBTTS:<Pfad zum cache-Verzeichnis von mySBTTS aus Sicht des LMS>Das Attribut besteht aus 3 Teilen, getrennt durch ':', der 1. Teil ist immer 'Text2Speech', der 2. enthält den Namen des Text2Speech-Gerätes (hier mySBTTS).

Der 3. Teil enthält den Verzeichnisnamen (mit abschließendem /) des Cache-Verzeichnisses von Text2Speech aus Sicht des LMS. Wenn LMS und FHEM auf dem gleichen Rechner laufen sollte dies kein Problem sein. Wenn sie auf unterschiedlichen Geräten laufen muss entweder ein Dateizugriff eingerichtet werden oder auf dem Rechner auf dem FHEM läuft muss ein Webserver laufen der die Sprachdateien ausliefern kann.

Die Module können mit
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txtaktualisiert werden, das modifizierte Text2Speech-Modul muss aber von Hand installiert werden.

Grüße,

ChrisD

Edit 21.09.2015 - Beispiel korrigiert
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: KernSani am 03 April 2015, 10:48:26
Hi zusammen,

ich unternehme gerade meine ersten Gehversuche mit SB_SERVER und SB_PLAYER und funktioniert klasse, Danke, sehr coole Module. Nun zu meinen Fragen (ich habe die Suchfunktion und Google bemüht und post #1 intensiv studiert, alle 45 Seiten dieses posts durchzuklicken war mir dann aber doch zu viel, sorry also wenn die Antworten irgendwo zu finden sind).
1.) Hat sich schonmal jemand die Mühe gemacht (z.B. als myUtils sub) eine schöne Oberfläche mit coverart etc... zur Steuerung der SB_Player zu basteln?
2.) Coverart-URL kommt bei mir als http://www.mysqueezebox.com/public/... statt der lokalen (192.168.1...) Adresse
3.) Ich habe einen Internetradiosender als Favorit eingebunden. Wenn Radio läuft und ich  "talk" sende, bekomme ich "playlist add http://translate.google.com/translate_tts?ie=UTF-8&tl=de&q=Test", da die Internetradio-Playlist quasi endlos ist, werde ich mein "talk" wohl nie zu hören bekommen. Kann ich das irgendwie so steuern: Radio aus (am besten fade), talk, Radio wieder an "fade)?

Frohe Ostern,

Danke,

Grüße,

Oli   

 
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 03 April 2015, 15:29:58
@KernSani: Das mit dem talk während des laufenden Radioprogramms, ist bei mir kein Problem. Bis auf das Fade (auch ziemlich unnötig) funktioniert das in der aktuellen Version genau, wie von dir gewünscht.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: KernSani am 03 April 2015, 16:31:03
Hi marvin,

Ich nutze die aktuelle Version aus dem contrib Verzeichnis. Sollte ich ein update direkt von Github machen?
Nach einem Neustart des RasPi (nicht nur FHEM) stoppt talk das Radioprogramm, setzt es aber nicht wieder fort...

Grüße,

Oli
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 03 April 2015, 20:07:35
Hallo,

Zu 3.:

Beim 'talk' sollte automatisch die aktuelle Playlist gesichert und wieder hergestellt werden. Es kann aber passieren dass durch fehlende Berechtigungen das Speichern der Playlist fehlschlägt. Das kann dazu führen dass 'talk' nicht korrekt beendet wird. Den aktuellen Zustand vom 'talk' kannst du im Reading 'talkStatus' sehen. Dort sollte 'idle' stehen wenn die Sprachausgabe beendet ist. Falls dies nicht der Fall ist musst du über den Befehl resetTTS manuell zurücksetzen:
set meinPlayer resetTTS
Du kannst versuchen beim Player das Attribut 'ttsOptions' auf 'internalsave,debug,debugsaverestore' zu setzen. Dadurch wird versucht die aktuelle Playlist intern zu speichern und es werden im Log zusätzliche Ausgaben gemacht die du posten kannst.

Ein Update von Github dürfte nichts ändern da in der Zwischenzeit an diesem Teil nichts geändert wurde.

Zu 2.:

Die Herkunft der Cover hängt von mehreren Faktoren ab:
- bei lokalen Dateien kommen die Cover vom lokalen Server
- bei Streams hängt es von der Server-Version ab
   - bis 7.7 werden die Bilder über ein Proxy-Skript bei mysqueezebox abgeholt
   - ab 7.8 ist der Proxy im Server eingebaut und die Cover kommen über den lokalen Server (kann aber abgeschaltet werden)

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: KernSani am 03 April 2015, 23:17:41
Danke Chris,

ich habe nun doch ein update force von github gemacht und siehe da, talk funktioniert.

zum Coverart-Problem: Das Problem tritt in der Tat nicht auf, wenn ich lokale Dateien abspiele, da kommt das Cover von lokal (sprich vom LMS). Bei Streaming (Webradio, Spotify) wird kommt die URL im SB_PLAYER als mysqueezebox.com (z.B. http://www.mysqueezebox.com/public/imageproxy?u=spotifyimage%2Fspotify%3Aimage%3A9ea93c43f9dc32146ce4b3d93bbe757da7a68bdf%2Fcover.jpg&h=50&w=50), obwohl das Cover, das im LMS selbst angezeigt wird, lokal abgelegt wird (also z.B.  http://192.168.1.133:9000/spotifyimage/spotify:image:9ea93c43f9dc32146ce4b3d93bbe757da7a68bdf/cover.jpg). Der mysqueezebox.com-link bringt einen Fehler. LMS Version ist 7.7.5.

Danke,

Grüße,

Oli

 

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 03 April 2015, 23:48:51
Hallo,

Ich habe den Code für die Cover um eine Abfrage für Spotify ergänzt, kannst du testen ob es mit der neuen (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm) Version funktioniert ? Da ich kein Spotify habe kann ich es leider nicht testen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: KernSani am 04 April 2015, 00:52:18
Hi Chris,

danke für den schnellen Fix. Bei mir hat's etwas länger gedauert (und geht wohl auch einfacher, aber ich bin Perl-NOOB):

# CD 0034 Abfrage für Spotify und LMS < 7.8, ungetest, #674, KernSani
            if ($hash->{ARTWORKURL} =~ /spotifyimage%2Fspotify/) {
my $cover = "cover.jpg";
my $coverArtWithSize = "cover_".AttrVal( $name, "coverartheight", 50 )."x".AttrVal( $name, "coverartwidth", 50 )."_o.jpg";
$hash->{ARTWORKURL} =~ s/$cover/$coverArtWithSize/g;
                $hash->{COVERARTURL} = "http://" .  $hash->{SBSERVER} . "/" . uri_unescape($hash->{ARTWORKURL});

Grüße,

Oli
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Borkk am 08 April 2015, 22:41:49
Hallo Zusammen,

ich habe mal eine Frage zu dem SB_Player Modul. Ich nutze es schon sehr lange und finde es super das es jetzt im standard Umfang von FHEM enthalten ist. Für ein paar Spielereien mit meinen HUE Lampen werte ich über notify die Readings "currentTitel" "playStatus" und "state" aus. Damit das möglich ist habe ich donotnotify auf false gesetzt. Es funktioniert alles super.

Um jedoch die Flut an Events zu steuern würde ich gerne über das Attribut event-on-change-reading oder event-on-update-reading nur Events der o.g. 3 Readings durchlassen. Wenn ich jedoch das Attribut setzte wird nur das erste Reading berücksichtigt. d.h. es wird nur noch das reading gesendet, das als erster in der Aufzählung steht. Alle folgenden mit comma getrennten readings werden ignoriert.

Könnte hier noch ein Bug im Modul vorliegen?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 09 April 2015, 09:46:03
Poste mal deine Definition des Attributs. Bei mir funktioniert das ohne Probleme. Trennzeichen ist das Komma OHNE Leerzeichen!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Borkk am 09 April 2015, 23:25:06
peinlich ... :o Ok das wars. Ohne Leerzeichen geht es :-)

Danke.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: berndp am 22 April 2015, 19:56:53
Hallo zusammen,

hoffentlich hab ichs nicht in dieser Threadschlange überlesen:

Benutzt jemand das Modul mit Squeezelite bzw. Picoreplayer?
Die normale Steuerung funktioniert unproblematisch, jedoch TTS nicht. Zwar wird die Playlist mit dem gesprochenem Text im Player geladen, aber kommt kein Ton an.
Ich würde gerne die selbstbau Squeezebox als Fehler ausschließen können. Hat jemand schon Erfahrungen in dieser Richtung sammeln können?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 22 April 2015, 20:02:58
Hallo,

hoffentlich hab ichs nicht in dieser Threadschlange überlesen:
Ich glaube schon - hatte das gleiche Problem

Benutzt jemand das Modul mit Squeezelite bzw. Picoreplayer?
Ja, ich :)

Ich würde gerne die selbstbau Squeezebox als Fehler ausschließen können. Hat jemand schon Erfahrungen in dieser Richtung sammeln können?
Nutzt du eine externe Soundkarte (USB, HifiBerry-Amp, o.Ä.) -> siehe hier: http://forum.fhem.de/index.php/topic,17667.msg270190/topicseen.html#msg270190


Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: berndp am 22 April 2015, 20:42:31
Vielen Dank! Ist mir etwas peinlich das zu übersehen  :-[

Beim Update vom Picoreplayer über die WebUI wurde squeezelite 1.8 installiert und gleich als out-of-date angezeigt. Mit der manuellen Änderung funktionierts perfekt!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 22 April 2015, 21:11:48
Hallo Zusammen,

ich habe mal eine Frage zu dem SB_Player Modul. Ich nutze es schon sehr lange und finde es super das es jetzt im standard Umfang von FHEM enthalten ist. Für ein paar Spielereien mit meinen HUE Lampen werte ich über notify die Readings "currentTitel" "playStatus" und "state" aus. Damit das möglich ist habe ich donotnotify auf false gesetzt. Es funktioniert alles super.

Um jedoch die Flut an Events zu steuern würde ich gerne über das Attribut event-on-change-reading oder event-on-update-reading nur Events der o.g. 3 Readings durchlassen. Wenn ich jedoch das Attribut setzte wird nur das erste Reading berücksichtigt. d.h. es wird nur noch das reading gesendet, das als erster in der Aufzählung steht. Alle folgenden mit comma getrennten readings werden ignoriert.

Könnte hier noch ein Bug im Modul vorliegen?

war auf der Suche nach der gleichen Lösung, hab´s getestet und geht

attr squeeze_Denver donotnotify false
attr squeeze_Denver event-on-change-reading currentTitle,currentArtist

kvo1

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: FHEMAN am 26 April 2015, 19:41:32
Ich würde gerne - unabhängig von SAVE und RECALL - das aktuell Gespielte speichern und später wieder aufrufen. Leider bekomme ich es mit den vorhandenen Readings currentPlaylistName und currentMedia nicht hin! D.h. folgender Versuch schlägt fehlt:
my $CurrentPlaylist = ReadingsVal("SqueezePlayer01", "currentPlaylistName", "-");
my $CurrentMedia = ReadingsVal("SqueezePlayer01", "currentMedia", "-");
fhem("setreading SqueezePlayer01 SavedPlaylist $CurrentPlaylist");
fhem("setreading SqueezePlayer01 SavedMedia $CurrentMedia");
....
#    fhem("set SqueezePlayer01 playlists $SavedPlaylist");
fhem("setreading SqueezePlayer01 currentPlaylistName $SavedPlaylist");
fhem("setreading SqueezePlayer01 currentMedia $SavedMedia");
RECALL kann ich leider nicht nutzen, da das scheinbar durch sayText überschrieben wird und ein Recall evtl. auch das Gerät ausschaltet.

Hat jemand eine Idee?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 26 April 2015, 22:02:54
Hallo,

Der Code kann nicht funktionieren da setreading nur den internen Zustand von FHEM ändert und keinerlei Auswirkungen auf den LMS hat.

Das Sichern des aktuellen Zustandes ist kompliziert da der LMS dies nicht von sich aus unterstützt. Wenn du nur eine abgespeicherte Playlist, bei der kein Shuffle aktiv ist, bei einem bestimmten Titel fortsetzen möchtest musst du statt currentMedia playlistCurrentTrack abspeichern:

my $CurrentPlaylist = ReadingsVal("SqueezePlayer01", "currentPlaylistName", "-");
my $CurrentMedia = ReadingsVal("SqueezePlayer01", "playlistCurrentTrack", 1)-1;
fhem("setreading SqueezePlayer01 SavedPlaylist $CurrentPlaylist");
fhem("setreading SqueezePlayer01 SavedMedia $CurrentMedia");

Das Aufrufen ist etwas komplizierter da der in currentPlaylistName enthaltene Name nur dann verwendet werden kann wenn er keine Sonderzeichen (Leerzeichen,.;: ...) enthält:
fhem("set SqueezePlayer01 playlists $CurrentPlaylist");
fhem("set SqueezePlayer01 cliraw playlist index $CurrentMedia");

Andernfalls musst der Name so verarbeitet werden dass alle Sonderzeichen entweder entfernt oder ersetzt werden. Die 'gültigen' Werte für den 'set playlists'-Befehl befinden sich im Internal SERVERPLAYLISTS.

Ich werde mir den SAVE/RECALL-Code nochmal ansehen und versuchen eine komfortablere Lösung zu finden.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: joginet am 28 April 2015, 22:02:44
Hallo,

bin gerade dabei, mein Squeezebox-System auszubauen - ein tolles Modul !!!

Frage: kann "sayText oder "talk" den Inhalt eines Readings vorlesen?

Ich möchte eine email an FHEM schicken (modul mailcheck - hab's gerade eingebaut)
und die Betreffzeile über meine SB_PLAYER ansagen lassen um so Durchsagen zu machen. Kann mir jemand mit der Syntax helfen?

{ReadingsVal("FhemMail","Subject","")} ergibt den richtigen Text, aber

set Mein_SB_PLAYER sayText {ReadingsVal("FhemMail","Subject","")} funktioniert nicht.

Gruß, Jochen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 28 April 2015, 22:23:50
Hallo,

Dies sollte funktionieren:
{fhem("set Mein_SB_PLAYER talk ".ReadingsVal("FhemMail","Subject",""))}
Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: joginet am 29 April 2015, 00:05:04
Zitat
Dies sollte funktionieren:
Code: [Auswählen]

{fhem("set Mein_SB_PLAYER talk ".ReadingsVal("FhemMail","Subject",""))}

Hallo Chris,
da tut sich leider nichts. Wenn ich direkt Text lesen lasse, funktioniert es.
Hast Du noch eine Idee?

Im Eventlog steht korrekterweise:

Zitat
2015-04-29 00:07:04 SB_PLAYER Aussen2 talk und das ist test nummer 2

wobei "und das ist test nummer 2" die Betreffzeile meiner email ist.


Gruß, Jochen

Edit: Wenn ich den erzeugten Google-tts-Link in meinen browser kopiere, wird der Text (auf dem lokalen PC) abgespielt.

Edit 2 Muß zurückrudern - es geht nur auf einem Player nicht - ausgerechnet der im Arbeitszimmer - also der, den ich zum testen abhöre.

Also: Syntax passt - Danke !
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: joginet am 01 Mai 2015, 11:02:20
Eine Frage noch zu obigem Post:

{fhem("set Kueche talk |/home/pi/gong.mp3| Achtung Es folgt eine Durchsage | ".ReadingsVal("FhemMail","Subject",""))}
funktioniert jetzt, aber wie kann ich eine Pause zwischen "Achtung es folgt eine Durchsage" und dem Vorlesen des Readings einfügen?
Meine Experimente sind bisher erfolglos. Ich habe ein ". . . . . . " hinter dem Achtung eingefügt  - da passiert  aber nichts, das wird ignoriert.

Wenn ich eine 1,5 Sekunden lange Datei "silent.mp3" direkt hinter der Durchsagetext abspiele, dann werden Teile des Readings-Textes oder
der ganzen Readings Text "verschluckt".

Habt Ihr einen Tipp?

Gruß, Jochen


Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 02 Mai 2015, 00:43:37
Moin Jochen.

{fhem("set Kueche talk |/home/pi/gong.mp3| Achtung Es folgt eine Durchsage | ".ReadingsVal("FhemMail","Subject",""))}
und wenn Du einfach den Text "Achtung Es folgt eine Durchsage"  also mp3 aufnimmst , inl. der ,15 sec. Pause und damm die beiden mp3 zu einen file merg´st ?  ;)

gruss
klaus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: FHEMAN am 02 Mai 2015, 01:31:15
Möglicherweise gibts auch gar keine sinnige Erklärung für das Verhalten. Ich würde mal testen, die beiden Texte mittels .= zu einem String zusammenfassen und abspielen bzw vorlesen zu lassen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: joginet am 02 Mai 2015, 06:45:10
Zitat
und wenn Du einfach den Text "Achtung Es folgt eine Durchsage"  also mp3 aufnimmst , inl. der ,15 sec. Pause und damm die beiden mp3 zu einen file merg´st ?  ;)

Exakt das hatte ich mir auch schon überlegt...  :)

Zitat
Möglicherweise gibts auch gar keine sinnige Erklärung für das Verhalten. Ich würde mal testen, die beiden Texte mittels .= zu einem String zusammenfassen und abspielen bzw vorlesen zu lassen.

Meine Vermutung ist, dass der LMS nicht schnell genug zwischen den mp3s/playlisten umschaltet. Wie müsste ich das denn schreiben mit dem ".=" ?

Gruß, Jochen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 02 Mai 2015, 08:34:43
Hallo,

Bei mir funktioniert die Ausgabe wenn ich
set meinPlayer talk |gong.mp3| Achtung Es folgt eine Durchsage |silence1x5.mp3| und das ist test nummer 2eingebe.

Getestet habe ich es mit squeezelite 1.7 auf einem Raspberry mit einem Hifiberry DAC.

Welchen Player verwendest du auf welcher Hardware ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: joginet am 02 Mai 2015, 09:37:04
Zitat
Welchen Player verwendest du auf welcher Hardware ?

Moin, ich verwende den piCorePlayer 1.19i_RPi2 auf einem Raspi 2.

Der LMS läuft bei mir auf einem weiteren Pi2 unter Raspian.

Gruß, Jochen

Edit:
Hmm - hab's gerade nochmal getestet - einmal mit 2. Text und einmal mit Reading am Ende.
Jetzt geht es... Keine Ahnung warum - ich habe nichts verändert...  ???

Edit2: Doch nicht. Aber: in der fhem-Befehlszeile geht es, auch mit den Perl-Klammern.
Ich hatte mir ein notify gebaut, um eine eingehende mail vorlesen zu lassen:
http://forum.fhem.de/index.php/topic,33088.msg290836.html#msg290836
 (http://forum.fhem.de/index.php/topic,33088.msg290836.html#msg290836)
Wenn das notify die talk-Funktion anschiebt, dann geht es scheinbar nicht - dann wird das Reading gar nicht erst vorgelesen - nur Gong und Ansage.
Und zwar sobald eine zweite mp3-Datei drin ist. Warum das so ist erschließt sich mir allerdings nicht...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: FHEMAN am 03 Mai 2015, 00:46:07
oder funktioniert es nur dann nicht, wenn du 2x Text vorlesen lässt? Unabhängig von den mp3s. Schau dir mal den talkstatus an, wenn du nur einen text vorlesen lässt. Wie gesagt, ich hatte da auchso meine Probleme.
Wg. String concat:
my $ansage = “Achtung Ansage... “;
$ansage .= ReadingsVal(...);
fhem("set meinplayer talk |mp3file| $ansage |");

Gruß
Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: joginet am 03 Mai 2015, 08:01:18
Moin Ronny,

Zitat
oder funktioniert es nur dann nicht, wenn du 2x Text vorlesen lässt? Unabhängig von den mp3s.

Nein, denn

{fhem("set Kueche talk |/home/pi/gong.mp3| Achtung Es folgt eine Durchsage | blablabla | ".ReadingsVal("FhemMail","Subject",""))}
funktioniert, aber

{fhem("set Kueche talk |/home/pi/gong.mp3| Achtung Es folgt eine Durchsage |/home/pi/silent.mp3| ".ReadingsVal("FhemMail","Subject",""))}
funktioniert nicht.

Allerdings wie gesagt - nur wenn das über mein notify angestossen wird - über die fhem Kommandozeile geht beides.
Egal - ich kann damit leben - bis auf die Pause funktioniert alles prima.

Zur Not bastele ich mir ein "Ansage-mp3" mit integrierter Pause  :)

Gruß, Jochen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Mai 2015, 08:34:12
Hallo,

@joginet: Ich kann den Effekt leider nicht reproduzieren. Auch mit dem notify
define Durchsage notify FhemMail {fhem("set meinPlayer talk |/playlists/LMS/gong.mp3| Achtung Es folgt eine Durchsage |/playlists/LMS/silence1x5.mp3| ".ReadingsVal("FhemMail","Subject",""))}
wird der gesamte Text ausgegeben. Ich weiß daher nicht so Recht wo ich ansetzen soll um den Fehler zu finden.

@Derron: Ich habe save und recall in 98_SB_PLAYER (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm) etwas erweitert:
- bei save kann zusätzlich ein Name für den Zustand mit übergeben werden, z.B.
set meinPlayer save Zustand_1- mit
get meinPlayer savedStateswerden die gespeicherten Zustände angezeigt

- bei recall kann der Name des Zustandes sowie verschiedene Optionen mit angegeben werden, möglich sind:
  - del: löscht den Zustand nach dem Wiederherstellen
  - delonly: Zustand wird aus der Liste gelöscht ohne wieder hergestellt zu werden
  - on: der Player wird eingeschaltet, unabhängig davon was abgespeichert wurde
  - off: der Player wird ausgeschaltet, unabhängig davon was abgespeichert wurde
  - play: der Player wird eingeschaltet und die Wiedergabe wird gestartet
  - stop: der Player wird angehalten
  die einzelnen Optionen können (soweit sinnvoll) kombiniert werden indem sie durch Leerzeichen getrennt angegeben werden, z.B.
set meinPlayer recall Zustand_1 del play- recall bietet jetzt die gespeicherten Zustände zur Auswahl an
- die Zustände werden bei einem 'Save config' von FHEM mit abgespeichert wenn das Perl-Modul Data::Dumper vorhanden ist, beim Start von FHEM werden sie wieder eingelesen
- wenn kein Name bei save/recall mit angegeben wird, wird 'default' als Name verwendet
- TTS verwendet einen eigenen Namen und beeinflusst so die anderen Zustände nicht mehr

Die neue Version kann mit
update 98_SB_PLAYER https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txtinstalliert werden. Danach muss FHEM neu gestartet werden. Ein reload des Moduls reicht nicht aus.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: FHEMAN am 07 Mai 2015, 09:04:11
Hallo ChrisD, das hört sich ja genial an! Vielen vielen Dank für die Implementierung. Ich werde es am Wochenende testen und meinem Player jede Menge neue Funktionen spendieren (Umschalten zw den beiden Lieblingsplaylists, Senderansage etc.)

Danke und Gruß
Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: joginet am 07 Mai 2015, 19:26:39
Zitat
@joginet: Ich kann den Effekt leider nicht reproduzieren. Auch mit dem notify
Code: [Auswählen]

define Durchsage notify FhemMail {fhem("set meinPlayer talk |/playlists/LMS/gong.mp3| Achtung Es folgt eine Durchsage |/playlists/LMS/silence1x5.mp3| ".ReadingsVal("FhemMail","Subject",""))}

wird der gesamte Text ausgegeben. Ich weiß daher nicht so Recht wo ich ansetzen soll um den Fehler zu finden.

Hi ChrisD,
Mein notify ist zeimlich groß, es schaltet z.B. meine Dummys zum syncen aller Player an.
Evt. ist das bei mir auch ein timingproblem, denn es dauert ja einen Moment, bis sich alle Player zusammengeschaltet haben. Egal - ich baue mir ein Durchsage-mp3 mit einer kleinen Pause - da kann ich prima mit leben.
Der Rest funktioniert hervorragend !
Auf jeden Fall Danke für Deine Mühe - ich freue mich auf die neuen Features und werde weiter basteln !  :)

Gruß, Jochen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: SL85 am 08 Mai 2015, 21:38:50
Hallo ChrisD,

ich habe auch nach Anleitung einen Rpi B+ als LMS und einen Rpi B+ mit dem PiCorePlayer am laufen.
Leider füllt sich mein Logfile extrem.
Hier meine Konfig:
define LogiTechMediaServer SB_SERVER 192.168.178.29[:cliserverport] [RCC:rccname] [WOL:wolname] [USER:username] [PASSWORD:password]
attr LogiTechMediaServer alivetimer 120
attr LogiTechMediaServer doalivecheck true
attr LogiTechMediaServer httpport 9000
attr LogiTechMediaServer maxcmdstack 200
attr LogiTechMediaServer maxfavorites 30
attr LogiTechMediaServer verbose 1

define SB_PLAYER_000000000001 SB_PLAYER 00:00:00:00:00:01
attr SB_PLAYER_000000000001 IODev LogiTechMediaServer
attr SB_PLAYER_000000000001 alias Musik Wohnzimmer
attr SB_PLAYER_000000000001 amplifier play
attr SB_PLAYER_000000000001 coverartheight 50
attr SB_PLAYER_000000000001 coverartwidth 50
attr SB_PLAYER_000000000001 devStateIcon off:10px-kreis-rot on:10px-kreis-gruen
attr SB_PLAYER_000000000001 donotnotify false
attr SB_PLAYER_000000000001 event-on-change-reading currentTitle,currentArtist,state
attr SB_PLAYER_000000000001 fadeinsecs 5
attr SB_PLAYER_000000000001 fp_Musik 1,205,2
attr SB_PLAYER_000000000001 idismac true
attr SB_PLAYER_000000000001 room SB_PLAYER
attr SB_PLAYER_000000000001 serverautoon true
attr SB_PLAYER_000000000001 ttslanguage de
attr SB_PLAYER_000000000001 ttslink http://translate.google.com/translate_tts?ie=UTF-8
attr SB_PLAYER_000000000001 volumeLimit 100
attr SB_PLAYER_000000000001 volumeStep 10
attr SB_PLAYER_000000000001 webCmd favorites:volume
attr SB_PLAYER_000000000001 verbose 1

define WohnzimmerText readingsGroup SB_PLAYER_000000000001.*:currentArtist,currentTitle
attr WohnzimmerText noheading 1
attr WohnzimmerText nonames 1
attr WohnzimmerText notime 1
attr WohnzimmerText fp_Musik 100,200,0
attr WohnzimmerText room SB_PLAYER
attr WohnzimmerText style style="color:lightblue;;text-align:left;;font-size:10px"
attr WohnzimmerText visibility hidden

define WohnzimmerTextVis DOIF ([SB_PLAYER_000000000001:state] eq "on") (set WohnzimmerText visibility show) DOELSEIF ([SB_PLAYER_000000000001:state] eq "off") (set WohnzimmerText visibility hide)
attr WohnzimmerTextVis room SB_PLAYER

define rc1 remotecontrol
attr rc1 fp_Musik 25,600,0
attr rc1 rc_iconpath icons/remotecontrol
attr rc1 rc_iconprefix black_btn_
attr rc1 room SB_PLAYER
attr rc1 row00 off:POWEROFF3,play:PLAY,mute:MUTE
define notify_rc1 notify rc1 set SB_PLAYER_000000000001 $EVENT

Hier ein Auszug meines Logfiles:
2015.05.08 21:20:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 mode ?

2015.05.08 21:20:46 1: SB_SERVER_Read: the buf: 00:00:00:00:00:01 mode ?

2015.05.08 21:21:09 1: SB_SERVER_Read: the buf: fhemalivecheck

2015.05.08 21:23:09 1: SB_SERVER_Read: the buf: fhemalivecheck

2015.05.08 21:25:09 1: SB_SERVER_Read: the buf: fhemalivecheck

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 artist ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 album ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 title ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 playlist url ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 remote ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 status 0 500 tags:Kcu

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 alarms 0 200 tags:all filter:all

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 playerpref alarmsEnabled ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 playerpref alarmDefaultVolume ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 playerpref alarmTimeoutSeconds ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 playerpref alarmSnoozeSeconds ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 playerpref syncVolume ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 playlist name ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 duration ?

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 time ?

2015.05.08 21:25:46 1: SB_SERVER_Read: the buf: 00:00:00:00:00:01 artist ?

2015.05.08 21:25:46 1: SB_SERVER_Read: the buf: 00:00:00:00:00:01 album ?

2015.05.08 21:25:46 1: SB_SERVER_Read: the buf: 00:00:00:00:00:01 title ?

2015.05.08 21:25:46 1: SB_SERVER_Read: the buf: 00:00:00:00:00:01 playlist url ?
00:00:00:00:00:01 remote ?
00:00:00:00:00:01 status 0 500 tags:Kcu
00:00:00:00:00:01 alarms 0 200 tags:all filter:all

2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 mode ?

2015.05.08 21:25:46 1: SB_SERVER_Read: the buf: 00:00:00:00:00:01 playerpref alarmsEnabled ?
00:00:00:00:00:01 playerpref alarmDefaultVolume ?
00:00:00:00:00:01 playerpref alarmTimeoutSeconds ?
00:00:00:00:00:01 playerpref alarmSnoozeSeconds ?

2015.05.08 21:25:46 1: SB_SERVER_Read: the buf: 00:00:00:00:00:01 playerpref syncVolume ?
00:00:00:00:00:01 playlist name ?
00:00:00:00:00:01 duration ?
00:00:00:00:00:01 time ?
00:00:00:00:00:01 mode ?

2015.05.08 21:27:09 1: SB_SERVER_Read: the buf: fhemalivecheck

Hast du eine Idee woran das liegen kann?

Gruß Sebastian
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 08 Mai 2015, 22:22:22
Hallo,

Die Ausgabe im Log kommt wahrscheinlich von einer etwas älteren Version mit Debug-Ausgaben. Kannst du überprüfen welche Version du installiert hast ?

Die Version kannst du u.a. in FHEM sehen wenn du den Befehl
versioneingibst. Interessant sind hierbei die Zeilen mit 97_SB_SERVER und 98_SB_PLAYER.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: SL85 am 08 Mai 2015, 22:32:25
Hallo,

mit "version" finde ich die Module leider nicht.
Aber in der "97_SB_SERVER.pm" Datei habe ich folgendes gefunden:

based on 97_SB_SERVER.pm beta 20141120 bugster_de, Update 0014 CD
Hilft das?

Gruß Sebastian
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 08 Mai 2015, 22:57:05
Hallo,

Du verwendest die aktuelle Version aus Contrib in der ich aber vergessen habe das Logging zurückzusetzen. Ich habe die Datei korrigiert, du musst sie aber von Hand aus dem SVN herunterladen.

Alternativ kannst du mit
update 97_SB_SERVER https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txtauch die Datei von GitHub installieren die den Fehler nicht enthielt.

Danach solltest du FHEM neu starten.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: SL85 am 08 Mai 2015, 23:26:37
Hat funktioniert :)

Vielen Dank!!!

Gruß Sebastian
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: riconr1 am 10 Mai 2015, 11:45:47
Hi,

ich probiere jetzt schon einige Zeit herum. Es klappt soweit alles mit dem Modul. Echt große Klasse :) Danke

Eine Frage habe ich noch. Kann ich auch direkt ein Radiostream  von FHEM aus anstupsen?

Mein Player SB_Schlaf soll z.B. wenn er unter dem Notify Musik an eingeschalten wird, FFH TOP40 iTunes spielen.

Im Event Monitor wird diese Zeile ausgegeben:

SB_PLAYER SB_Schlaf favorites: FFH_iTunes_Top_40_Deutschland
leider bekomme ich das nicht in einen Befehl umgewandelt. Funktioniert das überhaupt?

MfG Rico
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 10 Mai 2015, 15:31:48
Hallo,

Mit dem Befehl
set SB_Schlaf favorites FFH_iTunes_Top_40_Deutschlandsollte der Favorit abgespielt werden.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: mike.d am 10 Mai 2015, 15:37:21
Vielen Dank für dieses echt hilfreiche Modul.
Im Moment bekomme ich aber in ca. 20sec Rhythmus Log-Einträge mit SB_SERVER_Write und SB_SERVER_Read. Das macht mein Logfile riesig und ziemlich unübersichtlich.

Ich hab bereits beim Server das Attribut verbose 0 gesetzt, aber das hat leider nichts geändert.
Kann mir jemand helfen!?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 10 Mai 2015, 15:55:12
mike.d   bist Du aktuell ?

siehe
Zitat
Antwort #703 am: 08 Mai 2015, 22:57:05 »
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: riconr1 am 10 Mai 2015, 16:26:16
Hallo ChrisD

Danke, das hat funktioniert.

Vielleicht nehmt Ihr das auf der ersten Seite mit auf :)

Danke

Gruß Rico
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: felix.steinbeis am 10 Mai 2015, 21:07:02
Hallo zusammen,

alle fünf Minuten wird bei mir im Log der Status meiner SB Radio abgespeichert, auch wenn diese aus ist.

Kann man das Intervall konfigurieren?

Danke und Gruß
Felix
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 10 Mai 2015, 21:28:01
Hallo,

Der Zustand der Player wird spätestens alle 5 Minuten abgefragt, diese Zeit ist fest und kann nicht geändert werden. Diese Aktualisierung ist vorhanden um sicherzustellen dass der Zustand in FHEM dem des Players entspricht falls Events vom LMS verlorengegangen wären.

Falls du mit 'im Log ... abgespeichert' Meldungen der Art
Zitat
2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 artist ?
2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 album ?
2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 title ?
2015.05.08 21:25:46 1: SB_SERVER_Write(LogiTechMediaServer): called with FN:00:00:00:00:00:01 playlist url ?
meinst, so kommen diese daher dass das verwendete Server-Modul einen Fehler enthält der zu viele Debug-Ausgaben generiert.

In dem Fall musst du 97_SB_SERVER.pm wie in Antwort 703 beschrieben aktualisieren.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: felix.steinbeis am 10 Mai 2015, 21:34:55
Hallo ChrisD,

Danke für die Info. Ich habe die neusten Versionen heute aus contrib geladen.

Ich meine die ganz normalen Log-Meldungen.

Vielleicht könnte man das 5-Minuten-Intervall über ein Attribut konfigurierbar machen.

Viele Grüße
Felix
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: mike.d am 10 Mai 2015, 23:35:34
@kvo1: danke, daran lag es. Hatte ich hart überlesen....  :D

mike.d   bist Du aktuell ?

siehe
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gravidi am 15 Mai 2015, 16:22:35
Hi all,

vielen Dank für das tolle Modul! Bisher funktioniert es super!

Eine Frage habe ich allerdings.

Wenn ich über die Fhem Commandline z.B.

set multiroomaudiogallery next

eingebe, spielt er den nächsten Track ab. Soweit so gut.

Allerdings aktualisiert sich das Reading currentTitle nicht automatisch. Erst nach einem vollen Page refresh.

Kann man das ändern, einstellen?

Das Problem ist, wenn ein set reinkommt wird auch mein Frontend nicht automatisch aktualisiert.

Vielen Dank!

Gruß

Grav
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 15 Mai 2015, 17:42:05
longpoll hast Du an ?

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gravidi am 15 Mai 2015, 18:55:21
In meinem FHEMWEB ist longpoll an, ja.

attr WEB longpoll 1

Bei anderen Modulen funktioniert das auch super, z.B. CUL.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 15 Mai 2015, 19:09:25
Hallo,

Eventuell steht das Attribut donotnotify beim Player auf true (default) oder existiert nicht. In beiden Fällen werden keine Events erzeugt und longpoll kann nichts aktualisieren.

Die Events kannst du mit
attr multiroomaudiogallery donotnotify falseeinschalten.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gravidi am 15 Mai 2015, 19:36:20
Hi CrisD,

vielen Dank! Das wars! Wenn sich jetzt noch mein Cover automatisch aktualisiert bin ich mit meinem multiroomaudio system fertig :)
Aber das liegt nicht an FHEM sondern am Visu. Aber das bekomm ich auch noch hin.

Wer das auch mal braucht:

attr multiroomaudiogallery donotnotify false / pollt alles

attr multiroomaudiogallery event-on-update-reading currentTitle,coverarturl,currentArtist / pollt nur das ausgewählte

Vielen Dank!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 15 Mai 2015, 22:39:09
Hallo,

@Felix: Ich habe das Attribut statusRequestInterval zu 98_SB_PLAYER (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm) hinzugefügt. Damit kannst du einstellen wie häufig der Status abgerufen wird. Der Wert ist in Sekunden, 0 schaltet die automatische Aktualisierung komplett ab (nicht unbedingt zu empfehlen).

Installieren kannst du es mit
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: siggi85 am 19 Mai 2015, 11:42:08
Ist das Modul eigentlich nicht langsam reif für das offizielle FHEM SVN? Also ich glaube es gibt keine Fehler im Modul, welche eine Veröffentlichung im Weg stehen würden. Oder gibt es noch offene Punkte welche ich noch nicht sehe? ggf. fehlende Dokumentationen?!
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 19 Mai 2015, 18:28:51
Hallo,

Die Dokumentation ist noch nicht vollständig, insbesondere einige der neuen oder geänderten Befehle und Attribute fehlen noch.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 19 Mai 2015, 22:24:32
Hi ChrisD,

dennoch ein super Modul , läuft tadellos , echt Klasse und nochmal Danke !

Klaus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 20 Mai 2015, 15:27:08
Langsam wird es Zeit, das alles mal zusammen zu fassen, findet ihr nicht auch?

Ich habe mir erlaubt, das mal zu beginnen
http://www.fhemwiki.de/wiki/Squeezebox_Modul


Btw., vielen Dank für das Modul. Muss mich jetzt mal in die TTS Sache reinarbeiten :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 20 Mai 2015, 16:39:05
Ich glaub ich hab nen Bug.
Nur: wo?

Server: LMS 7.9
Client:
SqueezePlayer auf Android 4.4.4
Mit Tasker beim Start automatisiert http://www.squeezeplayer.com/2013/05/start-squeezeplayer-on-startup/

Wenn ich nun einen Text ausgeben lasse, passiert nix.
(Talk, sayText)
Starte ich jetzt einen RadioStream (favourites), läuft der Stream wie erwartet.

Jetzt kommts:
Setze ich nun den Player auf stop, komen die ganzen Audioausgaben...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dieda am 20 Mai 2015, 20:33:23
Rince, den habe ich auch. Hatte dann rumprobiert und dann festgestellt, der Player muss im Play-Modus sein, dann kommt der Talk-Befehl und wenn es immer noch nix sagt wieder zurück in den Play-Modus. Beim Wiedereinschalten muss man dann nicht auf Play gehen, dann kommt die Ansage wieder sondern gleich die letzte Playliste oder seine Favoriten raussuchen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 20 Mai 2015, 21:54:55
 ???

Ok, das sollte noch irgendwie untersucht werden ;)

Danke dieda
Scheint aber nur am Tab zu passieren, oder?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 20 Mai 2015, 23:09:25
Hallo,

Ich habe den Fehler leider noch nicht reproduzieren können. SqueezePlayer für Android habe ich nicht zum Testen und es scheint auch nur eine Kaufversion davon zu geben.

Tritt der Fehler nur auf wenn der Player ausgeschaltet ist oder passiert es auch wenn er eingeschaltet und auf Stop ist ?

Könnt ihr beim betroffenen Player:
- das Attribut ttsOptions auf 'debug,debugsaverestore' setzen
- verbose auf 5 setzen
- talk ausführen
- Stream starten
- Stream stoppen
- warten bis talk beendet ist
- Auszug aus Logfile posten

@dieda: Welche Serverversion und welchen Player verwendest du ?

@Rince: Danke für den Wikieintrag, ich hoffe dass sich viele Mitschreiber finden.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 21 Mai 2015, 08:40:44
Sorry,
nachdem es gestern reproduzierbar nicht funktioniert hat, geht es jetzt.  ???

Tab Einschalten, warten.
(Der Player Status in fhem bleibt auf off)

Befehl lostreten
Geht...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 21 Mai 2015, 09:42:08
Darf ich noch was fragen?

Ich kann ein einzelnes File abspielen:
set cubie_SB_PLAYER playlist play file:///media/Fritte/Musik/Andi/AC_DC%20-%20Highway%20to%20Hell%20(Live%20at%20River%20Plate%202009).mp3
Ok.
Klappt soweit denke ich.

Leider wird dann der die Radiowiedergabe ausgeschaltet und kommt auch nicht wieder.


Wenn ich per TTS einen Text sprechen lasse, geht das. Radio geht aus, Text kommt, Radio geht weiter.


Ohne es getestet zu haben:
Ich denke, wenn man statt dem Radio eine andere Playlist laufen hat, ist es das gleiche?


Das ist in folgenden Fällen doof:
Wenn man einen Gong (virtuelle Wohnzimmeruhr) damit realisiert (ein Workaround wäre vielleicht, für die Audiowiedergabe auch einen TTS Aufruf mit den MP3s zu machen ;) )
Party => Playlist läuft, ein Lied wird gewünscht. Wirft die ganze Playlist raus...

Könnte man zu dem "playlist play" eine Art "playlist insert" machen?
Die bei einem Stream halt unterbricht (exakt wie bei TTS)
und bei einer Playlist das gewünschte Lied quasi einfügt?

PS:
Das mit den Playlists ist nicht so wichtig im Moment, meine Gäste sind aus dem "spiel das Lied"-Alter raus, aber meine Kinder kommen langsam rein ;)
Vor allem habe ich auch keine Ahnung, ob dann das aktuelle Lied abgebrochen oder erst zu Ende gespielt werden sollte...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 21 Mai 2015, 18:45:03
Hallo,

Bei talk/sayText wird versucht den Zustand des Players abzuspeichern, den Text auszugeben und anschließend den Zustand wieder herzustellen. Dabei spielt es keine Rolle ob ein Radiostream oder eine Playlist abgespielt wird.

Für deine Uhr kannst du die tts-Funktion verwenden, z.B.:
set cubie_SB_PLAYER talk |gong.mp3|
Das Gleiche kannst du auch verwenden um zwischendurch ein anderes Stück abzuspielen. Du musst aber im Moment aufpassen dass der angegebene Titel auch wirklich existiert, ansonten hängt die tts-Funktion (ähnlich wie bereits von dir und dieda beschrieben). Ich versuche im Moment die tts-Funktion etwas 'robuster' zu machen. Bei einem Hänger vom tts kannst du ihn mit dem Befehl
set cubie_SB_PLAYER resetTTSzurücksetzen.

Der LMS unterstützt das Einfügen eines Liedes in die Playlist. Es wird dann als nächstes Stück abgespielt, das aktuelle Stück wird dabei aber nicht unterbrochen. Der 'playlist'-Befehl unterstützt dies im Moment nicht. Bei Interesse kann ich es nachrüsten.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 21 Mai 2015, 19:32:47
Danke für die Rückmeldung.

Zitat
set cubie_SB_PLAYER talk |gong.mp3|
Das entspräche dann meinem Workaround :)

Zitat
set cubie_SB_PLAYER resetTTS
Hm,
habe mir dazu ein Notify gebaut, welches das automatisieren sollte...
Zitat
([cubie_SB_PLAYER:talkStatus] ne "idle") (set cubie_SB_PLAYER resetTTS)
Als attr dazu ein wait 30

Bei einem TTS ohne aktive Playlist bleibt das Rading auf etwas anderem. RestorePlaylist oder so hab ich grad nicht im Kopf.

Aber mein DOIF legt erst los, wenn ich einen Stream starte...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: dieda am 21 Mai 2015, 22:29:00
Hier die Infos zu meinem LMS
Zitat
Internals:
   ALIVECHECK ?
   CLICONNECTION ?
   CLIPORT    9090
   DEF        xxxxx:9090
   DeviceName xxxx:9090
   FD         73
   IP         xxxxx
   LASTANSWER prefset server checkVersionLastTime 1432227918.10428
   NAME       squeezeboxserver
   NR         714
   NTFY_ORDER 50-squeezeboxserver
   PARTIAL
   PASSWORD   ?
   RCCNAME    none
   STATE      opened
   TYPE       SB_SERVER
   USERNAME   ?
   WOLNAME    none
   Readings:
     2015-05-21 03:00:00   db_albums       52
     2015-05-21 03:00:00   db_artists      23
     2015-05-21 03:00:00   db_genres       20
     2015-05-21 03:00:00   db_songs        163
     2015-05-21 03:00:00   favoritesname   Favorites
     2015-05-21 03:00:00   favoritestotal  5
     2015-05-21 03:00:00   players         5
     2015-05-21 03:00:00   players_mysb    0
     2015-05-21 03:00:00   players_other   0
     2015-05-19 16:25:46   power           on
     2015-05-21 03:00:00   scan_last       12-10-2014 17:34:2
     2015-05-21 03:00:00   scandb          ?
     2015-05-21 03:00:00   scanlastfailed  none
     2015-05-21 03:00:00   scanning        no
     2015-05-21 03:00:00   scanprogressdone 0
     2015-05-21 03:00:00   scanprogresstotal 0
     2015-05-19 16:25:47   serversecure    0
     2015-05-21 03:00:00   serverversion   7.8.1
     2015-05-19 16:24:54   state           opened
Attributes:
   alivetimer 120
   doalivecheck false
   maxcmdstack 200
   maxfavorites 30
   room       Server

Angeschlossen sind derzeit:

2 Squeezebox-Radios
2 Apps auf Mobiltetelefonen
2 Raspi
1 FireTV-Stick

Ich habe das ganze auf dem Radio getestet.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: tomster am 26 Mai 2015, 23:39:38
Servus zusammen!

Irgendwie raucht mir grad der Kopf, und ich komme mit dem "sync"-Befehl nicht so recht weiter...

Ich habe 3 Player am Laufen (kueche,wohnzimmer,terrasse). Nun möchte ich dem gerade laufenden Player (kueche) wahlweise die Player wohnzimmer und terrasse "zu-syncen". Wenn ich die Beschreibung im ersten Threadposting richtig verstanden habe müsste der Befehl
set terrasse.SB_PLAYER sync kueche
das gewünschte Ergebnis bringen. Das geht aber nur "halb"...
Denn kaum habe ich den obigen Befehl abgesetzt, setzt der Player "kueche" den playStatus auf "stopped". Erst ein erneuter Start-Befehl an diesen lässt nun endlich beide Player spielen. Sollte "kueche" nicht eigentlich ganz normal weiterspielen und der 2. Player einfach hinzu-gesynct werden? Oder habe ich da etwas mißverstanden?
--edit--
Ist mir grad noch im Event Monitor aufgefallen:
2015-05-27 13:07:41 SB_PLAYER terrasse.SB_PLAYER synced: terrasse,kueche
2015-05-27 13:07:41 SB_SERVER SqueezeBoxServer UNKNOWNCODE SB_PLAYER:000000000000:status 0 500 tags:Kc
2015-05-27 13:07:41 SB_PLAYER Kueche.SB_PLAYER playStatus: stopped
2015-05-27 13:07:41 SB_PLAYER Kueche.SB_PLAYER synced: terrasse,kueche
Was bedeutet das UNKNOWNCODE?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 27 Mai 2015, 22:02:00
Hallo,

Der sync-Befehl funktioniert genau andersherum, beim Befehl
set playerA sync playerBwird playerB der Sync-Gruppe von playerA hinzugefügt.

Wenn in deinem Fall der Player kueche 'Master' sein soll müsstest du
set kueche sync terrasse.SB_PLAYERverwenden.

Der sync-Befehl überträgt den play/stop-Zustand des Master auf den neu hinzugefügten Player. Wenn der hinzugefügte Player aber ausgeschaltet ist, wird er nicht automatisch eingeschaltet.

Bei
Zitat
2015-05-27 13:07:41 SB_SERVER SqueezeBoxServer UNKNOWNCODE SB_PLAYER:000000000000:status 0 500 tags:Kc
hat der Server eine Nachricht für den Player mit der Mac-Adresse 00:00:00:00:00:00 zurückgeschickt die vom Player-Modul aber ignoriert wird. FHEM erzeugt daraufhin automatisch die Meldung mit UNKNOWNCODE da sich niemand um die Nachricht gekümmert hat.

Kannst du die MAC-Adressen deiner Player kontrollieren (Internal PLAYERMAC) ? Es darf bei keinem Player die Adresse 00:00:00:00:00:00 stehen und die Adressen müssen für alle Player unterschiedlich sein.

Grüße,

ChrisD

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: tomster am 28 Mai 2015, 00:59:43
Vielen Dank für die Aufklärung!

Ich hab zwar eh nur noch ein Auge offen, werd das aber morgen einmal abchecken.
Was mir nur bei der (vermeintlich) korrekten Syntax auffällt:
Dann würde aber wohl auch beim befehl "unsync" ALLES ge-unsynct werden und nicht nur 1 Player, oder?

Wäre die Logik andersrum nicht sinnvoller?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: joginet am 28 Mai 2015, 06:50:38
Zitat
Was mir nur bei der (vermeintlich) korrekten Syntax auffällt:
Dann würde aber wohl auch beim befehl "unsync" ALLES ge-unsynct werden und nicht nur 1 Player, oder?

Wäre die Logik andersrum nicht sinnvoller?

Moin Tomster,

beim unsync-Befehl ist es wieder andersrum:

set terrasse.SB_Player unsync kueche
trennt den Player "terrasse.SB_Player" vom Master "kueche"

Das kannst Du für jeden Player machen, der mit der Küche gesynct ist.

Gruß, Jochen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: tomster am 28 Mai 2015, 16:52:14
Ahhh, ok. Vielen Dank!
Das klingt zwar plausibel, macht's mir aber nicht unbedingt einfacher, die sync/unsync-Geschichte in's Tablet UI zu integrieren. Werd da wohl noch ein bissl Hirnschmalz drauf verwenden müssen...

Hat jemand auch eine Erklärung für das Stoppen des Masters beim sync?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: gravidi am 29 Mai 2015, 15:09:18
Moin tomster,

vielleicht hilft dir meine Lösung ansatzweise.

Ich nutze Smartvisu und habe mir mein Dashbaord als Multiroomaudiozentrale gebaut.

Neben Cover, Infos zum Track, Album, Künstler, Buttons für die Wiedergabe und Buttons für Playlisten habe ich jeweils einen Button pro Etage um diese als Player "heranzuholen" und zu syncen.

Normalerweise kannst du jeden Player mit jedem Player syncen. Das macht es schwierig auf der GUI zu händeln und die Mitbewohner kommen leicht durcheinander.

Bei mir hat sich herausgestellt das es einfacher ist einen zentralen Player zu haben wo alle Infos herkommen und die jeweiligen Playlisten ausgewählt werden. Diesen Player habe ich einfach als "Master" auf meinen Pi installiert und die restlichen Player syncen einfach alle mit diesem. Auf dem Pi läuft auch FHEM daher ist der eh immer an. Vorteil dabei ist natürlich auch das die GUI dann extrem einfacher zu entwickeln ist.

Grüße

Grav
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: joginet am 29 Mai 2015, 16:39:08
Moin zusammen,
ich hab's in meiner "GUI" (Floorplan) so gelöst:

http://forum.fhem.de/index.php/topic,33088.msg288020.html#msg288020 (http://forum.fhem.de/index.php/topic,33088.msg288020.html#msg288020)

Ist evt. ein bischen aufwändig mit den vielen dummys - aber so kann jeder Player auf Tastendruck mit jedem gesynct werden.
Hat sich in der Praxis bisher bestens bewährt...

Gruß, Jochen

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 02 Juni 2015, 08:13:29
Normalerweise kannst du jeden Player mit jedem Player syncen. Das macht es schwierig auf der GUI zu händeln und die Mitbewohner kommen leicht durcheinander.

Ich hatte auch mal versucht, mir etwas einfach bedienbares zu basteln, bin damals aber gescheitert bzw. hatte den Versuch erstmal beiseite gelegt. Durch den Beitrag

ich hab's in meiner "GUI" (Floorplan) so gelöst:

http://forum.fhem.de/index.php/topic,33088.msg288020.html#msg288020 (http://forum.fhem.de/index.php/topic,33088.msg288020.html#msg288020)

auf eine Idee gebrachte, habe ich mir eine meiner Meinung nach praktikable Lösung ohne Dummys gebaut, die ich hier kurz vorstellen möchte:

Meine Ausgangssituation:
Ich habe fünf SqueezePlayer in meinem FHEM: OG.ez.RA.Player, OG.ku.RA.Player, OG.ba.RA.Player, DG.sz.RA.Player, DG.wz.RA.Player

Vorbereitung:
Zunächst benötige ich in jedem SqueezePlayer fünf neue userReadings, die den SyncStatus mit den anderen Player enthalten (eigentlich jeweils nur vier, da der SyncStatus mit sich selbst nicht benötigt wird, aber so ist der Befehl einfacher):

attr .G\...\.RA.Player userReadings
OG.ez.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'OG.ez.RA.Player') != -1) {return 'synced'} else {return 'not synced'}},
OG.ku.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'OG.ku.RA.Player') != -1) {return 'synced'} else {return 'not synced'}},
OG.ba.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'OG.ba.RA.Player') != -1) {return 'synced'} else {return 'not synced'}},
DG.sz.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'DG.sz.RA.Player') != -1) {return 'synced'} else {return 'not synced'}},
DG.wz.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'DG.wz.RA.Player') != -1) {return 'synced'} else {return 'not synced'}}

Die "Schaltzentrale":
Für die Bedienung habe ich mir nun zunächst eine ReadingsGroup für alle Player gebaut - in Zukunft soll die Bedienung auf in jedem Raum möglich sein -> da wird dann jeweils nur eine Zeile der ReadingsGroup verwendet:

define Test.RG readingsGroup <>,<OG.ez.RA.Player>,<OG.ku.RA.Player>,<OG.ba.RA.Player>,<DG.sz.RA.Player>,<DG.wz.RA.Player>\
OG.ez.RA.Player:<OG.ez.RA.Player>,<>,!OG.ku.RA.Player,!OG.ba.RA.Player,!DG.sz.RA.Player,!DG.wz.RA.Player\
OG.ku.RA.Player:<OG.ku.RA.Player>,!OG.ez.RA.Player,<>,!OG.ba.RA.Player,!DG.sz.RA.Player,!DG.wz.RA.Player\
OG.ba.RA.Player:<OG.ba.RA.Player>,!OG.ez.RA.Player,!OG.ku.RA.Player,<>,!DG.sz.RA.Player,!DG.wz.RA.Player\
DG.sz.RA.Player:<DG.sz.RA.Player>,!OG.ez.RA.Player,!OG.ku.RA.Player,!OG.ba.RA.Player,<>,!DG.wz.RA.Player\
DG.wz.RA.Player:<DG.wz.RA.Player>,!OG.ez.RA.Player,!OG.ku.RA.Player,!OG.ba.RA.Player,!DG.sz.RA.Player,<>\

attr Test.RG commands { 'OG.ez.RA.Player.synced' => 'set $READING unsync $DEVICE', 'OG.ez.RA.Player.not synced' => 'set $DEVICE sync $READING', 'OG.ku.RA.Player.synced' => 'set $READING unsync $DEVICE', 'OG.ku.RA.Player.not synced' => 'set $DEVICE sync $READING', 'OG.ba.RA.Player.synced' => 'set $READING unsync $DEVICE', 'OG.ba.RA.Player.not synced' => 'set $DEVICE sync $READING', 'DG.sz.RA.Player.synced' => 'set $READING unsync $DEVICE', 'DG.sz.RA.Player.not synced' => 'set $DEVICE sync $READING', 'DG.wz.RA.Player.synced' => 'set $READING unsync $DEVICE', 'DG.wz.RA.Player.not synced' => 'set $DEVICE sync $READING' }
attr Test.RG nonames 1
attr Test.RG notime 1
attr Test.RG valueIcon { 'OG.ez.RA.Player.synced' => 'it_network', 'OG.ez.RA.Player.not synced' => 'it_television', 'OG.ku.RA.Player.synced' => 'it_network', 'OG.ku.RA.Player.not synced' => 'it_television', 'OG.ba.RA.Player.synced' => 'it_network', 'OG.ba.RA.Player.not synced' => 'it_television', 'DG.sz.RA.Player.synced' => 'it_network', 'DG.sz.RA.Player.not synced' => 'it_television', 'DG.wz.RA.Player.synced' => 'it_network', 'DG.wz.RA.Player.not synced' => 'it_television' }

Der Vorteil gegenüber der Dummy-Lösung, davon abgesehen, dass man nicht so viele Dummys braucht, ist, dass der Status per Longpoll aktualisiert wird. Das heißt, wenn ich einen Player in einem Raum synce, wird das im anderen auch angezeigt...

Anbei noch ein Screenshot, wie es aktuell aussieht.

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 02 Juni 2015, 08:50:23
Hallo Ronny,

sieht gut aus, danke das Du das hier vorstellst  ;) , muss ich mal testen ... bin ohnehin noch mitten in diesem Thema !

Der Vorteil der anderen Lösung (von Jochen) ist, daß man die Player auch noch steuern kann (Lautstärke , Playlists etc) !

Wie hast du das gelöst ?

Gruss klaus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 02 Juni 2015, 19:17:10
Der Vorteil der anderen Lösung (von Jochen) ist, daß man die Player auch noch steuern kann (Lautstärke , Playlists etc) !

Wie hast du das gelöst ?

Da es sich um eine ReadingsGroup handelt, kann diese nahezu beliebig erweitert werden. Ich habe mit zum Beispiel eine Readingsgroup für jeden Plaver gebaut und diese im jeweiligen Raum plaziert - diese habe ich nun um Buttons zur Synchronisation erweitert -> siehe Anhang...

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 02 Juni 2015, 20:00:36
Phuuuu wie schick ist das denn  :D

Zitat
Ich habe mit zum Beispiel eine Readingsgroup für jeden Plaver gebaut und diese im jeweiligen Raum plaziert - diese habe ich nun um Buttons zur Synchronisation erweitert -> siehe Anhang...

Würdest Du eine eine Readingsgroup  beispielhaft hier posten...... das steigert den WAF ganz enorm  ;) ;D

klaus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: joginet am 02 Juni 2015, 20:44:15
Da schliesse ich mich an - echt cool - Respekt !
Besonders der Volume-Slider gefällt mir - ist das die Tablet-UI ?

Gruß, Jochen
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 02 Juni 2015, 20:48:58
Irgendwie will das mit dem Anlegen der Userreadings nicht klappen.

attr .G\...\.RA.Player userReadings
OG.ez.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'OG.ez.RA.Player') != -1) {return 'synced'} else {return 'not synced'}},
OG.ku.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'OG.ku.RA.Player') != -1) {return 'synced'} else {return 'not synced'}},
OG.ba.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'OG.ba.RA.Player') != -1) {return 'synced'} else {return 'not synced'}},
DG.sz.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'DG.sz.RA.Player') != -1) {return 'synced'} else {return 'not synced'}},
DG.wz.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'DG.wz.RA.Player') != -1) {return 'synced'} else {return 'not synced'}}

wie würden diese aussehen ?

kvo1
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 02 Juni 2015, 20:50:04
Wie heißen denn deine Player?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 02 Juni 2015, 20:53:43
Wie heißen denn deine Player?

squeeze_pi2
squeeze_pi3
squeeze_Galaxy
squeeze_Denver
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 02 Juni 2015, 20:59:33
Dann musst du die Namen aus dem Statement entsprechend anpassen: aus .G\... usw. müsste zum Beispiel squeeze_.* werden. Und dann müssten meine Namen (z.B. OG.ku.RA.Player) noch durch deine entsprechenden Namen ersetzt werden...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 02 Juni 2015, 21:20:37
so das passt schon mal .... (hoffe ich)

attr squeeze_.* userReadings
squeeze_pi2:synced {if (index(ReadingsVal($name,'synced',''), 'squeeze_pi2') != -1) {return 'synced'} else {return 'not synced'}},
squeeze_pi3:synced {if (index(ReadingsVal($name,'synced',''), 'squeeze_pi3') != -1) {return 'synced'} else {return 'not synced'}},
squeeze_Galaxy:synced {if (index(ReadingsVal($name,'synced',''), 'squeeze_Galaxy') != -1) {return 'synced'} else {return 'not synced'}},
squeeze_Denver:synced {if (index(ReadingsVal($name,'synced',''), 'squeeze_Denver') != -1) {return 'synced'} else {return 'not synced'}}

jetzt habe ich noch ein Problem mit der RG ... hier mit den commands und der Anzeige der ICONS

klaus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 02 Juni 2015, 22:20:05
In das Eingabefeld von fhem
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 02 Juni 2015, 23:17:41
Hallo Ronny,

In das Eingabefeld von fhem

habe ich ja gemacht, aber es werden keine Readings angelegt. E müßten doch bei jedem

Player die Readings

squeeze_pi2:synced
squeeze_pi3:synced
squeeze_Galaxy:synced
squeeze_Denver:synced

zu sehen sein, oder ?


ein Attribute "userReadings" wird angelegt mit folgenden Inhalt:

squeeze_pi2:synced {if (index(ReadingsVal($name,'synced',''), 'squeeze_pi2') != -1) {return 'synced'} else {return 'not synced'}}, squeeze_pi3:synced {if (index(ReadingsVal($name,'synced',''), 'squeeze_pi3') != -1) {return 'synced'} else {return 'not synced'}}, squeeze_Galaxy:synced {if (index(ReadingsVal($name,'synced',''), 'squeeze_Galaxy') != -1) {return 'synced'} else {return 'not synced'}}, squeeze_Denver:synced {if (index(ReadingsVal($name,'synced',''), 'squeeze_Denver') != -1) {return 'synced'} else {return 'not synced'}}


Wie schaut das den bei Dir aus ?

gruss klaus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: tomster am 03 Juni 2015, 00:06:07
Haben Deine Player die gleichen Namen wie in FHEM?

Sonst geht es auch so:
<Name des Players in FHEM>:synced {if (index(ReadingsVal($name,'synced',''), '<Name des Players>') != -1) {return 'synced'} else {return 'not synced'}}
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 03 Juni 2015, 05:46:15
Die Readings werden erst angelegt, wenn sich das Reading synced ändert.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 03 Juni 2015, 07:17:36
Haben Deine Player die gleichen Namen wie in FHEM?

Sonst geht es auch so:
<Name des Players in FHEM>:synced {if (index(ReadingsVal($name,'synced',''), '<Name des Players>') != -1) {return 'synced'} else {return 'not synced'}}

genau so hab ich das ja angeben, siehe Beitrag darüber ....

<Name des Players in FHEM>    ==>    squeeze_pi2

squeeze_pi2:synced {if (index(ReadingsVal($name,'synced',''), 'squeeze_pi2') != -1) {return 'synced'} else {return 'not synced'}}
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 03 Juni 2015, 07:21:13
Hi Ronny,
danke für Deine Geduld....

Die Readings werden erst angelegt, wenn sich das Reading synced ändert.

hmmm... dann müßte es doch vorhanden sein wenn ich z.B.   squeeze_pi2 mit squeeze_pi3  synce ?

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 03 Juni 2015, 07:40:40
hmmm... dann müßte es doch vorhanden sein wenn ich z.B.   squeeze_pi2 mit squeeze_pi3  synce ?

Ja, dadurch sollte sich das Reading synced ändern und damit auch das neue Reading angelegt werden. Hast du vielleicht das Attribut donotnotify auf true?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: tomster am 03 Juni 2015, 09:10:56
genau so hab ich das ja angeben, siehe Beitrag darüber ....

<Name des Players in FHEM>    ==>    squeeze_pi2

squeeze_pi2:synced {if (index(ReadingsVal($name,'synced',''), 'squeeze_pi2') != -1) {return 'synced'} else {return 'not synced'}}

Das habe ich gesehen. Meine Frage ging aber in die Richtung, ob die Player auch wirklich so heissen. In meinem Fall sind die Player in der Squeezebox-Umgebung anders als in FHEM "getauft". Darum schaut's eben so aus:
Wohnzimmer.SB_PLAYER:synced {if (index(ReadingsVal($name,'synced',''), 'Wohnzimmer') != -1) {return 'synced'} else {return 'not synced'}},
Werkstatt.SB_PLAYER:synced {if (index(ReadingsVal($name,'synced',''), 'LMS') != -1) {return 'synced'} else {return 'not synced'}}

Was vielleicht eine Verzögerung bringen könnte ist das attr donotnotify in den Playern. Setze das Mal testweise auf "false". <-- Hat ja RoBra81 schon geschrieben, hab's wohl vorhin überlesen...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 03 Juni 2015, 16:03:07
Zitat
Was vielleicht eine Verzögerung bringen könnte ist das attr donotnotify in den Playern. Setze das Mal testweise auf "false". <-- Hat ja RoBra81 schon geschrieben, hab's wohl vorhin überlesen...

bei allen 4 Playern habe ich  donotnotify auf "false" , das ist ja per Default ohnehin eingestellt !

ALso wird nur ein Notity erzeugt wenn sich state (on/off) ändert !

Vielleicht muss ich mein ...

event-on-change-reading    currentTitle,currentArtist,state,playlistCurrentTrack,playlistTracks erweitern ?


Wenn mal jemand sein Attributes und Readings posten könnte , wäre mir schon geholfen !
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 03 Juni 2015, 16:06:59
Probier's doch einfach mal, wenn du dein event-on-changed-reading um synced erweiterst...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 03 Juni 2015, 19:30:08
Hallo Ronny

Probier's doch einfach mal, wenn du dein event-on-changed-reading um synced erweiterst...

jep....... das war´s , zumindest habe ich jetzt die readingsGroup ! Nur die commands tun noch nicht , mal sehen
woran das liegt.

Noch eine andere Frage:
müßte ich nicht bei den Internals unter

SYNCMASTERS  alle anderen Player sehen ? Ich sehe hier einen oder zwei !


//EDIT
Kaum macht man es richtig, schon geht es auch.
1. Fehler      Einer der Player hatte intern doch einen falschen / anderen Namen ...@ tomster: Danke für den Tipp
2. Fehler      die commmands waren als mapping eingetragen (vermutlich beim copy/paste passiert)
3. Fehler      s.o. synced fehlte in den  event-on-changed-reading

RoBra81:
Magst Du uns ein Beispiel für die RG der einzelnen Räume posten ?? (versuche auch wenig Probleme zu machen  ;) ;D )

klaus


Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 04 Juni 2015, 13:15:31
RoBra81:
Magst Du uns ein Beispiel für die RG der einzelnen Räume posten ?? (versuche auch wenig Probleme zu machen  ;) ;D )

Kann ich gerne tun. Zunächst braucht man noch ein paar zusätzliche UserReadings beim Player:

attr OG.ez.RA.Player userReadings OG.ez.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'OG.ez.RA.Player') != -1) {return 'synced'} else {return 'not synced'}}, OG.ku.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'OG.ku.RA.Player') != -1) {return 'synced'} else {return 'not synced'}}, OG.ba.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'OG.ba.RA.Player') != -1) {return 'synced'} else {return 'not synced'}}, DG.sz.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'DG.sz.RA.Player') != -1) {return 'synced'} else {return 'not synced'}}, DG.wz.RA.Player:synced {if (index(ReadingsVal($name,'synced',''), 'DG.wz.RA.Player') != -1) {return 'synced'} else {return 'not synced'}}, iconFWD:playlistTracks {if (ReadingsVal($name,'playlistTracks',0) <= 1) {return 'none'} else {return 'FWD'}}, iconBWD:playlistTracks {if (ReadingsVal($name,'playlistTracks',0) <= 1) {return 'none'} else {return 'BWD'}}, iconPlay {if (ReadingsVal($name,'playlistTracks',0) == 0) {return 'none'} else {if (ReadingsVal($name,'playStatus','') eq 'stopped' or ReadingsVal($name,'playStatus','') eq 'paused') {return 'PLAY'} else {return 'PAUSE'}}}, coverarturl_remote:coverarturl {my $temp = ReadingsVal($name,'coverarturl','');; $temp =~ s/127.0.0.1/192.168.18.10/g;; $temp =~ s/%20//g;; return $temp}

Das sind zum einen die bereits bekannten Readings für das Syncen. Außerdem habe ich die Readings für die Icons. Das Reading coverarturl_remote habe ich eingefügt, da zum einen im Reading coverarturl immer die localhost-IP drin steht, da mein LMS auf dem gleichen Rechner wie FHEM läuft und zum anderen muss ich ein zusätzliches Leerzeichen in der URL entfernen was vom Stream von RadioLausitz kommt. Da ich auch oft Radio EINS höre, muss ich irgendwann mal dafür auch noch eine Anpassung machen, da in dessem Stream nur eine relative Adresse drin steht...

Außerdem brauche ich für die Readingsgroup noch eine Funktion in der 99_myUtils:

sub
wrapLine($$)
{
  my ($string, $maxLength) = @_;
  my @stringParts = split(/ /, $string);
  my $actRowLength = 0;
  my $resultString;
  while (scalar(@stringParts) > 0) {
  my $tempString = shift @stringParts;
    if ($actRowLength > 0)
    {
    if (($actRowLength + length($tempString)) > $maxLength)
      {
      $actRowLength = 0;
        $resultString .= '<br>';
      }
    }
    $resultString .= $tempString;
    $actRowLength += length($tempString);
    if (scalar(@stringParts) > 0)
    {
    $resultString .= ' ';
    $actRowLength += 1;
    }
  }
  if ($resultString eq '')
  {
  return ' ';
  }
  else
  {
  return $resultString;
  }
}

Diese Funktion bricht Künstler und Titel auf mehrere Zeilen definierter Länge, da ich es nicht mag, wenn die ReadingsGroup immer ihre Breite ändert...

Hier nun die Readingsgroup:

define OG.ez.RA.Player.RG.Control readingsGroup OG.ez.RA.Player:volume\
OG.ez.RA.Player:!shuffle,!repeat,<>,<>\
OG.ez.RA.Player:!iconBWD,!iconPlay,!iconStop,!iconFWD\
OG.ez.RA.Player:!VolumeDown,!VolumeMute,!VolumeUp\
OG.ez.RA.Player:!Playlistauswahl\
OG.ez.RA.Player:playlists\
OG.ez.RA.Player:!Zufall\
OG.ez.RA.Player:!Synchronisieren\
OG.ez.RA.Player:!OG.ku.RA.Player,!OG.ba.RA.Player,!DG.sz.RA.Player,!DG.wz.RA.Player\
OG.ez.RA.Player:currentArtist\
OG.ez.RA.Player:currentTitle\
OG.ez.RA.Player:coverarturl_remote\

attr OG.ez.RA.Player.RG.Control commands {'VolumeMute' => 'set $DEVICE volume 0', 'iconStop' => 'set $DEVICE clearPlaylist', 'iconPlay.PLAY' => 'set $DEVICE play', 'iconPlay.PAUSE' => 'set $DEVICE pause', 'VolumeDown' => 'set %DEVICE volumeDown', 'VolumeUp' => 'set %DEVICE volumeUp', 'iconFWD.FWD' => 'set $DEVICE next', 'iconBWD.BWD' => 'set $DEVICE prev', 'playlists' => 'playlists:', 'shuffle.off' => 'set $DEVICE shuffle on', 'shuffle.song' => 'set $DEVICE shuffle off', 'repeat.off' => 'set $DEVICE repeat one', 'repeat.one' => 'set $DEVICE repeat all', 'repeat.all' => 'set $DEVICE repeat off', 'OG.ez.RA.Player.synced' => 'set $READING unsync $DEVICE', 'OG.ez.RA.Player.not synced' => 'set $DEVICE sync $READING', 'OG.ku.RA.Player.synced' => 'set $READING unsync $DEVICE', 'OG.ku.RA.Player.not synced' => 'set $DEVICE sync $READING', 'OG.ba.RA.Player.synced' => 'set $READING unsync $DEVICE', 'OG.ba.RA.Player.not synced' => 'set $DEVICE sync $READING', 'DG.sz.RA.Player.synced' => 'set $READING unsync $DEVICE', 'DG.sz.RA.Player.not synced' => 'set $DEVICE sync $READING', 'DG.wz.RA.Player.synced' => 'set $READING unsync $DEVICE', 'DG.wz.RA.Player.not synced' => 'set $DEVICE sync $READING', 'Zufall' => 'set $DEVICE favorites Zufaellige_Titel', 'volume' => 'volume:knob,min:0,max:100,width:180,height:150,fgColor:yellow,skin:tron,thickness:0.3,angleoffset:-125,anglearc:250' }
attr OG.ez.RA.Player.RG.Control nameStyle style="font-weight:bold;; color:yellow;;"
attr OG.ez.RA.Player.RG.Control noheading 1
attr OG.ez.RA.Player.RG.Control nonames 1
attr OG.ez.RA.Player.RG.Control notime 1
attr OG.ez.RA.Player.RG.Control style style="padding:5px;; text-align:center;; background:rgba(0, 0, 0, .4);; border:1px solid;; border-color:gray;;"
attr OG.ez.RA.Player.RG.Control valueColumns { 'playlists' => 'colspan="4"', 'Zufall' => 'colspan="4"', 'FavoritsList' => 'colspan="4"', 'currentArtist' => 'colspan="4"', 'currentTitle' => 'colspan="4"', 'VolumeMute' => 'colspan="2"', 'volume' => 'colspan="4"', 'coverarturl_remote' => 'colspan="4"', 'Synchronisieren' => 'colspan="4"', 'Playlistauswahl' => 'colspan="4"' }
attr OG.ez.RA.Player.RG.Control valueFormat { return wrapLine((join " ", map {ucfirst} split / /, lc $VALUE),25) if (($READING eq 'currentArtist') || ($READING eq 'currentTitle'));; return 0 if ($value eq 'muted');; }
attr OG.ez.RA.Player.RG.Control valueIcon { 'Zufall' => 'unknown.svg@lightgray', 'iconBWD.none' => 'rc_PREVIOUS@DarkSlateGray', 'iconFWD.none' => 'rc_NEXT@DarkSlateGray', 'iconBWD.BWD' => 'rc_PREVIOUS@lightgray', 'iconFWD.FWD' => 'rc_NEXT@lightgray', 'iconStop' => 'rc_STOP@lightgray', 'iconPlay.PLAY' => 'rc_PLAY@lightgray', 'iconPlay.PAUSE' => 'rc_PAUSE@lightgray', 'iconPlay.none' => 'rc_PLAY@DarkSlateGray', 'Close' => 'control_x@lightgray', 'VolumeUp' => 'rc_VOLPLUS@lightgray', 'VolumeDown' => 'rc_VOLMINUS@lightgray', 'VolumeMute' => 'rc_MUTE@lightgray', 'Details' => 'audio_sound@lightgray', 'shuffle.off' => 'audio_shuffle@DarkSlateGray', 'shuffle.song' => 'audio_shuffle@lightgray', 'repeat.off' => 'audio_repeat@DarkSlateGray', 'repeat.one' => 'audio_repeat_one@lightgray', 'repeat.all' => 'audio_repeat@lightgray', 'OG.ez.RA.Player.synced' => 'scene_dinner@lightgray', 'OG.ez.RA.Player.not synced' => 'scene_dinner@DarkSlateGray', 'OG.ku.RA.Player.synced' => 'scene_cooking@lightgray', 'OG.ku.RA.Player.not synced' => 'scene_cooking@DarkSlateGray', 'OG.ba.RA.Player.synced' => 'scene_bathroom@lightgray', 'OG.ba.RA.Player.not synced' => 'scene_bathroom@DarkSlateGray', 'DG.sz.RA.Player.synced' => 'scene_sleeping_alternat@lightgray', 'DG.sz.RA.Player.not synced' => 'scene_sleeping_alternat@DarkSlateGray', 'DG.wz.RA.Player.synced' => 'scene_livingroom@lightgray', 'DG.wz.RA.Player.not synced' => 'scene_livingroom@DarkSlateGray' }
attr OG.ez.RA.Player.RG.Control valuePrefix { 'coverarturl_remote' => '<img src="' }
attr OG.ez.RA.Player.RG.Control valueStyle { 'Synchronisieren' => 'style="text-align:center;;font-weight:bold;;color:yellow;;"', 'Playlistauswahl' => 'style="text-align:center;;font-weight:bold;;color:yellow;;"' }
attr OG.ez.RA.Player.RG.Control valueSuffix { 'coverarturl_remote' => '" width="180" onError="this.src=\'http://192.168.18.10:8085/fhem/images/default/cover_200x200.png\';;" >' }

Viel Erfolg damit.

Bei Bedarf versuche ich natürlich gern zu helfen.

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 04 Juni 2015, 13:56:20
Ich habe gerade mal noch auf die Schnelle eine Version gebaut, die alle Player bedienen kann:

define XX.xx.RG.Player.Control readingsGroup OG.ez.RA.Player:!Esszimmer,playlists,!Zufall,!shuffle,!repeat,<>,<>,!OG.ku.RA.Player,!OG.ba.RA.Player,!DG.sz.RA.Player,!DG.wz.RA.Player\
OG.ez.RA.Player:volume,!iconBWD,!iconPlay,!iconStop,!iconFWD\
OG.ku.RA.Player:!Küche,playlists,!Zufall,!shuffle,!repeat,<>,!OG.ez.RA.Player,<>,!OG.ba.RA.Player,!DG.sz.RA.Player,!DG.wz.RA.Player\
OG.ku.RA.Player:volume,!iconBWD,!iconPlay,!iconStop,!iconFWD\
OG.ba.RA.Player:!Bad,playlists,!Zufall,!shuffle,!repeat,<>,!OG.ez.RA.Player,!OG.ku.RA.Player,<>,!DG.sz.RA.Player,!DG.wz.RA.Player\
OG.ba.RA.Player:volume,!iconBWD,!iconPlay,!iconStop,!iconFWD\
DG.sz.RA.Player:!Schlafzimmer,playlists,!Zufall,!shuffle,!repeat,<>,!OG.ez.RA.Player,!OG.ku.RA.Player,!OG.ba.RA.Player,<>,!DG.wz.RA.Player\
DG.sz.RA.Player:volume,!iconBWD,!iconPlay,!iconStop,!iconFWD\
DG.wz.RA.Player:!Wohnzimmer,playlists,!Zufall,!shuffle,!repeat,<>,!OG.ez.RA.Player,!OG.ku.RA.Player,!OG.ba.RA.Player,!DG.sz.RA.Player,<>\
DG.wz.RA.Player:volume,!iconBWD,!iconPlay,!iconStop,!iconFWD\

attr XX.xx.RG.Player.Control commands { 'VolumeMute' => 'set $DEVICE volume 0', 'iconStop' => 'set $DEVICE clearPlaylist', 'iconPlay.PLAY' => 'set $DEVICE play', 'iconPlay.PAUSE' => 'set $DEVICE pause', 'VolumeDown' => 'set %DEVICE volumeDown', 'VolumeUp' => 'set %DEVICE volumeUp', 'iconFWD.FWD' => 'set $DEVICE next', 'iconBWD.BWD' => 'set $DEVICE prev', 'playlists' => 'playlists:', 'shuffle.off' => 'set $DEVICE shuffle on', 'shuffle.song' => 'set $DEVICE shuffle off', 'repeat.off' => 'set $DEVICE repeat one', 'repeat.one' => 'set $DEVICE repeat all', 'repeat.all' => 'set $DEVICE repeat off', 'OG.ez.RA.Player.synced' => 'set $READING unsync $DEVICE', 'OG.ez.RA.Player.not synced' => 'set $DEVICE sync $READING', 'OG.ku.RA.Player.synced' => 'set $READING unsync $DEVICE', 'OG.ku.RA.Player.not synced' => 'set $DEVICE sync $READING', 'OG.ba.RA.Player.synced' => 'set $READING unsync $DEVICE', 'OG.ba.RA.Player.not synced' => 'set $DEVICE sync $READING', 'DG.sz.RA.Player.synced' => 'set $READING unsync $DEVICE', 'DG.sz.RA.Player.not synced' => 'set $DEVICE sync $READING', 'DG.wz.RA.Player.synced' => 'set $READING unsync $DEVICE', 'DG.wz.RA.Player.not synced' => 'set $DEVICE sync $READING', 'Zufall' => 'set $DEVICE favorites Zufaellige_Titel', 'volume' => 'volume:slider,0,1,100' }
attr XX.xx.RG.Player.Control noheading 1
attr XX.xx.RG.Player.Control nonames 1
attr XX.xx.RG.Player.Control notime 1
attr XX.xx.RG.Player.Control style style="padding:5px;; text-align:center;; background:rgba(0, 0, 0, .4);; border:1px solid;; border-color:gray;;"
attr XX.xx.RG.Player.Control valueColumns { 'Esszimmer' => 'rowspan="2"', 'Küche' => 'rowspan="2"', 'Bad' => 'rowspan="2"', 'Wohnzimmer' => 'rowspan="2"', 'Schlafzimmer' => 'rowspan="2"', 'OG.ez.RA.Player' => 'rowspan="2"', 'OG.ku.RA.Player' => 'rowspan="2"', 'OG.ba.RA.Player' => 'rowspan="2"', 'DG.sz.RA.Player' => 'rowspan="2"', 'DG.wz.RA.Player' => 'rowspan="2"' }
attr XX.xx.RG.Player.Control valueIcon { 'Zufall' => 'unknown.svg@lightgray', 'iconBWD.none' => 'rc_PREVIOUS@DarkSlateGray', 'iconFWD.none' => 'rc_NEXT@DarkSlateGray', 'iconBWD.BWD' => 'rc_PREVIOUS@lightgray', 'iconFWD.FWD' => 'rc_NEXT@lightgray', 'iconStop' => 'rc_STOP@lightgray', 'iconPlay.PLAY' => 'rc_PLAY@lightgray', 'iconPlay.PAUSE' => 'rc_PAUSE@lightgray', 'iconPlay.none' => 'rc_PLAY@DarkSlateGray', 'Close' => 'control_x@lightgray', 'VolumeUp' => 'rc_VOLPLUS@lightgray', 'VolumeDown' => 'rc_VOLMINUS@lightgray', 'VolumeMute' => 'rc_MUTE@lightgray', 'Details' => 'audio_sound@lightgray', 'shuffle.off' => 'audio_shuffle@DarkSlateGray', 'shuffle.song' => 'audio_shuffle@lightgray', 'repeat.off' => 'audio_repeat@DarkSlateGray', 'repeat.one' => 'audio_repeat_one@lightgray', 'repeat.all' => 'audio_repeat@lightgray', 'OG.ez.RA.Player.synced' => 'scene_dinner@lightgray', 'OG.ez.RA.Player.not synced' => 'scene_dinner@DarkSlateGray', 'OG.ku.RA.Player.synced' => 'scene_cooking@lightgray', 'OG.ku.RA.Player.not synced' => 'scene_cooking@DarkSlateGray', 'OG.ba.RA.Player.synced' => 'scene_bathroom@lightgray', 'OG.ba.RA.Player.not synced' => 'scene_bathroom@DarkSlateGray', 'DG.sz.RA.Player.synced' => 'scene_sleeping_alternat@lightgray', 'DG.sz.RA.Player.not synced' => 'scene_sleeping_alternat@DarkSlateGray', 'DG.wz.RA.Player.synced' => 'scene_livingroom@lightgray', 'DG.wz.RA.Player.not synced' => 'scene_livingroom@DarkSlateGray' }

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 05 Juni 2015, 01:08:04
das hat mir dann doch keine Ruhe gelassen  ;D
und ich muß sagen....einfach Genial ! nur das Cover will noch nicht .....
scheint wohl an meine IP´s und der fehlenden cover_200x200.png  zu liegen..


klaus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 05 Juni 2015, 21:39:43
Hallo,

Ich habe eine neue Version (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm) des Player-Modules erstellt.

Änderungen:
- Timeouts für TTS hinzugefügt
- mit TTS warten bis Player eingeschaltet ist

@Rince, @Dieda: könnt ihr testen ob damit die TTS-Probleme behoben sind ?

- mp3s im TTS dürfen Leerzeichen enthalten
- set-Befehle ignorieren wenn Player nicht vorhanden ist
- 'playlist add' und 'playlist insert' hinzugefügt
- 'playlist genre:xxx album:yyy artist:zzz' reaktiviert
- bei sync nach FHEM-Gerätenamen suchen wenn Playername nicht gefunden wird (für diejenigen die ihre Player umbenannt haben)
    Beispiel: Namen im LMS: playerA und playerB, Namen in FHEM: SB.pl.A und SB.pl.B, bisher musste zum Syncen
set SB.pl.A sync playerBverwendet werden, jetzt ist zusätzlich auch
set SB.pl.A sync SB.pl.Bmöglich

- asSlave bei sync hinzugefügt, damit kann die Reihenfolge (wer ist Master und wer ist Slave) umgedreht werden
set SB.pl.A sync SB.pl.Bfügt SB.pl.B zur Gruppe von SB.pl.A hinzu (wie bisher)
set SB.pl.A sync SB.pl.B asSlavefügt SB.pl.A zur Gruppe von SB.pl.B hinzu

- Dokumentation ergänzt

Zum Aktualisieren kann wie üblich
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txtbenutzt werden.

Noch ein Hinweis zum unsync: Es ist nicht nötig nach dem unsync einen Playernamen mit anzugeben,
set SB.pl.B unsync SB.pl.Aist das Gleiche wie
set SB.pl.B unsync
Der Player SB.pl.B wird in beiden Fällen aus der Gruppe entfernt und gestoppt.

@tomster:
Zitat
Hat jemand auch eine Erklärung für das Stoppen des Masters beim sync?

Ich denke nicht dass der Master gestoppt wurde. Wenn ich deinen Versuch richtig verstanden habe lief der Player 'kueche' und du wolltest den Player 'terrasse' der gestoppt oder aus war dazusyncen. Durch den Befehl
set terrasse.SB_PLAYER sync kuechewurde aber terrasse zum Master und kueche hat dessen Zustand (gestoppt) übernommen.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 06 Juni 2015, 22:29:48
Hallo,

Beim Versuch das UI von Ronny (vielen Dank dafür) nachzubauen sind mir noch verschiedene Fehler im Modul aufgefallen die dazu führen dass die Aktualisierung von diversen Zuständen nicht oder verspätet erfolgt. In der Version 0039 (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm) von 98_SB_PLAYER sollte dies behoben sein.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 08 Juni 2015, 13:15:03
Zitat
@Rince, @Dieda: könnt ihr testen ob damit die TTS-Probleme behoben sind ?

Sorry, war im Urlaub :)

Ich habe heute früh ein Update deiner Module gefahren und schau es mir mal an.


(Hatte mit der alten Version noch 2 Probleme, vielleicht sind die jetzt weg; Favoriten gingen nicht, obwohl tts idle (Lösung: resetTTS), Player Status "off" obwohl Player definitv an und auch am LMS sichtbar (Lösung: reload???))
Wird aber 2-3 Tage dauern, bis ich dir bescheid geben kann.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 08 Juni 2015, 20:57:56
Hallo ChrisD;

Hallo,

Beim Versuch das UI von Ronny (vielen Dank dafür) nachzubauen sind mir noch verschiedene Fehler im Modul aufgefallen die dazu führen dass die Aktualisierung von diversen Zuständen nicht oder verspätet erfolgt. In der Version 0039 (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm) von 98_SB_PLAYER sollte dies behoben sein.

Grüße,

ChrisD

mir ist zwar hier nicht wirklich etwas aufgefallen, aber dennoch danke , hab das Modul mal aktualisiert !

Klaus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 09 Juni 2015, 20:17:34
Hallo Ronny,

ich habe folgende Meldung in  aus meiner  99_myUtils:


Zitat
2015.06.09 09:54:12 1: PERL WARNING: Use of uninitialized value $resultString in string eq at ./FHEM/99_myUtils.pm line 55.

Zeile 55 kommt der SUB     "wrapLine"      if ($resultString eq '')

LG
Klaus
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 09 Juni 2015, 20:24:03
Probier's mal damit:

sub
wrapLine($$)
{
  my ($string, $maxLength) = @_;
  $string = decode_entities($string);
my @stringParts = split(/ /, $string);
  my $actRowLength = 0;
  my $resultString = '';
  while (scalar(@stringParts) > 0) {
  my $tempString = shift @stringParts;
    if ($actRowLength > 0)
    {
    if (($actRowLength + length($tempString)) > $maxLength)
      {
      $actRowLength = 0;
        $resultString .= '<br>';
      }
    }
    $resultString .= $tempString;
    $actRowLength += length($tempString);
    if (scalar(@stringParts) > 0)
    {
    $resultString .= ' ';
    $actRowLength += 1;
    }
  }
  if ($resultString eq '')
  {
  return ' ';
  }
  else
  {
  return $resultString;
  }
}
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 09 Juni 2015, 20:50:59
jetzt kommt

Zitat
2015.06.09 20:47:04 2: Undefined subroutine &main::decode_entities called at ./FHEM/99_myUtils.pm line 33.

also hier  =>  $string = decode_entities($string);

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 09 Juni 2015, 20:54:09
jetzt kommt

also hier  =>  $string = decode_entities($string);

Sorry, die Zeile habe ich der Einfachheit halber damals rausgelassen, da man noch ein use braucht:

use HTML::Entities;

Also entweder die Zeile löschen oder das use hinzufügen...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: kvo1 am 09 Juni 2015, 21:14:19
Sorry, die Zeile habe ich der Einfachheit halber damals rausgelassen, da man noch ein use braucht:

use HTML::Entities;

Also entweder die Zeile löschen oder das use hinzufügen...

Hmmmm, vielleicht sollte ich mich doch mal mit html beschäftigen ?

Wohin kommt das genau ? in Deine SUB ?


oder am Anfang der 99_myUtils.pm??

also so....


package main;

use strict;
use warnings;
use POSIX;
use HTML::Entities;


sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}


sorry , schon klar sind Basic´s
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 09 Juni 2015, 21:15:34
Genau so
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 10 Juni 2015, 10:57:51
Erstes Feedback zur neuen Version:
TTS scheint bedeutend stabiler zu laufen.

Hatte noch keinen Fall, wo ich manuell einen resetTTS anstoßen mußte (werfe aber da noch mal ein Auge drauf). Werde heute Abend mal 2 Player synchen und weiter beobachten.


Ein neuer Fehler hat sich allerdings eingeschlichen:
Wenn man direkt beim Start von fhem (global initialized) eine TTS Ansage lostritt, kommt diese nicht mehr, da der Player zu diesem Zeitpunkt vom Modul noch nicht als "lauffähig" anerkannt wird.

Man müßte also eine Verzögerung einbauen (z.B. ein at anlegen, welches dann 10 Sekunden später den Text vorliest).

Alternativ könnte auch bei einem nicht bereiten Player vielleicht kurze Zeit gewartet werden, ob der Player nicht doch bereit wird, und die Nachricht dann lostreten? So eine Art 10 Sekunden Puffer? Wenn der Player bis dahin nicht fertig ist, wäre es sinnvoll die Nachricht zu verwerfen.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Chris1540 am 10 Juni 2015, 19:44:59
Hallo Ronny,

ich habe auch Deine Readingsgroup nachgebaut. Die sieht echt klasse aus und funktioniert auch.
Dennoch habe ich da noch Fragen. Ich möchte imFloorplan auf einem 7" Tablet mehrere Player über Deine Readinggroups darstellen. Leider ist Deine größe, wenn ich diese 1 zu 1 übernehme zu lang,
und man müsste am Bildschirm scrollen um den unteren Teil zu sehen.
Ich würde gerne diese Groups etwas kleiner (auch wenn es dann ggf etwas fummelig wird) darstellen. Wie kann ich das anstellen? Wo muss ich da ansetzen?

Nächste Frage wäre, wenn ich mit dem Player einen Verstärker einschalten will, wie würde ich da vorgehen? Ich habe zum einen bei einigen Raspi`s einen seperat über HM geschalteten Verstärker davor, bzw auch über die Logitech Harmony. Diese sollen sowohl beim einzelnen einschalten, als auch wenn ich mit anderen Playern synce eingeschaltet bzw ausgeschaltet werden.

Noch mal vielen Dank für diese Klasse umsetzung.

Gruß Chris
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 10 Juni 2015, 20:35:33
Wie kann ich das anstellen? Wo muss ich da ansetzen?

Da gibt es verschiedene Möglichkeiten, anzusetzen:
- du kannst statt des knob-Widgets für die Lautstärke einen Slider nutzen (wie das geht kannst du meiner zweiten Readingsgroup entnehmen)
- du kannst das knob-Widget kleiner machen: width und heigth bei
'volume' => 'volume:knob,min:0,max:100,width:180,height:150,fgColor:yellow,skin:tron,thickness:0.3,angleoffset:-125,anglearc:250'- du kannst das coverart-Bild kleiner machen: width bei
valueSuffix { 'coverarturl_remote' => '" width="180" onError="this.src=\'http://192.168.18.10:8085/fhem/images/default/cover_200x200.png\';;" >' }- du kannst andere Symbole verwenden
- du kannst Zeilen weglassen
- du kannst die Schrift der ReadingsGroup über das Style-Attribut anpassen (CSS)
...

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 10 Juni 2015, 22:26:07
Hallo,

@Rince:

Zitat
Ein neuer Fehler hat sich allerdings eingeschlichen:
Wenn man direkt beim Start von fhem (global initialized) eine TTS Ansage lostritt, kommt diese nicht mehr, da der Player zu diesem Zeitpunkt vom Modul noch nicht als "lauffähig" anerkannt wird.

Dies kommt durch eine Änderung in der Version 0038. Falls ein Player nicht 'present' ist, werden Befehle an ihn ignoriert. Bisher wurde die Befehle weitergegeben und führten zu falschen Zuständen und Anzeigen im Modul. Ich habe dies in der Version 0040 (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm) erstmal rückgängig gemacht. Kannst du testen ob es damit wieder funktioniert ?

@Chris1540:

Du kannst den Verstärker direkt über das SB_PLAYER-Modul schalten lassen. Dazu musst du den Namen des Schalters in der Definition des Players mit angeben, z.B:
00:11:22:33:44:55 ampl:meineHMSteckdoseEine kurze Beschreibung zu der Option 'ampl' und dem Attribut 'amplifier' findest du im 1. Beitrag.

Grüße,

ChrisD

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 11 Juni 2015, 06:57:02
Teste es heute Nachmittag.
Hast du auf die Schnelle eine Idee, weshalb meine Geräte oft auf State "off" gehen?

Wenn ich am Server einen statusRequest mache sind sie sofort wieder alle "on"


Hier ein Player, auf dem grade B5 läuft und dessen State off ist:
AMPLIFIER  none
   ARTWORKURL http%3A%2F%2Fcdn-radiotime-logos.tunein.com%2Fs24903q.png
   CANPOWEROFF 1
   COVERARTLINK none
   COVERARTURL http://www.mysqueezebox.com/public/imageproxy?u=http%3A%2F%2Fcdn-radiotime-logos.tunein.com%2Fs24903q.png&h=50&w=50
   COVERID    -112401648
   DEF        02:0f:06:82:ae:7c
   DISPLAYTYPE none
   FAVREF
   FAVSELECT  B5_aktuell_900_Nachrichten
   FAVSET     favorites
   FAVSTR     Canon_in_D_1997_-_Remaster,filemediaFritteMusikSamplerZX3German_Top_100_Single_Jahrescharts_2014004-andreas_bourani_-_auf_unsmp3,ROCK_ANTENNE_Erding_Freising_Ebersberg_879_Pop,B5_aktuell_900_Nachrichten,Ohrmuschel_Radio_924_Classic_Rock,ANTENNE_BAYERN_1033_Pop
   FHEMUID    020f0682ae7c
   IODev      SqueezeBoxServer
   ISREMOTESTREAM 1
   LASTALARM  1
   LASTANSWER status - 1 tags:Kcu player_name:cubie player_connected:1 player_ip:192.168.5.31:34611 power:1 signalstrength:0 mode:play remote:1 current_title:B5 aktuell time:1741.8871111393 rate:1 mixer volume:80 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1433996400.09838 playlist_tracks:1 remoteMeta:HASH(0x7f794d8) playlist index:0 id:-112401648 title:Bundestagsjuristen kritisieren offenbar Vorratsdaten-Gesetz artwork_url:http://cdn-radiotime-logos.tunein.com/s24903q.png coverid:-112401648 url:http://br-mp3-b5aktuell-m.akacast.akamaistream.net/7/779/142694/v1/gnl.akacast.akamaistream.net/br_mp3_b5aktuell_m
   LASTInputDev SqueezeBoxServer
   MODEL      squeezelite
   MSGCNT     22662
   NAME       cubie_SB_PLAYER
   NR         289
   NTFY_ORDER 50-cubie_SB_PLAYER
   PLAYERIP   192.168.5.31:34611
   PLAYERMAC  02:0f:06:82:ae:7c
   PLAYERNAME cubie
   SBSERVER   192.168.5.31:9000
   SERVERPLAYLISTS Peter_1,Peter_10,Peter_11,Peter_12,Peter_2,Peter_3,Peter_30,Peter_5,Peter_6,Peter_7,Peter_8,Peter_9
   STATE      off
   SYNCED     no
   SYNCGROUP  none
   SYNCGROUPPN none
   SYNCMASTER none
   SYNCMASTERPN none
   SYNCMASTERS wz_Squeeze_Audio,Andis_TapsBrett
   SYNCVOLUME 0
   SqueezeBoxServer_MSGCNT 22662
   SqueezeBoxServer_TIME 2015-06-11 06:49:04
   TYPE       SB_PLAYER
   WILLSLEEPIN ?
   Readings:
     2015-06-11 06:45:01   alarmsDefaultVolume 50
     2015-06-11 06:45:01   alarmsEnabled   on
     2015-06-11 06:45:01   alarmsFadeIn    on
     2015-06-11 06:45:01   alarmsSnooze    9
     2015-06-11 06:45:01   alarmsTimeout   60
     2015-06-11 06:49:04   connected       1
     2015-06-11 06:49:04   coverarturl     http://www.mysqueezebox.com/public/imageproxy?u=http%3A%2F%2Fcdn-radiotime-logos.tunein.com%2Fs24903q.png&h=50&w=50
     2015-06-11 06:48:54   currentAlbum
     2015-06-11 06:48:54   currentArtist
     2015-06-11 06:20:01   currentMedia    http://br-mp3-b5aktuell-m.akacast.akamaistream.net/7/779/142694/v1/gnl.akacast.akamaistream.net/br_mp3_b5aktuell_m
     2015-06-11 06:48:54   currentPlaylistName B5 aktuell 90.0 (Nachrichten)
     2015-06-11 06:45:01   currentPlaylistUrl
     2015-06-11 06:48:54   currentTitle    Bundestagsjuristen kritisieren offenbar Vorratsdaten-Gesetz
     2015-06-11 06:48:54   duration        0
     2015-06-11 06:48:54   favorites       B5_aktuell_900_Nachrichten
     2015-06-08 20:26:09   lastir          ?
     2015-06-11 06:20:00   lastunkowncmd   favorites playlist play item_id:a0ea99ce.2
     2015-06-11 06:49:04   playStatus      playing
     2015-06-11 06:49:04   playlistCurrentTrack 1
     2015-06-11 06:49:04   playlistTracks  1
     2015-06-11 06:48:54   playlists       B5_aktuell_900_Nachrichten
     2015-06-11 06:49:04   power           on
     2015-06-11 06:49:04   presence        present
     2015-06-11 06:49:04   repeat          off
     2015-06-11 06:49:04   shuffle         off
     2015-06-11 06:49:04   signalstrength  wired
     2015-06-10 22:48:46   state           off
     2015-06-11 06:49:04   synced          none
     2015-06-10 21:22:48   talkStatus      idle
     2015-06-11 06:49:04   volume          80
     2015-06-11 06:49:04   volumeStraight  80
   Helper:
     ALARMSCOUNT 0
     CoverOk    0
     lastGetStatus 1433997901.43663
     lastModeQuery 1433998134.55435
     lastTimeQuery 1433998134.56152
     playlistIds -112401648
     ttsExtstate 0
     ttsVolume  100
     ttsstate   0
     Sb_player_favs:
       Antenne_bayern_1033_pop:
         ID         a0ea99ce.1
         URL        http://opml.radiotime.com/Tune.ashx?id=s42824&formats=aac,ogg,mp3,wmpro,wma,wmvoice,real&partnerId=16
       B5_aktuell_900_nachrichten:
         ID         a0ea99ce.2
         URL        http://opml.radiotime.com/Tune.ashx?id=s24903&formats=aac,ogg,mp3,wmpro,wma,wmvoice,real&partnerId=16
       Canon_in_d_1997_-_remaster:
         ID         a0ea99ce.5
         URL        media/Fritte/Musik/OST/Shades%20of%20Grey%20-%20das%20Klassik%20Album/05%20-%20Canon%20in%20D%20(1997%20-%20Remaster).mp3
       Ohrmuschel_radio_924_classic_rock:
         ID         a0ea99ce.3
         URL        http://opml.radiotime.com/Tune.ashx?id=s101658&formats=aac,ogg,mp3,wmpro,wma,wmvoice,real&partnerId=16
       Rock_antenne_erding_freising_ebersberg_879_pop:
         ID         a0ea99ce.4
         URL        http://opml.radiotime.com/Tune.ashx?id=s48784&formats=aac,ogg,mp3,wmpro,wma,wmvoice,real&partnerId=16
       Filemediafrittemusiksamplerzx3german_top_100_single_jahrescharts_2014004-andreas_bourani_-_auf_unsmp3:
         ID         a0ea99ce.6
         URL        media/Fritte/Musik/Sampler/ZX3German%20Top%20100%20Single%20Jahrescharts%202014/004-andreas_bourani_-_auf_uns.mp3
     Sb_player_playlists:
       Peter_1:
         ID         19732
         NAME       Peter_1
       Peter_10:
         ID         19729
         NAME       Peter_10
       Peter_11:
         ID         19730
         NAME       Peter_11
       Peter_12:
         ID         19731
         NAME       Peter_12
       Peter_2:
         ID         19721
         NAME       Peter_2
       Peter_3:
         ID         19722
         NAME       Peter_3
       Peter_30:
         ID         19718
         NAME       Peter_30
       Peter_5:
         ID         19724
         NAME       Peter_5
       Peter_6:
         ID         19725
         NAME       Peter_6
       Peter_7:
         ID         19726
         NAME       Peter_7
       Peter_8:
         ID         19727
         NAME       Peter_8
       Peter_9:
         ID         19728
         NAME       Peter_9
     Sb_player_syncmasters:
       Andis_tapsbrett:
         MAC        00:09:4c:20:c1:41
       Wz_squeeze_audio:
         MAC        e8:4e:06:11:b8:29
     Alarmplaylists:
       Aktuelle_wiedergabeliste_verwenden:
         category   Aktuelle Wiedergabeliste
         title      Aktuelle Wiedergabeliste verwenden
         url        Aktuelle Wiedergabeliste verwenden
       Filemediafrittemusikostshades_of_grey_-_das_klassik_album05_-_canon_in_d_1997_-_remastermp3:
         category   Favoriten
         title      Canon in D (1997 - Remaster)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Chris1540 am 11 Juni 2015, 21:27:14
Hallo
@ChrisD

Prima, Danke für die Hilfestellung. Den Verstärker konnte ich so einbinden. Aber wie mache ich das wenn ich bei meiner Harmony einen set Befehl zum starten meines Verstärkers absetzen möchte?

@Ronny

Du hast ja bei Dir die Playlist eingebunden, ich würde aber gern zusätzlich die "favorites" mit einbinden. Ich verzweifel gerade an den Readingsgroup. Könntest Du mir bitte da helfen?

Gruß Chris
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 11 Juni 2015, 21:36:39
Du hast ja bei Dir die Playlist eingebunden, ich würde aber gern zusätzlich die "favorites" mit einbinden. Ich verzweifel gerade an den Readingsgroup. Könntest Du mir bitte da helfen?

Das funktioniert genau wie bei den Playlists: Zunächst die Zeile in die ReadingsGroup einfügen (natürlich mit deinem Player):

OG.ez.RA.Player:favorites
Und dann noch das Kommando in commands in der ReadingGroup ergänzen:

'favorites' => 'favorites:'
Ich habe mich für die Playlists entschieden, da bei den Liste mit den Favorites kein leerer Eintrag vorhanden ist, der ausgewählt wird, wenn der Player gestoppt wird. Damit bleibt die Auswahlliste auf dem letzten Eintrag stehen und man muss zunächst einen anderen Eintrag wählen, wenn man den gleichen Favoriten erneut starten will...

Ronny
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Chris1540 am 11 Juni 2015, 21:49:36


Ich habe mich für die Playlists entschieden, da bei den Liste mit den Favorites kein leerer Eintrag vorhanden ist, der ausgewählt wird, wenn der Player gestoppt wird. Damit bleibt die Auswahlliste auf dem letzten Eintrag stehen und man muss zunächst einen anderen Eintrag wählen, wenn man den gleichen Favoriten erneut starten will...

Das heißt du hast sonst für jeden z.B. Radiosender eine eigene Playlist angelegt?

Gruß Chris
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 11 Juni 2015, 21:50:50
Das heißt du hast sonst für jeden z.B. Radiosender eine eigene Playlist angelegt?

Ja, habe aber auch nur zwei Radiosender, die ich wechselnd höre...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 11 Juni 2015, 22:53:50
Hallo,

@Rince: Ich bin etwas ratlos. Wie häufig passiert es ?
Der Zustand von 'state' sollte eigentlich immer gleich dem von 'power' sein. In deiner Ausgabe ist dies nicht der Fall:
Zitat
2015-06-11 06:49:04   power           on
2015-06-10 22:48:46   state           off
Ich habe im Code noch eine Stelle gefunden an der 'power' und 'state' nicht parallel aktualisiert wurden, kannst du testen ob es mit der Version 0041 (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm) besser ist ?

@Chris1540: Möchtest den Verstärker parallel über Harmony und den Player steuern ?

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 12 Juni 2015, 08:15:50
Zitat
Ich habe im Code noch eine Stelle gefunden an der 'power' und 'state' nicht parallel aktualisiert wurden, kannst du testen ob es mit der Version 0041 besser ist ?

Früher oder später bekommen wir das hin :)
Du machst das toll.

Eine Frage habe ich noch:
Du hattest mal testweise das TTS Modul angepasst, um dieses nutzen zu können.

Wird das noch unterstützt? Wenn ja, wäre es cool, wenn du evtl. das Modul auch auf deinen Github legst, zwecks einfacherer Installation. Wenn man es nicht weiß, findet man es hier nicht mehr (vor allem neue User haben keine Chance)

Ich würde gerne die Funktion mit dem Cache nutzen, da bei mir durchaus öfter zwar die gleichen TTS Ansagen kommen, mein Internet aber eher unstabil läuft ;)




Edit:
Ach ja, mit der 040 klappt die Ansage beim Start immer noch nicht
041 habe ich grade installiert, muss ich beobachten...
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Chris1540 am 12 Juni 2015, 12:40:59


@Chris1540: Möchtest den Verstärker parallel über Harmony und den Player steuern ?

Grüße,

ChrisD

Hallo ChrisD,

Mein Plan ist, wenn ich den Player einschalte bzw auf Play klicke, das die Harmony die activity Musik startet. Das heißt das der Verstärker eingeschaltet wird und ein bestimmter Eingang gewählt wird. Lautstärke Regelung läuft aber weiterhin über den Player.

Gruß Chris
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 12 Juni 2015, 15:16:17
Seit 7 Stunden alle "on"  ;D
Hoffentlich bleibt es so  ::)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 12 Juni 2015, 21:24:57
Hallo,

@Rince: Ich habe das Modul (https://github.com/ChrisD70/FHEM-Modules/raw/master/98_SB_PLAYER.pm) nochmal überarbeitet, kannst du testen ob damit die Ausgabe beim Start funktioniert ?

Die modifizierte (https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/98_Text2SpeechSB.pm) Version von 98_Text2Speech befindet sich bereits auf GitHub. Sie sollte weiterhin funktionieren, allerdings habe ich das Modul wegen einer Reihe von Nachteilen seit einiger Zeit nicht mehr im Einsatz. Ich verwende jetzt ein php-Skript auf einem lokalen Webserver welches sich um das Cachen kümmert. Dies ist sowohl für FHEM wie auch für den LMS transparent.

@Chris1540: Du kannst die Anbindung an die Harmony mit einem 'notify' machen. Du kannst z.B. in Abhängigkeit des Readings 'playstatus' schalten:
define n_SB_an_Harmony notify mySBPlayer:playStatus.* {if($EVTPART1 eq 'playing') {fhem('set myHarmony activity Musik')} elsif ($EVTPART1 eq 'stopped') {fhem('set myHarmony off')}}(ungetestet). Alternativ sollte es auch mit DOIF gehen, dies habe ich aber bis jetzt noch nicht genutzt.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 13 Juni 2015, 00:55:47
Zitat
Ich verwende jetzt ein php-Skript auf einem lokalen Webserver welches sich um das Cachen kümmert. Dies ist sowohl für FHEM wie auch für den LMS transparent.
Erster Impuls: "hä?"
Zweiter Impuls: "magst du das etwas ausführlicher beschreiben, bitte?"

 ;)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 13 Juni 2015, 12:06:23
Hallo,

Wenn das Modul einen Text ausgeben möchte, übergibt es die URL an den LMS der sich um die Wiedergabe kümmert. Die URL wird dabei aus dem Attribut ttslink und dem Text zusammengebaut. Ein Aufruf von
set myPlayer talk Testführt zu der URL
http://translate.google.com/translate_tts?ie=UTF-8&tl=de&q=Test.Der LMS ruft den Stream ab und gibt ihn wieder.

Da ich fast immer die gleichen Texte verwende wollte ich sie zwischenspeichern. Der erste Ansatz war der Einsatz des Text2Speech-Modules. Durch die Einschränkungen bei der Anbindung habe ich aber letztendlich einen anderen Weg gesucht. Da ich eh einen Webserver im lokalen Netz habe bin ich hingegangen und habe ein php-Skript von dieser Seite (http://ctrlq.org/code/19147-text-to-speech-php) leicht abgeändert und auf dem Webserver abgelegt. Das Attribut ttslink habe ich in
http://192.168.37.110/ttsproxy.php?ie=UTF-8 abgeändert.

Dadurch führt einset myPlayer talk Test zu der URL
http://192.168.37.110/ttsproxy.php?ie=UTF-8&tl=de&q=Test.Der LMS ruft diese Seite vom lokalen Server ab und das php-Skript überprüft ob die Datei schon vorhanden ist. Wenn dies der Fall ist wird sie direkt an den LMS zurückgegeben, andernfalls wird sie von Google abgeholt und zwischengespeichert.

Voraussetzung ist ein Webserver im lokalen Netz mit php, der LMS benötigt aber keinen Dateizugriff auf diesen Server. Der einzige Nachteil gegenüber Text2Speech ist das fehlende Zusammensetzen der Texte, bei längeren Texten kommt es, wie beim direkten Abruf von Google auch, zu einer kleinen Pause zwischen den Texten.

Grüße,

ChrisD

Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 14 Juni 2015, 18:35:50
Zitat
@Rince: Ich habe das Modul nochmal überarbeitet, kannst du testen ob damit die Ausgabe beim Start funktioniert ?

Mit der 042 klappt es :)

Prima :)
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: heppel am 06 Juli 2015, 18:18:50
Hallo,

entschuldigt bitte die Newbie-Frage, aber wo finde ich die aktuellen Module ? Ich lese hier was von einem Github, kann den Link aber nicht finden. Das Modul in meinem "contrib"-Directory ist vom Oktober 2014, also wohl nicht mehr aktuell.

Gibt es eine aktuelle Dokumentation ? Im ersten Post dieses Threads steht ja einiges, aber stimmt das noch ?

Vielen Dank im Voraus,
  Heppel.

P.S.: Ich habe einen durchlaufenden Banana-Pi auf dem sowohl FHEM als auch der LMS und ein squeezelite laufen. Zusätzlich habe ich noch zwei Kodis mit XSqueeze-Plugin, die beide mit dem squeezelite als Multiroom-Lösung synchronisiert sind.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 06 Juli 2015, 21:01:51
Hallo,

Die aktuelle Version der Module befindet sich sowohl auf Github wie auch im contrib-Verzeichnis. Bei einem Update von FHEM wird das contrib-Verzeichnis aber nicht aktualisiert, daher hast du noch die Module von 2014.

Wenn du den Befehl
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt
in FHEM eingibst wird die aktuelle Version der Module von Github heruntergeladen. Nach einem Neustart von FHEM können sie verwendet werden.

Die Dokumentation im 1. Beitrag ist bis auf wenige Ausnahmen (hauptsächlich Alarme) noch immer aktuell. Die Module verfügen inzwischen auch über eine integrierte (englische) Dokumentation die aber noch nicht ganz vollständig ist.

Grüße,

ChrisD
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: heppel am 06 Juli 2015, 22:23:09
Hallo ChrisD,

Super. Vielen Dank.

Hat auf Anhieb funktioniert und die wichtigsten Dinge klappen auch. Die komplizierteren Pläne probiere ich dann nach und nach.

Wenn Interesse besteht, könnte ich am Wochenende mal ein paar alternative Formulierungen für die Doku vorschlagen. Per Mitteilung an Dich ?

Viele Grüße,
  Heppel
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: FHEMAN am 07 Juli 2015, 00:03:26
Ich spiele seit einiger Zeit mit dem Modul rum und bin so begeistert, dass ich mir 3 "richtige" Squeezeboxen zugelegt hab. Die Dinger sind echt auch noch gut durchdacht, so dass ich das Gefühl habe, aufs richtige System zu setzen.
Nur ist jetzt eine Box defekt  :-\

Und zwar teste ich gerade die Alarmfunktionen. Dazu habe ich mit folgendem Code den Wecker einer Squeezebox gestellt:
Zitat
WakeUp {
   fhem("set SqueezeboxRadio02 alarm1 delete");
    if ($EVENT ne "off") {
       fhem("set SqueezeboxRadio02 alarm1 set 1,2,3,4,5,6,7 $EVENT:00");
    }
}
Zitat
set WakeUp 23:58
Ergebnis: zum Zeitpunkt des Weckbeginns schaltete sich die Squeezebox aus - und geht seitdem nicht wieder an.. Akku und Netzteiltausch hilft nichts.
Kann es irgendwie sein, dass das Modul in Verbindung mit diesem Code hier Murks an die Squeezebox sendet?
Evtl. durch das deutsche Uhrzeitformat?
Kennt jemand eine Resetmöglichkeit der Box oder wie ich die wiederbeleben könnte?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: ChrisD am 07 Juli 2015, 17:32:10
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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: Rince am 09 Juli 2015, 14:17:40
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)?
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 21 Juli 2015, 12:23:10
@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
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: marvin78 am 21 Juli 2015, 13:18:40
Sync läuft nur mit squeezlite vernünftig. Deshalb nutze ich Cubietrucks dafür.
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: bugster_de am 21 Juli 2015, 13:30:22
OK, danke! Dann sitzt das Problem also nicht vor der Tastatur  ;D
Titel: Antw:Squeezebox Modul - erste Version
Beitrag von: RoBra81 am 21 Juli 2015, 13:49:45
Hallo,

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 :-)

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