Hallo,
ich habe die tablet-ui schon recht gut am laufen und somit begonnen meine squeezeboxen einzubinden. Gewünscht ist ein einschalten der beim einschalten das letzte was er gespielt hat weiterspielt (meist radio) und beim ausschalten eben ausgeht. Zusätzlich hätte ich gern ein Listenfeld mit der Auswahl von 3 meistgenutzten Radioprogrammen. Wenn man eines auswählt und die squeezebox ist aus soll sie angehen und das angewählte Programm abspielen. Folgendes hab ich gebaut: <div class="left">
<div data-type="label" class="middle">Terasse</div>
<div data-type="switch" data-device="SB_Terasse" data-set="play" data-icon="fa-music"></div>
<div data-type="select" data-device="SB_Terasse" data-items='["http://1live.akacast.akamaistream.net/7/706/119434/v1/gnl.akacast.akamaistream.net/1live","http://wdr-mp3-m-wdr2-dortmund.akacast.akamaistream.net/7/789/119456/v1/gnl.akacast.akamaistream.net/wdr-mp3-m-wdr2-dortmund"]' data-alias='["1Live","WDR2"]' data-get="input" data-set="playlist play" class="cell w2x" ></div>
<div data-type="volume" data-device="SB_Terasse" class="small middle" data-get="volume" data-set="volume" ></div>
</div>
Folgende Probleme habe ich und suche mir einen Wolf: Klick auf den "switch" schaltet zwar das radio ab und spielt den letzten Titel, aber aus geht es nicht mehr da "play" mit übergeben wird. Zweitens klappt die Übergabe des Listenfeldes nicht richtig - ich glaube es werden die "alias" anstatt der "items" übergeben und somit greift "playlist play" daneben. Wer hat da mal ein paar Tipps für mich denn die Forumssuche war bislang noch nicht wirklich fündig...
Hallo dieoma,
zum Select Widget wird es asap ein Update von mir mit Bugfix geben.
Zum ersten Problem: Verstehe ich das richtig? Du willst einen Button, mit dem man das Gerät ein und ausschalten kann, aber beim Einschalten soll es auch gleich mit Spielen anfangen?
Ich würde dazu nur on/off senden, was das Switch Widget per default macht:
<div data-type="switch" data-device="SB_Terasse" data-icon="fa-music"></div>
Das autom. Starten mit "play" würde ich per Notify direkt im FHEM definieren: Wenn On-Event dann Send "play" ...
Manchmal kommt man auf die einfachsten Dinge eben nicht - das play aus einem notify hinterher zu schicken klappt natürlich. Nun warte ich gespannt auf das Bugfix für´s select widget, oder werde alternativ versuchen das ähnlich zu lösen. Wenn Auswahl im widget dann spiel dieses ab - da werde ich mal google/Forensuche bemühen...
Select ist nun aktualisiert, update kann gezogen werden.
Events (global only):
2015-05-28 14:15:15 Global global UPD www/tablet/css/fhem-mobil-ui.css
2015-05-28 14:15:15 Global global open ./www/tablet/css/fhem-mobil-ui.css failed: Datei oder Verzeichnis nicht gefunden, trying to restore the previous version and aborting the update
huch?
Hallo zusammen.
Ich häng mich mal gerade hier dran.
Ich habe gerade mit FTUI angefangen und bin gerade bei meiner Squeezebox Integration.
In den SB-Internals werden die Favoriten als Komma-getrennte Liste angegeben. FTUI erwartet für das select-widget aber eine mit ":" getrennte Liste.
Hat jemand eine Idee, wie ich das umsetzen kann?
Danke und Grüße,
Ingo
Hallo.
ich antworte mir mal selber :)
Mit Hilfe von zwei notifys und einem dummy (pro SqueezeBox) habe ich das ganze dann hinbekommen. Falls es mal jemand braucht, hier meine Lösung, welche mit Sicherheit auch allgemeiner geht - mir aber gerade nicht eingefallen ist.
Je SB braucht man ein dummy wie das folgende:
define SB_Bad_Favoriten dummy
dann ein notify, welches auf das Einschalten oder das Play der SB reagiert und daraufhin das dummy befüllt:
define SB_Bad_play_notify notify
SB_Bad:on.*|SB_Bad:play.* { # wenn SB an oder play
my $favoriten = InternalVal("SB_Bad","FAVSTR","nix gefunden"); # favoriten in variable auslesen
$favoriten =~ tr/,/:/; # komma durch doppelpunkt ersetzen
fhem("set SB_Bad_Favoriten $favoriten"); # dummy mit neuer liste füttern
my $usedfav = ReadingsVal("SB_Bad","favorites","-"); # aktuell gewählten favorit auslesen
fhem("setreading SB_Bad_Favoriten usedfav $usedfav "); # dummy mit gewähltem favoriten in zweitem reading füttern
}
und ein notify, welches auf die Änderung des gewählten favoriten reagiert:
define SB_Bad_Favoriten_aendern notify
SB_Bad_Favoriten:usedfav.* {
fhem("set SB_Bad favorites $EVTPART1");
}
Die notifys habe ich hier so eingestellt, wie ich sie im DEF habe.
Im Tablet UI kann dann eine Auswahlliste so aussehen:
<div data-type="select"
data-device="SB_Bad_Favoriten"
data-list="state"
data-get="usedfav"
data-set="usedfav"
class="cell w2x"
data-cmd="setreading"
data-alias='["1Live","WDR2","SWR1"]'>
</div>
Mit dem data-alias sieht die Liste dann was schöner aus ;)
Grüße,
Ingo
P.S.: Ich habe keine Option für Tabulatoren im "code" Tag gefunden... ::)
Mittlerweile gibt es
data-delimiter=","
Damit spart man sich die ganzen Umwege.
Ich hätte auch gerne ein Problem ;)
Ich habe mein TabletUI schon recht gut eingerichtet und bin ganz zufrieden. Allerdings verzweifle ich gerade an der Einbindung meiner Squeezebox Player.
Ich möchte ein Auswahlfeld mit all meinen Favoriten haben. Ich habe dann natürlich auch diesen Thread gefunden, mit ähnlichem Problem. Ich habe aber auch gesehen, das es jetzt das data-delimiter Attribut gibt.
Folgenden Code habe ich in meinem TabletUI:
<div data-type="select"
data-device="SB_Kueche"
data-delimiter=","
data-list="FAVSTR"
data-get="favorites"
data-set="favorites"
class="cell"
data-cmd="set">
Wenn ich jetzt das Feld öffne stehen dort meine Favoriten alle hintereinander, mit Komma jeweils dazwischen.
Ich habe im Bild unten mal den FAVSTR aus FHEM gepostet. In meinem Select Feld stehen die Favoriten auch nur bis zu dem - hinter Multimedia_.
Habt Ihr da einen Tipp?
Hallo Uli,
Legst Du im Player Radiostationen in den Favoriten ab, werden sie automatisch in dem Internal FAVSTR abgelegt und angezeigt. Diese Einträge sind aber Komma getrennt.
Führe ein Userreading FAVSTR_FTUI ein, in dem die Kommata duch Doppelpunkte ersetzt und im Reading FAVSTR_FTUI mit Doppelpunkt als Trennner abgelegt werden.
Ich habe das UserReading wie folgt definiert:
attr <my player> userReadings FAVSTR_FTUI {my $t=InternalVal($name,'FAVSTR','');$t=~s/,/:/g;return($t)},
Danach können sie in dem select-widget verwendet werden. Fazit: Kein Doppelpunkt - Keine Dropdownliste.
Siehe hier auch in den Thread "FHEM Forum » FHEM - Anwendungen » Multimedia » SB-Player: Zeigt her eure Oberflächen!". Da geht es in dem Beitrag ab #29 um das gleiche THema.
Gruß Eberhard
Zitat von: FHEm2005 am 19 Dezember 2016, 10:05:35
Hallo Uli,
Legst Du im Player Radiostationen in den Favoriten ab, werden sie automatisch in dem Internal FAVSTR abgelegt und angezeigt. Diese Einträge sind aber Komma getrennt.
Führe ein Userreading FAVSTR_FTUI ein, in dem die Kommata duch Doppelpunkte ersetzt und im Reading FAVSTR_FTUI mit Doppelpunkt als Trennner abgelegt werden...
Hallo Eberhard,
ich hatte das schon gesehen, dachte aber, ich könnte durch die Option data-delimiter="," das umgehen. Ich probiere das mit dem User Reading mal aus und berichte.
Danke schon mal!
Hallo Eberhard,
ich habe folgendes hinzugefügt:
attr SB_Arbeitszimmer userReadings FAVSTR_FTUI {my $t=InternalVal($name,'FAVSTR','');$t=~s/,/:/g;return($t)},
SB_Arbeitszimmer ist der Name meiner Squeezebox.
Ich bekomme jetzt die Fehlermeldung
Unknown command $t=~s/,/:/g, try help. Unknown command return($t)},, try help.
Was habe ich falsch gemacht? Ich habe Deinen Code kopiert, eingefügt und dann den Namen angepasst.
Hallo Uli,
so auf Anhieb sehe ich auch keinen Fehler darin. Du hast die Zeile schon in der Oberfläche des Devices eingegeben und nicht im EditFiles-Bereich eingegeben. Im EditFiles-Bereich bringt diese Zeile zwangläufig Fehler.
Habe dann mal bei mir nachgesehen und bemerkt, dass ich eine Version im Einsatz habe, die gleichzeitig die Favoriten sortiert. Vielleich versuchst Du die mal:
attr SB3.Buero userReadings FAV_FTUI_1 {my $u=InternalVal($name,'FAVSTR','');my @sender =split(/,+/,$u);my @favSort = sort(@sender);$u = join(":",@favSort);return($u)},
Sonst müssten mal Regex-Spezis ran. Der bin ich definitiv leider nicht.
Gruß Eberhard
Funktioniert! Hatte es direkt in die CFG geschrieben.
Tausend Dank!
Hallo Uli,
früher am Anfang hatte icih auch viel direkt in der CFG gearbeitet, bin inzwischen ein Verfechter davon, dieses zu unterlassen. Bei der Fehlersuche beziehen sich die wirklichen Freaks immer auf die Eingabemöglichkeiten in der Device-Definition. Gerade die Interpunktion führt immer wieder zu Missverändnissen und Fehler.
MeinTipp: Mach' es Dir auch zu Eigen: Nicht in der CFG 'rumwursteln.
Viele Grüße
Eberhard
ich habs so hinbekommen, dass er beim einschalten los spielt:
data-set-off="off"
data-set-on="play"
data-get="power"
data-device="SB_PLAYER_dddd"
data-icon="fa-music"