Neues Modul - 66_EPG.pm | TV Programm,Tabelle, FTUI (Anregung,Erweiterung,Tests)

Begonnen von HomeAuto_User, 03 November 2019, 12:45:08

Vorheriges Thema - Nächstes Thema

HomeAuto_User

Hallo,
da ich nutzer des TV Programmmes via HTTP Mod war wo derzeit durch ein "PERL Bug" der Speicher sich aufschaukeln kann je nach System, so habe ich mal nach Alternativen gesucht und die Umsetzung gestartet.
Ich lade euch gern ein um das Modul, welches derzeit der Testphase unterliegt zu testen.

Unter https://github.com/fhem/EPG/tree/pre-release kann sich jeder es herunter laden.
Nach gründlicher Testphase kann man es ins SVN überführen.

Der negative Effekt, das ich von dem Bug betroffen bin, ließ das Modul entstehen und dadurch steigt der Speicher nicht an dem dem damaligen Umfang, da die RegEx Variante anders umgesetzt ist.
Testes und urteilt selbst oder beteiligt euch gern an der Entwicklung.

MfG

Edit:
Hier aktualisiere ich wärend der Entwicklung den Stand bzw. den Funktionsumfang.
- Für alle die hier nicht schreiben können, bitte den Weg über PN bzw. direkt via Issues in Github. -

Zusammenfassung derzeitige Funktionen:
- Kanäle via Klick auswählbar nach Abruf
- Sendersortierung möglich
- getrennter DownloadDaten und Informationsabruf aus Datei
- Abruf der Daten Prime / now / time (beliebiger Zeitpunkt) / today (ganzer Tag)
- Sendungen: Suche nach FavoriteDesc / FavoriteTitle möglich
- abgelaufene Sendungen werden "ausgegraut"
- FTUI Unterstützung via Datenausgabe im JSON Format
- Senderkommandos (bei onClick schalte auf Kanal oder mache dunkel  ;))
   individuell zusätztlich einstellbar
- Werte als Readings schreiben
- automatischer "Reload des Datenbestandes - was gerade läuft" aus der EPG-Datei lokal wenn man auf den Raum klickt

Beispiel:

define TVInfo EPG


1) Quelle definieren (Beispielquellen sind in der Commandref) --> Attribut DownloadFile + DownloadURL
2) get TVInfo loadFile
3) get TVInfo available_channels
4) Kanäle im Control Panel "list of all available channels" auswählen und auf save

update via FHEM
update all https://raw.githubusercontent.com/fhem/EPG/pre-release/controls_EPG.txt

Anhang: Screens
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

mumpitzstuff

Ich wollte es mal eben ausprobieren und scheitere bereits an der Eingabe einer DownloadURL. Mein Device sieht aktuell so aus, vermutlich habe ich da irgend einen Denkfehler drin:

defmod EPG EPG
attr EPG DownloadURL http://epgportal.us.to/epg/DE_guide.xml/


Ich bekomme immer den Fehler, das kein DownloadURL oder DownloadFile definiert ist (habe die angehängte Version verwendet).

Darüber hinaus habe ich mal den Code kurz überflogen und konnte kein NonBlocking für das Parsen der Datei entdecken. Das oben genannte File hat 15MB und 131.000 Zeilen. Bist du sicher, das du das auf einem Produktivsystem und z.B. einem Raspberry 2b ohne länger dauernde Freezes hinbekommst? Bei einem frischen File vielleicht noch kein Problem, aber wenn man 5 Tage später immer noch das selbe File verwendet, dann wirds unschön denke ich (die Dateien enthalten meist das Programm von 1 Woche). Vielleicht könntest du dir auch die letzte Position merken und dann dort weitermachen. Die letzte Postion wird dann bei einem loadFile zurück gesetzt.
Spaßeshalber kannst du ja mal diese Datei probieren :) http://epg.energyiptv.com/epg/epg.xml.gz

Weiterhin bin ich nicht ganz sicher, ob die Darstellung im Device so super ist. Besser wäre es die Daten als Readings abzulegen, so das man sie von diversen Oberflächen auslesen und anzeigen kann z.B. über eine ReadingsGroup. Es wäred dann auch schön, vielleicht 2-3Sendungen eines Senders sehen zu können, sonst sehe ich nur das grad Nachrichten kommen, nicht jedoch, welcher Film danach kommt.

HomeAuto_User

Hallo,

attr EPG DownloadURL http://epgportal.us.to/epg/DE_guide.xml/

bitte die Augen auf ;-)
Deine Eingabe enthält die URL + File zusammen.

attr EPG DownloadURL http://epgportal.us.to/epg/
attr EPG DownloadFile DE_guide.xml

ist geplant zu verarbeiten.

ZitatWeiterhin bin ich nicht ganz sicher, ob die Darstellung im Device so super ist. Besser wäre es die Daten als Readings abzulegen, so das man sie von diversen Oberflächen auslesen und anzeigen kann z.B. über eine ReadingsGroup. Es wäred dann auch schön, vielleicht 2-3Sendungen eines Senders sehen zu können, sonst sehe ich nur das grad Nachrichten kommen, nicht jedoch, welcher Film danach kommt.

Dann schau einfach direkt zu der Zeit welche man möchte :-) Ich denke da gibt es unterschiedliche Ansichten.

ZitatCode kurz überflogen und konnte kein NonBlocking für das Parsen der Datei entdecken.
Versuche das bitte genauer zu benennen. Meinst du das "runterladen" oder das einlesen?
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

mumpitzstuff

Hmm die Trennung ist aber wenig intuitiv... Vielleicht hinterlegst du in der Hilfe direkt dieses Beispiel.

Mit einlesen meine ich nicht das runterladen (das ist non blocking), sondern das verarbeiten der runtergeladenen Datei.
Versuch mal das Bespiel auf einem Raspberry zu verwenden, vermutlich kommt man da schnell an die Grenzen und FHEM blockiert dann mehrere Sekunden bis Minuten. Oder habe ich auf die Schnelle was übersehen?

HomeAuto_User

Ich habe das Beispiel mal getestet. Der Pi handelt es ab. Ja, aufgrund der Menge an Daten verzögert etwas.

Ich versuche gerade zu Schnurren und schauen wie ich es umgehe zwecks Blocking. Das stellt erstmal Priorität dar und dann kann man schauen was Gestaltung angeht.

Die Trennung bei File und URL wollte ich absichtlich weil ich die Eingabe getrennt so weiter nutzen kann ohne große Spielerei.


Gesendet von iPhone mit Tapatalk Pro
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

mumpitzstuff

Jetzt findet das Modul das Verzeichnis EPG nicht. Ich habe das Verzeichnis /opt/fhem/FHEM/EPG und zur Sicherheit auch /opt/fhem/EPG und auch /FHEM/EPG angelegt und dem User fhem zugewiesen.

HomeAuto_User

Zitat von: mumpitzstuff am 03 November 2019, 20:08:51
Jetzt findet das Modul das Verzeichnis EPG nicht. Ich habe das Verzeichnis /opt/fhem/FHEM/EPG und zur Sicherheit auch /opt/fhem/EPG und auch /FHEM/EPG angelegt und dem User fhem zugewiesen.

Das kann ich nicht nachvollziehen.
Ich selbst habe die Tests immer gemacht und das Verzeichnis gelöscht / erstellt und finden lassen.

Vielleicht muss ich parallel mal noch nen anderes System laufen lassen zum Test.


Gesendet von iPhone mit Tapatalk Pro
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

mumpitzstuff

Okay jetzt geht es. Sry war meine eigene Dämlichkeit bzw. ich habe zu viele Server im Haus. Hab die Verzeichnisse auf dem falschen angelegt gehabt... :(

Das nächste Problem war, das die epg Daten deiner beispieldaten nicht mehr existieren oder veraltet sind:

http://91.121.106.172/~rytecepg/epg_data
tot

https://iptv.community/threads/epg.5423
Enthält nur veraltetes Zeug für DE.

http://www.vuplus-community.net/rytec/rytecDE_Basic.xz
Das funktioniert noch.


http://epg.energyiptv.com/epg/epg.xml.gz ergibt einen Timeout. Da sind deine 10s vielleicht zu kurz. Kann man das konfigurierbar machen?

HomeAuto_User

#8
Was die Daten der Server angeht muss man natürlich selbst testen. Ich habe die Quellen in der Commandref mit einem Häkchen versehen welche online sind.

- ToDo -> Hinweis ergänzen in commref

Ich werde die Verarbeitung umstellen wo größere Daten kommen können. Eine Idee ist, Hinweis an den User es läuft was und dann Prozess fertig.

Danke für dein Mittesten. Das bringt auch andere Vorgehensweisen und Verhalten / Ansichten ans Licht :-)

Edit:
Zitat
http://epg.energyiptv.com/epg/epg.xml.gz ergibt einen Timeout. Da sind deine 10s vielleicht zu kurz. Kann man das konfigurierbar machen?

Ja habe ich einstellbar gemacht

Gesendet von iPad mit Tapatalk Pro
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

mumpitzstuff

defmod EPG EPG
attr EPG Ch_select DMAX DE,Pro7 DE,RTL DE,RTL II DE,SAT.1 DE,VOX DE,kabel eins DE
attr EPG DownloadFile epg.xml.gz
attr EPG DownloadURL http://epg.energyiptv.com/epg/
attr EPG Variant WebGrab+Plus
attr EPG room EPG


Damit kommen jetzt verwertbare Daten rein, man braucht dafür aber einen wirklich fetten Rechner, sonst ist Fhem minutenlang tot. Das liegt natürlich an der übelst großen Datei, aber prinzipiell sollte solche Dinge in einem BlockingCall im Hintergrund gemacht werden, damit das restliche FHEM nicht blockiert wird.

Die Senderauswahl mit den abwechseln Hell/Dunkel kann ich kaum lesen. Insbesondere die hellen Zeilen sind kaum zu lesen (liegt vielleicht am Dark Mode von FHEM (schalt ihn doch mal ein, dann siehst du wahrscheinlich was ich meine)).
Bei now solltest du eine Anzahl auswählen lassen als Attribut, dann kann man sich zumindest die nächsten 2 oder 3 Sendungen anzeigen lassen. So wie bei today, nur eben auf wenige Sendungen begrenzt. 1 Sendung ist einfach zu wenig und today ist zu viel.
Außerdem solltest du dir das mit den Readings wirklich überlegen. Sobald diese vorhanden sind, kann sich jeder eine eigene Anzeige basteln. Vermutlich wird das Modul ohne dieses Feature kaum jemand verwenden. Aber du kannst ja da noch andere Meinungen abwarten.
Wenn die Variante nicht gesetzt ist, bekommt man haufenweise Warnungen im Logfile. Das sollte vielleicht abgefangen werden, wie auch beim Pfad usw.

HomeAuto_User

Hallo,
du kannst gern mal die aktuelle Version testen.
Ich habe diese umgestellt auf die BlockingCall Methode.

Ich würde mich nun mal den anderen Dingen widmen wie Readings Bsp.

ZitatDie Senderauswahl mit den abwechseln Hell/Dunkel kann ich kaum lesen. Insbesondere die hellen Zeilen sind kaum zu lesen (liegt vielleicht am Dark Mode von FHEM (schalt ihn doch mal ein, dann siehst du wahrscheinlich was ich meine)).
Werde ich mir ansehen.

ZitatBei now solltest du eine Anzahl auswählen lassen als Attribut, dann kann man sich zumindest die nächsten 2 oder 3 Sendungen anzeigen lassen. So wie bei today, nur eben auf wenige Sendungen begrenzt. 1 Sendung ist einfach zu wenig und today ist zu viel.
Schaue ich mir ebenso an.

MfG

EDIT: ... zumindest mit der Rytec Varinate  :D
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

mumpitzstuff

Ich habs wieder mit dem Monsterfile probiert und es geht leider nicht:

unknown methode! need development!

Kommt, sobald ich versuche die Kanäle einzulesen. Außerdem scheint 60s das Maximum für das Timeout zu sein. Kannst du vielleicht das maximum weg lassen? Muss jeder selbst wissen wie hoch er da gehen möchte.

Amenophis86

Ein nett gemeinter Hinweis, ihr seid immer noch im Anküdiungsthread. Ich denke es macht Sinn die Diskussion in das richtige Board zu verschieben. Vielleicht will der ein oder andere ja mit diskutieren.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

HomeAuto_User

Zitat von: Amenophis86 am 12 November 2019, 17:38:30
Ein nett gemeinter Hinweis, ihr seid immer noch im Anküdiungsthread. Ich denke es macht Sinn die Diskussion in das richtige Board zu verschieben. Vielleicht will der ein oder andere ja mit diskutieren.

Hallo, ja das wissen wir. Mir fehlte bisher nur die Zeit zu schauen wohin ich das Thema schieben könnte :)
Für Hinweise bin ich gern offen.

Mfg


Gesendet von iPhone mit Tapatalk Pro
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

Amenophis86

Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...