[Neues Modul] MediaPortal

Begonnen von gemx, 16 Januar 2014, 18:19:46

Vorheriges Thema - Nächstes Thema

gemx

Hallo zusammen,

anbei nun mein 2. eigenes Modul für FHEM.
Da gibt es sicher noch einiges zu erweitern, aber ich denke es ist schon mal ein Anfang.

Was kann es?
Es verbindet sich per TCP/IP mit dem MediaPortal plugin "WifiRemote" und gibt die aktuellen Zustände des Mediaplayers als Readings aus.
Zudem erlaubt es auch die komplette Fernsteuerung des MediaPortals per FHEM.
Man kann sich also ganz einfach per weblink und ein paar Dummys eine Wifi Fernbedienung für das MediaPortal bauen :-)
Das MediaPortal ist ähnlich wie XBMC nur auf Windows basiert und einen eigenen TvServer.
Da ich dort mal im Entwicklerteam mit gemacht habe, war dieses Modul also nur die logische Konsequenz ;-)

Installation
Perl Modul für JSON installieren cpan install JSON
* Datei nach ins Module verzeichnis kopieren
reload 70_MEDIAPORTAL

Define
define mp MEDIAPORTAL <ip[:port] of WifiRemote plugin>

Attribute
authmethod => userpassword, passcode, both
username
password

Die Attribute müsst ihr nur angeben, wenn eine Anmeldung in WifiRemote erforderlich ist.
Das kann man selbst konfigurieren und ist alles beim Plugin beschrieben.

Set
set <name> command <beliebiges kommando wie stop, info, up, down....>
set <name> key <beliebiges taste die gesendet wird>
set <name> volume <lautstärke in %>
set <name> powermode <logoff/suspend...>
set <name> playfile <dateiname>
set <name> playchannel <channelid des TvProgramms>
set <name> playlist loadlist <name der playlistdatei in playlist folder, die geladen werden soll>
set <name> playlist loadfrompath <name der playlistdatei inkl. Pfad, die geladen werden soll>
set <name> playlist play <index innerhalb einer geladenen Playlist, ab dem abgespielt werden soll>

Wenn man einfach den letzten Parameter weglässt gibt es die jeweils gültigen Optionen.

18.07.2014 v0.3
* fixed stop command
* fixed playlist commands
* added playlist shuffle
* fixed console errors
* added log prefix
(Vielen Dank an spiff)

18.01.2013 V0.2
* Kleiner Bugfix

16.01.2014 V0.1
*Erste Version

rtv

Ah, schön mal wieder was von dir zu hören - und danke für das Plugin! Meine Frau hängt noch sehr an MP, weil die usability von XBMC einfach ... suboptimal ... ist. Werde das Plugin am Wochenende mal ausprobieren ;-)

gemx

Hi, das ist ja nett von dir zu hören. Bist ja auch schon ewig bei MP dabei gewesen. Bist du dort noch aktiv?

rtv

Nein, ich hab' privat leider seit einigen Jahren eine Menge um die Ohren und komme auch beruflich nicht mehr zum Programmieren.
Hätte auch nie gedacht, dass ich nach ca. 8 Jahren immer noch MP nutze - aber irgendwie gibt es selbst für viel Geld noch keine besseren Lösungen, die wirklich netzwerkfähig und aus einem Guss wären. Quasi Sonos auch für Filme, TV, etc...

Spiff

Hi gemx,

ich wollte gerade schonmal ausprobieren, habe jedoch folgendes Problem:

ERROR:
Cannot load module MEDIAPORTAL


JSON habe ich installiert und die Datei ins Modulverzeichnis kopiert.

Definition:
define mp MEDIAPORTAL localhost:8017

Ich nutze auch aMPdroid mit dem MPExtended, das funktioniert alles.

Hast du eine Idee?

Viele Grüße
Spiff

gemx

Zitat von: Spiff am 17 Januar 2014, 21:07:54
Hi gemx,

ich wollte gerade schonmal ausprobieren, habe jedoch folgendes Problem:

ERROR:
Cannot load module MEDIAPORTAL


JSON habe ich installiert und die Datei ins Modulverzeichnis kopiert.

Definition:
define mp MEDIAPORTAL localhost:8017

Ich nutze auch aMPdroid mit dem MPExtended, das funktioniert alles.

Hast du eine Idee?

Viele Grüße
Spiff

Das ist ja merkwürdig.
Hast du mal per reload 70_MEDIAPORTAL das Modul neu geladen?
Wenn das nicht funktioniert müsste eigentlich eine sprechende Fehlermeldung kommen

Spiff

bei reload 70_MEDIAPORTAL kommt:
Bareword "false" not allowed while "strict subs" in use at ./FHEM/70_MEDIAPORTAL.pm line 97.
und im DOS-Fenster:
Subroutine MEDIAPORTAL_Initialize redefined at ./FHEM/70_MEDIAPORTAL.pm line 34.

Subroutine MEDIAPORTAL_Define redefined at ./FHEM/70_MEDIAPORTAL.pm line 49.
Subroutine MEDIAPORTAL_Undef redefined at ./FHEM/70_MEDIAPORTAL.pm line 73.
Subroutine MEDIAPORTAL_Get redefined at ./FHEM/70_MEDIAPORTAL.pm line 84.


Beim reload der cfg kommt:
Subroutine MEDIAPORTAL_Initialize redefined at ./FHEM/70_MEDIAPORTAL.pm line 34,
<$fh> line 1034.
Subroutine MEDIAPORTAL_Define redefined at ./FHEM/70_MEDIAPORTAL.pm line 49, <$f
h> line 1034.
Subroutine MEDIAPORTAL_Undef redefined at ./FHEM/70_MEDIAPORTAL.pm line 73, <$fh
> line 1034.
Subroutine MEDIAPORTAL_Get redefined at ./FHEM/70_MEDIAPORTAL.pm line 84, <$fh>
line 1034.


Meine fhem-Version ist vom 08.01.14

Gruß
Spiff

gemx

Tja, seltsam, dass es bei mir diesbezüglich keinen Fehler gab.
Habe ne neue Version hochgeladen (im 1. Post), die sollte bei dir auch funktionieren :-)

Spiff

Hi gemx.

Super, das funktioniert, danke!
Ich teste es mal ausgiebig.

Eine Kleinigkeit beim Start von fhem:
Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 191.
Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 194.

Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 197.
Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 204.
Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 210.
Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 212.
Use of uninitialized value in concatenation (.) or string at ./FHEM/70_MEDIAPORT
AL.pm line 215.


Bis jetzt ist mir aber nichts aufgefallen, das nicht geht.

Viele Grüße
Spiff.

Spiff

Hi gemx,

zwei Sachen bekomme ich nicht hin:

1.) Abspielen von Radiosendern:
Wenn ich die Channel-Nummer eines Radiosenders bei playchannel angebe, bleibt der Bildschirm schwarz, es passiert nichts. Bei aMPdroid kann man auch keine Radiosender einstellen, vielleicht liegt es an WifiRemote?
TV-Sender funktionieren.

2.) Abspielen von Playlists:
Bekomme ich einfach nicht hin. Ich habe eine .m3u und eine .wpl, die in MP auch angezeigt werden. Wie muss man das genau machen? Erst "playlist loadlist default.m3u" und dann "playlist play default.m3u"?
Bei letzterem zeigt fhemweb "playlist play needs a valid index to start of type int" an und im DOS-Fenster "Argument "default.m3u" isn't numeric in addition (+) at ./FHEM/70_MEDIAPORTAL.pm line 130."

Danke & Gruß
Spiff.

gemx

Zitat von: Spiff am 19 Januar 2014, 15:37:28
Hi gemx,

zwei Sachen bekomme ich nicht hin:

1.) Abspielen von Radiosendern:
Wenn ich die Channel-Nummer eines Radiosenders bei playchannel angebe, bleibt der Bildschirm schwarz, es passiert nichts. Bei aMPdroid kann man auch keine Radiosender einstellen, vielleicht liegt es an WifiRemote?
TV-Sender funktionieren.

2.) Abspielen von Playlists:
Bekomme ich einfach nicht hin. Ich habe eine .m3u und eine .wpl, die in MP auch angezeigt werden. Wie muss man das genau machen? Erst "playlist loadlist default.m3u" und dann "playlist play default.m3u"?
Bei letzterem zeigt fhemweb "playlist play needs a valid index to start of type int" an und im DOS-Fenster "Argument "default.m3u" isn't numeric in addition (+) at ./FHEM/70_MEDIAPORTAL.pm line 130."

Danke & Gruß
Spiff.

zu 1)
=> muss ich mal testen

zu 2)
Der Umgang mit Playlisten per WifiRemote erfolgt immer 2 Stufe.
1. Laden der Playlist
=> Hierzu muss man eines der beiden Load... Kommandos verwenden. Liegt die Playlist im playlistfolder von Mediaportal nimmt man "loadlist" ansonsten kann die Playlistdatei irgendwo liegen, dann muss man "loadfromfile" verwenden und den gesamten pfad angeben

2. Abspielen der Playlist
Die Playlist selbst ist ja bereits geladen. Der einzige Parameter für "play" ist der index des Stückes innerhalb der Playlist.
Also z.B. "play 0", um die Playlist von Anfang an abzuspielen

AET_FHEM

---> Hallo an alle

seit ihr mit dem Modul immer noch zufrieden?

ich werde es am WE mal testen!

ich nutze auch FHEM und Mediaportal toll wenn man systeme miteinander verbinden kann!

Mediaportal und FHEM sind einfach große klasse!!!

Spiff

Hi!

Ich bekomme immer hin und wieder diese Fehler, weiss nicht genau, wann das passiert:
Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 191.
Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 194.
Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 197.
Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 204.
Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 210.
Use of uninitialized value in string eq at ./FHEM/70_MEDIAPORTAL.pm line 212.
Use of uninitialized value in concatenation (.) or string at ./FHEM/70_MEDIAPORT
AL.pm line 215.


Und ich bekomme es einfach nicht hin mit den Playlists.
Ich weiss nicht, was ich falsch mache, aber er scheint die Playlist nicht zu laden (ich mache es mit 'set mp playlist loadlist default.m3u'), die default.m3u ist im Standard-MP-Playlist-Verzeichnis.
Danach 'set mp playlist play 2' - er reagiert nicht.

Lautstärke einstellen usw. funktioniert aber wunderbar.

Gruß
Spiff.

darkHorizon

Wow, das klingt super! Hatte mir jetzt mit der Krücke eventghost Webinterface geholfen. So sind natürlich noch ganz andere Möglichkeiten gesetzt! Ich teste es bei Gelegenheit mal an.

AET_FHEM

HALLO,

schönes ding tut was es soll,
außer
"command stop" geht bei mir nicht.....
fhem sagt immer Unknown command
andere befehle gehn.....