Autor Thema: Modul für MPD  (Gelesen 82730 mal)

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 537
Antw:Modul für MPD
« Antwort #15 am: 08 Januar 2014, 19:22:31 »
Gut möglich, aber FHEM einrichten/bedienen und ein Modul dafür zu Programmieren sind ja nun 2 völlig verschiedene Bereiche.

Klar, Grundlagen der Programmierung kenne ich auch, paar kleine Shellscripte etc. ist ja alles kein Problem ..... aber richtige Programmierung und evtl. noch objektorientiert ist 20 Jahre her beim Studium  ::)

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3351
Antw:Modul für MPD
« Antwort #16 am: 08 Januar 2014, 19:26:47 »
Erwarte von mir keine Wunder ... bei mir ist es (etwas) länger her .....

Aber als Linux-Admin muß man doch etwas häufiger an Scripten "doktorn" ....
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3351
Antw:Modul für MPD
« Antwort #17 am: 08 Januar 2014, 20:49:54 »
Ein erster "Schnellschuß"

Definieren mit: define define myMPD MPDKannst Dir dann ansehen, welche Atribute es hat, Standard ist localhost

Starten mit set myMPD onstoppen analog

Mehr (noch) nicht implementiert.

P.S. Ich hätte anstatt mpc auch direkt den Port per nc ansprechen können ... nur das liegt nicht in meiner Liga ....
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 537
Antw:Modul für MPD
« Antwort #18 am: 09 Januar 2014, 08:20:22 »
Hey, super ... das ging ja schnell  :)

Ich habe mal zusammengefasst wie das MPD-Teil am Ende mal aussehen könnte.
Sieht erstmal nach viel Arbeit aus, isses aber wahrscheinlich nicht, da es an dem mpc-Syntax angelehnt ist und die meisten Befehle 1:1 an mpc durchgereicht werden können.

Da mpd nicht nur Audiodateien, sondern auch Streams abspielt, hat man damit ein prima Internetradio.
Oder spielt Radio vom Satellit übers Netzwerk mit einem Elgato EyeTV NetStream Sat ... nutze ich aktuell selbst, da ich bei Internetradio öfter auch Aussetzer habe bei größeren Downloads - ausserdem "mülle" ich die Leitung nicht zu.

Ein weiterer Einsatzzweck für dieses Modul könnte die Ton-/Sprachausgabe sein ... mit eigenen Aufnahmen der Tönen.
Die Töne/Sprachelemnte legt man dann in einer Playlist ab und kann sie mit zB "set mpd play 1" abrufen.

Im Gegensatz zu espeak habe ich zwar nur die selbst definierten Texte zur Verfügung, dafür kann ich da aber was gut klingendes auswählen oder selbst aufnehmen statt der teilweise doch sehr künstlichen Sprache von espeak.

Define

   define <name> MPD <ip-address>[:port]

Set
  stop                         Stops playing.
  play [position]              Starts playing the song-number specified. If none is specified, plays number 1.
  pause                        Pauses playing.
  toggle                       Toggles between play and pause. If stopped starts playing. Does not support start playing at song number (use play).
  volume [+-]<num>             Sets the volume to <num> (0-100). If "+" or "-" is used, then it adjusts the volume relative to the current volume.
  mute [on|off]                Toggle mute mode if state ("on" or "off") is not specified.
  next                         Starts playing next song on playlist.
  pref                         Starts playing previous song.
  random [on|off]              Toggle random mode if state ("on" or "off") is not specified.
  repeat [on|off]              Toggle repeat mode if state ("on" or "off") is not specified.
  consume [on|off]             Toggle consume mode if state ("on" or "off") is not specified.
  load <file>                  Loads <file> as playlist.
  clear                        Empties playlist.

Get
  version                      Reports the version of MPD.
  stats                        Displays statistics about MPD.
  volume                       Displays current Volume.
  lsplaylists                  Lists available playlists.             
  playlist                     Prints entire playlist.

Attributes
  PollInterval                 Interval for update mpd informations (default = 60 seconds, 0 = no update)
   
Generated Readings/Events:
  current                      currently playing song
  volume                       current volume                       
  version                      mpd version

 

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3351
Antw:Modul für MPD
« Antwort #19 am: 09 Januar 2014, 08:45:44 »
Die Umsetzungen Deiner Möglichkeiten währen simpel. Woran ich momentan hänge, ist an einer Update des MPD-Defice, siehe auch
http://forum.fhem.de/index.php/topic,18552.0.html

Hast Du meine "Lösung" Testen können? ist allerdings noch sehr dirty
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 537
Antw:Modul für MPD
« Antwort #20 am: 09 Januar 2014, 09:02:09 »
Hast Du meine "Lösung" Testen können? ist allerdings noch sehr dirty

...noch nicht - ich will mir erstmal eine "Testumgebung" schaffen - auch für eigene Spielereien.
Steht aber für heute noch auf dem Plan.....
Meine FHEM-Installation ist mittlerweile schon "zu wichtig" um sie mit irgendwelchen Spielereien zu gefährden.

Ist jetzt nicht auf dein Modul bezogen, sondern auch auf meine weiteren Ideen.

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3351
Antw:Modul für MPD
« Antwort #21 am: 09 Januar 2014, 09:05:05 »
Habe ich gemerkt ... durch einen "Vor dem Bildschirm Fehler" habe ich mir fhem gestern auch komplett abgeschossen ;o)
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline drdownload

  • Sr. Member
  • ****
  • Beiträge: 733
Antw:Modul für MPD
« Antwort #22 am: 09 Januar 2014, 09:43:45 »
In Kombination mit Pulseaudio ergibt MPD auch eine sehr nette Multi-Room Audio Lösung ;)
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 537
Antw:Modul für MPD
« Antwort #23 am: 09 Januar 2014, 09:47:40 »
....eben, die Möglichkeiten von MPD sind sehr vielfältig.
Umsomehr hat mich gewundert, dass das Thema hier fast völlig neu ist - ich konnte es kaum glauben, dass die Forensuche nur einige weniger Treffer zu MPD gefunden hat, geschweige denn dass es ein Modul dafür gibt.

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3351
Antw:Modul für MPD
« Antwort #24 am: 09 Januar 2014, 09:57:27 »
Wenn Du die verschiedenen Audiodevice als alsa-Device definierst, kannst Du mpd sogar einzelne Kanäle an/abschalten ...

habe mpd schon länger bei mir laufen, bisher allerdings "nur" mit einem Kanal ...
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline drdownload

  • Sr. Member
  • ****
  • Beiträge: 733
Antw:Modul für MPD
« Antwort #25 am: 09 Januar 2014, 10:10:17 »
was ich allerding noch nicht herausgefunden habe (ich weiß auch nicht ob es geht), ob ich quasi ein audio follow machen kann, sprich outputs während dem abspielen ein- und ausschalten.
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3351
Antw:Modul für MPD
« Antwort #26 am: 09 Januar 2014, 10:14:34 »
Ich zitiere aus dem Help-Bereich:
mpc outputs                                           Show the current outputs
mpc enable [only] <output # or name> [...]            Enable output(s)
mpc disable [only] <output # or name> [...]           Disable output(s)

Allerdings .. wenn DU mpd ALLE Outputs abschaltet geht er automatisch in den Stop.

Hänge bei meinem modul immer noch bei dem Rückaktuallisieren der Werte .... extern kann ich es lösen, aber wie würde man dieses direkt in fhem implementieren??????
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1584
Antw:Modul für MPD
« Antwort #27 am: 09 Januar 2014, 11:31:21 »
Hallo Leute , haben eben leider erst dieses Thema endeckt.
Da ich auch auf der Suche nach einem MPD Modul für FHEM war habe ich in den letzten Tagen etwas gebastelt.

Config Beispiel:
define myMusic MPC
attr myMusic interval 10
attr myMusic loadPlaylists 1
attr myMusic room MPC
attr myMusic volumeStep 10

falls auch eine Web Fernbedienung gewünscht ist , zusätzlich noch :
define MPC_WL weblink htmlCode {fhem("get myMusic webrc", 1)}
attr MPC_WL room MPC

das define  myMusic MPC geht davon aus das der MPD via localhost und Port 6600 erreichbar ist. Ist das nicht der Fall
muss Ziel IP und Port noch mit übergeben werden  -> define myMusic MPC  192.168.0.55 7000
 
an Attributen werden z.Z ünterstützt  :
attr interval     = Polling Intervall in Sekunden , default 30
attr loadPlaylists  = beim Start des Moduls Playlisten laden ja/nein
attr loadMusic  = beim Start des Moduls Liste der Musik laden ja/nein
attr volumeStep  = Schrittweite in % für Vol+ und Vol-

Edit :
Ich habe bewust auf die Fernsteuerung des MPC via FHEM verzichtet und baue lieber eine Verbindung direkt zum MPD auf, da ich mir unsicher war ob der MPC für alle Plattformen verfügbar ist auf denen auch FHEM läuft.

ToDo :
User und Passwort für MPD fehlen noch
attr blacklist z.Z noch ohne Funktion
 

 
« Letzte Änderung: 15 Februar 2014, 22:30:54 von Wzut »
Maintainer der Module: MPD, EDIPLUG, UbiquitiMP, UbiquitiOut, SIP

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3351
Antw:Modul für MPD
« Antwort #28 am: 09 Januar 2014, 12:00:51 »
Hört sich auch gut an ... aber ich wollte beim mpd versuchen nicht zu pollen, da der mpc einen "idle" Status versteht.

Wie ich dieses in FHEM implementiert bekomme ... daran hänge ich gerade!

Soweit ich weiß ist mpc "nur" für alle Linux-versionen verfügbar. Allerdings macht mpd auf Alternativen Systemen (z.B. Windows) wenig Sinn ... mann könnte "natürlich" auch RAW per TCP auf den mpd zugreifen, ohne mpc. Aber ... soweit bin ich mit meinen Kenntnissen von fhem nicht
- Bitte um Input für Output
- When there is a Shell, there is a Way

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 537
Antw:Modul für MPD
« Antwort #29 am: 09 Januar 2014, 12:43:01 »
... aber ich wollte beim mpd versuchen nicht zu pollen...

Daher ja die Idee das Pollen mit interval=0 abschalten zu können für den der es nicht will oder die Infos nicht braucht

...Soweit ich weiß ist mpc "nur" für alle Linux-versionen verfügbar. ...

Da denke ich ein Großteil der Installationen auf Linux läuft (Raspberry, Fritzbox, NAS, "normale" PC-Hardware) sollte schon den meisten geholfen sein.
Es gibt auch weitere Module, die auf Linux-Command basieren - zB. SISPM.
Dass das Modul "nur-Linux" ist, sollte erstmal kein Hinderungsgrund sein.