Mediaportal: Nun offiziell in Fhem enthalten

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

Vorheriges Thema - Nächstes Thema

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 :) ...