neues Modul: 98_MediaList.pm zur Erstellung einer Playlist für TabletUI

Begonnen von Tobias, 19 Dezember 2016, 15:55:43

Vorheriges Thema - Nächstes Thema

Axel_S

Hallo,
ich habe das Modul medialist eingebunden (vorerst ohne Tablet-UI) und soweit funktioniert es. Im Cache-Verzeichnis wird aus dem aktuellen Verzeichnis eine Playlist erstellt, die kann ich auch manuell im Sonos-Player aufrufen und abspielen. Wenn ich allerdings "set MyMediaList play currentdir" benutze, wird die Playlist nicht abgespielt. Es wird zwar das Reading playlist_json im Sonos-Player befüllt, dort stehen allerdings die lokalen Pfade und nicht die UNC-Pfade wie in der PlayerDevice.m3u und ich kann nichts abspielen. Wo könnte der Fehler liegen?

Meine Definition:
define define MyMediaList MediaList /media/music/
attr MyMediaList MediaList_PathReplaceFrom /media/music//giantdisc/
attr MyMediaList MediaList_PathReplaceTo //DISKSTATION/audio/giantdisc/
attr MyMediaList MediaList_PlayerDevice Sonos_Wohnzimmer
attr MyMediaList MediaList_mkTempCopy none



Vielen Dank!

Tobias

Das playlist _json hat nichts mit der eigentlichen playlist zu tun. Dieses ist nur für die Darstellung in Tabelle ui notwendig.
Für die Player ist es wichtig was in der playlist Datei steht ;)

Die Datei heißt exakt so, wie dein Sonos device. Also sonos_wohnzimmer.m3u

Gesendet von meinem Leap mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Axel_S

Hallo Tobias,

erstmal vielen Dank für Deine schnelle Antwort  :)
Das mit playlist_json ist mir jetzt klar. Die sonos_wohnzimmer.m3u wird ja korrekt erstellt, läßt sich auch manuell an den Player übergeben und läuft. Nur bei "set MyMediaList play currentdir" passiert nichts, bzw. es wird nur das Reading übergeben. Aber vielleicht ist das auch so gedacht und die Übergabe der sonos_wohnzimmer.m3u erfolgt dann erst über die Einbindung in Tablet UI? (Soweit bin ich ja noch nicht)

Gruß Axel

Tobias

ganz einfach, dir fehlt das Atrtribut zum StartCommand ;)

attr <ML_dev> MediaList_PlayerStartCommand StartPlaylist file:<fullfile>

steht aber so im Wiki, glaub ich....
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Axel_S

... ja klar, das hatte ich zwar im Wiki gelesen und (vermeintlich) auch eingegeben. Das Problem sitzt halt meistens vor dem Bildschirm  ;) Jetzt funzt alles  :)

Vielen Dank für die Hilfe!
Gruß Axel

Mustermann

Hallo,
ich habe auch das Problem mit der Fehlermeldung.


MPD_Msg ACK ERROR [2@3] {play} Bad song index

Denke es liegt nicht an der Medialist Konfiguration sondern an MPD aber hir ist auch alle wie im WIKI beschrieben.



kurze Info meines Systems:
Musik liegt auf einen NTFS Festplatte diese ist auf dem Server mittels fstab unter /media/Musik eingebunden. Und per SAMBA im Netzwerk verteilt

[Musik]
   comment = Musik
   browseable = yes
   path = /media/speicher_1/Musik/
   guest ok = no
   read only = yes
   writeable = no
   create mask = 0700

Ein Raspberry dient als Radio, auf diesen läuft der MPD auch hier mittels fstab in /media/Musik eingebunden.

//192.168.178.30/Musik  /media/speicher_1/Musik/      cifs   username=daniel,password=*********    rw,suid,dev,exec,auto,nouser,async gid=audio,users    0 0


Die Atribute meiner Medialist:

MediaList_CacheFileDir /media/speicher_1/Musik/
MediaList_PlayerDevice kuechenradio
MediaList_mkTempCopy symlink


Die Readings sind auch alle befüllt und die Playlist Datei kuechenradio.m3u wird erzeugt sowie covers.txt und der symlink zur Datei.

Im Anhang ein Bild meiner Konfiguration.


Bis da hin funktioniert alles nur der Befehl zum Abspielen set kuechenradio playlist kuechenradioerzeugt den Fehler

MPD_Msg ACK ERROR [2@3] {play} Bad song index



Hab den Thread schon mehrmals durch und komm einfach nicht drauf.
Hoff es kann jemand helfen. 

Danke schon mal und Grüße

Tobias

Bin mir ziemlich sicher das deine mpd.conf nicht passt zu diesen Pfaden.

Gesendet von meinem Leap mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Mustermann

Danke für die schnelle Antwort.

Hab für Das Musik und Playlist Verzeichniss  einen gemeinsammen Ordner, wie im Wiki beschrieben.

Kann es evtl. sein das man noch zugrifsrechte setzen muss? Wurde auch schon mal im Thread geschrieben (hab davon Leider keine Ahnung)

Hier die wichtigsten Daten meiner MPD.conf müsste alles passen.



music_directory                "/media/speicher_1/Musik/"
playlist_directory              "/media/speicher_1/Musik/"
auto_update                                              "yes"
save_absolute_paths_in_playlists        "no"
filesystem_charset                                "UTF-8"


follow_outside_symlinks                      "yes"
follow_inside_symlinks                        "yes"

Tobias

also in /media/speicher_1/Musik/ muss die Playlist liegen. Im selben Verzeichnis müssen Symlinks erstellt worden sein. zb. file.mp3 -> /media/nas/album/file.mp3
Dieses "file.mp3" muss in der Playlist auftauchen.

Versuch dann mal im mpd diese Playlist manuell zu laden und abzuspielen.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Mustermann

Hi,
es ist bei mir genau wie du geschrieben hast:

Im Verzeichniss /media/speicher_1/Musik/ liegen:
die Playlist  mit Namen kuechenradio.m3u
die Playlist beinhaltet diesen Inhal:
MyMediaList_1.mp3
die erstellten symlinks mit Namen MyMediaList_1.mp3 und zeigen auf das Verzeichniss  /media/speicher_1/Musik/Musik-neu/1.mp3

Die Playlist lässt sich problemlos von jedem Pc in meinen Netzwerk abspielen (Totem Player oder KODI).

Was meinst du mit manuell laden?
hab volgendes versucht:

cd /media/speicher_1/Musik/
mpc load kuechenradio.m3u
mpc play


er spielt nichts ab, wenn ich dagegen meine sender.m3u Playlist lade mit Internetradio Sendern zb:
http://mp3channels.webradio.antenne.de/rockantenne spielt er dise ab.

liegen beide im gleichen verzeichniss

Anbei noch ein Bild meiner Ordner mit den erstellten symlinks

Tobias

Dann hat der mpd keinen Zugriff auf die Dateien hinter den symlinks.
Dein manuellen einladen in den mpd mittels mpc über load und play muss erstmal funktionieren.

Gesendet von meinem Leap mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Mustermann

Hi,
wollte nur bescheid sagen, das du Recht hattest. Bei folgender Fehlermeldung

MPD_Msg ACK ERROR [2@3] {play} Bad song index

kann der MPD nicht auf meine Festplatte mit der Musik zugreifen.

Hab testweise die Musik nach /var/lib/mpd/music gelegt und es geht.

Warum das so ist weis ich nicht (ev. liegts am Dateisystem NTFS) hab die Rechte mit sudo chmod 777 /media/speicher_1/Musik/Musik-neu/ gesetzt.

Danke für deine Hilfe und das klasse Modul

Shadow3561

#72
Hallo,
Ich habe seit langem auch wieder ein kleines Problem.

Ich habe neue Ordner hinzugefügt und sie werden mir auch in der Auswahl vom TabletUi angezeigt. Wenn ich jedoch den Ordner anwähle passiert nichts.
Die Rechte wurden vergeben wie bei den anderen Musikordnern die funktionieren.

Hat jemand einen Tipp oder werden weitere Infos benötigt?

Mfg

EDIT:
Habe den Fehler gefunden.
Die Titel waren wohl nicht richtig formatiert.
Hätte es mal gleich mit Linux machen sollen und nicht mit Windooofs.

math78

Hallo,

habe das heute in meiner LOG Datei vorgefunden. Kann man das beheben?

ZitatPERL WARNING: Prototype mismatch: sub main::round ($$) vs none at /usr/share/perl/5.22/Exporter.pm line 66, <$fh> line 2675.
2017.09.22 14:57:59 1: stacktrace:
2017.09.22 14:57:59 1:     main::__ANON__                      called by /usr/share/perl/5.22/Exporter.pm (66)
2017.09.22 14:57:59 1:     Exporter::import                    called by ./FHEM/98_MediaList.pm (46)
2017.09.22 14:57:59 1:     main::BEGIN                         called by ./FHEM/98_MediaList.pm (46)
2017.09.22 14:57:59 1:     (eval)                              called by ./FHEM/98_MediaList.pm (46)
2017.09.22 14:57:59 1:     (eval)                              called by fhem.pl (2430)
2017.09.22 14:57:59 1:     (eval)                              called by fhem.pl (2429)
2017.09.22 14:57:59 1:     main::CommandReload                 called by fhem.pl (1845)
2017.09.22 14:57:59 1:     main::LoadModule                    called by fhem.pl (1902)
2017.09.22 14:57:59 1:     main::CommandDefine                 called by fhem.pl (1174)
2017.09.22 14:57:59 1:     main::AnalyzeCommand                called by fhem.pl (1027)
2017.09.22 14:57:59 1:     main::AnalyzeCommandChain           called by fhem.pl (1309)
2017.09.22 14:57:59 1:     main::CommandInclude                called by fhem.pl (537)

und

ZitatPERL WARNING: Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/(\\%(?:\\=)?(\w|\\{ <-- HERE (?:\w|\\[^\w\\{}]|\\\\\\[\\{}])*\\}|\\\W))/ at FHEM/lib/MP3/Tag.pm line 2611, <$fh> line 2675.
2017.09.22 14:57:59 1: stacktrace:
2017.09.22 14:57:59 1:     main::__ANON__                      called by FHEM/lib/MP3/Tag.pm (2611)
2017.09.22 14:57:59 1:     (eval)                              called by ./FHEM/98_MediaList.pm (38)
2017.09.22 14:57:59 1:     main::BEGIN                         called by FHEM/lib/MP3/Tag.pm (2611)
2017.09.22 14:57:59 1:     (eval)                              called by FHEM/lib/MP3/Tag.pm (2611)
2017.09.22 14:57:59 1:     (eval)                              called by fhem.pl (2430)
2017.09.22 14:57:59 1:     (eval)                              called by fhem.pl (2429)
2017.09.22 14:57:59 1:     main::CommandReload                 called by fhem.pl (1845)
2017.09.22 14:57:59 1:     main::LoadModule                    called by fhem.pl (1902)
2017.09.22 14:57:59 1:     main::CommandDefine                 called by fhem.pl (1174)
2017.09.22 14:57:59 1:     main::AnalyzeCommand                called by fhem.pl (1027)
2017.09.22 14:57:59 1:     main::AnalyzeCommandChain           called by fhem.pl (1309)
2017.09.22 14:57:59 1:     main::CommandInclude                called by fhem.pl (537)
Danke

Grüße

Matthias

hotbso

@Tobias:

Hallo,
bei Behebung eines anderen Problems https://forum.fhem.de/index.php/topic,78359.msg726658.html#msg726658 habe ich bemerkt, dass Dein Modul Math::Round benutzt.
Das überschreibt round aus 99_Utils.pm. Kannst Du das rausnehmen ?

Das erste Problem in dem Post oben schein auch damit zusammenzuhängen.

- holger