FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: accessburn am 24 März 2016, 13:39:19

Titel: MP3-Player in FHEM realisieren
Beitrag von: accessburn am 24 März 2016, 13:39:19
Hallo,

ich möchte gerne mein System erweitern mit folgender Idee:

Ich stecke einen USB-Stick auf dem MP3s sind ein, die Lieder werden eingelesen und ich kann dann steuern mit den normalen Elementen (Play, Pause, Vor, Zurück).
Kein Sonos o.ä., sondern direkt über den PI.

Geht sowas? Wenn ja, wie?
Wäre nett über ein paar (leicht verständliche) Stichworte und Tips von euch.


Liebe Gräße aus Ffm und schonmal frohe Ostern,
Toby
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: Otto123 am 24 März 2016, 16:35:18
Hallo Toby,
Stichwort kann ich: 8)

              Squeeze Player bzw Box
             

Schöne Ostern
Otto
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: accessburn am 24 März 2016, 19:48:50
Warum hab ich das gefühl da ist ein "muhahaha" versteckt :-)
Ich hab mir das mal kurz angesehen, sieht irgendwie nicht so leicht aus wie ich mir das vorgestellt hatte.
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: Otto123 am 24 März 2016, 22:50:23
Ja Sonos ist wesentlich einfacher  8)
Aber bevor ich Sonos geholt habe, habe ich mich mit Squeezeplayer beschäftigt. Ich fand den vom Konzept und einfacher Bedienbarkeit richtig gut. Und wenn ich immer die Posts sehe, hier im FHEM Forum beschäftigen sich viele damit.
Ich weiß nicht mehr wie meine Testumgebung aussah, aber ich fand es damals nicht schwierig.

Gruß Otto
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: Wzut am 25 März 2016, 08:55:46
Zitat von: accessburn am 24 März 2016, 13:39:19
Ich stecke einen USB-Stick auf dem MP3s sind ein, die Lieder werden eingelesen und ich kann dann steuern mit den normalen Elementen (Play, Pause, Vor, Zurück).
Kein Sonos o.ä., sondern direkt über den PI.
Das kann MPD , Lieder abspielen mit mpc ( gibt es als Konsolenversion oder auch Klicki-Bunti ), kann auch Radiostreams wiedergeben.
Fernsteuern mit fhem mit dem Modul 73_MPD
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: accessburn am 25 März 2016, 17:55:31
Funktioniert auf anhieb.
Internals:
   CHANGED
   HOST       localhost
   INTERVAL   30
   MY ALSA DEVICE on
   NAME       myMPD
   NR         426
   PORT       6600
   PRESENT    1
   STATE      play
   TYPE       MPD
   VERSION    MPD 0.16.0
   VOLUME     82
   Readings:
     2016-03-25 17:54:10   artist          DJ Gollum vs. Basslovers United
     2016-03-25 17:54:10   audio           44100:24:2
     2016-03-25 17:54:10   bitrate         192
     2016-03-25 17:54:10   consume         0
     2016-03-25 17:54:10   elapsed         30.453
     2016-03-25 17:54:10   file            DJ Gollum vs. Basslovers United - Narcotic (Money G Video Edit) Official Video.mp3
     2016-03-25 17:54:10   id              2
     2016-03-25 17:54:10   last-modified   2015-03-15T20:47:42Z
     2016-03-25 17:54:10   mixrampdb       0.000000
     2016-03-25 17:54:10   mixrampdelay    nan
     2016-03-25 17:54:10   nextsong        4
     2016-03-25 17:54:10   nextsongid      4
     2016-03-25 17:54:10   playlist        27
     2016-03-25 17:54:10   playlistlength  25
     2016-03-25 17:54:10   pos             2
     2016-03-25 17:52:13   random          1
     2016-03-25 17:54:10   repeat          0
     2016-03-25 17:54:10   single          0
     2016-03-25 17:54:10   song            2
     2016-03-25 17:54:10   songid          2
     2016-03-25 17:53:33   state           play
     2016-03-25 17:54:10   time            217
     2016-03-25 17:54:10   title           Narcotic (Money G Video Edit) Official Video
     2016-03-25 17:54:10   volume          82
     2016-03-25 17:54:10   xfade           0
     Name:
Attributes:
   devStateIcon play:rc_PLAY:stop stop:rc_STOP:play pause:rc_PAUSE:pause
   icon       it_radio
   room       MP3



Die Frage wäre jetzt, wie bringe ich mpc dazu das update immer auf einen Stick zu fahren der gerade eingesteckt wird, automatisch!?
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: Wzut am 25 März 2016, 18:25:39
hmm , als erstes würde ich usbmount installieren , das stellt schon mal sicher das dein Stick irgendwo unter /media/USBx gefunden wird.
Als zweiten Schritt in der /etc/mpd.conf dieses /media/ als music_directory angeben und zusätzlich noch auto_update aktivieren, dann sollte das passen :
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
#
auto_update    "yes"


Axo, die letzte Version des 73_MPD Moduls ist noch nicht im svn , zu finden ist es hier : https://forum.fhem.de/index.php?topic=18517.msg400328#msg400328
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: accessburn am 25 März 2016, 18:55:17
Stick gemountet hab ich alles schon. Autoupdate, meinst du es wird dann auch jedesmal die Playlist gecleart und neu angelegt automatisch beim einstecken?
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: Wzut am 25 März 2016, 19:00:05
nein , wieso sollten sich Playlisten automatisch ändern ?
Wenn du mit dem mpd einzelne Files abspielen willst muss er diese in seiner DB finden
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: accessburn am 25 März 2016, 19:03:23
Ah okay, dann hab ich mich vielleicht doof ausgedrückt. Hier ist es oft der Fall das Leute mit eigenen Mixen vorbei kommen. Ich möchte das der Stick beim einstecken ein clear und add auslöst um die neuen Files darin abzuspielen.

Denkst du sowas ist technisch möglich?
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: Wzut am 25 März 2016, 19:22:05
Keine Ahnung wie man das direkt dem mpd beibringen könnte, aber auf fhem Ebene sollte das mit einem notify auf den Event DataBase changed machbar sein.
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: accessburn am 25 März 2016, 19:28:38
Ich tippe mal ins blaue und sage, ein Script das permanent auf den USB-Stick testet wäre einfach, jedoch wie wenn es regelmäßig ein anderer ist. Das mount greift nur auf einen einzigen Stick oder nimmt es den nächst besten der gerade eingesteckt wird?

Dann wäre es recht leicht machbar. Auf Inhalt testen, wenn ja, clear & add
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: accessburn am 25 März 2016, 22:17:57
Möchte die Idee anderen nicht vorenthalten und auch mal wieder für gelächter unter den richtigen Programmierern sorgen :-)

cfg
define mp3add dummy
attr mp3add room MP3
attr mp3add setList on off
define mp3readd notify mp3add:on {system("sudo bash /opt/fhem/mp3readd.sh &")}


bash
/etc/init.d/mpd start
mpc clear
mpc update
mpc ls | mpc add
/etc/init.d/mpd restart
wget http://username:passwort@192.168.178.20:8083/fhem?cmd.dummy=set%20myMPD%20play&XHR=1
wget http://username:passwort@192.168.178.20:8083/fhem?cmd.dummy=set%20mp3add%20off&XHR=1


ftui
<marquee><div data-type="label" data-device="myMPD" data-get="artist" class="inline"></div> - <div data-type="label" data-device="myMPD" data-get="title" class="inline"></div></marquee>
<div data-type="switch" data-device="myMPD" data-icon="fa-chevron-left" data-set-on="previous" data-set-off="previous" data-on-color="#AA6900" data-off-color="#AA6900" data-background-icon="-"  class="inline"></div>
<div data-type="switch" data-device="myMPD" data-get="STATE" data-get-on="play" data-get-off="stop" data-icon="fa-play" data-background-icon="-" data-set-device="myMPD" data-on-color="#aa6900" data-off-color="#505050" class="inline"></div>
<div data-type="switch" data-device="myMPD" data-icon="fa-chevron-right" data-set-on="next" data-set-off="next" data-on-color="#AA6900" data-off-color="#AA6900" data-background-icon="-" class="inline"></div>
<div data-type="button" data-device="mp3add" data-icon="fa-sun-o" data-background-icon="-" data-get-on="on" data-get-off="on" data-set-device="myMPD" data-on-color="#aa6900" data-off-color="#505050" class="inline"></div>


Beim drücken des "fa-sun-o"-Buttons wird das Bash ausgelöst auf on gesetzt und ausgelöst.
Die Playlist wird gecleart, neu eingelesen und der Player gestartet per wget, damit auch der play-button auf on springt.
Anschließend wird der "fa-sun-o"-Button wieder auf "off" gesetzt. Ich stelle mir vor es ist ein Ladenbutton den man immer anklicken muss wenn man einen neuen USB-Stick einsteckt oder den Inhalt des Sticks einfach ändert.


Es darf gemeckert werden  8)
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: Wzut am 26 März 2016, 17:58:19
Zitat von: accessburn am 25 März 2016, 22:17:57
und auch mal wieder für gelächter unter den richtigen Programmierern sorgen :-)
Sorry, verstehe ich nun nicht so ganz ....
Es gibt bei fhem meist 20 verschiedene Wege zum Ziel, wenn du nun deinen gefunden hast und damit glücklich bist ist es doch perfekt ?
Obwohl .... irgendwie reizt mich jetzt doch das Thema Stickwechsel automatisch erkennen , DB auto Updaten und default Playlist generieren :)
Mal schauen wenn ich wieder mal am MPD Modul schraube ob da nicht doch noch der Groschen fällt.
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: accessburn am 26 März 2016, 18:04:05
Ja zufrieden bin ich nicht, aber es funktioniert :-)
Wenn du solche Spielereien dann einbaust und ich dich drauf geschupst habe freut es mich.
Trotzdem wäre es cool wenn da ein "Profi" mal drüber schauen würde ob da vielleicht auch im FTUI-Bereich optimierbar sind. Denn diese Art und weise ist bestimmt nicht die beste :-)
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: Wzut am 26 März 2016, 19:19:39
ok, dann bin ich der falsche Mann (musste eben erstmal im Wiki nachschauen was PFUI eigentlich ist ... )
Titel: Antw:MP3-Player in FHEM realisieren
Beitrag von: accessburn am 26 März 2016, 19:20:58
Jetzt musste ich erst mal kontrollieren ob ich wirklich PFUI geschrieben hatte 8)