EntertainTV - Modul zum steuern eines MR400

Begonnen von RalfP, 09 Juni 2019, 21:39:17

Vorheriges Thema - Nächstes Thema

swsmily

Hi Ralf,

hab gerade das Modul geupdated und das Device wieder angelegt, aber erstmal im Define einen Tippfehler im Username gehabt. Das hat natürlich erstmal dazu geführt, dass login failed kam. Schlimmer aber, nach kurzer Zeit ging gar nichts mehr. Auf dem Raspi mit dem Befehl TOP war Perl zu 100% ausgelastet. Keine Ahnung, ob da irgendwo im Modul ein Fehler sowas verursachen kann. Das ist daher mehr als Hinweis gedacht.  ;)

Hab den ganzen Raspi dann neugestartet, dann ist mir auch der Tippfehler aufgefallen. Ich teste nun dein Modul.

Es läuft nun knapp 10 Minuten ,ohne dass es Freezes in FHEM gab. Sieht also viel besser aus  :D
Daher erstmal vielen Dank für das Modul und deine Arbeit!

Werde es nun mal weiter beobachten und testen und berichten.

swsmily

Kleiner Bericht nach ein paar Stunden mit dem Modul:

Ich muss sagen, ich bin begeistert und überrascht!
Ich hab anfangs gar nicht gemerkt, dass du den ersten Post erweitert hast. Hab nur plötzlich die ganzen Infos gesehen die man angezeigt bekommt. Super!

Das Modul läuft bis jetzt sehr gut.

Könntest du noch beschreiben, was die einzelnen Readings bedeuten? Ich verstehe noch nicht, was ProgramGenre bedeutet. CurrentProgramGenre ist leer, nextProgramGenre steht auf (1/2) aktuell.
Ebenso currentProgramStatus steht auf PLAY aber was bedeutet nextProgramStatus? Dies steht gerade auf STOP.
Was bedeutet playBackState?



Nobby1805

Ich hatte beim ersten Test auch das Problem, dass FHEM die CPU komplett dicht gemacht hat und nicht anderes mehr lief, bzw. das System sich irgendwie komisch verhielt.
Ich habe das MR400-Modul dann erst mal wieder entfernt.
Wie ich jetzt lese, könnte das an einem Fehler im Usernamen/Passwort gelegen haben ... das ist recht wahrscheinlich, weil ich mir nicht ganz sicher war ;-) ... könntest du mal testen was da genau passiert?

Ich werde in den nächsten Tagen dann mal die aktuelle Version ausprobieren.
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

RalfP

Habe gerade die Hilfe mit den Reading ergänzt:

Readings

ACCOUNT
userID - UserID als Resultat des Login bei der Telekom mit gültigem Nutzernamen und Password.
expirationTime - zeigt den Zeitpunkt, wann die UserID neu angefordert wird - Zyklus ist 8h.

RECEIVER
channel - Sendernummer - wird in der Summary mit dem Sendernamen ersetzt, sofern das Attr channelNames dafür gesetzt ist.
newPlayMode - Zeigt den aktuellen Status des Receivers an, dieser kann wie folgt sein:

  • STOP
  • PAUSE
  • PLAY
  • <<PLAY>>
  • PLAY Multicast
  • PLAY Unicast
  • BUFFERING

playBackState - Ist ein weitere Status des Receivers. Die Bedeutung ist nicht ganz klar. Bei MR401 keine Änderung. Beim MR400 im Standby auf "STOP".

  • STOP
  • RUN

pairing - Aktueller Zustand des Pairings zwischen Fhem und Receiver.
pairingCheck - Rückantwort des Receiver. Benötigt um den Verifikationcode zu berechnen.
verificationCode - Verifikationcode für die Befehle an den Receiver.

Programinfos

currentProgramTitle - Titel des gerade laufenden Programs.
currentProgramGenre - Zusätzlicher Titel des gerade laufenden Programs.
currentProgramStart - Startzeit gerade laufenden Programs.
currentProgramDuration - Laufzeit des gerade laufenden Programs.
currentProgramTime - Startzeit und Enzeit des gerade laufenden Programs.
currentProgramStatus - Status des gerade laufenden Programs. Hier immer "PLAY"

nextProgramTitle - Titel des nächsten Programs.
nextProgramGenre - Zusätzlicher Titel des nächsten Programs.
nextProgramStart - Startzeit des nächsten Programs.
nextProgramDuration - Laufzeit des nächsten Programs.
nextProgramTime - Startzeit und Enzeit des nächsten Programs.
nextProgramStatus . Status des nächsten Programs. Hier immer "STOP"

RalfP

Hallo,

das mit der falschen Credentials habe ich gerade probiert. Ging aber ohne vergleichbaren Effekt durch. Login failed wurde wie erwartet angezeigt  :-\

Das Login sind 3 Aufrufe zu den Telekomservern. Alle haben eine Timeout von 3s. Bei einem Problem mit der Verbindung, sollte es sich da eigentlich beenden. Ich nutze das Fhem eigene HttpUtil für die Aufrufe - aber blockierend. Wenn ihr evtl etwas im Log findet, wäre es interessant. Ich denke aber, ihr müsstet für das define > global verbose < auf 5 setzen, kurzzeitig.

Gruß
Ralf

RalfP

...noch ein Tipp:

Folgende Libraries sind notwendig für dieses Modul:

  • Digest::MD5
  • HTML::Entities
  • JSON
  • HttpUtils
  • Blocking
  • UPnP::ControlPoint
  • Date::Parse
  • Encode

Mit Encode hatte ich ein paar Problem, die komisch waren. Nach Installation des Paketes, war dann aber alles OK. Encode ist aber erst bei der Anzeige der Programtitel notwendig  :-\

vuffiraa

Tolles Modul! Seitdem ich auf Entertain umgestiegen bin, haben dem TV ein paar Infos gefehlt ;)

Ich benutze das Modul mit einem Mr401 und mit der neuen Version klappt das ziemlich gut. Der Status des Receivers wird erkannt und die Sendungsdaten werden auch angezeigt. Mit der alten Version hatte das ja für den Mr401 noch nicht geklappt, zumindest bei mir war FHEM danach nicht mehr benutzbar.

Bisher ist mir eine Sache im Log aufgefallen, als der Receiver im Aufnahmemodus war:
2019.06.22 19:14:02 1: PERL WARNING: Loading device description failed with error: 404 Not Found (Location: http://192.168.2.50:8081/xml/dial.xml) at ./FHEM/78_EntertainTV.pm line 336.
2019.06.22 19:14:02 1: stacktrace:
2019.06.22 19:14:02 1:     main::__ANON__                      called by /usr/share/perl/5.22/Carp.pm (168)
2019.06.22 19:14:02 1:     Carp::carp                          called by FHEM/lib/UPnP/ControlPoint.pm (371)
2019.06.22 19:14:02 1:     UPnP::ControlPoint::_createDevice   called by FHEM/lib/UPnP/ControlPoint.pm (402)
2019.06.22 19:14:02 1:     UPnP::ControlPoint::_getDeviceFromHeaders called by FHEM/lib/UPnP/ControlPoint.pm (526)
2019.06.22 19:14:02 1:     UPnP::ControlPoint::_receiveSSDPEvent called by FHEM/lib/UPnP/ControlPoint.pm (227)
2019.06.22 19:14:02 1:     UPnP::ControlPoint::handleOnce      called by ./FHEM/78_EntertainTV.pm (336)
2019.06.22 19:14:02 1:     (eval)                              called by ./FHEM/78_EntertainTV.pm (335)
2019.06.22 19:14:02 1:     main::EntertainTV_Read              called by fhem.pl (3750)
2019.06.22 19:14:02 1:     main::CallFn                        called by fhem.pl (748)
2019.06.22 19:14:23 3: RECEIVER_AC6FBB56CE61: Pairing OK
2019.06.22 19:14:28 3: RECEIVER_AC6FBB56CE61: Player State Request - standby


Ansonsten wäre vielleicht noch zu überlegen, ob du das Modul nicht MagentaTV nennen willst, EntertainTV ist doch mittlerweile überholt  ;)

Viele Grüße,
VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

swsmily

Ich habe seit gestern Abend mit den richtigen Login-Daten keine Probleme mit dem Modul feststellen können. Keine Fehler im Log zu sehen, es erkennt den MR und den Status direkt. Für mich passt alles! Danke dafür!

Zum Login und dem Problem mit der 100%-Auslastung, ich hatte ja den Tippfehler im Username. Als das Modul dann login failed angezeigt hat, war ich mir beim Passwort nicht sicher. Zahlendreher, wo groß wo klein geschrieben? Also mehrfach das Device gelöscht und neu angelegt mit unterschiedlichen Passwörtern aber immer dem falschen Username. Vielleicht lag es an den vielen Versuchen und dem mehrfachen Löschen und Definieren des Devices.

RalfP

Hallo,

http://192.168.XXX.XXX:8081/xml/dial.xml

Ja, dies ist mir auch schon aufgefallen, sehr selten aber. Dies scheint eine zweite UPnP Schnittstelle vom MR401 zu sein. Der Service "urn:dial-multiscreen-org:service:dial:1" ist aber für unser Vorhaben nicht nutzbar. Schaut mal was man findet, wenn man nach diesem Service sucht - http://www.dial-multiscreen.org . Ich würde sagen, das hat etwas mit Netflix zu tun und einer Übertragung eines laufenden Streams von einer APP zum Receiver.

Diese Schnittstelle hat eine eigene (andere) UDN. Ich habe mir diese mal testweise im ACCOUNT ins Attr ignoreUDNs eingetragen. Mal sehen, ob es einen Effekt hat.

Gruß
Ralf

RalfP

Hallo VuffiRaa,

...mit dem Namen hast du eigentlich recht  ???  Könnte also durchaus passieren.

Gruß Ralf

RalfP

Hallo,

...übrigens, nach mehrfachem Login, auch mit richtigem Usernamen/Password, macht die Authentifikation erst einmal zu. Es dauert eine Weile, bis eine Anmeldung wieder durchgeht. Deshalb lasse ich auch immer 8h dazwischen Zeit. Beim Anlegen eines Device, könnte dies, bei mehrfacher falscher Eingabe, aber zusätzlich zu Verwirrung führen. Deshalb bitte ein wenig Geduld und zwischendurch einen Kaffee trinken.

Gruß
Ralf

swsmily

Hi

Seit ich die richtigen Logindaten drin hab funktioniert alles super. Es gab zwar mal folgende Logeinträge heute Nacht:
2019.06.24 02:25:15.854 1: PERL WARNING: Loading device description failed with error: 500 Can't connect to 10.0.4.5:8081 (Location: http://10.0.4.5:8081/xml/dial.xml) at ./FHEM/78_EntertainTV.pm line 336.
2019.06.24 02:25:15.906 1: PERL WARNING: Loading device description failed with error: 404 Not Found (Location: http://10.0.4.5:8081/xml/mediashare.xml) at ./FHEM/78_EntertainTV.pm line 336.
2019.06.24 02:25:15.974 3: MR400: Player State Network - offline
2019.06.24 02:25:15.989 1: PERL WARNING: Loading device description failed with error: 404 Not Found (Location: http://10.0.4.5:8081/xml/xctc.xml) at ./FHEM/78_EntertainTV.pm line 336.
2019.06.24 02:25:36.292 3: RECEIVER_AC6FBB66ED6D: Pairing OK
2019.06.24 02:25:41.333 3: RECEIVER_AC6FBB66ED6D: Player State Request - standby


Aber es läuft dennoch alles ordentlich.

Werde aber Verbose wohl auf 2 runter stellen, denn mein Logfile beinhaltet nun doch schon sehr viele play und pause  ;)

swsmily

Hallo Ralf,

kann es sein, dass sich was an der Software des MediaReceivers etwas geändert hat?
Heute Nacht hatte ich wieder folgende Logeinträge:
2019.08.12 03:58:48.620 1: MediaReceiver401: <renewSubscriptionBlocking> renewal of subscription failed: Carp, Renewal of subscription failed with error: 500 Can't connect to 10.0.4.5:8081 at ./FHEM/78_EntertainTV.pm line 1803.

2019.08.12 03:58:48.631 1: MediaReceiver401: <renewSubscriptionBlocking> renewal of subscription failed: Carp, Renewal of subscription failed with error: 500 Can't connect to 10.0.4.5:8081 at ./FHEM/78_EntertainTV.pm line 1809.

2019.08.12 03:58:54.645 1: PERL WARNING: Loading device description failed with error: 404 Not Found (Location: http://10.0.4.5:8081/xml/dial.xml) at ./FHEM/78_EntertainTV.pm line 336.
2019.08.12 03:58:54.697 1: PERL WARNING: Loading device description failed with error: 404 Not Found (Location: http://10.0.4.5:8081/xml/mediashare.xml) at ./FHEM/78_EntertainTV.pm line 336.
2019.08.12 03:58:54.762 3: MR400: Player State Network - offline


Nun steht im state nur noch pause - kein play mehr, egal ob der MR gerade abspielt oder auf Pause steht.

RalfP

Hallo,

bin gerade im Urlaub, so das ich es nicht selbst prüfen kann.

Die Verbindung zum MR wurde unterbrochen, vermute ich. Versuche ein RescanNetwork im ACCOUNT oder alternativ FHEM neu starten. Ich hoffe es klappt.

Gruß
Ralf

swsmily

Hi Ralf,

FHEM Neustart usw bringt nichts.
Das Reading wird auch bei jedem Tastendruck auf die Fernbedienung aktualisiert, aber statt play wird erneut pause gesetzt.
Möglicherweise hat es gar nichts direkt mit den Fehlermeldungen im Log zu tun.

Aber es ist jetzt nicht sooo wichtig. Geniese erstmal schön deinen Urlaub - hast ihn dir verdient  ;)