Eigene Musiksammlung per MP3-Stream und Sprachsteuerung

Begonnen von Phill, 05 Januar 2018, 11:45:54

Vorheriges Thema - Nächstes Thema

Phill

Hi, ich wollte gerne meine eigene Musiksammlung auf Hardware abspielen die MP3-Streams empfangen können (also eigentlich alle gängigen Geräte), und dann das ganze per Sprachsteuerung starten.

Stelle hier mal kurz meine Lösung vor.
Mini-Mp3-Server (siehe Anhang) starten. Am besten in einer Screen Session.
mp3server.pl [PORT]
Der Server bekommt dann über die URL ein Verzeichnis mitgeteilt, aus dem alle mp3-Dateien in zufälliger Reihenfolge abspielt werden.
http://fhem:8000/meine/musik/sammlung/201*/
Das Beispiel würde jetzt alle Verzeichnisse ab 2010 berücksichtigen.

Der Stream kann im Endeffekt an alle Streaminggeräte geleitet werden. (Alexa, Google Home, Sonos, was weiß ich...). Bei ist es eine SonySoundbar.

Um das ganze jetzt per Sprache zu steuern habe ich Talk2Fhem so konfiguriert.
(klassiker|musik spielen$|spiele musik$) = set gc_eggroup play http://fhem:8000/media/data/music/$1[Classics,Categories/20*]/
\b(hip.{0,3}hop|rnb|pop musi[ck]|rock)\b =
set gc_eggroup play http://geomedia:8000/media/data/music/Categories/$1[HipHop,R&B,Pop,Rock]*/


Das ganze wird bei mir auf einer GoogleCast Gruppe mit einer SonySoundbar und einem GoogleHomeMini gestreamt.

Läuft ziemlich rund für den kleinen Aufwand. Vielleicht kann's ja jemand gebrauchen.

Update: 27.01.2018
Habe mal ein paar Änderungen und Updates am Script gemacht.
Es gibt jetzt Parameter die Übergeben werden können. Ab dem Verzeichnis mit einem "?" getrennt.

http://server:port/verzeichnis/zur/sammlung?parameter1+parameter2=wert

Folgenden Parameter stehen jetzt zur Verfügung:

  • random: spielt die Lieder zufällig ab
  • loop: fängt am ende von vorne an
  • file: sucht im Dateinamen nach den angegebenen Wörten
  • dir: sucht im Verzeichnisnamen nach den angegebenen Wörten
  • randomdir: spielt alle mp3's eines zufälligen Verzeichnisses
  • test: gibt nur debug Meldungen aus aber streamt nicht

Die Talk2Fhem Config sieht bei mir jetzt so aus:

# suche im Dateinamen
\S*spiele\S* && (musik|lieder) && vo[nm] (de[mnr] (Band|Gruppe|Interpret\S*|Künstler\S*)?)? ?(.*?)( (ab)?(spielen)?)?$ =
{fhem("set gc_eggroup play http://geomedia:8000/media/data/music/C*/?random+loop+file=".urlEncode('$4'))}
# wähle ein bestimmtes Verzeichnis
spiele && \b(hip.{0,3}hop|black|reggae|pop|soul|musik|klassiker)\b && !alb(en|um) =
set gc_eggroup play http://geomedia:8000/media/data/music/$1[Categories/HipHop,Categories/R%26B,Categories/Reggae,Categories/Pop,Categories/Soft,Categories/20,Classics]*/?random+loop
# wähle ein zufälliges Verzeichnis
spiele && \b(ein )?(ein|zufälliges|anderes|irgend.*ein|deutsch\S*|hip.{0,3}hop|black|reggae|pop|soul) album( (ab)?(spielen)?)?$ =
set gc_eggroup play http://geomedia:8000/media/data/music/Alben/$2[,,,,Deutsch*/,HipHop*/,RnB*/,Reggaeton*/,Pop*/,Soul*/]?randomdir+loop
# suche im Verzeichnisnamen
\S*spiele\S* && (irgend\S*|ein|da\S\S?)? ?alb(um|en) && ?vo[nm] && ?de[nmr] (Band|Gruppe|Interpret\S*|Künstler\S*)? && ?( ab)$ =
{fhem("set gc_eggroup play http://geomedia:8000/media/data/music/Alben/?loop+dir=".urlEncode('!$&'))}


Wer seine Musiksammlung auch mit Verzeichnissen organisiert hat sollte das mit recht wenig Aufwand anpassen können.

Gruß


Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

MadMax-FHEM

Klingt sehr interessant...

...und: Mist! Noch eine "Baustelle"...
...werd ich denn nie fertig!? ;)

Vielen Dank, werde ich mir (wenn Zeit ist) mal näher ansehen...
...ebenso wie Talk2Fhem...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TWART016


Phill

Wenn du dem dot eine URL mitteilen kannst die er abspielen soll, sollte nichts dagegen sprechen. Ich habe selbst keinen
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

TWART016

Ich dachte der Echo kann nur BLuetooth oder die vorhandenen Streaming Dienste.

MadMax-FHEM

Zitat von: TWART016 am 05 Januar 2018, 21:58:23
Ich dachte der Echo kann nur BLuetooth oder die vorhandenen Streaming Dienste.

Soweit ich weiß ist das auch (immer noch) so...


Zitat von: Phill am 05 Januar 2018, 17:40:27
Wenn du dem dot eine URL mitteilen kannst die er abspielen soll, sollte nichts dagegen sprechen. Ich habe selbst keinen

War ja nur bezogen auf das Modul, also kein Problem sofern die Gegenstelle (hier Alexa) das kann/könnte...
...was sie leider (noch) nicht kann...

Siehe diverse "Alexa-Threads", die Frage wurde schon häufiger gestellt und beantwortet... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

justme1968

https://forum.fhem.de/index.php/topic,66421.msg742225.html#msg742225

wenn das gegeben ist kann man das abspielen auch über einen skill mit passendem api auslösen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Phill

Hi, ich habe mal den ersten Beitrag aktualisiert. Ist bei mir jetzt täglich in Gebrauch und funktioniert sehr zuverlässig.
Endlich eine intuitive, einfache und schnelle Möglichkeit die eigene Musik abzuspielen.

Gruß
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

Stargrove1

#8
Ich würde das ganze gerne mal ausprobieren, scheitere aber schon am Anfang, das script starten ist soweit noch klar, aber wie verweise ich auf meine Musiksammlung (liegt auf einem NAS im Netzwerk) abspielen würde ich zum testen erstmal auf einem meiner Google Home devices, wo ich das Abspielgerät definieren kann, verstehe ich leider ebenfalls nicht. Das Talk2Fhem Modul ist bereits am Laufen und kann ein paar devices schalten. Ich wäre dankbar für ein bisschen Starthilfe