Autor Thema: neues Modul: 98_MediaList.pm zur Erstellung einer Playlist für TabletUI  (Gelesen 30878 mal)

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3737
Antw:neues Modul: 98_MediaList.pm zur Erstellung einer Playlist für TabletUI
« Antwort #120 am: 24 September 2019, 14:05:07 »
Hi,
also die gesamte Sammlung kann eigentlich unendlich gross sein, nur die Tracks pro Folder bzw die Einträge jeweils in den playlists sollten nicht mehr als 50 sein.
Meine mp3-Sammlung umfasst ca 700Gb.
Eine Suchmaschine auf Tag-Basis habe ich noch nicht eingebaut aber schon mal dran gedacht - auf Basis einer sqlite-DB
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamps, RPi für BLE Bodenfeuchtesenoren, Text2Speech.
Maintainer der Module: Text2Speech, TrashCal, MediaList

Meine Projekte auf https://github.com/tobiasfaust
u.a. PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM

Offline ch.eick

  • Full Member
  • ***
  • Beiträge: 408
Antw:neues Modul: 98_MediaList.pm zur Erstellung einer Playlist für TabletUI
« Antwort #121 am: 24 September 2019, 14:24:58 »
Wie würde sich denn dann die Struktur aufbauen?
Aus den Pfadnahmen des Fileshare oder aus den mp3 Informationen?
Habe ich dann hinterher für 7000 Alben einzelne Abspiellisten?
FHEM unter Solaris 11.3 nonglobal Zone zum Testen.
RPI2; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3737
Antw:neues Modul: 98_MediaList.pm zur Erstellung einer Playlist für TabletUI
« Antwort #122 am: 24 September 2019, 14:25:50 »
Wie würde sich denn dann die Struktur aufbauen?
Aus den Pfadnahmen des Fileshare oder aus den mp3 Informationen?
Habe ich dann hinterher für 7000 Alben einzelne Abspiellisten?

Pfadnamen, so wie sie auch im NFS liegen
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamps, RPi für BLE Bodenfeuchtesenoren, Text2Speech.
Maintainer der Module: Text2Speech, TrashCal, MediaList

Meine Projekte auf https://github.com/tobiasfaust
u.a. PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM

Offline ch.eick

  • Full Member
  • ***
  • Beiträge: 408
Antw:neues Modul: 98_MediaList.pm zur Erstellung einer Playlist für TabletUI
« Antwort #123 am: 24 September 2019, 14:33:02 »
Puh, das wird mir dann etwas zu unübersichtlich, das ist schon jetzt am Rechner kaum zu bändigen.
Ich denke für kleinere Samlungen wird es gut gehen.
Bei mir ist es dann momentan doch besser mit itunes und itunes remote auf dem ipad.

Vielen Dank für den Gedankenaustausch
     Christian
FHEM unter Solaris 11.3 nonglobal Zone zum Testen.
RPI2; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6968
Fehler gefunden:

Zitat
2019.10.09 17:24:26 1: PERL WARNING: Argument "" isn't numeric in addition (+) at /opt/fhem/FHEM/98_MediaList.pm line 378.
Undefined subroutine &main::ReadingsSingleUpdate called at /opt/fhem/FHEM/98_MediaList.pm line 201.

Muss readingsSingleUpdate heißen.

Ansonsten bin ich Willens, die entsprechende Erweiterung für BOSE-Boxen mitzuentwickeln.

LG

pah

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6968
Noch'n Fehler:
Zitat
malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "Klassik") at /opt/fhem/FHEM/98_MediaList.pm line 373.
Crasht FHEM. Hat wohl irgendwie zu tun mit dem Attribut MediaList_PathReplaceTo

Tipp: https://metacpan.org/pod/Test::JSON

benutzen, um diesen Crash zu vermeiden.

Noch'n Fehler:
Zitat
Can't use an undefined value as a symbol reference at /opt/fhem/FHEM/98_MediaList.pm line 332.
Crasht FHEM.

Warnungen:
Zitat
2019.10.09 18:22:08 1: PERL WARNING: Use of uninitialized value in addition (+) at /opt/fhem/FHEM/98_MediaList.pm line 383.
2019.10.09 18:22:26 1: PERL WARNING: Use of uninitialized value in subtraction (-) at /opt/fhem/FHEM/98_MediaList.pm line 415.
Zitat
Datei nicht gefunden at /opt/fhem/FHEM/98_MediaList.pm line 610.

Ich habe diese spezielle FHEM-Installation jetzt durch das Modul mindestens 10x gecrasht, einfach nur durch Verwendung der set-Befehle in meinem NAS-Share mit MP3s. Für den Moment gebe ich auf...


LG

pah
« Letzte Änderung: 09 Oktober 2019, 18:32:23 von Prof. Dr. Peter Henning »

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3737
neues Modul: 98_MediaList.pm zur Erstellung einer Playlist für TabletUI
« Antwort #126 am: 11 Oktober 2019, 11:02:33 »
Hatte ich imho schon geschrieben, bitte nicht die set neu und rename Befehle benutzen. Die muss ich noch ausbauen. Siehe Post #119

Für Anpassungen bitte einen github pullrequest stellen


Gesendet von iPhone mit Tapatalk
« Letzte Änderung: 11 Oktober 2019, 11:04:07 von Tobias »
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamps, RPi für BLE Bodenfeuchtesenoren, Text2Speech.
Maintainer der Module: Text2Speech, TrashCal, MediaList

Meine Projekte auf https://github.com/tobiasfaust
u.a. PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6968
Oh, ich habe diese Befehle und diverse andere Kleinigkeiten in einer Spezialversion des Moduls jetzt schon behoben und eine Ausgabe der Playlist auf Bose-Boxen errreicht - geht prima.

Werde das demnächst mal schicken - vielleicht magst Du es übernehmen.

Derzeit habe ich noch eine Baustelle, und zwar habe ich (das ist erlaubt ...) auf meiner NAS viele Musikverzeichnisse mit einem Leerzeichen im Namen. Die werden im select-Widget nicht richtig angezeigt (und auch nicht richtig übernommen). Ich muss mal nachgraben, ob es dafür irgendeine Option des select-Widgets gibt - sonst muss man irgendeinen Workaround konstruieren.

Edit: Das passiert immer dann, wenn das select-Widget seine Liste aus einem Reading bezieht - nicht, wenn diese Liste statisch als Argument mitgeliefert wird.
EditEdit: Auch schon gelöst - es muss nur der data-delimiter explizit auf ":" gesetzt werden. Wenn man das unterlässt, wird ein Leerzeichen ebenfalls als delimiter aufgefasst.

LG

pah
« Letzte Änderung: 11 Oktober 2019, 14:00:54 von Prof. Dr. Peter Henning »

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3737
Ich übernehme immer gerne sinnvolle Erweiterungen. Aber bitte als PullRequest in meinem GitHub (siehe Sig)
Normalerweise ist das Modul unabhängig zur Hardware (MPD, SONOS, BOSE) da man den Übergabebefehl zum Device selbst als Attribut vergeben kan. Aber ich bin auf deine Version gespannt
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamps, RPi für BLE Bodenfeuchtesenoren, Text2Speech.
Maintainer der Module: Text2Speech, TrashCal, MediaList

Meine Projekte auf https://github.com/tobiasfaust
u.a. PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6968
Viele Unterschiede im Handling sind es nicht. BOSE kann keine direkt übergebene Playlist abspielen. Damit man dem Server auch sicher mitteilt, dass sich die Playlist geändert hat, wird diese zuerst gelöscht, dann neu geschrieben.

Außerdem habe ich das crashen von FHEM abgefangen, wenn das Cache-Verzeichnis nicht schreibbar ist, sowie in die Verzeichnisliste nur Verzeichnisse aufgenommen uvm. Einige Kleinigkeiten halte.

LG

pah

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6968
@Tobias:

Kannst Du mir mal erklären, welchen Sinn das mit dem "mkTempCopy" als symlink hat ? Das spart zwar etwas an Schreiboperationen ein, wenn das Zielverzeichnis auf derselben Kiste liegt - aber wenn es sich um einen Samba-Share handelt, führt das zu einer erhöhten Netzlast.

LG

pah

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3737
Die Entscheidung ob als symlink oder echter Kopie kann jeder Anwender selbst entscheiden.  Man muss sich zwischen beiden aber entscheiden wenn man den MPD als AusgabeDevice nutzt.
Ich z.B. nutze die Symlink Methode und habe alle Musik vom NAS am Server eingebunden. Läuft perfekt.


Gesendet von iPhone mit Tapatalk
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamps, RPi für BLE Bodenfeuchtesenoren, Text2Speech.
Maintainer der Module: Text2Speech, TrashCal, MediaList

Meine Projekte auf https://github.com/tobiasfaust
u.a. PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6968
Machen wir es einfacher: Pull Request ist drin. Viele "-" sind nicht ernst zu nehmen, weil meine Änderungen auf einer etwas älteren Version von MediaList beruhen. Das ist aber nicht Kritisches.


LG

pah
« Letzte Änderung: 24 Oktober 2019, 17:15:15 von Prof. Dr. Peter Henning »

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3737
hi pah,
github erstellt automatisch ein diff wenn du den pullrequest stellst. Allerdings nicht durch "simples" Datei hochladen, sondern durch einen Fork, ändern der Datei im Fork und direkt aus dem Fork den Pullrequest stellen.
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamps, RPi für BLE Bodenfeuchtesenoren, Text2Speech.
Maintainer der Module: Text2Speech, TrashCal, MediaList

Meine Projekte auf https://github.com/tobiasfaust
u.a. PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6968
So ist es geschehen...

LG

pah

 

decade-submarginal