Modul für MPD

Begonnen von roedert, 08 Januar 2014, 12:17:21

Vorheriges Thema - Nächstes Thema

roedert

Hallo zusammen,
habe schon gesucht, aber ein FHEM-Modul zur Steuerung des mld (http://de.wikipedia.org/wiki/Music_Player_Daemon) scheint es noch nicht zu geben.
Dieses sollte auf einem linux-basiserten System mit dem mpc-Command auf Betriebssystemebene ja ziemlich einfach machbar sein.
Habe gesehen, dass es relativ entfach ist ein neues Modul zu bauen, bin zwar Informatiker, aber mehr der Administrator als Programmierer ... von die Frage ob es sowas schon gibt oder jemand sowas plant, bevor ich mir da mehr schlecht als recht was zusammenbastel....


Wernieman

Hey,

leider bin ich auch "nur" Admin und kein Programmierer ... zusätzlich auch noch "blutiger fhem-Anfänger".

Prinzipiell sollte mpc start/stop ja relativ einfach sein. Ich wüste nur nicht, wie ein "status" eventuell abfragbar währe, schließlich könnte der mpd über einen anderen Client gestartet worden sein.

Hinweis:
Mit mpc starten/stoppen meinte ich nicht den mpc-Deamon, sondern das play/stop bzw. halt

Gruß,
Werner
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

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

roedert

Man kann mit mpc auch einiges abfragen:
  - Lautstärke
  - Wiedergabelisten
  - aktueller Status (play/pause/stop)
  - aktueller Titel

Wernieman

jaaa ... habe ich (ohne fhem) momentan auch bei meinem System drauf. Sogar Titelansage per espeak ...

Nur ... wie brige ich fhem am (resourcenschonensten) bei, den Status abzufragen? Schließlich sollte ein dauerhaftes polling nicht optiml sein, nur wenn es gebraucht wird.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

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

roedert

Zitat von: Wernieman am 08 Januar 2014, 14:19:20Nur ... wie brige ich fhem am (resourcenschonensten) bei, den Status abzufragen? Schließlich sollte ein dauerhaftes polling nicht optiml sein, nur wenn es gebraucht wird.

Ich glaube ettliche FHEM-Module basieren auf "dauerhaften Polling" ... zB PRESENCE, HMLAN, HUEBridge, NETIO230B wenn ich das richtig gedeutet habe.
Da muss man halt mit leben  ;)

Wernieman

nur ... braucht man das immer?

Ich würde gerne versuchen polling zu vermeiden ;o)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

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

roedert

Zitat von: Wernieman am 08 Januar 2014, 14:25:28
nur ... braucht man das immer?

Dann kann man es ja über ein Attribut abschalten bzw. das Intervall erhöhen - so ist es zB auch in PRESENCE.

Hauptaufgabe des Moduls ist ja sicherlich die Steuerung (start/stop/play/mute/next etc) statt dem Auslesen der Informationen.

Wernieman

Also sich einen Prototyp nehmen und Ihn mit den mpc Kommandos ausfüllen .... weißt Du, ob es für das Schreiben eines Moduls eine Doku gibt?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

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

roedert

#8
Doku....gute Frage.
Ich bin mal irgendwo das 00_GenShellSwitch.pm gestosse ... im Endeffekt kann man dieses schon als Gerüst nehmen ... mit 200 Zeilen incl. Dokumentation kann so ein Modul ja eigentlich gar nicht so schwierig sein.

http://www.forum-raspberrypi.de/Thread-projekt-433mhz-steckdosen-steuerung?page=5 Beitrag #64

Wernieman

Also ... ist es wirklich "so einfach"? Oder verstehe ich (mal wieder) alles falsch?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

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

roedert

Ein funktionierendes Programm zu schreiben ist immer einfach ... aufwendig ist nur alle möglich und unmöglichen Bedienungsfehler abzufangen  ;)

Wernieman

Mhhh ... weiß momentan nicht, was mein "Weib" heute Abend noch vorhat .. ansonsten könnte ich es mir mal genauer ansehen ... aber ohne gewär
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

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

Wernieman

ALSO ... habe mich versucht einzulesen ... eventuell kommt diese Woche ein erster Vorschlag ...

allerdings eine kleine Frage:
der mpd kann ja local und remote laufen. Für remote währen die Angaben host/port wichtig. Sollte man diese in eigene Variablen ausweisen oder bei der "Programmdefinition" mitgeben?
Defaultwerte (kann mann solche definieren?) würden dann host=localhost, port=6600 lauten ...

Ansonsten .... bin gerade VIEIEL am lesen .....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

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

roedert

Also der gängige Weg ist es diese Parameter in der Definition mitzugeben

Beispiele aus der Commandref

define <name> LISTENLIVE <ip-address>[:<port>] [<status_interval>]
define <name> IPCAM <ip[:port]>
define <name> PRESENCE lan-ping <ip-address> [ <check-interval> [ <present-check-interval> ] ]
define <name> HUEBridge [<host>] [<interval>]
define <name> NetIO230B <ip-address> <socket number(s) > [<user name> <password>]

Danke schon mal dass du dir das Thema mal anschaust :)

Wernieman

Mhhhh ... wenn ich denke, das ich erst vor 1 Monat mit FHEM angefangen habe ...... da dürftest Du weiter sein ;o)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

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