Mediaportal: Unterschied zwischen den Versionen

Aus FHEMWiki
(Neu angelegt)
 
K (Changelog angepasst)
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 11: Zeile 11:
[http://www.team-mediaportal.de/ Mediaportal] ist eine Opensource MediaCenter-Software für Windows Plattformen, die eine eigene TV-Server-Software mitbringt.
[http://www.team-mediaportal.de/ Mediaportal] ist eine Opensource MediaCenter-Software für Windows Plattformen, die eine eigene TV-Server-Software mitbringt.


Das Fhem-Modul benötigt zur Steuerung von Mediaportal das [http://www.team-mediaportal.de/erweiterungen/eingabe-und-ausgabe/wifiremote Wifiremote]-Plugin.
Das FHEM-Modul benötigt zur Steuerung von Mediaportal das [http://www.team-mediaportal.de/erweiterungen/eingabe-und-ausgabe/wifiremote Wifiremote]-Plugin.


In der lokalen Perl-Installation muss [http://search.cpan.org/~makamaka/JSON-2.90/lib/JSON.pm JSON] installiert sein. Dies kann einfach mittels:
In der lokalen Perl-Installation muss [http://search.cpan.org/~makamaka/JSON-2.90/lib/JSON.pm JSON] installiert sein. Dies kann einfach mittels:
Zeile 18: Zeile 18:
Mit dem Modul können zur Steuerung alle Befehle gesendet werden, die man auch auf einer Fernbedienung zur Verfügung hat. Des Weiteren gibt es Befehle wie <code>wakeup</code> oder <code>sleep</code>, die auf den Rechner einwirken, auf dem Mediaportal läuft.
Mit dem Modul können zur Steuerung alle Befehle gesendet werden, die man auch auf einer Fernbedienung zur Verfügung hat. Des Weiteren gibt es Befehle wie <code>wakeup</code> oder <code>sleep</code>, die auf den Rechner einwirken, auf dem Mediaportal läuft.
Es wird versucht, das Attribut für das Aufwecken (<code>macaddress</code>) automatisch zu ermitteln, sodass man dieses nur in Ausnahmefällen selber eintragen muss.
Es wird versucht, das Attribut für das Aufwecken (<code>macaddress</code>) automatisch zu ermitteln, sodass man dieses nur in Ausnahmefällen selber eintragen muss.
Auf der Empfangsseite werden die Titelinformationen, sowie die Laufzeiten und aktuellen Positionen empfangen, sowie der Abspielzustand. Diese Informationen werden vom Player per Push gesendet, so dass die entsprechende Information sofort in Fhem aktualisiert wird. Da die Aktualisierung für die aktuelle Position und Laufzeit sekündlich erfolgt, kann man das Erzeugen eines Fhem-Events mittels eines Attributs beeinflussen. Die Aktualisierung des Readings selbst erfolgt dabei immer.
Auf der Empfangsseite werden die Titelinformationen, sowie die Laufzeiten und aktuellen Positionen empfangen, sowie der Abspielzustand. Diese Informationen werden vom Player per Push gesendet, so dass die entsprechende Information sofort in FHEM aktualisiert wird. Da die Aktualisierung für die aktuelle Position und Laufzeit sekündlich erfolgt, kann man das Erzeugen eines FHEM-Events mittels eines Attributs beeinflussen. Die Aktualisierung des Readings selbst erfolgt dabei immer.




== Einbindung von MEDIAPORTAL in Fhem ==
== Einbindung von MEDIAPORTAL in FHEM ==
Die Einbindung erfolgt über das Modul MEDIAPORTAL:
Die Einbindung erfolgt über das Modul MEDIAPORTAL:
<pre>define <Devicename> MEDIAPORTAL host[:port]</pre>
<pre>define <Devicename> MEDIAPORTAL host[:port]</pre>
Zeile 45: Zeile 45:
|-
|-
| colspan="3" style="vertical-align:top" | SVN-History
| colspan="3" style="vertical-align:top" | SVN-History
|-
| colspan="2" style="vertical-align:top;text-align:center" | 15.04.2018
|
*Beim Stoppen der Wiedergabe werden nun noch einige Readings geleert, damit diese sauber neu belegt werden können.
|-
| colspan="2" style="vertical-align:top;text-align:center" | 26.02.2018
|
*Es gab einen Fehler bei der prozentualen Positionsberechnung. Nun wird ein Dezimalbruch zwischen 0.0 und 100.0 ausgegeben, den man mit dem Attribut "PositionPercentFormat" z.B. auch auf mehrere Nachkommastellen formatieren kann.
*Heartbeat und 3facher Verbindungsversuch wurden wieder abgeschafft, da es keinen Vorteil gebracht hat.
*Der Verbindungsaufbau über die Fhem-Schnittstelle DevIO wird nun sauber durchgeführt und gehalten, sodass das Wiederverbinden sauber klappt
*Einige neue Readings, um bei den verschiedenen Quellen auch die echten Quell-Infos zu erhalten (und nicht nur einen zusammengesetzten Titel)
|-
| colspan="2" style="vertical-align:top;text-align:center" | 18.04.2017
|
*Es gibt ein neues Reading "PositionPercent", welches die aktuelle Postion als Prozentangabe enthält
*Bei einem Disconnect wird nun 3x versucht eine neue Verbindung aufzubauen
*Es wurde ein Fehlerhandling eingebaut, wenn keine Plugins geladen werden konnten.
|-
| colspan="2" style="vertical-align:top;text-align:center" | 12.03.2017
|
*Es gibt einen neuen Getter "plugins", der das Reading "Plugins" mit den aktuell verfügbaren Plugins und deren WindowIds belegt
*Es gibt einen neuen Setter "window" der als Parameter eine WindowId oder einen Pluginnamen (URL-Encoded mit %20 für Leerzeichen!) erhält
|-
| colspan="2" style="vertical-align:top;text-align:center" | 14.03.2016
|
*Es gibt nun ein Attribut "HeartbeatInterval", mit dem das Intervall für die Verbindungsprüfung festgelegt werden kann. Ein Wert von "0" deaktiviert die Prüfung.
*Es gibt nun das Attribut "disable", mit dem das Modul deaktiviert werden kann.
|-
| colspan="2" style="vertical-align:top;text-align:center" | 08.02.2016
|
*Neuer MediaType "recording" hinzugefügt
|-  
|-  
| colspan="2" style="vertical-align:top;text-align:center" | 07.02.2016
| colspan="2" style="vertical-align:top;text-align:center" | 07.02.2016
|  
|  
*In das offizielle Fhem-Release übernommen
*In das offizielle FHEM-Release übernommen
*Allgemein im Code aufgeräumt
*Allgemein im Code aufgeräumt
*Dokumentation hinzugefügt
*Dokumentation hinzugefügt
Zeile 56: Zeile 87:
*Fehlende Titelanzeige bei initialem Start der Wiedergabe behoben
*Fehlende Titelanzeige bei initialem Start der Wiedergabe behoben
*WakeUp und Sleep hinzugefügt, damit man schnell den entsprechenden Mediaportal-Rechner hochfahren bzw. in den Hibernate-Modus schalten kann. Dazu wurde ein Attribut "macaddress" eingeführt.
*WakeUp und Sleep hinzugefügt, damit man schnell den entsprechenden Mediaportal-Rechner hochfahren bzw. in den Hibernate-Modus schalten kann. Dazu wurde ein Attribut "macaddress" eingeführt.
*Mögliche Parameter für Get und Set angegeben, sodass diese in FhemWeb entsprechend angeboten werden.
*Mögliche Parameter für Get und Set angegeben, sodass diese in FHEMWeb entsprechend angeboten werden.
*Volume umbenannt, damit das Reading die Grundlage für die Lautstärkeauswahl (Slider) ist.
*Volume umbenannt, damit das Reading die Grundlage für die Lautstärkeauswahl (Slider) ist.
*Es gibt jetzt ein Attribut "generateNowPlayingUpdateEvents", mit dem man die Generierung von (bei der Wiedergabe) sekündlichen Aktualisierungen an-/abschalten kann
*Es gibt jetzt ein Attribut "generateNowPlayingUpdateEvents", mit dem man die Generierung von (bei der Wiedergabe) sekündlichen Aktualisierungen an-/abschalten kann

Aktuelle Version vom 15. April 2018, 11:31 Uhr

Mediaportal
Zweck / Funktion
Steuerung einer Mediaportal-Installation über Wifiremote
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) Multimedia
Modulname 70_MEDIAPORTAL.pm
Ersteller Reinerlein
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Mediaportal ist eine Opensource MediaCenter-Software für Windows Plattformen, die eine eigene TV-Server-Software mitbringt.

Das FHEM-Modul benötigt zur Steuerung von Mediaportal das Wifiremote-Plugin.

In der lokalen Perl-Installation muss JSON installiert sein. Dies kann einfach mittels:

sudo cpan install JSON

installiert werden.

Mit dem Modul können zur Steuerung alle Befehle gesendet werden, die man auch auf einer Fernbedienung zur Verfügung hat. Des Weiteren gibt es Befehle wie wakeup oder sleep, die auf den Rechner einwirken, auf dem Mediaportal läuft. Es wird versucht, das Attribut für das Aufwecken (macaddress) automatisch zu ermitteln, sodass man dieses nur in Ausnahmefällen selber eintragen muss. Auf der Empfangsseite werden die Titelinformationen, sowie die Laufzeiten und aktuellen Positionen empfangen, sowie der Abspielzustand. Diese Informationen werden vom Player per Push gesendet, so dass die entsprechende Information sofort in FHEM aktualisiert wird. Da die Aktualisierung für die aktuelle Position und Laufzeit sekündlich erfolgt, kann man das Erzeugen eines FHEM-Events mittels eines Attributs beeinflussen. Die Aktualisierung des Readings selbst erfolgt dabei immer.


Einbindung von MEDIAPORTAL in FHEM

Die Einbindung erfolgt über das Modul MEDIAPORTAL:

define <Devicename> MEDIAPORTAL host[:port]

Am Besten erfolgt die Einrichtung, wenn Mediaportal gerade erreichbar ist. Dann wird auch gleich die passende Mac-Adresse automatisch ermittelt, und man kann das Feature wakeup ohne weitere Einstellungen verwenden.


Hinweise

Es ist sehr zu empfehlen, dass Attribut event-on-change-reading zu verwenden:

attr mediaportal event-on-change-reading .*

Sonst erhält man einige sinnlose Events.

Des Weiteren kann man das Attribut webCmd setzen, sodass man direkt in der Raumübersicht z.B. Mediaportal wecken kann, und die Lautstärke mit einem Slider anpassen kann:

attr mediaportal webCmd wakeup:sleep:Volume

Außerdem habe ich der Übersicht halber noch den angezeigten State angepasst, sodass mir dort gleich der Zustand der Verbindung und der aktuell abgespielte Titel dargestellt wird:

attr mediaportal stateFormat state (playStatus - Title)


Changelog

Datum Version Änderungen
SVN-History
15.04.2018
  • Beim Stoppen der Wiedergabe werden nun noch einige Readings geleert, damit diese sauber neu belegt werden können.
26.02.2018
  • Es gab einen Fehler bei der prozentualen Positionsberechnung. Nun wird ein Dezimalbruch zwischen 0.0 und 100.0 ausgegeben, den man mit dem Attribut "PositionPercentFormat" z.B. auch auf mehrere Nachkommastellen formatieren kann.
  • Heartbeat und 3facher Verbindungsversuch wurden wieder abgeschafft, da es keinen Vorteil gebracht hat.
  • Der Verbindungsaufbau über die Fhem-Schnittstelle DevIO wird nun sauber durchgeführt und gehalten, sodass das Wiederverbinden sauber klappt
  • Einige neue Readings, um bei den verschiedenen Quellen auch die echten Quell-Infos zu erhalten (und nicht nur einen zusammengesetzten Titel)
18.04.2017
  • Es gibt ein neues Reading "PositionPercent", welches die aktuelle Postion als Prozentangabe enthält
  • Bei einem Disconnect wird nun 3x versucht eine neue Verbindung aufzubauen
  • Es wurde ein Fehlerhandling eingebaut, wenn keine Plugins geladen werden konnten.
12.03.2017
  • Es gibt einen neuen Getter "plugins", der das Reading "Plugins" mit den aktuell verfügbaren Plugins und deren WindowIds belegt
  • Es gibt einen neuen Setter "window" der als Parameter eine WindowId oder einen Pluginnamen (URL-Encoded mit %20 für Leerzeichen!) erhält
14.03.2016
  • Es gibt nun ein Attribut "HeartbeatInterval", mit dem das Intervall für die Verbindungsprüfung festgelegt werden kann. Ein Wert von "0" deaktiviert die Prüfung.
  • Es gibt nun das Attribut "disable", mit dem das Modul deaktiviert werden kann.
08.02.2016
  • Neuer MediaType "recording" hinzugefügt
07.02.2016
  • In das offizielle FHEM-Release übernommen
  • Allgemein im Code aufgeräumt
  • Dokumentation hinzugefügt
  • Umlautproblem bei der Titelanzeige behoben
  • Mehr Readings befüllt, die sowieso geliefert werden. Dazu gehören z.B. Titelinformationen bei TV, Beschreibungen und die Informationen über den nächsten Titel.
  • $readingsFnAttributes hinzugefügt. Damit geht z.B. stateFormat oder event-on-change-reading
  • Fehlende Titelanzeige bei initialem Start der Wiedergabe behoben
  • WakeUp und Sleep hinzugefügt, damit man schnell den entsprechenden Mediaportal-Rechner hochfahren bzw. in den Hibernate-Modus schalten kann. Dazu wurde ein Attribut "macaddress" eingeführt.
  • Mögliche Parameter für Get und Set angegeben, sodass diese in FHEMWeb entsprechend angeboten werden.
  • Volume umbenannt, damit das Reading die Grundlage für die Lautstärkeauswahl (Slider) ist.
  • Es gibt jetzt ein Attribut "generateNowPlayingUpdateEvents", mit dem man die Generierung von (bei der Wiedergabe) sekündlichen Aktualisierungen an-/abschalten kann
  • Die Mac-Adresse, die für das Aufwecken benötigt wird, wird nun automatisch ermittelt.
  • Die Read-Callbackfunktion wurde überarbeitet, da in einigen Fällen halbe Nachrichten zu einem Freeze geführt hatten.
  • Es gibt jetzt einen Setter "reconnect", der eine neue Verbindung zu Mediaportal aufbaut
  • Wenn festgestellt wird, dass eine Verbindung zu Mediaportal nicht mehr lebendig ist, wird ein reconnect ausgeführt.
Versionen von forum.fhem.de
19.03.2015 0.4a
  • (Spiff) added connect command
18.07.2014 0.3
  • (Spiff) fixed stop command, fixed playlist commands, added playlist shuffle, fixed console errors, added log prefix
18.01.2014 0.2
  • Fixed compatibility error
16.01.2014 0.1
  • Initial Release