Modul für MPD

Begonnen von roedert, 08 Januar 2014, 12:17:21

Vorheriges Thema - Nächstes Thema

Wzut

die Zeile
ZitatDevIo_CloseDev($hash);
hat in der aktuellen Version nichts zu suchen , ist beim nächsten Update raus
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Markus Bloch

Bitte folgende Zeile verwenden:

use DevIo;

Danke

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Wzut

#437
seit heute Morgen ist ein neues Update verfügbar.
- Fix der Fehler mit dem DevIo
- Fix seekcur mit num. Werten
- zwei neue Set Kommandos : channelUp und channelDown
- neues Attribut unknown_artist_image
- neues Reading : playlist_num

Mit den beiden neuen Set Befehlen können nun die verfügbaren Playlisten vorwärts und rückwärts durchgeschaltet werden. Die Reihenfolge entspricht der Reihenfolge im Reading playlistcollection, die aktuelle Nr. steht im Reading playlist_num ( 0 bis n )

Mit dem neuen Attribut unknown_artist_image kann ein Icon oder Bild angegeben werden das als Ersatz verwendet wird wenn keine Bildinformation aus den anderen Quellen (Last.fm, Spotify, playlist_json) zur Verfügung steht.

Noch einen Tipp für die Radio Stream Hörer :
Packt nicht mehr als eine URL in eine Liste sondern spendiert lieber jedem Radiosender seine eigene Playliste. Mit dem neuen Set Befehlen können nun genau so schön die Listen gewechselt werden wie zu vor mit mehreren in einer Liste mit next und previous.
Hintergrund : Steht mehr als eine Url in der Playliste liefert der MPD nicht alle Infos zum aktuellen Titel. Als Folge davon "hängen" einige Readings.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

unimatrix

Zitat von: Wzut am 19 Januar 2017, 10:37:55
- zwei neue Set Kommandos : channelUp und channelDown
- neues Reading : playlist_num

da warst du jetzt schneller als ich - sorry :)  ... darf ich trotzdem noch ein paar Änderungsvorschläge machen? Ich frage deswegen vorher, weil ich einiges noch bei mir implementieren möchte. Entweder direkt im MPD Modul, oder, wenn du das da nicht haben willst, dann eben in meinem Controller-Modul, was dann das MPD Modul fernsteuert.

- seek auch mit Angabe von mm:ss oder hh:mm:ss kompatibel machen
- forward und rewind mit konfigurierbaren seek-Sprungweiten
- Automatisches abspeichern und neu laden des Zustandes beim Nutzen von channelUp oder channelDown. (Per Attribut aktivierbar). So kann man aus seinem Hörbuch mal eben schnell auf die Radioplayliste schalten und wenn man dann zurück schaltet, hört man an der gleichen Stelle weiter.

Sollte somit alles abwärtskombatibel zu dem bleiben, was du schon hast. Würde dann heute, spätestens morgen fertig sein.

Wzut

Zitat von: unimatrix am 19 Januar 2017, 10:54:56
da warst du jetzt schneller als ich - sorry :)  ... darf ich trotzdem noch ein paar Änderungsvorschläge machen?
Ich habe halt schon mal den Grundstein gelegt, die Stockwerke oben drauf darfst du gerne liefern. Ich baue alles ein was ich irgendwie halbwegs kapiere und nicht mit bestehendem  im Widerspruch steht bzw. kollidiert. (Die heute Version ist eh schon Meilen über mein damaliges Ziel hinaus)   
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

unimatrix

ok super. Ich mache nix kaputt. Versuche es zumindest ;) melde mich dann in Kürze.

Tobias

Zitat von: Wzut am 19 Januar 2017, 11:17:19
Ich habe halt schon mal den Grundstein gelegt, die Stockwerke oben drauf darfst du gerne liefern. Ich baue alles ein was ich irgendwie halbwegs kapiere und nicht mit bestehendem  im Widerspruch steht bzw. kollidiert. (Die heute Version ist eh schon Meilen über mein damaliges Ziel hinaus)   

Hi Wzut,
dann würdest du also auch einen Patch von mir entgegennehmen der ein neues Reading "PlaylistPositionSec" bereitstellt? Also die angabe der aktuellen Position in Sekunden in der Playlist
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

Wzut

Zitat von: Tobias am 19 Januar 2017, 13:11:17
dann würdest du
Sorry falsche Anrede ... richtig : da hast du, mach hin :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

unimatrix

So, anbei der Patch mit genau den oben beschriebenen Sachen incl. Doku. Habe es soweit ich kann getestet, hoffe es hat sich nichts anderes eingeschlichen.

Wzut

WOW , mit Erweiterung der command.ref  ;D 8)
Denke am WE habe ich wieder Zeit das einzuarbeiten und zu testen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Tobias

Hi Wzut,
wie habt ihr denn die Playlisten definiert? Sind das m3u Dateien im mpd definierten playlistverzeichnis?
Ich habe immer noch das komische Verhalten das der MPD immer 2 Einträge in der playlistcollection ausweist, einmal die playlist mit der Endung m3u und einmal ohne :(
Ich weiß leider nicht was ich falsch mache und warum der MPD das so ausgibt :(
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

Wzut

Zitat von: Tobias am 20 Januar 2017, 08:06:08
Sind das m3u Dateien im mpd definierten playlistverzeichnis?
ja genau.
Wenn ich es bis jetzt in der MPD Doku richtig verstanden habe arbeitet der MPD intern mit einer Datenbank (gibt dafür ja eigene Kommandos) Ich vermute die ist bei dir etwas durcheinander. Ich weiss nicht was passiert wenn du den MPD stoppst und diese DB löschst und danach wieder neu startest. Eigentlich müsste er sich dann ja jungfräulich verhalten und die DB komplett neu aufbauen. Die DB müsste die Datei /var/lib/mpd/tag_cache sein.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Wernieman

Alternativ, benenne sie erst mal um (Stichwort mv wie move)

Aber auch meines Wissens stört sich mpd  nicht daran. Es kann nur sein, das DU anschließend Ihm sagen must, das er nach allen Songs gucken soll (update db oder so ähnlich)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

unimatrix

Zitat von: Tobias am 20 Januar 2017, 08:06:08
Ich habe immer noch das komische Verhalten das der MPD immer 2 Einträge in der playlistcollection ausweist, einmal die playlist mit der Endung m3u und einmal ohne :(

Die Playlisten sind in der Tat aus dem Verzeichnis. Wie hast du sie denn definiert? Durch MPD gespeichert oder von woanders her? Das Modul zeigt eig. das an, was du auch erhälst, wenn du einfach "mpc lsplaylists" mit dem mpc client direkt ausführst.

Zitat von: Wzut am 20 Januar 2017, 08:55:39
Wenn ich es bis jetzt in der MPD Doku richtig verstanden habe arbeitet der MPD intern mit einer Datenbank

Das ist richtig, aber nicht für die PLaylisten, sondern nur für die Tracks selbst. Die Playlisten kommen immer "live" aus dem playlist Ordner. Wenn du dort eine neue Datei reinpackst, kannst du die sofort mit dem MPD öffnen. Übrigens noch etwas, was das Modul im Moment nicht mitbekommt.

Ich würde in deinem Fall ggf. mal den Inhalt des Playlist-Ordners irgendwoanders hinverschieben und dann einfach mit MPD direkt nur eine Playlist anlegen. Einfach irgendwelche Tracks hinzufügen und dann mit "mpc save <playlistname>" abspeichern. Dann sollte genau eine Datei im Verzeichnis entstehen und nach dem Reset des MPD Moduls sollte auch nur eine Playliste angezeigt werden.

Tobias

#449
Hi Unimatrix,
die playlisten sind allesamt Radiostationen. Jede playlist enthält genau eine URL für die betreffende Radiostation.
Ich habe die playlisten von Hand angelegt. Kann man solche playlisten mit URLs überhaupt vom MPD anlegen lassen?
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