Modul StreamRadio Einrichtungshilfe: Unterschied zwischen den Versionen
Fiedel (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Fiedel (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 9: | Zeile 9: | ||
== Was kann das Modul? == | == Was kann das Modul? == | ||
Es handelt sich um ein Device, welches das Abspielen von WebStreams auf dem Raspberry ermöglicht. | Es handelt sich um ein Device, welches das Abspielen von WebStreams auf dem Raspberry oder anderen vollwertigen Linux- Plattformen ermöglicht. Das Modul kann beliebige WebStreams per MPlayer abspielen und auch deren Metadaten, z.B. aktuell laufender Titel anzeigen. Das ganze wird direkt in der Raumübersicht angezeigt. | ||
Das Modul kann beliebige WebStreams per MPlayer abspielen und auch deren Metadaten, z.B. aktuell laufender Titel anzeigen. | |||
Das ganze wird direkt in der Raumübersicht angezeigt | |||
== Anwendungsbeispiele == | == Anwendungsbeispiele == | ||
Zeile 30: | Zeile 27: | ||
gpasswd -a fhem sudo</nowiki> | gpasswd -a fhem sudo</nowiki> | ||
Bearbeiten der sudo- Konfiguration: | Überprüfen kann man die Zuordnung mit: | ||
<nowiki>root@debian:~# groups fhem | |||
fhem : dialout mail sudo audio</nowiki> | |||
Bearbeiten der sudo- Konfiguration (damit fhem bei sudo- Zugriffen kein Passwort liefern muss): | |||
<nowiki>visudo</nowiki> | <nowiki>visudo</nowiki> | ||
Im nun geöffneten Editorfenster unter den ggf. bereits vorhandenen Einträgen folgende Zeile einfügen: | Im nun geöffneten Editorfenster unter den ggf. bereits vorhandenen Einträgen folgende Zeile einfügen: | ||
Zeile 38: | Zeile 39: | ||
== Testen des mplayer und auslesen der Steuerbefehle == | |||
Version vom 29. Dezember 2014, 11:54 Uhr
(in Bearbeitung!)Modul StreamRadio zum hören von Webradiostreams über FHEM und Linux
Diese Anleitung basiert auf diesem Thread: [1]
Download StreamRadio- Modul mit Radiotext (Fehlerbehaftet aber funktionsfähig): [2]
Download StreamRadio- Modul ohne Radiotext: [3]
Aufgabenstellung
Mit dieser Anleitung soll der unübersichtliche Inhalt des o.g. Ursprungsthreads zusammengefasst werden.
Was kann das Modul?
Es handelt sich um ein Device, welches das Abspielen von WebStreams auf dem Raspberry oder anderen vollwertigen Linux- Plattformen ermöglicht. Das Modul kann beliebige WebStreams per MPlayer abspielen und auch deren Metadaten, z.B. aktuell laufender Titel anzeigen. Das ganze wird direkt in der Raumübersicht angezeigt.
Anwendungsbeispiele
Voraussetzungen Betriebssystem
Installation des mplayer, falls nicht bereits vorhanden:
sudo apt-get install mplayer
Berechtigungen für Benutzer fhem unter Linux vorbereiten.
Diese Schritte sind generell (nicht nur für das Radio) notwendig,
wenn FHEM auf Linux- Shellbefehle zugreifen können soll:
Benutzer fhem zu den Gruppen "dialout", "audio", "mail" und "sudoers" hinzufügen:
addgroup fhem dialout addgroup fhem mail addgroup fhem audio gpasswd -a fhem sudo
Überprüfen kann man die Zuordnung mit: root@debian:~# groups fhem fhem : dialout mail sudo audio
Bearbeiten der sudo- Konfiguration (damit fhem bei sudo- Zugriffen kein Passwort liefern muss):
visudo
Im nun geöffneten Editorfenster unter den ggf. bereits vorhandenen Einträgen folgende Zeile einfügen:
fhem ALL=NOPASSWD: ALL
Datei jetzt speichern und den Rechner neu starten.
Achtung: Mit diesem Eintrag in die sudo- Konfigdatei werden dem Benutzer fhem weitreichende Befugnisse eingeräumt. Diese können später sinnvoll eingeschränkt werden, indem man den Vollzugriff nur für bestimmte Befehle/Anwendungen freigibt.
Testen des mplayer und auslesen der Steuerbefehle
Definition unter FHEM
Verwendung
Beschreibung der Funktion
Temporär: Bearbeitungsquellen aus Thread
- Das angehängte Script "74_StreamRadio" ins Modul Verzeichnis kopieren, also wahrscheinlich nach /opt/fhem/FHEM
- irgendwo eine Datei mit den WebStreams anlegen. Diese Datei sollte pro Zeile immer den Namen des Streams gefolgt von "|" und dann die URL enthalten.
also z.B.
Code: [Auswählen]
testradio|http://bla.com/34.m3u
. Eine Sample Datei ist ebenfalls dabei
Define Code: [Auswählen]
define streamradio StreamRadio /opt/fhem/log/WebStreams.txt
unter der Vorraussetzung, dass ihr die WebStreams.txt dort abgelegt habt.
Attribute volume_command <= das shell kommando, um die Lautstärke einzustellen. Es kann die Platzhalter von sprintf verwendet werden. Für den raspi z.B. "amixer cset numid=1 -- %s%%". Dies ist der Default, nach einem neuen define telnetport <= Der lokale telnetport für FHEM. Achtung: Es darf keine Authentifizierung eingerichtet sein aodevice <= -ao Parameter für mplayer, um das output device anzugeben
Commands set <name> PLAY <StreamURL/Stationname aus Playlist> set <name> STOP set <name> VOLUME <Lautstärke in %>
Aktuelle Version
(Update erfolgt immer hier im ersten Posting)
V0.5
- Reading für "state" funktioniert wieder
- Die Playlist wird nach Namen sortiert angezeigt
- set PLAY kann jetzt auch der Stationname anstelle der URL angegeben werden
- Die Lautstärke veränderung in % sollte jetzt proportional erfolgen
- V.04 Neues Attribut "aodev", um das aodevice für mplayer festzulegen - V0.3 Neuer Befehl "VOLUME", Mehr Metadaten, Das MPlayer log wird nicht mehr geparsed sondern direkt STDOUT. Das dürfte deutlich performanter sein - V0.2 Umbau auf Benutzung von BlockingCall - V0.1 (initiale Version
Das war es auch schon. Als Attribut kann man noch das Logfile für den MPlayer festlegen, welches für die Ermittlung der Metadaten verwendet wird.
Noch offene Punkte - Da der MPlayer seinerseits auch noch weitere MPlayer Prozesse forked, hat ein Kill direkt auf die PID nicht funktioniert. Derzeit klappt es nur sauber mit killall - Telnetport der von Blocking.pm erstellt wird ermitteln. Das hat bisher leider noch nicht geklappt.