mpd
Anforderungen
Eine oder mehrere Music Player Daemon müssen funktionsfähig installiert sein. Für detailierte Informationen zu den Kommandos des MPD siehe Hauptseite des Projektes und die Dokumentation
Notwendige Software
Es müssen keine zusätzlichen Module installiert werden
Konfiguration
plugin.yaml
Bitte die Dokumentation lesen, die aus den Metadaten der plugin.yaml erzeugt wurde.
items.yaml
Bitte die Dokumentation lesen, die aus den Metadaten der plugin.yaml erzeugt wurde.
logic.yaml
Bitte die Dokumentation lesen, die aus den Metadaten der plugin.yaml erzeugt wurde.
Funktionen
Bitte die Dokumentation lesen, die aus den Metadaten der plugin.yaml erzeugt wurde.
Beispiele
Für eine Nutzung von zwei Instanzen dient das folgende Konfigurationsbeispiel. Es soll je eine Instanz für ein Badezimmer und eine Küche angesteuert werden
mpd_bad:
plugin_name: mpd
instance: bad
host: 192.168.0.45
port: 6601
mpd_kueche:
plugin_name: mpd
instance: kueche
host: 192.168.0.55
port: 6602
Ein Beispiel das für alle Kommandos jeweils ein Item anlegt:
Bad:
Musik:
volume:
type: num
mpd_status@bad: volume
mpd_command@bad: setvol
enforce_updates: true
repeat:
type: bool
mpd_status@bad: repeat
mpd_command@bad: repeat
enforce_updates: true
playpause:
type: bool
mpd_status@bad: playpause
mpd_command@bad: playpause
enforce_updates: true
mute:
type: bool
mpd_status@bad: mute
mpd_command@bad: mute
enforce_updates: true
random:
type: bool
mpd_status@bad: random
mpd_command@bad: random
enforce_updates: true
single:
type: bool
mpd_status@bad: single
mpd_command@bad: single
enforce_updates: true
consume:
type: bool
mpd_status@bad: consume
mpd_command@bad: consume
enforce_updates: true
playlist:
type: num
mpd_status@bad: playlist
playlistlength:
type: num
mpd_status@bad: playlistlength
state:
type: str
mpd_status@bad: state
song:
type: num
mpd_status@bad: song
songid:
type: num
mpd_status@bad: songid
nextsongid:
type: num
mpd_status@bad: nextsongid
time:
type: str
mpd_status@bad: time
elapsed:
type: str
mpd_status@bad: elapsed
duration:
type: num
mpd_status@bad: duration
bitrate:
type: num
mpd_status@bad: bitrate
xfade:
type: num
mpd_status@bad: xfade
mpd_command@bad: crossfade
enforce_updates: true
mixrampdb:
type: num
mpd_status@bad: mixrampdb
mpd_command@bad: mixrampdb
enforce_updates: true
mixrampdelay:
type: num
mpd_status@bad: mixrampdelay
mpd_command@bad: mixrampdelay
enforce_updates: true
audio:
type: str
mpd_status@bad: audio
updating_db:
type: str
mpd_status@bad: updating_db
error:
type: str
mpd_status@bad: error
file:
type: str
mpd_songinfo@bad: file
Last-Modified:
type: str
mpd_songinfo@bad: Last-Modified
Artist:
type: str
mpd_songinfo@bad: Artist
Album:
type: str
mpd_songinfo@bad: Album
Title:
type: str
mpd_songinfo@bad: Title
Name:
type: str
mpd_songinfo@bad: Name
Track:
type: str
mpd_songinfo@bad: Track
Time:
type: str
mpd_songinfo@bad: Time
Pos:
type: str
mpd_songinfo@bad: Pos
Id:
type: str
mpd_songinfo@bad: Id
artists:
type: num
mpd_statistic@bad: artists
albums:
type: num
mpd_statistic@bad: albums
songs:
type: num
mpd_statistic@bad: songs
uptime:
type: num
mpd_statistic@bad: uptime
db_playtime:
type: num
mpd_statistic@bad: db_playtime
db_update:
type: num
mpd_statistic@bad: db_update
playtime:
type: num
mpd_statistic@bad: playtime
next:
type: bool
mpd_command@bad: next
enforce_updates: true
pause:
type: bool
mpd_command@bad: pause
enforce_updates: true
play:
type: num
mpd_command@bad: play
enforce_updates: true
playid:
type: num
mpd_command@bad: playid
enforce_updates: true
previous:
type: bool
mpd_command@bad: previous
enforce_updates: true
seek:
type: str
mpd_command@bad: seek
enforce_updates: true
seekid:
type: str
mpd_command@bad: seekid
enforce_updates: true
seekcur:
type: str
mpd_command@bad: seekcur
enforce_updates: true
stop:
type: bool
mpd_command@bad: stop
enforce_updates: true
rawcommand:
type: str
mpd_rawcommand@bad: rawcommand
enforce_updates: true
radio1:
type: bool
mpd_url@bad: "http://streamurlofradio1.de/"
enforce_updates: true
radio2:
type: bool
mpd_url@bad: "http://streamurlofradio2.de/"
enforce_updates: true
plradio1:
type: bool
mpd_localplaylist@bad: plradio1
enforce_updates: true
plradio2:
type: bool
mpd_localplaylist@bad: plradio2
enforce_updates: true
playlist1:
type: bool
mpd_localplaylist@bad: playlist1
enforce_updates: true
playlist2:
type: bool
mpd_localplaylist@bad: playlist2
enforce_updates: true
updatedatabase:
type: str
mpd_database@bad: update
enforce_updates: true
rescandatabase:
type: str
mpd_database@bad: rescan
enforce_updates: true
Das zweite Beispiel für die Küche zeigt nur Items die in einer SmartVISU dargestellt werden sollen:
Kueche:
Musik:
volume:
type: num
mpd_status@kueche: volume
mpd_command@kueche: setvol
enforce_updates: true
repeat:
type: bool
mpd_status@kueche: repeat
mpd_command@kueche: repeat
enforce_updates: true
playpause:
type: bool
mpd_status@kueche: playpause
mpd_command@kueche: playpause
enforce_updates: true
mute:
type: bool
mpd_status@kueche: mute
mpd_command@kueche: mute
enforce_updates: true
random:
type: bool
mpd_status@kueche: random
mpd_command@kueche: random
enforce_updates: true
state:
type: str
mpd_status@kueche: state
Artist:
type: str
mpd_songinfo@kueche: Artist
Album:
type: str
mpd_songinfo@kueche: Album
Title:
type: str
mpd_songinfo@kueche: Title
Name:
type: str
mpd_songinfo@kueche: Name
Track:
type: str
mpd_songinfo@kueche: Track
next:
type: bool
mpd_command@kueche: next
enforce_updates: true
previous:
type: bool
mpd_command@kueche: previous
enforce_updates: true
stop:
type: bool
mpd_command@kueche: stop
enforce_updates: true
Web Interface
Todo: Ein Webinterface muss noch erstellt werden
Die Datei dev/sample_plugin/webif/templates/index.html
sollte als Grundlage für Webinterfaces genutzt werden. Um Tabelleninhalte nach Spalten filtern und sortieren zu können, muss der entsprechende Code Block mit Referenz auf die relevante Table ID eingefügt werden (siehe Doku).
SmartHomeNG liefert eine Reihe Komponenten von Drittherstellern mit, die für die Gestaltung des Webinterfaces genutzt werden können. Erweiterungen dieser Komponenten usw. finden sich im Ordner /modules/http/webif/gstatic
.
Wenn das Plugin darüber hinaus noch Komponenten benötigt, werden diese im Ordner webif/static
des Plugins abgelegt.