Hallo,
bin leicht gefrustet und komme seit langem nicht voran:
Hat jemand die Steuerung des Squeezebox-Moduls in einen Floorplan integriert und lässt mich abkupfern?
Ich habe hier 3 Player (RPi etc.)
Im Floorplan hätte ich sie gern untereinander (ReadingsGroup?) jeweils mit den Kommandos
z.B. play / stop / pause / prev(ious) / favorites (Auswahl-Liste) / volume (Slider) / sync (Auswahl-Liste) / unsync
Möchte im Bad ein altes Android-Handy (Galaxy S1, später Tablet) zur Steuerung aufhängen...
Ggfs. würde ich auch Chips und saisongerechte Getränke sponsern ;-)
Hallo bsl02,
dein plan gefällt mir (handy auf gäste wc), sollte uns also jemand behilflich seinwürde auch ich mich freuen. derweilen versuche ich mich weiter daran es im fp zu integrieren das es auch schön aussieht....
Hallo Kakaomonster,
im Floorplan kann ich auf FHEM-Port 8083 die Lautstärke-Slider bedienen. Auf dem Handy/Tablet (hier Port 8085) jedoch nicht ;-(
Komme also noch nicht weiter.
Gruß, Stefan
Hallo Stefan,
wie hast Du es hinbekommen, dass es im FP klappt?
Grüsse, Ralf
Hi,
auf dem Floorplan bei mir geht der Slider aber nur unter dem FHEM-Port 8083.
Hier geht nicht Port 8085 (stylesheetPrefix: darktouchpad). Keine Ahnung, ob es daran liegt.
Den SB-Server hast Du ja wohl schon definiert,
hier beigefügt die Definition für einen SB-Player.
Mit der letzten Zeile arbeite ich dann auf dem Floorplan.
Anmerkung zur letzten Zeile:
favorites bslRadios150106
Ich habe Favoriten auf dem SBServer gespeichert unter dem Namen "bslRadios150106". Die können damit aufgerufen werden.
## Musterdefinition SqueezePlayer
define 066.FMsender.piCoPlay SB_PLAYER b8:27:eb:00:86:c0
attr 066.FMsender.piCoPlay IODev max2play.SqueezeServer.130
attr 066.FMsender.piCoPlay amplifier play
attr 066.FMsender.piCoPlay comment 066.FMsender.piCoPlay
attr 066.FMsender.piCoPlay coverartheight 50
attr 066.FMsender.piCoPlay coverartwidth 50
attr 066.FMsender.piCoPlay donotnotify true
attr 066.FMsender.piCoPlay eventMap /cliraw sync Bad:SyncBadEG/cliraw sync -:UnSync/
attr 066.FMsender.piCoPlay fadeinsecs 5
attr 066.FMsender.piCoPlay fp_50_Audio2 122,278,2,
attr 066.FMsender.piCoPlay icon bsl_Icons/LogitechMediaServer
attr 066.FMsender.piCoPlay idismac true
attr 066.FMsender.piCoPlay room SB_PLAYER
attr 066.FMsender.piCoPlay serverautoon true
attr 066.FMsender.piCoPlay ttslanguage de
attr 066.FMsender.piCoPlay ttslink http://translate.google.com/translate_tts?ie=UTF-8
attr 066.FMsender.piCoPlay userReadings favorites
attr 066.FMsender.piCoPlay volumeLimit 100
attr 066.FMsender.piCoPlay volumeStep 10
attr 066.FMsender.piCoPlay webCmd play:stop:pause:next:prev:volume:favorites bslRadios150106
Optimal für den Floorplan wäre eine ReadingsGroup mit Lautstärke-Slider. Kannst ja mal testen ;-)
Gruß, Stefan
Auch mal ne kurze Frage zur Squeezebox im Floorplan:
Ich bastle gerade daran und stosse aktuell auf das Problem, dass das devStateIcon eines SB_Players sich
immer nur nach refresh/reload der browserseite aktualisiert. Alle anderen dummys auf dem selben FP übertragen Ihren
Status direkt auf Ihr icon, nur beim Player geht das nicht. Longpoll ist aktiviert.
Hat jemand einen Tipp?
Gruß, Jochen
PS: Wenn ich 2x a.d. dummy klicke ändert sich der Status ! (???)
Edit: sehe gerade - im FHEM webfrontend ist es das selbe Problem - beim 1. Klick passiert nichts, beim 2. schaltet das icon um.
Aber: set Mein_Player on bzw. off über die Befehlszeile geht sofort
Hallo
ich hab es schon vor längerer Zeit so umgesetzt:
vielleicht hilft das ja.
define BadSound dummy
attr BadSound group Sound
attr BadSound room Bad,Sound
attr BadSound setList state:slider,0,1,100
attr BadSound webCmd play:pause:stop:next:back:state
define BadSound_ntfy notify BadSound:.* {\
my $v=Value("BadSound");;\
my $server='http://192.168.178.69:9000';;\
my $player="&player=b8:27:eb:fc:e9:26";;\
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") {fhem "set SB_PLAYER_b827ebfce926 volume $v"};;\
}
Oh, das käme mir jetzt in die Quere - ich bin doch schon fast fertig ;D
Volumeslider & Favoriten-Liste habe ich über webcmd, Sync. über dummys, Play/Stop/<</>> über remotecontrol (itunes layout).
Mir fehlt nur noch das Aktualiseren des devStateIcons, ich mag das nicht nochmal zerpflücken :)
Gruß, Jochen
Zitat von: rippi46 am 18 April 2015, 20:20:29
Hallo
ich hab es schon vor längerer Zeit so umgesetzt:
vielleicht hilft das ja.
define BadSound dummy
attr BadSound group Sound
attr BadSound room Bad,Sound
attr BadSound setList state:slider,0,1,100
attr BadSound webCmd play:pause:stop:next:back:state
define BadSound_ntfy notify BadSound:.* {\
my $v=Value("BadSound");;\
my $server='http://192.168.178.69:9000';;\
my $player="&player=b8:27:eb:fc:e9:26";;\
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") {fhem "set SB_PLAYER_b827ebfce926 volume $v"};;\
}
Habs wahrscheinlich überlesen. Ihr wolltet das ja im Floorplan mache!!
ZitatAuch mal ne kurze Frage zur Squeezebox im Floorplan:
Ich bastle gerade daran und stosse aktuell auf das Problem, dass das devStateIcon eines SB_Players sich
immer nur nach refresh/reload der browserseite aktualisiert. Alle anderen dummys auf dem selben FP übertragen Ihren
Status direkt auf Ihr icon, nur beim Player geht das nicht. Longpoll ist aktiviert.
Hat jemand einen Tipp?
Hab' mir einen dummy/ein notify davor gehängt. Wenn ich in das notify den Schaltbefehl auf Perl-Ebene einfüge,
dann geht alles sofort und wie gewünscht - das devStateIcon sowie der Schaltzustand ändern sich sofort:
{fhem('set Mein_SB_PLAYER on')}
Das Zusatz-Notify ist eh besser für mich, da ich zusätzlich noch HM-Schalter für meine Audioverstärker/Aktivboxen schalten möchte.
Also: Problem (für mich) gelöst.
Gruß, Jochen
Edit: Hmm - merkwürdige Sache:
wenn ich in dieses notify (mit PERL-Klammern) noch einen Schaltbefehl für einen HM-Hardwareswitch einfüge,
dann regiert dieser invertiert - d.h. bei "on" schaltet der aus und bei "off" an. Was mache ich falsch?
Mein_Dummy:off {fhem('set Mein_SB_PLAYER off')};set HM_Schalter on
geht, aber
Mein_Dummy:off {fhem('set Mein_SB_PLAYER off')};set HM_Schalter off
schaltet ein statt aus. Fragen über Fragen...
Hallo Jochen,
ich habe ähnliche Probleme mit dem refresh des devStateIcon auch schon fhemweb. Habe das so definiert
attr squeeze_pi3 webCmd on:off:pause:play
Wenn ich z.b. auf "on" drücke, ändert sich das Icon nicht , nach einem Browserrefresh ist die Änderung da.
aber
Wenn ich 2 x auf "on" drücke, dann ändert sich devStateIcon !
Wie bei Dir , alle anderen devStateIcon´s ändern sich sofort !
Vielleicht liegt es doch am SB_Player
kvo1
Hallo,
Eventuell liegt das Problem beim Attribut 'donotnotify' beim Player. Wenn es auf 'true' steht (Default) gibt es keine Events und damit auch keine automatische Aktualisierung. Könnt ihr versuchen das Attribut auf 'false' zu setzen ?
Grüße,
ChrisD
ZitatEventuell liegt das Problem beim Attribut 'donotnotify' beim Player
Ah - ok. Donotnotify ist bei mir auf "true".
Allerdings: ich habe das gerade anders lösen können.
Ich habe per DOIF den Event des SB_PLAYERS getriggert, nicht den state. Jetzt geht alles. So richtig verstanden habe allerdings nicht, warum.
Jetzt wird - über meine sync-dummies jeweils der Verstärker mit eingeschaltet, wenn ein Squeezbox-Client der sync-Gruppe
hinzugefügt wird. (Ich stelle das hier nochmal komplett vor, wenn alles läuft)
define JNSKuechePower dummy
attr JNSKuechePower room SB_PLAYER
attr JNSKuechePower setList on off
attr JNSKuechePower devStateIcon off:mroom_kueche.off.png on:mroom_kueche.on.png
define JNSKuechePowerAn notify JNSKuechePower:on {fhem('set KuecheAudio on')};;set JogiNetAudio5Power off
define JNSKuechePowerAUS notify JNSKuechePower:off {fhem('set KuecheAudio off')};;set JogiNetAudio5Power on
define KuecheStateSet DOIF ([KuecheAudio:?off]) (set JNSKuechePower off) DOELSEIF ([KuecheAudio:?on]) (set JNSKuechePower on)
attr KuecheStateSet room SB_PLAYER
Gruß, Jochen
Zitat von: ChrisD am 19 April 2015, 11:08:33
Hallo,
Eventuell liegt das Problem beim Attribut 'donotnotify' beim Player. Wenn es auf 'true' steht (Default) gibt es keine Events und damit auch keine automatische Aktualisierung. Könnt ihr versuchen das Attribut auf 'false' zu setzen ?
Grüße,
ChrisD
Hi ChrisD,
das war´s , danke !
Hat das Attribut 'donotnotify' irgend welche Anderen Auswirkung !
kvo1
Hallo,
Ein Nachteil ist dass die SB_*-Module viele Events erzeugen. Wenn du DbLog verwendest solltest du die Attribute DbLogExclude/DbLogInclude benutzen.
Grüße,
ChrisD
Zitat von: bsl02 am 26 Januar 2015, 21:07:36
...
im Floorplan kann ich auf FHEM-Port 8083 die Lautstärke-Slider bedienen. Auf dem Handy/Tablet (hier Port 8085) jedoch nicht ;-(
Komme also noch nicht weiter.
Gruß, Stefan
Soo,
nach langer Zeit habe ich mich dem Thema gewidmet und wenigstens den Lautstärke-Slider auf Handy hinbekommen.
Weitere Steuerungen sind mir noch nicht gelungen. Ein "list" der readingsGroup ist unten eingefügt; zum Nachbau müsste ich vermutlich die einzelnen Zeilen nennen...
Eigentlich müsste doch schon lange einer der Profis auch die übrigen Kommandos "Floorplan-tauglich" umgesetzt haben?Edit 17.07.2017:
Nach verschämtem Blick in die Commandref ist dort auch ein schönes Beispiel enthalten (flöt...).
Meine Schrott-Anhänge von vorhin habe ich gelöscht, aktualisierte sind beigefügt.
So ganz komplett lief das Beispiel bei mir nicht, daher habe ich minimal modifiziert. Ein "list" spare ich mir jetzt, da bei readingsGroup m.E. unübersichtlich.
Gruß, Stefan