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

Spiff

Hi,

ich kann auch berichten, dass irgendwas mit dem (re-)connect nicht gut funktioniert.

Bei mir ist es so, dass MP und FHEM auf einem Server laufen und dieser 24h durchläuft.
Eigentlich habe ich ein Auto-Stop eingeführt, wenn ich das Haus verlasse. Das klappt immer wieder nicht, weil die Verbindung zu MP nicht steht.
Das war im alten Modul zuverlässiger.

Jetzt auch gerade ist MP wieder "disconnected" und ich muss ein manuelles "reconnect" ausführen.

Wann und wie die Verbindung verloren geht, habe ich noch nicht nachgeforscht.
Vielleicht weiß Reinerlein mehr?

Gruß
Spiff.

aplatac

Hm, heute schein ganz böse der Wurm drin zu sein. Bekomme überhaupt keine Verbindung zw. FHEM und MePo hin. Beim Standby gestern liefs noch... erstaunlich ist auch das jetzt angezeigte, letzte, Reading. Das ist vom 24.04 und sicher nicht das richtige, da der Rechner seit dem täglich benutzt wurde. Dort müsste dort was vom 08.05 stehen.

aplatac

So, gestern habe ich "natürlich" wieder vergessen, dass es eine zweite Art von Connect gibt. Ein Reconnect und es geht wieder... frage an den Autor, warum gibts zwei Versionen und wärs nicht gut diese zu einer zusammen zu fügen? Was macht Reconnect anders als Connect, bzw. warum erweckt ein MePo/FHEM-Gespann wieder zum Leben?

Spiff

Hi Reiner,

weisst du, woran es liegen kann, dass die Verbindung hin und wieder mal verloren geht?
Bei einem Neustart muss ich eigentlich immer ein manuelles "reconnect" machen.

Mir ist auch noch ein anderer bug aufgefallen:
wenn der INTERNAL-STATE auf "Disconnected" steht, bleibt das reading state auf "opened".
Ich habe einen Floorplan mit einer Fernbedienung und möchte mir anzeigen lassen, ob FHEM mit MP verbunden ist, nur leider zeigt er immer "opened" an, auch wenn die Verbindung weg ist.

Gruß
Spiff.

Stefan75

Hallo,

ich benutze seit kurzen das Mediaportal Modul, habe aber noch ein paar Fragen/Probleme damit:

1. Ich benutze das Mediaportal Modul und versuche mittels "set MediaPortal playchannel 1" auf das erste Programm zu schalten.
    Media-Portal schaltet zwar auf TV, aber waehlt ein voellig anderes Programm.
    Bei "set MediaPortal playchannel 1" => HR hd
    Bei "set MediaPortal playchannel 2" => arte hd
    Wenn ich den Kanal auf 3 bis 6 setzte, passiert nichts.

    Hat jemand eine Idee?
    - ARD hd hat den "Channel 1"
    - ARD ist im TV-Guide auch der erste Eintrag
    - Wenn ich im TV-Vollbild in die Tastatur "1" waehle, schaltet er auf ARD, bei 2 auf ZDF

2. Gibt es auch die Moeglichkeit auf andere Module zu schalten?
    (z.B. Moving Pictures, Musik, Series, Radio) ?

3. Es gibt Befehle wie Fullscreen - leider toggeln sie. Gibt es auch "absolute" Varianten?

4. Ich habe mir einen virtuellen dummy TV konfiguriert, der bei "on" u.a. in MediaPortal auf TV schalten soll und spaeter dann mittels "1" auf ARD.
    Es scheint aber so zu sein, dass das aktivieren des TVs laenger dauert und ich etwas warten muss.

   Aber wie warte ich in einem notify perl block, so dass auch fhem nicht blockiert wird und auch alle Readings aktualisiert werden?
   (dann koennte ich z.B. in einer Schleife warten, bis MediaPortal auf TV steht)

   Sind ein paar Workarounds drin, aber es funktioniert nicht richtig sauber.


Vielen Dank,

stefan

---


Livingroom.Tv.* {
my ($newState, $oldState, $mediaPortalModule, $mediaPortalTitle);;
$oldState = OldValue($NAME);;
$newState = Value($NAME);;
if ($newState eq "toggle")
{
  if ($oldState eq "on")
  {
   $newState = "off"
  }
  if ($oldState eq "off")
  {
    $newState = "on"
  }
}
Log( 1, "Livingroom.TvNotify triggered on $NAME with $EVENT: $oldState -> $newState");;
if ($newState eq "on")

  $mediaPortalModule = ReadingsVal("MediaPortal", "CurrentModule", "unknown");;
  Log( 1, "Livingroom.TvNotify MediaPortal currently in $mediaPortalModule");;

  if ( ! ($mediaPortalModule =~ /^TV/))
  {
    fhem("set MediaPortal playchannel 1");;
    $mediaPortalModule = ReadingsVal("MediaPortal", "CurrentModule", "unknown");;
    Log( 1, "Livingroom.TvNotify After playchannel 1: MediaPortal currently in $mediaPortalModule");;       

    sleep 3;;
  }
 
  fhem("set Livingroom.MediaCenter on");;

  if ( $mediaPortalModule =~ /^TV/ and ! ($mediaPortalModule =~ /fullscreen/))
  {
    fhem("set MediaPortal command fullscreen");;
    $mediaPortalModule = ReadingsVal("MediaPortal", "CurrentModule", "unknown");;
    Log( 1, "Livingroom.TvNotify After fullscreen: MediaPortal currently in $mediaPortalModule");;
  }

  $mediaPortalTitle = ReadingsVal("MediaPortal", "Title", "unknown");;
  Log( 1, "Livingroom.TvNotify MediaPortal Title $mediaPortalTitle");;
  if ( ! ($mediaPortalTitle=~ /Das Erste/))
  {
    fhem("set MediaPortal command 1");;
    $mediaPortalTitle = ReadingsVal("MediaPortal", "Title", "unknown");;
    Log( 1, "Livingroom.TvNotify MediaPortal Title $mediaPortalTitle");;
  }
}
if ($newState eq "off")
{
  fhem("set MediaPortal command home");;
  fhem("set MediaPortal command stop");;
  fhem("set Livingroom.MediaCenter off");;
}
fhem("setstate $NAME $newState");;
}


Reinerlein

Hi Stefan,

zumindest zu 1. kann ich einen Tipp geben. PlayChannel bezieht sich meiner Meinung nach auf die globalen, absoluten Kanalnummern. Du beziehst dich vermutlich auf eine Kanalnummer in deiner Gruppe, die du dir für deine Übersicht angelegt hast. Da man aber mehrere Gruppen anlegen kann (ich habe z.B. welche für die Hauptkanäle, dann für unwichtigere Sender, sowie eine Gruppe für Kindersender), wüsste das Mediaportal-Plugin ja nicht, welche Gruppe du meinst...

Prinzipiell werden die Befehle nur an das Wifiremote-Plugin durchgereicht. Es gibt also keinen anderen Fullscreen-Befehl, aber für das Aktivieren eines Plugins (bei Wifiremote "WindowId" genannt) kann ich etwas einbauen...

Grüße
Reiner

Stefan75

Hi Reiner,

Zitat von: Reinerlein am 08 Januar 2017, 16:38:44
zumindest zu 1. kann ich einen Tipp geben. PlayChannel bezieht sich meiner Meinung nach auf die globalen, absoluten Kanalnummern. Du beziehst dich vermutlich auf eine Kanalnummer in deiner Gruppe, die du dir für deine Übersicht angelegt hast. Da man aber mehrere Gruppen anlegen kann (ich habe z.B. welche für die Hauptkanäle, dann für unwichtigere Sender, sowie eine Gruppe für Kindersender), wüsste das Mediaportal-Plugin ja nicht, welche Gruppe du meinst...

Komisch, ich habe keine Gruppen angelegt, habe unter "TV Channels" nur die Reiter "Channels" und "All Channels". In allen Sichten (die ich finden kann), ist die Channel number 1 bei ARD.
Gibt es da noch was? Bin ich blind?
(siehe auch Anhang)

Zitat von: Reinerlein am 08 Januar 2017, 16:38:44
Prinzipiell werden die Befehle nur an das Wifiremote-Plugin durchgereicht. Es gibt also keinen anderen Fullscreen-Befehl, aber für das Aktivieren eines Plugins (bei Wifiremote "WindowId" genannt) kann ich etwas einbauen...

Wenn du fuer das Navigieren was einbauen koenntest waere das super.

Viele Gruesse,

Stefan

aplatac

Hi,
können wir evtl. etwas zur Lösung der Verbindungsabbrüche beisteuern?
Ich habe heute mal meine Beleuchtung an MePo gekoppelt (Licht aus bei opened)
und jetzt bemerkt man jeden Abbruch, überigens immer wenn man Fernbedienung
benutzt, also aktiv Tastendrücke an MePo sendet.

im log fand ich:

2017.01.01 15:38:31 1: 192.168.1.26:8017 disconnected, waiting to reappear (MePo)
2017.01.01 15:38:31 3: MEDIAPORTAL: DevIo_SimpleRead hat keine Daten geliefert, obwohl Read aufgerufen wurde! Setze Buffer zurück. Aktueller Buffer:

ABER nicht zu einem früheren Zeitpunkt, d.h. es gibt evtl. zwei (?) Probleme...

aplatac

heute war was vom Mediaportalplugin in den Updates, ich finde aber nichts zu den Änderungen. Weiß jemand was?

Reinerlein

Hi,

ups... da habe ich doch den kleinen Release-Beitrag vergessen :)
Das Wiki hatte ich aber aktualisiert...

Nur eine Kleinigkeit:
Man kann jetzt die verfügbaren Plugins abfragen, und mit dem "set window"-Befehl auf eines dieser Plugins wechseln.
Damit kann man jetzt auch z.B. Moving Pictures öffnen...

Grüße
Reinerlein

Spiff

Hi Reinerlein,

ich hatte für mich auch ein paar kleine Änderungen ausprobiert, von denen ich gerne welche implementiert haben würde.
Ist schon bisschen her - eins ist eine Prozentanzeige, an welcher Stelle man sich innerhalb der Wiedergabe befindet.
Außerdem hatte ich Probleme mit dem Heartbeat und auch mit der Titelanzeige, die ich noch nicht final gelöst hatte. Ich guck sonst nochmal rein und schlage konkrete Änderungen vor?
Ich habe selbst noch nichts direkt in fhem eingecheckt, habe mich damit auch noch nicht befasst - soll ich das mal selber versuchen, Dir Code schicken oder wie hättest Du es gerne?

Gruß
Spiff.

Reinerlein

Hi Spiff,

das kommt ja ein bißchen darauf an, wie umfangreich die Änderungen sind. Sonst per Diff an mich. Das müsste ich ja auch irgendwie mit meinem Tortoise eingebaut bekommen...

Ansonsten wäre z.B. die Prozentanzeige für mich etwas für ein Userreading, da alle Informationen zur Berechnung bereits als Reading vorliegen...
Das mit der Titelanzeige ist totaler Mist in dem Wifiremote-Plugin. Es werden nicht immer die korrekten Informationen im Titel-Tag übertragen, sondern ich sammele auch Informationen aus anderen Mitteilungen zusammen. Leider ist dabei keine Reihenfolge definiert (da Eventbasiert) noch ist irgendeine Art von Vollständigkeit gegeben...

Grüße
Reinerlein

aplatac

@spiff: hat der von dir erwähnte "Heartbeat" evtl. etwas mit den Verbindungsabbrüche zu tun?

Spiff

Hi Reinerlein,

keine wirklich umfangreichen Änderungen, nur Ergänzungen.
Das mit dem Titel ist wirklich blöd. Allerdings erkennt das Modul manchmal keine Titeländerung, obwohl die App aMPdroid dies erkannte - das hatte mich stutzig gemacht und ich hatte mit den RAW-Nachrichten etwas experimentiert, aber es irgendwann aus Zeitgründen eingestellt... Ich fand die Zusammenstellung manchmal anders sinnvoller und hatte sie daher teils wieder getrennt. Können wir vielleicht nochmal diskutieren, wenn ich da nochmal tiefer einsteige. Was spricht gegen ein "Percentage" Reading, das sich aus Duration und Position innerhalb des Moduls errechnet?

Hi aplatac,

zumindest bekomme ich jede Minute die Ansage im Log, dass die Verbindung abgebrochen wurde und neu aufgebaut werden muss...
Sobald ich jetzt aber manuell (!) einmal eine Verbindung aufgebaut habe (nach fhem-Neustart), ist sie eigentlich stabil. Mein MePo ist auf dem gleichen Server und immer an.

Gruß
Spiff

Reinerlein

Hi Spiff,

ich habe gerade noch was bzgl. Verbindungs-Neuaufbau eingebaut, und teste es.

Wenn der Status auf Disconnected steht, wurde bislang der Heartbeat abgebrochen/beendet. Jetzt ist es so, dass noch dreimal versucht wird eine neue Verbindung aufzubauen, und erst dann wird der Zustand so hingenommen...
Ich habe das Gefühl, dass FHEM eine Verbindung sehr schnell als disconnected meldet.

Mal schauen, ob das bei mir was bringt (bzw. überhaupt gut läuft :) ), dann checke ich das mal ein.

Grüße
Reinerlein

P.S.: Ich habe das mit der Prozent-Reading auch eingebaut :) ...

aplatac

bei mir ist es auch so, dass ich nach jedem Neustart (was ich selten mache) grundsätzlich ein reconnect nötig ist. Außerdem kommt es gelegentlich (1-2x am Abend, naja, man merks halt auch nicht immer) zu Abbrüchen, die aber meist "selbstheilend" sind, dauert im Schnitt 30 Sek. Manchmal (Grund nicht gefunden) erholt es sich auch nicht und muss von Hand neu verbunden werden. Weil ich auch noch einen RasPi dazwischen habe der IR empfängt und an fhem weiterreicht war ich mir bisher nicht ganz sicher wo es klemmt. MePo und fhem laufen auf verschiedenen Rechnern, MePo wird auch ausgeschaltet.

Reinerlein

Hi,

das Problem mit dem notwendigen Reconnect nach einem Neustart habe ich gefunden.
Im Define gibt es eine Zeile, die ein OpenDev-Aufruf durchführt. Die IF-Bedingung ist fehlerhaft und muss wie folgt lauten:

$ret = DevIo_OpenDev($hash, 0, 'MEDIAPORTAL_DoInit') if (!AttrVal($hash->{NAME}, 'disable', 0));

Das wichtige ist die Negation vor der Disable-Prüfung...

Das andere Teste ich noch...

Grüße
Reinerlein

spooy99

Hallo,

seit dem Update vorgestern friert Fhem bei mir nach einem reconnect komplett ein. Im Log erhalte ich kurz vorher folgenden Eintrag:


2017.03.15 17:16:41.240 1: MEDIAPORTAL: Plugins received.
Can't use an undefined value as a HASH reference at ./FHEM/70_MEDIAPORTAL.pm line 413.


Anschl. muß ich den FHEM Dienst neu starten - das Webfrontend usw. ist sonst nicht mehr erreichbar (Host per SSH voll funktionsfähig).

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

ritterkun

Nach heutigem Update. stürzt fhem mit gleicher Fehlermeldung beim reconnect von Mediaportal komplett ab.

2017.04.01 19:56:16 1: MEDIAPORTAL: Plugins received.
Can't use an undefined value as a HASH reference at ./FHEM/70_MEDIAPORTAL.pm line 413.

fhem muß neu gestartet werden.

aplatac

tja, mich hats jetzt auch erwischt... nach reconnect steigt fhem komplett aus. Aber ein Datensatz wird noch von MePo empfangen z.B. das laufende Programm usw.

könnte mir evtl. jemand eine alte Version vom Modul geben, ich muss jetzt unseren Haupt-TV per Maus steuern (schrecklich ;)

Reinerlein

Hallo,

das bedeutet, dass etwas fehlerhaftes (genauer: Keine Hashrepräsentation) im Reading "Plugins" steht.

Ich habe gerade eine Fehlerprüfung eingecheckt, damit sollte das nicht mehr zu einem Absturz führen...
Ab Morgen per update oder ab sofort per SVN.

Grüße
Reiner

aplatac

Guten Abend :)

also MePo liefert irgendwelche Daten die unerwartet sind?

Reinerlein

Hi,

das könnte zumindest sein. Hast du denn die letzte (auch nicht mehr wirklich frische) Version von dem Mediaportal-Plugin installiert?
Das Plugins-Feature war erst in einer der letzten Versionen hinzugekommen...
Diese Plugins werden für das Umschalten des "Windows" verwendet, da dort eine numerische ID angegeben werden muss, und die Plugins-Liste die Zuordnung Name => ID enthält.

Wenn das nicht korrekt geliefert wird, dann steht in dem Reading was falsches (u.U. einfach ein Leerstring), und das wurde ungeprüft als Hash interpretiert, um die Auswahl für die Oberfläche zusammenzubauen. Das habe ich nun in ein Fehlerhandling eingebettet...

Grüße
Reiner

aplatac

seit das Modul automatisch verteilt wird, hab ich nichts mehr manuell installiert, habe also die Version die z.Z. verteilt wird. Allerdings stoße ich das Update alle paar Tage von Hand an und vergesse häufig den Restart. Der Fehler hat heute erst zugeschlagen, weil wir einen Stromausfall hatten. Ungeplanter Kaltstart für alle meine kleinen Helferlein...  Überingens doof wenn man bei Tageslicht im Dunklen hockt weil man die E-Rollläden nicht hoch bekommt. Wir brauchen eine Notstromeinspeisung ;)

Reinerlein

Hi,

ich meinte jetzt das Plugin auf dem Mediaportal selbst. Also das WifiRemote-Plugin.
Das wird ja nicht mehr weiterentwickelt, aber einer der letzten Stände hatte noch das Feature mit den Plugins erhalten...

Von meinem Fhem-Plugin hattest du offensichtlich die letzte Version, weil dort ja schon die Plugins abgefragt wurden :)

Grüße
Reinerlein

P.S.: Ja, Notstrom ist echt ein Thema. Bzw. gleich Batteriebetrieb :)

aplatac

ah... o.k. aber auch da die z.Z. verteilte Version. Ich bin immer froh mich nicht um jede Datei von Hand kümmern zu müssen.

Der Stromausfall hat den halben Ort getroffen und letztes Jahr gab es einen Ort weiter das gleiche. Wenn man sich dann ansieht, wie groß die Netzprobleme durch den Windstrom so sind und wie die Smartmeter in den Markt gedrängt werden. Dann kann man sich schon vorstellen, dass Ausfälle in Zukunft öffter sein könnten.

aplatac

Guten Abend. Vielen Dank, die neue Version stürzt nicht mehr ab und scheint auch fast wie gehabt zu funktionieren ( nach einem Reset von fhem und MePo). Aber ein neues Problem hat sich aufgetan... ich habe das Modul bisher "von außen" benutzt, Beispiel:
wget -qONUL: "http://192.168.1.142:8084/fhem?cmd=set%20MePo%20command%20left&XHR=1"
Das klappt leider nicht mehr, hat sich irgendwas an den Befehlen geändert?

Reinerlein

Hi aplatac,

eigentlich nicht. Aber bei Fhem ist mit 5.8 forciert die Sache mit dem csrftoken hinzugekommen, weshalb solche URLs nicht mehr ohne gültiges token gehen...

Such dazu mal im Forum :)

Grüße
Reinerlein

aplatac

super Tip!
Du hast Recht, es hängt mit diesem Sicherheitstoken zusammen! Dass sowas einfach so eingebaut wird, halte ich für etwas unglücklich. Naja, war jetzt recht schnell zu klären aber nur weil du mir die Richtung gezeigt hast. Ich wäre da nicht selber drauf gekommen.
Ich habe als Lösung ein festes Token gesetzt und werde das bei jedem Befehl übergeben. Hat mit der Shell schon funktioniert :) morgen bau ich das in mein lirc ein, sind ja n paar Tasten ;)

vielen Dank

aplatac

so, habe etwas getestet...
aber leider scheint das reconnect-verhalten nicht besser geworden zu sein, eben ist er beim Pausedrücken ausgestiegen. Das ist ein typisches Verhalten, es wird ein Commando angenommen (und ausgeführt) aber dabei die Verbindung gekappt.

aplatac

ich nehme Alles zurück :)
nachdem ich zwei Fehler in meiner Lirc-config gefunden habe (Port 8083 statt 8084 übersehen beim
Ändern) läuft es seit zwei Tagen ohne Hänger. Bin gespannt ob das so weiter geht.
bye

aplatac

Ist das Modul mit WifiRemote 0.8.3.1 kompartibel? Es hat wohl noch eine Anpassung für MePo 1.16 und höher gegeben...

Esjay

Hallo zusammen.
Hat es schon jemand hinbekommen das Modul mit dem Mediaportal auf einer Enigma Box einzurichten?

Grüße