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,
ich habe mal den readings alle nach dem selben Schema nun erstellen lassen bei Abrufbefehlen now, today, prime.
Zusätzlich habe ich nun auch die Tagesangangabe in die Tabelle nach dem Vorschlag von @Prof. Dr. Peter Henning vorgenommen.

Viel Spaß beim testen :-)
"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

HomeAuto_User

@Pah / Prof. Dr. Peter Henning

ich werde mal wieder Hilfe benötigen.
Den Input für den Stylesheet habe ich soweit gelöst aber noch kein gültiges Ergebnis zustande bekommen.

my $stylesheet_string = <<'XML';

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="1.0">
    <xsl:variable name="time">201912032015</xsl:variable>
    <xsl:variable name="channel">ARD.de</xsl:variable>
    <xsl:template match="/">
        <xsl:apply-templates select="//programme[@channel=$channel][contains(@start,$time)]"/>
    </xsl:template>
    <xsl:template match="programme">
    <found>
        <xsl:value-of select="title"/>
    </found>
    </xsl:template>
</xsl:stylesheet>

XML

my $stylesheet = $xslt->parse_stylesheet( $stylesheet_string );
#my $stylesheet = $xslt->parse_stylesheet_file( $stylesheet_string );
my $source_doc = $parser->parse_file( $EPG_file );
my $result = $stylesheet->transform( $source_doc );
$json_HTML = $stylesheet->output_string( $result );


Zugleich wäre noch die Frage, wie ich in der Ausgabe nicht nur den Titel erhalte, sondern auch die Zeit.
Ich würde gern Durchsuchen nach einem Sender Bsp.: und das Resultat soll werden, Sendung + Zeit als FOUND.

MfG
"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

Prof. Dr. Peter Henning

Da helfe ich gerne, ich bin aber von heute morgen bis Freitag nachmittag beruflich komplett ausgelastet.

LG

pah

curt

Nu isses putt.  :(
ZitatVERSION 20191209

Nichts lädt mehr, wenn ich "get loadEPG*" klicke. Es gibt einen schlichten Fehler der Art "gibt kein EPG". Hmmm. Ich klicke etwas rum und klicke auch mal "get loadFile" ... und stelle fest: Jetzt geht alles wieder.

@HomeAuto_User
Mich deucht, da ist gerade die Grundregel jedes Handelns (make it simple) verlorengegangen: Sowas ist für den Gebrauch zu Hause deutlich zu komplex. Bitte ändere das wieder zu "es geht ganz einfach".

Ich habe übrigens noch eine andere Baustelle, entweder persönliche Blödheit oder auch wieder fehlendes "make it simple":
Vermutlich hat jeder so seine ganz eigene Idee, für was man Dein geniales Modul verwenden könnte. Meine Idee ist: Ich klicke auf meinen Raum "03 Fernsehprogramm" und sehe sofort, was aktuell auf meinen Sendern läuft. Das geht natürlich nicht, da müsste ja ein Schaltknopf "get loadEPGnow" mit auf der Seite sein - wenn das schon nicht automatisch geht. Und neuerdings auch noch ein Schaltknopf, der vorab "get loadFile" auslöst - ok, das kann man sicher kaskadieren.

Leider kann ich das nicht - falls jemand mir mildtätig sagen will, wie er das löst: Ich höre gern zu.

(Aber andererseits muss das zumindest für meinen Zweck automatisch bei Seitenaufruf erfolgen, stätestens dann.)

Im Grunde zielt das alles auf die schon von @pah andeutete Darstellung in der FTUI-Oberfläche, darauf läuft das alles ja hinaus. - Übergangsweise wäre im allerersten Schritt ganz schön, wenn zwischen den Spalten jeweils ein Leerzeichen wäre: In der Standardinstallation wird alles zusammengeklatscht.

@HomeAuto_User
Du machst das alles super! Du machst Dinge, die ich nicht kann! Ich sage lediglich, was ich schöner finden würde. - Und insbesondere hoffe ich, dass Deine Gesundheit sich mit jedem Tag bessert!
RPI 4 - Jeelink HomeMatic Z-Wave

Frank_Huber

DOIF oder AT welches regelmäßig (alle x Stunden) dein Loadfile und alles andere erledigt.

in deinem Raum hast dann immer die Daten.

HomeAuto_User

Hallo,
schön Meinungen und Vorschläge zu hören.

@curt, was geht nicht?
Das Konzept ist so aufgebaut, das man die DatenDatei mit loadEPG herunterladen muss. Das hat mit der Darstellung nichts zu tun. Grund dafür, man läd aus dem Internet sehr viel Daten herunter und somit kann jeder den Datenverkehr steuern.

Zu Ansicht sind Punkte wie loadEPG_now / Prime... zuständig.

Um ständig das aktuelleProgramm zu sehen, kann man gern einen Timer einbauen der vom User eingeschalten werden kann. Ebenso gilt es für loadEPG. Alternativ wie schon geschrieben über DOIF oder AT.

Ansicht, ich halte mich erstmal an das Standardstile. Fertige gern mal einen Screenshot wie es bei dir aussieht.

Wenn du jetzt sagst, es geht nichts, was kommt an Ausgaben oder Meldungen?


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

Brandenburger

Hallo HoneAuto_User,

danke für das Modul. Gut und übersichtlich gestaltet.
Eine Anmerkung zur Darstellung:
Im dark-Style ist die Schrift der "Liste der verfügbaren Kanäle" wenig kontrastreich und daher schwer zu erkennen.

Grüße aus Brandenburg

HomeAuto_User

Hallo,

Danke für dein Feedback.

Zitat von: Brandenburger am 10 Dezember 2019, 11:39:09
Hallo HoneAuto_User,

danke für das Modul. Gut und übersichtlich gestaltet.
Eine Anmerkung zur Darstellung:
Im dark-Style ist die Schrift der "Liste der verfügbaren Kanäle" wenig kontrastreich und daher schwer zu erkennen.

Grüße aus Brandenburg

Ich werde mal schauen dies zu optimieren. Mir ist zwar nicht bewusst, feste Farben zu verwenden.

Liebe Grüße


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

curt

Hallo @HomeAuto_User

Zitat von: HomeAuto_User am 10 Dezember 2019, 10:10:55
@curt, was geht nicht?
Das Konzept ist so aufgebaut, das man die DatenDatei mit loadEPG herunterladen muss.

Leider ist Deine Antwort nicht präzise genug:
* Wie oft bzw. unter welchen Bedingungen ist es erforderlich, dieses zu tun?
* (Aus welchem Grund automatisierst Du das nicht?)

Zitat von: HomeAuto_User am 10 Dezember 2019, 10:10:55
Ansicht, ich halte mich erstmal an das Standardstile. Fertige gern mal einen Screenshot wie es bei dir aussieht.

Ich habe im Browser den Standardstyle irgendwie-18, also wirklich der, der derzeit vorgegeben ist. Bei der Device EPG setzte ich das attr "room". Wenn ich nun diesen Raum aufrufe, sieht das so aus - Screenshot. Das sieht nicht sehr schön aus.

Zitat von: HomeAuto_User am 10 Dezember 2019, 10:10:55
Zu Ansicht sind Punkte wie loadEPG_now / Prime... zuständig.
Um ständig das aktuelleProgramm zu sehen, kann man gern einen Timer einbauen der vom User eingeschalten werden kann. Ebenso gilt es für loadEPG. Alternativ wie schon geschrieben über DOIF oder AT.

Ich möchte das anders (lass mich bitte träumen):
Wenn ich den room "Fernsehen" anklicke, wird mir nicht nur die Tabelle angezeigt (die dann idealerweise lesbar ist). Sondern oben ist auch ein Schaltknopf, der  "EPGnow" auslöst, wenn ich darauf klicke. - Verstehst Du mein Ziel, meinen Gedankengang?

Freundliche Grüße und weiterhin gute Besserung!
RPI 4 - Jeelink HomeMatic Z-Wave

HomeAuto_User

Guten Abend,

ich habe mal ein Update vollzogen.
Folgende Punkte habe ich somit korrigiert. Bitte testen

ZitatEine Anmerkung zur Darstellung:
Im dark-Style ist die Schrift der "Liste der verfügbaren Kanäle" wenig kontrastreich und daher schwer zu erkennen.

ZitatIch habe im Browser den Standardstyle irgendwie-18 .. Ansicht Zellabstand

--------------------------

Die anderen Punkte werde ich beleuchten und vielleicht mit selbsteinstellbaren Attributen umsetzen.

ZitatLeider ist Deine Antwort nicht präzise genug:
* Wie oft bzw. unter welchen Bedingungen ist es erforderlich, dieses zu tun?
* (Aus welchem Grund automatisierst Du das nicht?)

* Das herunterladen der Datei richtet sich nach dem Anbieter bzw. der Quelle wovon man diese bezieht. Im Internet sind quellen verfügbar, welche die Daten bis 10 Tage im vorraus oder sogar Wochen im voraus bereitstellen. Das birgt natürlich immer eine große Datenflut, denn schnell ist eine Datei mehrere Hundert MB groß. Wenn ein User solch eine Quelle nutzt, wäre es Unsinn automatisch immer täglich Bsp diese zu aktualisieren. Das obliegt dem User und seiner Quelle.

ZitatIch möchte das anders (lass mich bitte träumen):
Wenn ich den room "Fernsehen" anklicke, wird mir nicht nur die Tabelle angezeigt (die dann idealerweise lesbar ist). Sondern oben ist auch ein Schaltknopf, der  "EPGnow" auslöst, wenn ich darauf klicke. - Verstehst Du mein Ziel, meinen Gedankengang?
* Ich verstehe dich und werde diese Gedanken auffassen und mal prüfen.

MfG und Danke für eure Beteiligung  :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

curt

ZitatIch habe im Browser den Standardstyle irgendwie-18 .. Ansicht Zellabstand

Rückmeldung: Jetzt ist es perfekt. Danke!

Ich lasse Dich erstmal den Knopf "get EPGnow" prüfen, bevor ich mit der nächsten Idee (wegen dieser Datei) um die Ecke komme, ja?

Einen schönen 3. Advent!
RPI 4 - Jeelink HomeMatic Z-Wave

JensS

Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

cortmen

 :)Sehr schönes Modul, tolle Ergänzung in meinem Media Room.

Wenn ich allerdings "Lieblingssendung" klicke, kommt ein
TVInfo Zeitüberschreitung nonBlock Funktion
Bei wiederholten Klick, erfolg die kurze Timeout Message von FHEM im Browser.

FavoriteShows Galileo


Internals:
   FUUID      5df66856-f33f-0190-0e49-4eafec9c660bc818
   FVERSION   66_EPG.pm:0.156990/2019-12-15
   NAME       TVInfo
   NR         349
   NTFY_ORDER 50-TVInfo
   STATE      alle EPG Daten geladen
   TYPE       EPG
   VERSION    20191215
   READINGS:
     2019-12-15 19:16:07   EPG_file_age    1970-01-01 01:00:00
     2019-12-15 19:16:07   EPG_file_name   rytecDE_Basic
     2019-12-15 18:20:21   HttpResponse    heruntergeladen
     2019-12-15 19:17:25   state           alle EPG Daten geladen
   helper:
     programm:
      ***entfernt ***
Attributes:
   Ch_select  DMAX,Das Erste,ProSieben,ProSieben Maxx,RTL,RTL II,RTL Nitro,RTL Plus,Sat.1,Sat1 Gold,Super RTL,Tele 5,VOX,ZDF,kabel eins
   DownloadFile rytecDE_Basic.xz
   DownloadURL http://www.vuplus-community.net/rytec/
   EPG_auto_update yes
   FavoriteShows Galileo
   HTTP_TimeOut 20
   Table_view_Subtitle yes
   Variant    Rytec
   room       Media
   sortby     7

Prof. Dr. Peter Henning

Ich schulde noch eine Hilfestellung für XSLT.

Mit dem Stylesheet
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="1.0">
    <xsl:variable name="time">20191128</xsl:variable>
    <xsl:variable name="channel">phoenix.de</xsl:variable>
    <xsl:template match="/">
        <EPG>
        <xsl:apply-templates select="//programme[@channel=$channel][contains(@start,$time)]"/>
        </EPG>
    </xsl:template>
    <xsl:template match="programme">
    <programme>
        <xsl:attribute name="start"><xsl:value-of select="@start"/></xsl:attribute>
        <xsl:attribute name="stop"><xsl:value-of select="@stop"/></xsl:attribute>
        <title><xsl:value-of select="title"/></title>   
    </programme>   
    </xsl:template>
</xsl:stylesheet>


werden die Startzeit, die Stoppzeit sowie der Titel manuell geklont - also nur eine Art "Vorselektion" durchgeführt. Das kann man beliebig weit vereinfachen durch Verwendung von <xsl:copy> - dann wird es aber etwas unübersichtlich.



Folgende Beobachtung: Gestern loadEPG_now, prima. Heute auf das Device geschaut: Alle Anzeigen von gestern stehen noch da - logisch, ich habe ja zwischendurch nichts geladen. Allerding steht über der Tabelle das Datum von heute (Mo 16.12.). Das ist irreführend, weil man nicht erkennt, dass die Daten von gestern stammen. Wünschenswert wäre also ein Mechanismus, der am Ende einer Sendung den bestehenden Eintrag in der Tabelle "ausgraut" (und den Link entfernt). Ließe sich mit etwas JavaScript auf der Seite problemlos erledigen.

LG

pah

HomeAuto_User

Hallo WeinachsFHEMler  ;)

Zitat von: cortmen am 15 Dezember 2019, 18:26:14

Wenn ich allerdings "Lieblingssendung" klicke, kommt ein
TVInfo Zeitüberschreitung nonBlock Funktion


Sollte soeben gefixt sein.

Zitat von: Prof. Dr. Peter Henning am 16 Dezember 2019, 18:22:50

Folgende Beobachtung: Gestern loadEPG_now, prima. Heute auf das Device geschaut: Alle Anzeigen von gestern stehen noch da - logisch, ich habe ja zwischendurch nichts geladen. Allerding steht über der Tabelle das Datum von heute (Mo 16.12.). Das ist irreführend, weil man nicht erkennt, dass die Daten von gestern stammen. Wünschenswert wäre also ein Mechanismus, der am Ende einer Sendung den bestehenden Eintrag in der Tabelle "ausgraut" (und den Link entfernt). Ließe sich mit etwas JavaScript auf der Seite problemlos erledigen.

LG

pah


Das verstehe ich. Werde ich mir mal ansehen und eine gute Idee mit dem ausgrauen oder ähnlichem.
Bin da für jede Anregung offen.

LG

PS: @Pah, danke für das Stylsheet, das werde ich mir mal ansehen in Ruhe weil es Neuland darstellt.
"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