Mediaportal: Nun offiziell in Fhem enthalten

Begonnen von Reinerlein, 07 Februar 2016, 16:28:54

Vorheriges Thema - Nächstes Thema

Reinerlein

Hallo zusammen,

da ich nun offiziell die Wartung für das verwaiste Mediaportal-Modul übernommen habe und bereits einige Weiterentwicklungen durchgeführt habe, hier nun die offizelle "es-geht-los"-Mitteilung.

Ich habe versucht, den letzten Stand zusammenzubekommen, und habe von da an weitergebaut. Dabei habe ich aber einiges umgebaut und umgeschrieben, sodass es durchaus sein kann, das etwas nicht sofort wie erwartet funktioniert.
Bei mir läuft das Modul nun stabil mit meinem Mediaportal zusammen. Das muss aber ja nunmal nicht für alle Umgebungen gelten... das kennen wir ja schon :)

Folgendes habe ich umgebaut:

  • 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.
Wie immer ab sofort im Subversion oder ab Morgen per update...

Viel Spaß beim Testen

Grüße
Reinerlein

spooy99

Hallo und danke für das Update!

Läuft bisher ohne Probleme - alle Readings werden gefüllt und aktualisiert ... TOP!

Werde am WE noch weiter testen...

Danke!
FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

spooy99

Hier ein erster Fehler im Log:


2016.02.08 20:44:42 0: MEDIAPORTAL: MediaInfo für "recording" geliefert, aber nicht verarbeitet. Bitte diese komplette Information ins Forum einstellen: $VAR1 = {
          'ProgramDescription' => "Bild des Schreckens, Mystery, USA 2014Eigentlich hatten Ichabod und Katrina sich auf einen ruhigen Abend zu zweit gefreut, doch dann geraten sie in einen mysteri\x{c3}\x{b6}sen Mordfall. Ein Restaurator bemerkt bei der Arbeit an einem Gem\x{c3}\x{a4}lde, dass die dargestellte Person pl\x{c3}\x{b6}tzlich zu bluten beginnt. Wenig sp\x{c3}\x{a4}ter ist der Restaurator tot. Bei der Suche nach dem M\x{c3}\x{b6}rder treffen Ichabod und Katrina auf eine Person aus ihrer Vergangenheit: Abigail Adams.Regie: John R. LeonettiDrehbuch: Melissa BlakeKomponist: Robert LydeckerDarsteller:Tom Mison (Ichabod Crane)Nicole Beharie (Lt. Abbie Mills)Katia Winter (Katrina Crane)Orlando Jones (Captain Frank Irving)Michelle Trachtenberg (Abigail Adams)",
          'MpExtId' => '894',
          'MediaType' => 'recording',
          'MpExtProviderId' => 0,
          'RecordingId' => 894,
          'MpExtMediaType' => 13,
          'ChannelId' => 1149,
          'ProgramName' => 'Sleepy Hollow',
          'ChannelName' => 'SIXX',
          'ProgramBegin' => '/Date(1454102593000+0100)/',
          'ProgramEnd' => '/Date(1454106913000+0100)/'
        };

FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

Reinerlein

Hallo spooy99,

danke für die Info. Das ist der Bereich, der sehr davon abhängt, was man von Mediaportal benutzt (deshalb auch die deutliche Meldung :) )

Ich habe die Information nachgearbeitet, ist ab Morgen im update...

Grüße
Reinerlein

spooy99

Danke - die Einträge in den Logs sind nun nicht mehr aufgetreten...

Dafür ist mir Folgendes aufgefallen: Im Reading Title wird bei Live-TV der Name des TV-Senders und der Titel der Sendung angezeigt (z.B. "Das Erste HD - Tagesschau"). Ab dem nächsten Update der Readings steht jedoch nur noch der Name des TV-Senders ("Das Erste HD") ohne Titel der Sendung im Reading.

Thx

FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

Reinerlein

Hallo spooy99,

das liegt an einer, in meinen Augen, fehlerhaften Implementierung des Wifiremote-Plugins.
Der Titel wird auf zwei Nachrichten hin mitgeteilt: Einmal als "status"- und einmal als "nowplaying"-Message.

Das Problem ist nun, dass bei einem Status nicht immer ein Titel mitgeliefert wird, sodass ich auch bei NowPlaying den Titel setze. Dort wird der Titel auch viel genauer mitgeteilt, also auch mit Beschreibung usw. (das war der Bereich, wo "recording" fehlte).
Leider muss ich irgendwie auch den Titel bei einer Status-Message berücksichtigen, da er sonst nicht verschwindet, wenn die Wiedergabe endet. NowPlaying wird nur beim Starten einer Wiedergabe gesendet, Status auch beim Beenden...

Ich muss nochmal schauen, wie es sich genau auswirkt, wenn ich den Titel im Status ignoriere...

Grüße
Reiner

Jotoc

Hallo Reiner,

schön das du das Plugin weiterführst. Ich habe es aktualisiert und es läuft gut. Leider habe ich aber jetzt das Problem, dass mein Mediaportal nicht mehr selbsständig in den Ruhezustand geht wenn alle Streamsund Aufnahmen gestoppt sind.
Mit dem allten Plugin hatte ich das nicht.
Hast Du eine Idee woran das liegen könnte?
Danke!

Grüsse
Jens

Reinerlein

Hi Jens,

hmm... ich habe eine Art Verbindungstest eingebaut, weil ich oftmals das Problem hatte, dass ich zwar anscheinend eine Verbindung zu Mediaportal hatte, aber keine Daten mehr übertragen wurden.
Deshalb fordere ich alle 15 Sekunden einen Status an.

Aber ob das jetzt die Ursache ist, kann ich nur vermuten. Fährt dein Mediaportal denn runter, wenn du das Modul nicht laufen hast?
Dabei fällt mir auf, dass ich noch keinerlei Möglichkeit vorgesehen habe, das Modul zu disablen :(
Ich werde das mal nachziehen... wird aber vermutlich erst zum Wochenende was...

Grüße
Reiner

Jotoc

Hi Reiner,

das wird es wohl sein. Wenn du mir verräts wie ich diesen Verbindungstest auf 6 Minuten einstellen kann wäre mein Problem wohl gelöst, da mein MP nach 5 Minuten ohne Aktivität runterfährt. Aber schau es Dir in Ruhe an vielleicht findest du noch eine bessere Lösung.

Grüsse
Jens

Reinerlein

Hi Jens,

ich bin gerade dabei ein Attribut einzubauen, um diese Zeit einzustellen.

Bis dahin kannst du dir auch mit einer manuellen Anpassung helfen, um zu prüfen, ob es das Problem löst.
Es gibt eine Variable "MEDIAPORTAL_Interval" (ca. bei Zeile 61). Die steht auf 15. Die Einheit ist Sekunden, bei dir dann also 360.

Grüße
Reiner

Jotoc

Hallo Reiner,

ich habe den Wert auf 6 Minuten (360) erhöht. Leider war das nicht die Lösung MP PC fährt nicht runter. Plugin disconected indem ich die IP von MP unter DEF geändert habe, und der PC fährt nach 5 Minuten herunter.  Fragst du vielleicht noch andere Werte öfters ab?

Grüsse
Jens

Reinerlein

Hallo Jens,

nein, eigentlich nicht. Alles andere wird, wie vorher auch, nur empfangen...

Hast du nach der Dateiänderung auch das Modul neu geladen (mittels "reload 70_MEDIAPORTAL")?
Wenn ja, musst du anschließend einmal einen Reconnect absetzen. Natürlich ginge alternativ auch ein Neustart von Fhem...
Danach sollte deine Änderung auf jeden Fall greifen.

Steht denn im Log (auf Stufe 3) was von "GetIntervalStatus hat festgestellt, dass Mediaportal sich..."?
Danach macht er einen Reconnect. Das ist letztendlich die Folge der Statusabfrage, wenn sie nämlich keine Antwort zurückbringt, wird ein reconnect durchgeführt...

Was du noch testen kannst, ist von einem anderen Rechner (z.B. dem Fhem Rechner) eine eigene Telnet-Verbindung zu Mediaportal aufzumachen (IP und Port wie in der Definition). Vorher das Modul durch deine Def-Änderung deaktivieren.
Und dann mal schauen, was Mediaportal bei der offenen Verbindung so macht, also ob er dann runterfährt...

Grüße
Reiner

Jotoc

Hallo Reiner,

es funktioniert. Ich hatte zwar Gestern einen Reboot von Fhem gemacht aber anscheinend hat die Zeit mit 360 Sekunden nicht ganz gereicht. Heute mit 500 Sekunden getestet und funktioniert.
Danke nochmal!

Grüsse
Jens

Reinerlein

Hallo zusammen,

mir ist gerade aufgefallen, dass ich die Änderung mit dem Heartbeatintervall noch gar nicht eingecheckt hatte.
Das habe ich gerade nachgeholt.
Außerdem gibt es jetzt ein disable-Attribut.

Wie immer ab sofort im SVN oder ab Morgen per Update...

Grüße
Reiner

aplatac

Hallo,
schön dass an diesem tollen Modul weiter gearbeitet wird :)
Ich habe es schon länger im Einsatz. Heute ist mir aber etwas
merkwürdiges aufgefallen: wir haben unsere Stromhauptverteilung
versetzen lassen. Das hatte 5h Stromausfall zu Folge und dies hat
MePo/FHEM wohl etwas übel genommen. Mein Setup ist etwas
ungewöhnlich, ein RasPi hat IR-Sender/Empfänger an den GPIOs und
löst durch lirc Befehle an das MePo-Modul auf dem selben RasPi aus,
welche dann den eigentlichen MePo-Rechner fernsteuern. Nach dem
Stromausfall war dieses Konstruckt plötzlich tot! Neustarts beider Rechner,
ebenso Updates und auslösen des "Connect" (Modul), waren erfolglos.
Ich habe viel rumgefummelt und dann zufällig den neuen "reconnect"
gefunden und der hat mit einem Klick alles wieder gerichtet! Frage, wie
kommt es, dass die Verbindung über Resets hinweg gestört ist aber
der Reconnect klappt sofort. Dazu fällt mir noch ein, dass es bei mir
gelegentlich zu Unterbrechungen in dieser Kette FB - MePo kommt,
bei denen MePo für ca. 40 oder 60 Sekunden keine FB - Befehle annimmt
und dann wieder ganz normal läuft. Leider sehr unreproduzierbar, da wir
nicht rumzappen ;) merkt man halt nicht jede Zwangspause der FB und
ob das dann von MePo, Wifi-Remote, Fhem, MePo-Modul, LIRC oder dem
Pi selber kommt war mir nie klar.

bye,
P