Modul für MPD

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

Vorheriges Thema - Nächstes Thema

Monti

Hallo, das sind die URL´s für den Stream:

http://br-mp3-bayern3-m.akacast.akamaistream.net/7/442/142692/v1/gnl.akacast.akamaistream.net/br_mp3_bayern3_m

http://streams.br.de/bayern3_2.m3u


beide funktionieren aber benutzt wird besser die erste

Habe ein update heute um 11 Uhr durchgeführt, sollte also die neueste Version sein.

Das reading hat den Zeitstempel vom update heute früh, danach wurde es nicht mehr geupdatet, trotzdem werden die Readings bei einem Stop nicht gelöscht.

Das mit dem Titel ist nicht soooo schlimm aber vielleicht könnte ich den ganzen String haben ohne Kürzung dann mach ich das selbst, womöglich hat jeder Sender seine eigene dämlich Formatierung. Das reading playlistinfo ist auch immer leer da muss wohl noch ein Attribut gesetzt werden, mein Fehler denke ich.

Danke für die schnelle Antwort
Monti

Tobias

Hi,
ich habe ein Problem mit dem MPD. Dateien mit Umlauten werden übersprungen bzw nicht abgespielt. Sie tauchen auch nicht in der playlistinfo auf. Ich habe in der mpd.conf auch schon "filesystem_charset "UTF-8"" eingestellt, aber es hilft nicht. Hat wer eine idee?
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

#407
Zitat von: Monti am 12 Januar 2017, 13:06:30
trotzdem werden die Readings bei einem Stop nicht gelöscht.
Bitte welche Readings genau sollten gelöscht werden ?
Versuch das doch bitte mal mit einem Radiostream der nicht so wüst mit dem Titel Tag umgeht wir Bayern 3 . z.B. http://mp3channels.webradio.antenne.de/classic-rock-live
Die Jungs von Bayern 3 lassen über den Titel auch während des Songs Meldung laufen, das bringt schon so manches ins stoplern. Wenn du alles in seiner Urform haben möchtest  setze "attr <name> titleSplit  0" Die Playliste wird nur dann gefüllt sein wenn gewisse Mindesbedingungen eingehalten werden und das ist bei Bayern 3 z.Z. nicht der Fall.

@Tobias , habe mal bei mir nachgeschaut. Ich besitze nur ganz wenige mp3s mit Umlauten und tasächlich, diese Songs fehlen bei get music. Wie schauen denn die Titel auf der shell Konsole aus ? Ich habe eben einen der unsichtbar war auf einen neuen Namen kopiert und nun taucht er auch korrekt in der MPD Datenbank auf :
Zitatwar ohne Anzeige : Die Quietschboys - 05 - D▒nne.mp3
so wird er angezeigt und kann auch gespielt werden : Die Quietschboys - 05 - Dünne.mp3



Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Monti

get current song

Current Song
--------------------------------------------------------------------------------------------------------------------
file: http://br-mp3-bayern3-m.akacast.akamaistream.net/7/442/142692/v1/gnl.akacast.akamaistream.net/br_mp3_bayern3_m
Title: Studio-Hotline: 0800 / 800 3 800 (gebührenfrei)
Name: Bayern 3
Pos: 0
Id: 1

so wie der Titel hier steht reicht, leider trennt das Modul bei : . Werde dann eben über ein get currentsong dummy arbeiten.

Das Reading : Name, Title und Album Image, audio, bitrate ... sind nach einem Stop immer noch gesetzt(Artist auch aber der ist hier immer leer)
Es wird zwar ein Update gemacht - rote Uhrzeit... - aber die alten Readings bleiben stehen.

Readings:
     2017-01-12 15:12:22   Album
     2017-01-12 15:12:22   Artist
     2017-01-12 15:12:22   Date
     2017-01-12 15:12:22   Genre
     2017-01-12 15:13:36   Id              1
     2017-01-12 15:12:22   Last-Modified
     2017-01-12 15:13:36   Name            Bayern 3
     2017-01-12 15:13:36   Pos             0
     2017-01-12 15:13:36   Title           BAYERN 3 -  Mein Lieblingsmix im Radio.
     2017-01-12 15:12:22   Track
     2017-01-12 15:13:35   album_image     /fhem/icons/1px-spacer
     2017-01-12 15:13:35   album_image_html
     2017-01-12 15:13:36   albums          0
     2017-01-12 09:27:15   artist_content
     2017-01-12 15:13:35   artist_image    /fhem/icons/1px-spacer
     2017-01-12 15:13:35   artist_image_html
     2017-01-12 15:13:36   artists         0
     2017-01-12 15:13:34   audio           44100:24:2
     2017-01-12 15:13:34   bitrate         128
     2017-01-12 15:13:36   consume         0
     2017-01-12 10:04:53   currentTrackProvider Radio
     2017-01-12 15:13:36   db_playtime     0
     2017-01-12 15:13:36   db_update       1480457481
     2017-01-12 15:13:34   elapsed         71.694
     2017-01-12 09:38:19   error           socket error
     2017-01-12 15:13:36   file            http://br-mp3-bayern3-m.akacast.akamaistream.net/7/442/142692/v1/gnl.akacast.akamaistream.net/br_mp3_bayern3_m
     2017-01-12 15:13:36   mixrampdb       0.000000
     2017-01-12 15:13:36   mpd_event       player
     2017-01-12 09:24:33   mute            off
     2017-01-12 15:13:36   nextsong        1


auch da gibts einen Umweg wenn das zu kompliziert ist, scheint ja wohl bei anderen zu funktionieren pffft

Monti

Wzut

#409
dann warte mal bis morgen. Ich checke heute Abend eine neue Version ein mit dem neuen Reading : rawTitle - Inhalt die Title Information aus dem Stream ohne irgendwelche Veränderungen, so kann trotz titleSplit = 1 noch immer auf die ursprüngliche Info zugegriffen werden. Fix für Streams ala Bayern 3 mit einer Doppelpunt Blank Kombination im Titel.
Was die angesprochenen nicht gelöschten Readings betrifft, die hatte ich gar nicht auf dem Radar da ich sie bei mir nicht nutze. Werde nochmal einen Vergleich der mpc Ausgabe bei Play und Stop machen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Tobias

@Wzut, danke für die Info. Habe aufgrund deiner Info gesehen, das Irgendwo bei mir  die Umlaute kaputt gehen. Ich bin dem auf der Spur. Liegt erstmal NICHT am MPD
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

Wernieman

Hatte ich auch mal. Hatte mal ein Zeichensatzproblem. Konnte es im Endeffeckt nur durch ein Komplett Neuschreiben der Dateinamen lösen
- 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

Wzut

#412
Zitat von: Monti am 12 Januar 2017, 15:19:08
Das Reading : Name, Title und Album Image, audio, bitrate ... sind nach einem Stop immer noch gesetzt
Ich habe vorhin eine neue Version hochgeladen die sollte audio und bitrate bei Stop löschen. Bitte bedenken, es macht keinen Sinn vom Modul aus Readings zu löschen die der MPD im Modus Stop auch weiterhin zur Verfügung stellt ( Bsp Name & Title), denn nur weil er im Moment eben nichts abspielt bedeutet es nicht das er auch seine interne Playliste komplett vergesen hat !
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Bapt. Reverend Magersuppe

Hallo!

Mein MPD hängt das ganze FHEM auf wenn ich auf den Raum gehe in dem das Device definiert ist. Im Logfile (level 4) sehe ich noch den Aufruf der Webseite:
WEB_192.168.55.12_35710 GET /fhem?room=WOZI; BUFLEN:0

Dann ist totenstille, das ganze System eine Ewigkeit, wenn man was einen anderen Raum angeklickt hat, erscheint dieser endlich. Solange man die Finger vom Raum mit dem MPD lässt läufts, auch die Änderungen im MPD sehe ich im Logfile vorbeirauschen. Nur ansehen darf man es nicht, dann klemmt alles.
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

Wzut

Keine Ahnung was da bei dir schief läuft, aber verschiebe MPD doch erst einmal in einen eigenen Raum und dann teste nochmal alten und neuen Raum getrennt.
Hilfreich wäre halt auch mal die Info wie das Modul parametriert ist.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Bapt. Reverend Magersuppe

Danke, gute Idee!

Jetzt habe ich es in einem eigenen Raum, dann hängt wenigstens nicht gleich alles.
Eigentlich nichts ungewöhnliches eingestellt, ziemlich nach Standard. Es lief ja auch über Monate hinweg ganz unauffällig. Da bin ich sehr ratlos.

define RuneAudio MPD runeaudio.fritz.box
attr RuneAudio devStateIcon play:rc_PLAY:stop stop:rc_STOP:play pause:rc_PAUSE:pause
attr RuneAudio icon it_radio
attr RuneAudio loadPlaylists 1
attr RuneAudio room SOUND
attr RuneAudio titleSplit 1

--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

Wzut

#416
Stimmt die config ist wirklich minimal.
Und der neue Raum klemmt nun auch und das Wohnzimmer ohne MPD macht keine Probleme mehr ?
Spendiere dem MPD Modul mal ein verbose 4 statt das gleich global zu setzen, dann wird das Log leichter lesbar.
Edit : und als nächstes wechsele im Def von runeaudio.fritz.box auf die echte IP
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Bapt. Reverend Magersuppe

Danke für Deine prompte Hilfe und Unterstützung!
Genau!
Im Wohnzimmer ist jetzt wieder Ruhe (welch Wortspiel), da geht alles. Der neue Raum klemmt. habe jetzt mal auf die IP umgestellt und verbose auf 4.
Wenn man auf den Raum SOUND (wo ganz allein der MPD drin ist)  klickt, passiert nichts, klickt man dann auf einen anderen Raum kommt dieser nach ungefähr einer Minute, irgendwas scheint da zu time-outen.
Wechsle ich den Sender übers Handy am Runeaudio direkt, taucht dieses auch im fhem-logfile auf. Solange ich also in fhem nichts mache, gehts :-)
Ich kann sogar Kommandos von der FHEM-Kommandzeile senden: set runeaudio volume 6 geht einwandfrei.
Nur den Raum mit dem MPD drin anzeigen darf man nicht. Irgendwas grafisches?

Jetzt habe ich mal die devStateIcon rausgenommen, auch keine Besserung.
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

unimatrix

Hallo,

bin gerade das MPD Modul in mein eigenes Modul ein (bzw. ich benutze es dort) für meine MultiroomAudio Lösung (siehe hier: https://forum.fhem.de/index.php/topic,59135.0.html)

Ich nutze Mopidy und leider ist Mopidy mit der mpd Schnittstelle noch nicht so perfekt. Es kommt vor dass Mopidy z.B. auf ein playlistinfo nicht antwortet. Das ist ein Mopidy Problem und sollte auch da behoben werden. Allerdings führt dieses Problem dazu, dass FHEM einfriert. Grund dazu ist, dass im sub mpd_cmd() in Zeile 745 mit while (<$sock>)  # MPD rede mit mir , egal was ;) blockierend gelesen wird. Und wenn da da halt nix kommt, dann hängt FHEM an dem read Call für immer. Das sieht man auch schön im strace.

Ich schaffe es im Moment nicht, mich komplett in das MPD Modul einzuarbeiten um das ggf. auf komplett asynchrone Kommunikation umzubauen, was sicherlich ein nicht unerheblicher Aufwand wäre, daher wollte ich das Problem zumindest mal "melden" :)

Hat sonst noch jemand solche Probleme mit Mopidy?

Ggf gibts auch eine schnellere Lösung mit IO::Select und can_read(), was man dann aufruft, um zu checken ob da was kommt. So würde man zumindest in den Timeout laufen. Das schaue ich mir gerne selbst an sobald ich die Gelegenheit habe.

Ansonsten freue ich mich sehr über das MPD Modul und werde es intensiv nutzen :)

Wzut

Zitat von: Bapt. Reverend Magersuppe am 13 Januar 2017, 16:29:20
Nur den Raum mit dem MPD drin anzeigen darf man nicht. Irgendwas grafisches?
Vermutlich , mein erstes Gedanke ging Bilder von Last.fm, allerdings hast du die nicht aktiviert. Dummerweise ist mir da aber ein copy&paste Fehler unterlaufen.
Kannst du dir bitte mal im Modul die Zeile 838 ansehen :
if (AttrVal($name, "image_size", 0) > -1)
und diese abändern auf
if (AttrVal($name, "image_size", -1) > -1)
ich kann damit zwar deinen Fehler nicht nachstellen ist aber im Moment meine letzte Idee.

Zitat von: unimatrix am 13 Januar 2017, 16:45:54
um das ggf. auf komplett asynchrone Kommunikation umzubauen, was sicherlich ein nicht unerheblicher Aufwand wäre
Ehrlich gesagt würde ich das auch gern, den ersten Schritt dazu habe ich mit der Abschaffung des Pollings jetzt geschafft.
Um später mal mpd_cmd ganz sterben zu lassen zu können habe ich inzwischen gerade playlistinfo dem Child Prozess aufs Auge gedrückt.
Ich vermute mal du löst bei deinem "Hänger" playlistinfo via set Kommando aus ?  Das geht z.Z. noch den alten Weg. 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher