FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: dieoma am 25 Mai 2015, 22:26:29

Titel: tablet-ui mit squeezebox modul
Beitrag von: dieoma am 25 Mai 2015, 22:26:29
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...
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: setstate am 25 Mai 2015, 23:36:32
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" ...
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: dieoma am 27 Mai 2015, 22:25:38
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...
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: setstate am 27 Mai 2015, 23:02:09
Select ist nun aktualisiert, update kann gezogen werden.
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: dieoma am 28 Mai 2015, 14:20:21
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?
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: gitarero am 12 September 2015, 08:09:42
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
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: gitarero am 13 September 2015, 10:57:25
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... ::)
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: TWART016 am 03 Dezember 2016, 00:47:30
Mittlerweile gibt es
data-delimiter=","

Damit spart man sich die ganzen Umwege.
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: Uli am 19 Dezember 2016, 02:15:50
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?

Titel: Antw:tablet-ui mit squeezebox modul
Beitrag 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.

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

Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: Uli am 21 Dezember 2016, 00:11:30
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!
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: Uli am 21 Dezember 2016, 00:37:12
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.
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: FHEm2005 am 21 Dezember 2016, 11:29:27
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
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: Uli am 21 Dezember 2016, 12:30:11
Funktioniert! Hatte es direkt in die CFG geschrieben.
Tausend Dank!
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: FHEm2005 am 21 Dezember 2016, 15:05:53
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
Titel: Antw:tablet-ui mit squeezebox modul
Beitrag von: gramels am 17 April 2017, 16:14:51
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"