EntertainTV - Modul zum steuern eines MR400

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

Vorheriges Thema - Nächstes Thema

RalfP

## Version 1.1.0.9 ##############################################################


  • Duration Time - neue Berechnung (aski71)

## Version 1.1.0.8 ##############################################################


  • Receiver MRENTRY hinzugefügt.

## Version 1.1.0.7 ##############################################################


  • Loglevel für Loginprozedur geändert.

## Version 1.1.0.6 ##############################################################

Der Loginablauf hat sich geändert. Dieser musste angepasst werden. Ich denke mal, alle wurden umgestellt, habe trotzdem noch die alte Variante aktiv gelassen. Bitte lasst mich wissen, wenn bei jemandem es nicht funktioniert.

  • Loginprozedur geändert.
  • Der Subscription Port wir jetzt immer wieder neu gewürfelt. Will mann dies nicht, kann über das Attr subscriptionPort dieser fest vergeben werden, dann erfolgt aber keine Abmeldung Subscription am Receiver. Diese wird dann erst nach einem Timeout gelöscht. Bisher war genau dies die Arbeitsweise (<=1.1.0.4), welche aber bei Tests nicht ganz optimal war.
  • Attr searchPort neu hinzugefügt. Jetzt kann dieser auch frei gewählt werden, bei Bedarf.

Es wird sein, das du den Receiver ein/aus schalten kannst, aber keine Rückmeldung kommt, nach dem ersten Start von Fhem. Dann bitte nochmal ein Shutdown restart (alternativ set RescanNetwork). Damit wird die Subscription im Receiver ordnungsgemäß abgemeldet. Und kann sich sodann wieder ordnungsgemäß anmelden.

viel Spaß
Ralf

## Version 1.1.0.4 ##############################################################

Kleines Update:

  • Kennung für MR601 eingefügt

viel Spaß
Ralf

## Version 1.1.0.3 ##############################################################

Kleines Update:

  • Kennung für MR201 eingefügt
  • set volumeDown, set volumeUp & set EPG eingefügt
  • Hilfetext vervollständigt

viel Spaß
Ralf


## Version 1.1.0.0 ##############################################################

Jetzt funktioniert auch der MR401!

Was ist neu:

  • MR401 ein- und ausschalten. Dies aber nur im Standby Modus. WOL geht noch nicht. Der MR401 müsste es können. Kann aber sein, das dies nur in Kombination mit einem MR201 geht.
  • Programinfo umgesetzt. Zumindest alle Infos, die der Receiver liefert.
  • Sendernamen können per Attr vergeben werden. Somit wird nicht nur eine Nummer angezeigt. Die Reihenfolge müsst ihr nach der Sendernummer eurer Senderliste im Receiver ordnen.
  • Ein paar weitere Features sind in der Help hinterlegt.

Einige Tipps noch:

  • Wenn ihr Fhem neu startet, ist der aktuelle Zustand des Receivers nicht zu ermitteln. Dies scheint aber auch die Telekom App nicht zu können beim MR401. Um den Status zu ermitteln ist der Receiver per Toggle oder FB kurz in Standby und anschließend wieder einzuschalten. Ab dann, sollte es bei einer Änderung gut zu erfassen sein. Wer will, kann mal Attr checkState anschauen.
  • Die Startseiten sollten abgeschaltet werden. Beim MR401 bleibt in manchen Situationen der Status auf "online", weil keine Tastencodes angenommen werden, solange die Seite aktiv ist.
  • Die beiden Receivertypen handhaben den Subscription Port unterschiedlich. Ich musste ihn jetzt festlegen (default 8058). Ist per Attr subscritionPort änderbar im ACCOUNT, sofern dies mit etwas anderem kollidiert. Beim Wechsel könnte es sein, das der MR401 einmal vom Strom getrennt werden muss.

Eine Bitte noch: Wer einen MR201 und/oder MR200 hat, bitte gebt mir mal die Description. Ihr solltet wie folgt sie finden:
MR200 - http://192.168.xxx.xxx:49152/description.xml
MR201 - http://192.168.xxx.xxx:8081/xml/xctc.xml

Der MR200 könnte schon funktionieren, da er wahrscheinlich als modelName "MR400" hat, laut Userbericht.
Der MR201 mit Sicherheit nicht. Hier benötige ich die Description.

Bitte denkt dran, das Modul ist noch in einer frühen Phase. Es kann immer mal zu Problemen kommen. Bitte gebt Bescheid, wenn etwas nicht so läuft.

Schaut vor allem mal auf das Langzeitverhalten, evtl. müssen ein paar zusätzliche Refresh's der Verbindungen noch eingebaut werden.

viel Spaß
Ralf


## Version 1.0.2.2 ##############################################################

Hallo,

Ich möchte hier ein neues Modul vorstellen, welches einen MR400 Receiver der Telekom steuert.

Derzeitig noch im Beta-Status. Und auch nur mit einem MR400 getestet. Damit bitte mit entsprechender Vorsicht verwenden.

Die Idee und viele wichtige Informationen basieren auf einem OpenHab Binding von markus7017 (https://github.com/markus7017/org.openhab.binding.magentatv/blob/master/README.md). Auch sind viele Elemente von 98_DLNARenderer.pm (dominik) mit eingeflossen und für die Kommunikation zum Receiver angepasst worden. Vielen Dank für diese Vorarbeit.

Derzeitig ist das Modul unter meinem eigenen Webaccount verfügbar und lässt sich wie folgt einbinden:
update all https://www.rp-dev.de/fhem/entertaintv/controls_entertaintv.txt
oder
update add https://www.rp-dev.de/fhem/entertaintv/controls_entertaintv.txt

define <name> EntertainTV username password

username und password sind die eures gültigen Telekom Accounts

Was geht:

  • MR400 ein- und ausschalten. Dies aber nur im Standby Modus. Der MR400 lässt sich nicht über WOL einschalten. Der MR401 wohl aber, den ich aber (noch) nicht habe. Somit habe ich WOL noch nicht umgesetzt.
  • Der Telekom Account ist voll eingebunden, so das auch eine entsprechende userID geholt werden kann und keine Umgehung dessen notwendig ist.
  • Nach einem erfolgreichem Login, werden die Receiver (müssen eigeschaltet sein) per UPnP gefunden und als neues Device angelegt. Anschließend wird noch ein Pairing zum Receiver durchgeführt. "Fhem" sollte nun (oder wenn ein global title definiert ist, dies) als neues Gerät auf eurem Receiver angezeigt werden.
  • Alle Tasten der Fernbedienung sind möglich.
  • Derzeitig sind nur die notwendigsten Informationen vom Receiver angezeigt, später wird es noch etwas mehr.

Ich würde mich über ein Feedback freuen und hoffe erst einmal, das das Modul auch auf anderen Installationen läuft.

viel Spaß
Ralf

Wuppi68

Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

swsmily

Ich hab es gerade auf die Schnelle testen wollen. Fehler laut Logfile:

2019.06.10 22:40:59.858 1: reload: Error:Modul 78_EntertainTV deactivated:
Can't locate XML/Parser/Lite.pm in @INC (you may need to install the XML::Parser::Lite module) (@INC contains: fhem.p/lib fhem.p/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /usr/local/FHEM/share/fhem/FHEM/lib . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl) at FHEM/lib/UPnP/Common.pm line 752.
BEGIN failed--compilation aborted at FHEM/lib/UPnP/Common.pm line 752.
Compilation failed in require at FHEM/lib/UPnP/ControlPoint.pm line 38.
BEGIN failed--compilation aborted at FHEM/lib/UPnP/ControlPoint.pm line 38.
Compilation failed in require at ./FHEM/78_EntertainTV.pm line 61.
BEGIN failed--compilation aborted at ./FHEM/78_EntertainTV.pm line 61.

2019.06.10 22:40:59.858 0: Can't locate XML/Parser/Lite.pm in @INC (you may need to install the XML::Parser::Lite module) (@INC contains: fhem.p/lib fhem.p/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /usr/local/FHEM/share/fhem/FHEM/lib . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl) at FHEM/lib/UPnP/Common.pm line 752.
BEGIN failed--compilation aborted at FHEM/lib/UPnP/Common.pm line 752.
Compilation failed in require at FHEM/lib/UPnP/ControlPoint.pm line 38.
BEGIN failed--compilation aborted at FHEM/lib/UPnP/ControlPoint.pm line 38.
Compilation failed in require at ./FHEM/78_EntertainTV.pm line 61.
BEGIN failed--compilation aborted at ./FHEM/78_EntertainTV.pm line 61.



Wäre über dieses Modul möglich auszulesen, ob sich der MediaReceiver gerade im Status Pause oder Play befindet?

RalfP

Du musst das Perl Modul xml::Parser::Lite installieren, damit der Controlpoint läuft. Dieser ist Bestandteil von Fhem und wird auch von SONOS und DLNARenderer benutzt.

Und ja, dieser Status wird angezeigt als Readings.

Schönen Abend noch
Gruß Ralf

swsmily

#4
Habe Perl Modul xml::Parser::Lite und konnte nun auch das Device anlegen und bekomme login successful, aber mehr passiert nicht. Es wird kein weiteres Device angelegt und ein klick auf get ReceiverList bringt auch gar keine Meldung.


EDIT:
Hab nun mal verbose 5 eingestellt.
Es findet anhand der IP Adressen bei mir nur die HUE-Bridge aber nicht den MediaReceiver401. (Vermutung: wird nur im /24-Subnetz gesucht?)

RalfP

Schau bitte mal unter https://de.wikipedia.org/wiki/Universal_Plug_and_Play wie UPnP arbeitet. Evtl. kannst du da Rückschlüsse auf dein Netzwerk ziehen.
Ich nutze die Funktionen des UPnP Controlpoints, der in Fhem dabei ist. Hier erläutert:  http://perlupnp.sourceforge.net/ControlPoint.html#upnp__common__argument

Ich habe bei mir ein ganz normales Netzwerk, wo alle im selben Subnetz sind, welches per Fritzbox verwaltet wird. Es klappte bei mir auf Anhieb mit einem MR400.

Probiere doch mal die Description zu bekommen im Browser - http://192.168.xxx.xxx:49152/description.xml - Die IP musst du von deinem Receiver nehmen. Das wäre das Minimum. Letztendlich muss aber der Receiver seine Existenz im Netzwerk an den Controlpoint melden. Das erfolgt via UDP über die Multicast-Adresse 239.255.255.250:1900.

Getestet habe ich aber das Modul, mangels Gerät, mit einem MR401 noch nicht! Wie oben beschrieben. Bitte nenn mir mal den Eintrag <modelName>xxxxxxx</modelName> aus der description.xml. Vielleicht ist es auch nur eine Kleinigkeit, die ich berichtigen muss.

PS: Das "login successful" im ACCOUNT ist schon mal ganz gut, da hat zumindest dein Telekom Login funktioniert und du hast eine userID bekommen. Dies ist schon mal eine wichtige Voraussetzung.

Gruß Ralf

swsmily

Hab es nun nochmal versucht, laut Log wird der MR gefunden:
2019.06.11 08:02:44.077 5 : EntertainTV: <discoverCallback> device EntertainTV, deviceAdded, DMS_AC6FBB66ED6D
2019.06.11 08:02:44.077 5 : EntertainTV: <addedDevice> start
2019.06.11 08:02:44.078 5 : EntertainTV: <getAllReceiver> start

Aber mehr passiert nicht.

Wenn ich http://10.0.4.5:49152/description.xml laden möchte passiert ebenso nichts, weiße Seite, und kreiselt ohne Ende.

RalfP

Wenn du die Description nicht erreichst, dann erreicht dein Fhem auch den Receiver nicht (eingeschaltet ist er, oder?)
XXX_AC6FBB66ED6D ist die MAC Adresse AC:6F:BB:66:ED:6D von einem gefunden Gerät (meist Bestandteil des UDN). Schau doch mal wozu diese gehört.

Wenn du die dazugehörige IP hast, kannst du ja mal von diesem Gerät die Description versuchen zu lesen.

Gruß Ralf

swsmily

Ja MR ist eingeschaltet und die MAC Adresse die es da findet ist tatsächlich der MR. Lässt sich auch anpingen. Aber es wird keine description.xml geladen. Egal ob vom Raspi auf dem FHEM läuft, noch vom Notebook. Neustart des MR hat auch nichts gebracht. Kann man UPNP am MR irgendwie aktivieren?

bm7777

Vielen Dank für das Modul. Funktioniert bei mir einwandfrei.
Ich habe 2 Reciever. Einen MR400 und einen MR200. Beide wurden gefunden und funktionieren. Der MR200 wird als MR400 angezeigt, mich stört das überhaupt nicht, aber vielleicht kannst du die Info brauchen.
Raspberry Pi Mod. B
CUL-Stick V3.4

RalfP

Hallo bm7777,

oh, das mit dem MR200 war Glückssache, habe ihn schlichtweg übersehen, in meiner Liste der zulässigen "modelName". Der MR200 hat wahrscheinlich auch dmr_tpd als Modelname. Wenn möglich, schicke doch bitte mal die description.xml vom MR200. Rufe die Adresse, die du im RECEIVER unter location findest, in einem Browser auf. Vielen Dank.

INTERNALS:location http://192.168.xxx.xxx:49152/description.xml

Wenn der Eintrag <modelName>dmr_tpb</modelName> wirklich gleich ist und man keinen weiteren Unterschied findet, müssen wir mit dem gleichen modelName leben. Ich hoffe aber, das wenigstens der "friendlyName" unterschiedlich ist. Diesen kann man aber im Receiver auch selbst ändern, meine ich => Name des Receivers gab es irgendwo im Menü.

Gruß Ralf


RalfP

Hallo swsmily,

ZitatKann man UPNP am MR irgendwie aktivieren?

"Jein"
Über UPnP läuft auch die Fernbedienung der Entertain App für die Receiver auf Tablets oder Smartphones. Ich gehe mal davon aus, das dies bei dir funktioniert. Wenn dies nicht gehen würde, prüf mal den Schalter im Menü des Receivers, der mobilen Geräten erlaubt sich mit dem Receiver zu verbinden. (Ich selbst haben den noch nie betätigt, war immer ON)

Zitat2019.06.11 08:02:44.077 5 : EntertainTV: <discoverCallback> device EntertainTV, deviceAdded, DMS_AC6FBB66ED6D

In dieser Logzeile wird "DMS_AC6FBB66ED6D" als friendlyName angezeigt, was sehr verwirrend ist, da die Standard friendlyName eigentlich der Receivertyp ist, ausser man ändert den Receivernamen selbst.

Schau doch bitte mal in deinem Log (verbos 5 im ACCOUNT device) nach einem Eintrag, der ungefähr so aussieht:

xxxx.xx.xx xx:xx:xx 5: ControlPoint: Accepted Search-Response: "CACHE-CONTROL: max-age=300
DATE: Tue, 11 Jun 2019 16:26:15 GMT
EXT:
LOCATION: http://192.168.xxx.xxx:49152/description.xml
OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS: bc5a7974-1dd1-11b2-98e1-xxxxxxxxxxxx
SERVER: Linux/ UPnP/1.0 HUAWEI_iCOS/iCOS V1R1C00
X-User-Agent: redsonic
ST: urn:schemas-upnp-org:device:MediaRenderer:1
USN: uuid:bb5e21ce-1111-11b2-f918-AC6FBBxxxxxx::urn:schemas-upnp-org:device:MediaRenderer:1


...und lass ihn mir mal zukommen. Vielen Dank

Dies ist ein Suchergebnis des Controlpoints. Die erste Zeile ist sehr markant.

Gruß Ralf

RalfP

Hallo swsmily,

oh, der MR401B könnte anders sein. Bitte probiere mal als Description:

http://10.0.4.5:8081/xml/dial.xml

im Browser. Bestätigt sich evtl. auch, wenn du den Logeintrag, wie im letzten Post beschrieben, findest.

Gruß Ralf

swsmily

#13
Zitat von: RalfP am 11 Juni 2019, 19:10:58
Hallo swsmily,

oh, der MR401B könnte anders sein. Bitte probiere mal als Description:

http://10.0.4.5:8081/xml/dial.xml

im Browser. Bestätigt sich evtl. auch, wenn du den Logeintrag, wie im letzten Post beschrieben, findest.

Gruß Ralf

damit kommt folgende Anzeige:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<UDN>uuid:c81d8a2c-2f63-5e45-8f8e-AC6FBB66ED6D</UDN>
<friendlyName>DMS_AC6FBB66ED6D</friendlyName>
<deviceType>urn:schemas-upnp-org:device:tvdevice:1</deviceType>
<manufacturer>Zenterio</manufacturer>
<modelName>MR401B_ACN</modelName>
<modelNumber>R01A5</modelNumber>
<productVersionNumber>" 465 "</productVersionNumber>
<productType>stb</productType>
<serialNumber/>
<X_wakeOnLan>0</X_wakeOnLan>
<serviceList>
<service>
<serviceType>urn:dial-multiscreen-org:service:dial:1</serviceType>
<serviceId>urn:dial-multiscreen-org:service:dial</serviceId>
</service>
</serviceList>
</device>
</root>


Die Meldungen oben mit Verbose 5 gibt es bei mir auch, aber für andere IP-Adresssen (Fernseher und HUE Bridge), aber nicht für die IP des MediaReceivers

RalfP

Hallo swsmily,

kannst mal ab Zeile 71 ändern auf:

# Receiver, diese werden auch nur angelegt
my %modelName = ( "dmr_tpb" => "MR400",
                  "MR401B_ACN"  => "MR401",
                  "MR201"    => "MR201",
                );


der modelName von deinem Receiver ist nicht MR401B sondern MR401B_ACN :o
...speichern und Fhem neu starten

Ich drücke mal die Daumen