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
Hallo Toby,
Stichwort kann ich: 8)
Squeeze Player bzw Box
Schöne Ostern
Otto
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.
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
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
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!?
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
Stick gemountet hab ich alles schon. Autoupdate, meinst du es wird dann auch jedesmal die Playlist gecleart und neu angelegt automatisch beim einstecken?
nein , wieso sollten sich Playlisten automatisch ändern ?
Wenn du mit dem mpd einzelne Files abspielen willst muss er diese in seiner DB finden
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?
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.
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
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)
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.
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 :-)
ok, dann bin ich der falsche Mann (musste eben erstmal im Wiki nachschauen was PFUI eigentlich ist ... )
Jetzt musste ich erst mal kontrollieren ob ich wirklich PFUI geschrieben hatte 8)