Autor Thema: Neues Modul - 66_EPG.pm | TV Programm als Tabelle (Anregung zur Entwicklung ...)  (Gelesen 1134 mal)

Offline HomeAuto_User

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 632
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.

Zusammenfassung:
- Kanäle via Klick auswählbar nach abruf
- Sendersortierung möglich
- getrennter DownloadDaten und Informationsabruf aus Datei

MfG

Anhang: 2 Screens / Stand Modul heute

EDIT:
PS1: Eine überarbeitung zu NonBlocking erfolgt.
PS2: Für alle die hier nicht schreiben können, bitte den Weg über PN bzw. direkt via Issues in Github.
« Letzte Änderung: 04 November 2019, 19:44:17 von HomeAuto_User »
"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
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1557
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.

Offline HomeAuto_User

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 632
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.

Zitat
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.

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

Zitat
Code 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

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1557
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?

Offline HomeAuto_User

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 632
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

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1557
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.

Offline HomeAuto_User

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 632
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

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1557
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_datatot

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

http://www.vuplus-community.net/rytec/rytecDE_Basic.xzDas 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?
« Letzte Änderung: 03 November 2019, 21:30:35 von mumpitzstuff »

Offline HomeAuto_User

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 632
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
« Letzte Änderung: 03 November 2019, 21:35:23 von HomeAuto_User »
"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

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1557
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.
« Letzte Änderung: 03 November 2019, 22:18:48 von mumpitzstuff »
Zustimmung Zustimmung x 1 Liste anzeigen

Offline HomeAuto_User

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 632
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.

Zitat
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)).
Werde ich mir ansehen.

Zitat
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.
Schaue ich mir ebenso an.

MfG

EDIT: ... zumindest mit der Rytec Varinate  :D
« Letzte Änderung: 07 November 2019, 19:27:15 von HomeAuto_User »
"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

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1557
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.

 

decade-submarginal