[FHEM-Tablet-UI] Widgets for fhem-tablet-ui

Begonnen von nesges, 10 April 2015, 10:30:25

Vorheriges Thema - Nächstes Thema

nesges

Dem itunes_artwork Widget ist es übrigens vollkommen egal, was für ein Player ihm die Titelinformationen liefert. Ich hab's bei mir für MPD, KODI und Winamp eingerichtet. Das Widget steuert ja nicht den Player, sondern holt nur das Coverimage anhand frei definierbarer Readings. Da die iTunes-Bibliothek eine der größten ist und eine solide API bietet, wird sie benutzt - an der Stelle könnte auch Amazon, last.fm oder ein anderer Service mit Coverimages stehen.

Wenn die Fragen nach DS Audio und GoogleMusic also darauf abzielen, ob das itunes_artwork Widget für diese Dienste Coverimages holen könnte: Ja!

Was für die beiden evtl. fehlt ist eine Fhem-Schnittstelle wie das MPD-Modul oder XBMC-Modul; also eine generelle Fhem-Integration. Das sind vollkommen andere Baustellen an die ich mich derzeit nicht ranwagen werde. Ob es bereits etwas gibt, oder ob etablierte Module dafür benutzt werden könnten (Winamp steuere ich zB mit Eventghost und HTTPMOD), weiss ich leider nicht.

nesges

Zitat von: tomster am 21 Mai 2015, 17:37:25
Was haltet ihr davon, wenn das Cover Art Widget Titel- oder Interpretenzusätze, die in Klammern stehen, also meist (Remixe) aus dem Übergabestring an iTunes herausschneiden würde? Damit würde man wohl bessere Treffer erzielen (weil nämlich überhaupt etwas gefunden wird) als mit Übergabe.

Ich habe dafür zwei Optionen eingebaut:

data-stripbrackets true/false, Default: false. Löscht alle geklammerten Inhalte aus allen Readings. "Geklammert" ist alles in ({[<>]})
data-stripregex regex, Default: "". Löscht alle Matches des regulären Ausdrucks "regex". Achtung: Regex-Notation ohne Slashes, also ".*" statt "/.*/"

setstate

Vielen Dank nesges für die gute Arbeit.
Ich habe gestern iTunes Cover und die Titel Infos Labels beim mir eingerichtet. Funktioniert super und auf Anhieb wunderbar.
Mit data-mask könnte man auch schön die Anzeige der Titelinformationen formatieren.
Ich habe auch beim MPD die updates auf die Readings Titel, Artist, Album und aber auch state begrenzt.

State deswegen, damit der multistatebutton zwischen Play und Pause hin und her toggeln kann.
Dadurch wird aber auch das Cover wieder neu geholt und flackert kurz. Kannst du noch im Coverimage Widget einbauen, dass, wenn sich alle drei Attribute nicht geändert haben, nicht neu geladen wird. Oder, um refresh zu ermöglichen, ein Vergleich - neues Bild mit aktuellem Bild. Dann würde beim Pausedrücken nichts flackern.

Vielen Dank und ein schönes Pfingsten.



tomster

#153
Irgendwie mag das Widget seit Deinem Code-Update von gestern nicht mehr so richtig.

Wenn MPD gestoppt war und wieder auf play geht, bekommt das Widget das nicht so Recht mit. Die textliche Artist-/Titelanzeige (mpdnowplaying) schon und zeigt gleich brav an, aber das Image wird nicht aktualisiert. Es bleibt "img" stehen (Mal abgesehen davon, dass mir die stop, unknown, loading images gar nicht angezeigt werden...)

10:21:22.169 "idx" 0 "11.3" jquery.min.js line 2 > eval:49:20
10:21:35.452 "itunes_artwork" "stopped" undefined null jquery.min.js line 2 > eval:110:16
10:21:35.461 "itunes_artwork" "stopped" "STATE" "stop" jquery.min.js line 2 > eval:110:16
10:21:35.466 "itunes_artwork" "stopped" undefined null jquery.min.js line 2 > eval:110:16
10:21:35.472 "itunes_artwork" "stopped" "STATE" "stop"


tomster

Sorry, irgendwie hab ich bei mir einen Wurm drin...

Mal mein letztes Posting vorerst nicht beachten. Irgendwas stimmt an der switch-Logik meiner Start-Stop-Tasten nicht mehr. Die togglen nun beide zwischen "play/stop" und "!on". Komisch. Gab's da irgendwo ein Update, das ich übersehen habe?
Das hier war doch der richtige Code, oder?

<div data-type="switch"
                data-device="Wohnzimmer.MPD"
                data-get-on="stop"
                data-get-off="!on"
                data-icon="fa-stop"
                data-background-icon="-"
                data-set-on="stop"
                data-on-color="#aa6900"
                data-off-color="#505050"
                class="inline">

bjoernbo

:-D DS-Audio bruache ich gar nicht :-D
Da meine Musik über KODI läuft, und KODI an das NAS gebunden ist kann ich da einfach kodinowplaying verwenden!
Frage: nesges, wie hast du das KODI integiert? Ich bin mir nicht sicher ob ich die Frage schonmal gestellt habe. Ist dein KODI ein "seperates"-Davice welches du in FHEM anghelegt hast, oder kann ich irgendwo direkt die IP-Adresse zum KODI hinterlegen? erledigt!
=> http://fhem.de/commandref.html#XBMC
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

setstate

Hallo Tomster,
Mit dem multistatebutton geht das Play/Pause toggeln besser. Ich poste heute Abend mal meine Codes.

nesges

Mit dem letzten Update habe ich versucht das "Flackern" bei Pause->Play->Pause und einen Reload bei Stop->Play  unter einen Hut zu bekommen. Ich hoffe ich hab dabei nichts kaputt gemacht ;) Neu/Umbenannt sind die dafür benötigten Attribute:

data-playstatus="<reading>", Default: STATE. Reading in dem der Playstatus des Players zu finden ist.
data-playstatus-stop="<value>", Default: "stop". Wert für den Playstatus Stop.

Die Defaults passen für MPD, müssen für diesen Player daher nicht gesetzt werden.

Die Standard-Images werden bereits per Fhem-Update-Mechanismus ausgeliefert und stehen nach einem Update im Verzeichnis www/tablet/images zur Verfügung. Können aber auch nach wie vor mit den Attributen data-loadingimg, -stoppedimg, -notfoundimg üebrschrieben werden.


tomster

#158
Hat eigentlich jemand schon Erfahrung mit dem PiCore-Squeezebox-Client gemacht?
https://sites.google.com/site/picoreplayer/home

Irgendwie gefällt mir die Idee, dass das komplette System aus dem RAM läuft...
Auch wenn ich vom Logitech Media Server bislang nur gehört habe, dass er ein Koloss sein soll, wär's vielleicht eine Überlegung wert. Gerade hinsichtlich einer funktionierenden Multi-Room-Lösung.

Muss Mal googlen, ob's für tiny-core auch eine MPD/pulseaudio/etc-Lösung gibt...

setstate

#159
Ja, soll gehen. In einer der letzten Ct's ging es um raspberry und eine Boombox. Da hat der Autor auf Basis von PiCore einen MPD Server aufgebaut. Vorteil: einfach ausschalten ohne Datenverlust.
Beim LMS sehe ich auch nur beim Thema Multi-Room die Vorteile. Aber sonst gibt's da wenige gute Open Source Projekte dazu.
Ich hatte den Download wieder abgebrochen. > 50mb für den Server will ich mir nicht antun. Weil ich auch keine Infos bekommen habe, ob das binär Paket zum BananaPi kompatibel ist.

setstate

#160
@nesges: Danke, das Flackern ist weg

Hier mein HTML Code zum MPD-Player

<li data-row="1" data-col="2" data-sizex="4" data-sizey="5">
     <header>MUSIC-SERVER</header>
     <div data-type="itunes_artwork"
              data-device="MPD1"
              data-get='["artist","album","title"]'
              class="top-space">
     </div>
     <div data-type="mpdnowplaying"
              data-device="MPD1"
              data-mask='[<span class="bold">$2</span><br>][<span class="thin large">$5</span><br>$3]'>
      </div>
      <div class="wider">
      <div data-type="push" data-device="MPD1"
           data-icon="fa-step-backward" data-background-icon="-"
           data-set-on="previous" class="inline">
      </div>
      <div data-type="multistatebutton"
             data-device="MPD1"
             data-get-on='["play","pause","stop"]'
             data-set='["pause","play"]'
             data-set-default="play"
             data-background-icon="fa-circle-thin"
             data-background-color="#555"
             data-color="#555"
             data-icons='["fa-pause","fa-play","fa-play"]'
             class="big">
      </div>
      <div data-type="push" data-device="MPD1"
           data-icon="fa-step-forward" data-background-icon="-"
           data-set-on="next" class="inline">
      </div>
  </div>
</li>

tomster

Danke! Werd's später Mal bei mir hineinwurschteln.

nesges

joinedlabel, mpdnowplaying und "label" kennen jetzt den neuen Parameter data-substitution mit dem eine Regex-Subsitution in der Notation s/regex/subst/modifier auf den Wert angewendet werden kann.

Risiko

Super Sache. Wird genutzt und funktioniert.

Risiko

Risiko

Zitat von: nesges am 20 Mai 2015, 23:49:19
Update clock:

  • l (kleines L): Wochentag

Zur Info.
Produziert ne Menge Fehler im Consolen-Log
"136VM12283:91 Uncaught TypeError: Cannot read property '0' of undefined"  in Z: 91 d['l'] = f.elem.data('days')[(d['N']-1)];

Risiko.