EntertainTV - Modul zum steuern eines MR400

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

Vorheriges Thema - Nächstes Thema

aski71


RalfP

...dann könnte es die Zeitzone noch sein.

Grüße
Ralf

aski71

Auch dir stimmt.
Es ist ja nur die Endzeit, die falsch ist. Die Startzeit
stimmt ja. Wenn ich den Code richtig interpretiere, berechnest Du die Endzeit aha Startzeit plus Dauer. Dabei geht offensichtlich etwas schief. Zumindest bei mir.
Wäre es dir Zeitzone oder die grundsätzliche Uhrzeit, müsste doch auch die Startzeit fehlerhaft sein.
Oder mache ich da einen Denkfehler?! 🤔

RalfP

Probiere mal diese Funktion auszutauschen, bzw. die zwei Zeilen mal zuändern. Bei mir hat sich am Ergebnis nichts geändert, aber ich denke so ist es Richtiger.


sub timeCalc($;$){
my ($startTime, $duration) = @_;

$startTime =~ s/\//-/g;
$startTime = str2time($startTime, 'GMT');
my $result = POSIX::strftime("%a. %d.%m.%Y | %H:%M",localtime($startTime));

if(defined($duration)){
$duration = str2time("1970-01-01 ".$duration, 'GMT');
$result .= POSIX::strftime(" - %H:%M",localtime($startTime + $duration));
}

return $result;
}


Wenn es funktioniert mach ich eine neue Version.

Gruß
Ralf

aski71

Hi RalfP,

ich hab mir das jetzt mal genauer zu Gemüte geführt: Die $duration mit str2time auf 1970 zu biegen und danach mit der $starttime zu addieren funktioniert so scheinbar nicht.
Stattdessen habe ich die $duration in Stunden und Minuten geteilt und dann in Sekunden umgerechnet. Dann kann man sie zur $startTime addieren und wieder in einen string zurückwandeln.

So funktioniert es bei mir jetzt:


sub timeCalc($;$){
        my ($startTime, $duration) = @_;

        $startTime =~ s/\//-/g;
        $startTime = str2time($startTime, 'GMT');
        my $result = POSIX::strftime("%a. %d.%m.%Y | %H:%M",localtime($startTime));

        if(defined($duration)){
                my ($durHours,$durMinutes) = split /:/, $duration;
                my $durationInSeconds = int($durHours)*3600 + int($durMinutes)*60;
                my $endTime = $startTime + $durationInSeconds;
                $result .= POSIX::strftime(" - %H:%M",localtime($endTime));
        }

        return $result;
}

RalfP

Hallo Alex,

leider hatte ich noch keine Zeit, deinen Vorschlag einzuarbeiten. Der Grund ist der nächste Post.

Gruß
Ralf

RalfP

## MagentaTV Version 1.0.0.4 Beta ##############################################################

Habe ein neues Modul "MagentaTV" geschrieben.

Es baut auf den Erfahrungen des EntertainTV Modules auf. MagenaTV nutzt jetzt einen vollwertigen Zugang zu eurem Telekom Account.
Das bedeutet, das das Modul jetzt einen eurer, 5 möglichen, Clients benutzt. Der Vorteil ist, das jetzt aktuelle Programinformationen angezeigt werden können, wie auch die Senderlisten denen entsprechen, wie auf euren Receivern.

Das Ganze ist natürlich noch an mancher Stelle evtl. nicht ganz stabil, deshalb auch noch als Beta bezeichnet. Ich übernehme keinerlei Gewähr.

Getestet hab ich es mit einem MR401 und MR400.

Bitte nicht MagentaTV und EntertainTV auf dem gleichen Rechner benutzen. Das klappt nach meiner Erfahrung nicht, betreffs der Callbacks beim Upnp.

Schaut vor allem mal bitte auf das Langzeitverhalten.

Das Modul ist auf meinem Webaccount verfügbar und lässt sich wie folgt einbinden:
update all https://www.rp-dev.de/fhem/magentatv/controls_magentatv.txt
oder
update add https://www.rp-dev.de/fhem/magentatv/controls_magentatv.txt

define <name> MagentaTV username password

username und password sind die eures gültigen Telekom Accounts

viel Spaß
Ralf

aski71

Kann man mit dem neuen Modul gar nicht mehr über ein normales Reading auf den Namen des aktuell laufenden Programms zugreifen?
Und wie kann ich jetzt den Namen des aktuellen Senders/Programms inkl. Uhrzeiten in den Floorplan einbinden?
Das geht offensichtlich nicht mehr.

RalfP

Die Readings gibt es immer noch: Attr PrograminfoReadings 1 (+ einmal einen Senderwechsel machen)

Grüße
Ralf

aski71

Hi Ralf,

danke. Hatte ich dann auch gefunden.

LG Alex

McShire

Zitat von: RalfP am 09 Juni 2019, 21:39:17
## 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

Hallo Ralf
ich habe einen MR401 und möchte den gerne über FHEM steuern.
Dazu habe ich
update add https://www.rp-dev.de/fhem/entertaintv/controls_entertaintv.txt
durchgeführt und in .../FHEM/controls.txt steht dieser String.
aber scheinbar ist das Modul EntertainTV nicht installiert.
Nach der Eingabe
define MR401 EntertainTV <user> <passwort>
bekomme ich die Meldung
unknown modul EntertainTV.
Was mache ich falsch oder was muss ich noch zur Installation tun? Neu starten hat nicht geholfen

Gruß
Werner

RalfP

Hallo Werner,

schau bitte mal in dein Log, meist ist es ein fehlendes Perl Modul, welches du noch installieren mußt.

Notwendig sind:
Digest::MD5
HTML::Entities
JSON
Date::Parse
Encode

Gruß
Ralf

RalfP

Hallo Alex,

werde wohl bald ein neues Thema für MagentaTV anlegen müssen.
Habe MagentaTV noch ein Reading "channelName" spendiert. Auch deine Berechnung für die Laufzeit noch übernommen.

Grüße
Ralf

RalfP

Hallo Werner,

findest du das Modul (78_EntertainTV.pm) im Fhem-Ordner? Wenn ja, wurde es auch erstmal geladen. Kann es sein, das du "update" noch nicht ausgeführt hast?

PS: Ich empfehle als Def: "define EntertainTV EntertainTV username password". Die Receiver werden dann automatisch separat angelegt. Die kannst du dann per Alias in "MR401" etc. benennen.

Grüße
Ralf

aski71

Zitat von: RalfP am 08 November 2020, 19:28:22
Hallo Alex,

werde wohl bald ein neues Thema für MagentaTV anlegen müssen.
Habe MagentaTV noch ein Reading "channelName" spendiert. Auch deine Berechnung für die Laufzeit noch übernommen.

Grüße
Ralf

Super. Muss ich einen neuen manuellen Update machen?