tablet-ui mit squeezebox modul

Begonnen von dieoma, 25 Mai 2015, 22:26:29

Vorheriges Thema - Nächstes Thema

dieoma

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...
FHEM5.8 auf Raspi 2, HomeMatic über HMLan mit einigen Aktoren, IT433 Steckosen über CUL, Squeezebox und Tablet-UI

setstate

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" ...

dieoma

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...
FHEM5.8 auf Raspi 2, HomeMatic über HMLan mit einigen Aktoren, IT433 Steckosen über CUL, Squeezebox und Tablet-UI

setstate

Select ist nun aktualisiert, update kann gezogen werden.

dieoma

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?
FHEM5.8 auf Raspi 2, HomeMatic über HMLan mit einigen Aktoren, IT433 Steckosen über CUL, Squeezebox und Tablet-UI

gitarero

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

gitarero

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... ::)

TWART016

Mittlerweile gibt es
data-delimiter=","

Damit spart man sich die ganzen Umwege.

Uli

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?

Gruß

Uli

seit 01/2023 kein FHEM mehr. Bin nur noch aus historischen Gründen hier

FHEm2005

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

Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

Uli

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!
Gruß

Uli

seit 01/2023 kein FHEM mehr. Bin nur noch aus historischen Gründen hier

Uli

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.
Gruß

Uli

seit 01/2023 kein FHEM mehr. Bin nur noch aus historischen Gründen hier

FHEm2005

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
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

Uli

#13
Funktioniert! Hatte es direkt in die CFG geschrieben.
Tausend Dank!
Gruß

Uli

seit 01/2023 kein FHEM mehr. Bin nur noch aus historischen Gründen hier

FHEm2005

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
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN