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

Eigendlich läuft es. Der Unterschied ist vermutlich nur, das die Daten nicht ausgepackt werden.

Grund dafür wird sein, das auf meinem System die Pakete bereits installiert sind. Ich muss die Prüfung einbauen aber noch bin ich mit der provisorischen Technik am Start.

Schau mal ob du gzip und xz auf dem System hast.

Mfg

Ps: bin dran


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

the ratman

meinst du mit daten das gesaugte xml?
weil das liegt bei mir als klartext mit dem namen "DE_guide.xml" mit den rechten "rw-r--r--" vor (besitzer fhem), gesaugt und dort eingeordnet von deinem modul.
gzip und xz liegen auch auf der platte und warten auf arbeit.

das xml schaut dann so aus (vielleicht stimmt ja da ne codierung nicht?):<?xml version="1.0" encoding="UTF-8"?>
<tv generator-info-name="WebGrab+Plus/w MDB &amp; REX Postprocess -- version V2.1.5 -- Jan van Straaten" generator-info-url="http://www.webgrabplus.com">
  <channel id="1-2-3.tv DE">
    <display-name lang="de">1-2-3.tv DE</display-name>
    <url>http://www.merge-xmltv-utc</url>
  </channel>
  <channel id="1-2-3.tv HD 1080P DE">
    <display-name lang="de">1-2-3.tv HD 1080P DE</display-name>
    <url>http://www.merge-xmltv-utc</url>
  </channel>
  <channel id="13th Street DE">
    <display-name lang="de">13th Street DE</display-name>
    <url>http://www.merge-xmltv-utc</url>
  </channel>


...


1080P DE">
    <title lang="de">In guten wie in schweren Tagen</title>
    <desc lang="de">Nandini und Yash Raichand haben in frühen Jahren ihrer glücklichen Ehe den kleinen Rahul adoptiert. Rahul ist Nandinis ganzer Stolz, und schon bald beschließt die glückliche Familie, nie mehr auch nur einen Gedanken daran zu verschwenden, dass Rahul nicht der leibliche Sohn der Raichands ist. So erfährt auch Rohan, sein später geborener kleiner Bruder nichts davon. Nach seinem Studium in London kehrt Rahul nach Indien zurück, um das Familienimperium der Raichands zu übernehmen. Er trifft hier nach vielen Jahren seine Jugendliebe Naina wieder. Sie ist für die Raichands wie eine Tochter, auch deshalb beschließt Yash, dass Rahul und Naina heiraten sollen, um das Erbe der Raichands standesgemäß zu sichern. Rahul weiß jedoch nichts von den Plänen seines Vaters. Stattdessen verliebt er sich in die quirlige Anjali, die sein Herz durch ihre Natürlichkeit erobert. Rahul wird deswegen vom Vater verstoßen. Mit Anjali zieht er nach London. Jahre später macht sich Rohan auf die Suche. IMDb rating: 7.5/10.(n).(n)</desc>
  </programme>
</tv>
die gesamtgröße liegt bei 25,4kb - wollt ich uns hier ersparen.
→do↑p!dnʇs↓shit←

HomeAuto_User

Auf den ersten Blick vom Handy aus sollte das Klartext XML so aussehen.

Welche Kommandos hast du in der setlist?


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

the ratman

kein set, nur get
und bei get hab ich "loadFile" und "available_channels"

btw - ich seh grad, du hast ne neue version auf github ... gleich mal insten und dann bericht ich, falls sich was getan hat.


NACHTRAG:

das neue modul mag auch ned - selbes verhalten. asd log erzählt dazu:2019.11.15 20:00:26 1:      main::__ANON__                      called by ./FHEM/66_EPG.pm (682)
2019.11.15 20:00:26 1:      main::EPG_nonBlock_available_channels called by FHEM/Blocking.pm (194)
2019.11.15 20:00:26 1:      main::BlockingStart                 called by FHEM/Blocking.pm (107)
2019.11.15 20:00:26 1:      main::BlockingCall                  called by ./FHEM/66_EPG.pm (154)
2019.11.15 20:00:26 1:      main::EPG_Get                       called by fhem.pl (3754)
2019.11.15 20:00:26 1:      main::CallFn                        called by fhem.pl (1961)
2019.11.15 20:00:26 1:      main::CommandGet                    called by fhem.pl (1242)
2019.11.15 20:00:26 1:      main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2685)
2019.11.15 20:00:26 1:      main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (913)
2019.11.15 20:00:26 1:      main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2019.11.15 20:00:26 1:      main::FW_Read                       called by fhem.pl (3754)
2019.11.15 20:00:26 1:      main::CallFn                        called by fhem.pl (754)
→do↑p!dnʇs↓shit←

CoolTux

Da wird wohl eine Variable nicht befüllt. Könnte hier dran liegen.


if ($Variant eq "Rytec" || $Variant eq "TvProfil_XMLTV" || $Variant eq "WebGrab+Plus" || $Variant eq "XMLTV.se") {
$additive_info = JSON->new->utf8(0)->encode($hash->{helper}{programm});
} elsif ($Variant eq "teXXas_RSS") {
$additive_info = $hash->{helper}{programm};
}


Vielleicht schaue ich nachher mal genauer.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

JensS

Das Modul gefällt mir! Es kommt ohne viel Schnickschnack aus. Ich nutze die Rytec-Variante und diese funktioniert z.B. mit der DownloadURL http://www.xmltvepg.nl/ und dem DownloadFile rytecDE_Basic.xz ganz gut.

Als Anregung zu Entwicklung wünsche ich die Möglichkeit, gleich den TV auf einen ausgewählten Sender zu schalten. Quasi einen Link/Trigger auf den Sendernamen, welchem ein Attribut hinterlegt ist. Das könnte z.B. eine editierbare Spalte in list "of all available channels" sein.
Wäre das machbar?

Gruß Jens
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.

HomeAuto_User

#36
Hallo ratman,
Ja die Variable wird nicht gefüllt. Ich bin der Sache auf der spur. Den Grund muss ich noch verifizieren. Derzeit macht es sich nur schwierig mit einem provisorischen WindowsTab von nicht daheim.

Versuche mal bitte folgendes. Lade das aktuelle Modul (soeben mal noch hilfreiche Outputs ergänzt) und versuche es erneut. (Ggf. Bei einer PW mal 2x auf aviableChannel)

@Jens, danke

Edit: schaue ich mir an Jens und wenn das Gerüst funktioniert stabil, so kann der Schritt angegangen werden.


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

the ratman

hmm,

jetzt meint er, er findet beim channel aufdröseln das file nicht, hat er aber gesaugt. allerdings fehlt die endung im vergleich zu gestern. schau ich mir das file im editor an, wäre es aber zumindest ein entpacktes xml.
der fehler im modul dazu:error, file file not found no found at ./opt/fhem/FHEM/EPGder pfad stimmt.


im logfile dazu bei 2xaufdröseln:2019.11.16 09:08:35 1:  PERL WARNING: Use of uninitialized value $additive_info in concatenation (.) or string at ./FHEM/66_EPG.pm line 685.
2019.11.16 09:08:35 1:  stacktrace:
2019.11.16 09:08:35 1:      main::__ANON__                      called by ./FHEM/66_EPG.pm (685)
2019.11.16 09:08:35 1:      main::EPG_nonBlock_available_channels called by FHEM/Blocking.pm (194)
2019.11.16 09:08:35 1:      main::BlockingStart                 called by FHEM/Blocking.pm (107)
2019.11.16 09:08:35 1:      main::BlockingCall                  called by ./FHEM/66_EPG.pm (155)
2019.11.16 09:08:35 1:      main::EPG_Get                       called by fhem.pl (3754)
2019.11.16 09:08:35 1:      main::CallFn                        called by fhem.pl (1961)
2019.11.16 09:08:35 1:      main::CommandGet                    called by fhem.pl (1242)
2019.11.16 09:08:35 1:      main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2685)
2019.11.16 09:08:35 1:      main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (913)
2019.11.16 09:08:35 1:      main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2019.11.16 09:08:35 1:      main::FW_Read                       called by fhem.pl (3754)
2019.11.16 09:08:35 1:      main::CallFn                        called by fhem.pl (754)
2019.11.16 09:09:00 1:  PERL WARNING: Use of uninitialized value $additive_info in concatenation (.) or string at ./FHEM/66_EPG.pm line 685.
2019.11.16 09:09:00 1:  stacktrace:
2019.11.16 09:09:00 1:      main::__ANON__                      called by ./FHEM/66_EPG.pm (685)
2019.11.16 09:09:00 1:      main::EPG_nonBlock_available_channels called by FHEM/Blocking.pm (194)
2019.11.16 09:09:00 1:      main::BlockingStart                 called by FHEM/Blocking.pm (107)
2019.11.16 09:09:00 1:      main::BlockingCall                  called by ./FHEM/66_EPG.pm (155)
2019.11.16 09:09:00 1:      main::EPG_Get                       called by fhem.pl (3754)
2019.11.16 09:09:00 1:      main::CallFn                        called by fhem.pl (1961)
2019.11.16 09:09:00 1:      main::CommandGet                    called by fhem.pl (1242)
2019.11.16 09:09:00 1:      main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2685)
2019.11.16 09:09:00 1:      main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (913)
2019.11.16 09:09:00 1:      main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2019.11.16 09:09:00 1:      main::FW_Read                       called by fhem.pl (3754)
2019.11.16 09:09:00 1:      main::CallFn                        called by fhem.pl (754)


damits nicht eventuell mein fehler ist, ein aktueller list:Internals:
   FUUID      5dcd69b2-f33f-0f9e-2f45-265ceea05ca409eb
   NAME       EPG
   NR         325
   NTFY_ORDER 50-EPG
   STATE      error, file file not found no found at ./opt/fhem/FHEM/EPG
   TYPE       EPG
   READINGS:
     2019-11-16 09:08:33   EPG_file_age    unknown
     2019-11-16 09:08:33   EPG_file_name   file not found
     2019-11-16 09:08:33   HttpResponse    downloaded
     2019-11-16 09:11:51   state           error, file file not found no found at ./opt/fhem/FHEM/EPG
   helper:
Attributes:
   Ch_Info_to_Reading yes
   DownloadFile rytecDE_Basic.xz
   DownloadURL http://www.xmltvepg.nl/
   HTTP_TimeOut 20
   Variant    Rytec
   View_Subtitle yes
   icon       rc_EPG
   room       multimedia


p.s.
falls es irgendwas zu bedeuten hätte: mein fhem ist tagesaktuell auf einer vm mit immer aktuellem debian.
→do↑p!dnʇs↓shit←

HomeAuto_User

Du brauchst nicht wild testen.
Solange das File nicht entpackt wird, ist due Fehlfunktion normal, das die Variable nicht gefüllt wird.

Da das entpacken verbunden ist mit der Variante setzten ist bei dieses erscheinen so. Ich werde den Befehl Channels abrufen verbieten solange die Methode nicht da ist.

Mach mal bitte eins.
1) Update auf aktuelle pre-Release
2) restart
3) verbose auf 4 stellen
4) load file

Da sollten wir sehen wo es Klemmt.


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

the ratman

das file wurde ja entpackt, hat aber keine endung - normal?
der pre-release ist aktuell gewesen.

jetzt mit verbose 4:
o) file "rytecDE_Basic.xz" neu gesaugt von "http://www.xmltvepg.nl/"
o) modul entpackt scheinbar richtig und legts als "rytecDE_Basic" also ohne ".xml" auf die platte
o) fehlermeldung "error, file file not found no found at ./opt/fhem/FHEM/EPG" erscheint
o) im logfile steht 2019.11.16 09:13:10 1:  logfile wurde gelöscht
2019.11.16 10:34:47 4:  EPG: EPG_PerformHttpRequest is running
2019.11.16 10:34:47 4:  EPG: get loadFile successful
2019.11.16 10:34:47 4:  EPG: ParseHttpResponse - unpack methode xz
2019.11.16 10:34:47 4:  EPG: ParseHttpResponse - ERROR:
2019.11.16 10:34:47 4:  EPG: File_check is running
2019.11.16 10:34:47 4:  EPG: File_check nothing found
2019.11.16 10:34:53 4:  EPG: get available_channels - starting blocking call
2019.11.16 10:34:53 4:  EPG: nonBlocking_available_channels running
2019.11.16 10:34:53 1:  PERL WARNING: Use of uninitialized value $additive_info in concatenation (.) or string at ./FHEM/66_EPG.pm line 685.
2019.11.16 10:34:53 1:  stacktrace:
2019.11.16 10:34:53 1:      main::__ANON__                      called by ./FHEM/66_EPG.pm (685)
2019.11.16 10:34:53 1:      main::EPG_nonBlock_available_channels called by FHEM/Blocking.pm (194)
2019.11.16 10:34:53 1:      main::BlockingStart                 called by FHEM/Blocking.pm (107)
2019.11.16 10:34:53 1:      main::BlockingCall                  called by ./FHEM/66_EPG.pm (155)
2019.11.16 10:34:53 1:      main::EPG_Get                       called by fhem.pl (3754)
2019.11.16 10:34:53 1:      main::CallFn                        called by fhem.pl (1961)
2019.11.16 10:34:53 1:      main::CommandGet                    called by fhem.pl (1242)
2019.11.16 10:34:53 1:      main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2685)
2019.11.16 10:34:53 1:      main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (913)
2019.11.16 10:34:53 1:      main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2019.11.16 10:34:53 1:      main::FW_Read                       called by fhem.pl (3754)
2019.11.16 10:34:53 1:      main::CallFn                        called by fhem.pl (754)
2019.11.16 10:34:53 4:  EPG: nonBlock_available_channelsDone running
→do↑p!dnʇs↓shit←

HomeAuto_User

Zitat von: the ratman am 16 November 2019, 10:41:27
das file wurde ja entpackt, hat aber keine endung - normal?
der pre-release ist aktuell gewesen.

Bitte nochmal den selben Schritt wiederholen.

Ich vermute die Quelle hat die Syntax geändert bzw. Es liegt bei mir nen Fehler vor. Nun sollte erstmal nen sauberer Abbruch kommen.

Ich schaue mir mal deine Quelle an.
Der Nachteil an meiner Methode ist, wenn sich da was ändert, könnte es passieren das die Methode nicht erkannt wird. Muss ich genau überprüfen.


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

the ratman

*argl*

wollte diesmal auch das fiel mitsenden, leider hats forum das nicht erlaubt.

somit nochmal in kurzform:

neue epg geladen, reloadet und probiert.
fehler bleibt "error, file file not found no found at ./FHEM/EPG"
auch diesmal ein erfolgreich geladenes und entpackts xml ohne endung

log:2019.11.16 14:00:17 1:  logfile wurde gelöscht
2019.11.16 14:07:13 4:  EPG: EPG_PerformHttpRequest is running
2019.11.16 14:07:13 4:  EPG: get loadFile successful
2019.11.16 14:07:14 4:  EPG: ParseHttpResponse - unpack methode xz
2019.11.16 14:07:14 4:  EPG: File_check is running
2019.11.16 14:07:14 4:  EPG: File_check nothing found
2019.11.16 14:07:18 4:  EPG: get available_channels - starting blocking call
2019.11.16 14:07:18 4:  EPG: nonBlocking_available_channels running
2019.11.16 14:07:18 4:  EPG: nonBlocking_available_channels variant not detectable need help!
2019.11.16 14:07:18 4:  EPG: nonBlock_available_channelsDone running
→do↑p!dnʇs↓shit←

HomeAuto_User

Es bestätigt erstmal meine Annahme aber wieso bei Dir das File nicht akzeptiert wird ist komisch. Mit den mir hier derzeit zur Verfügung stehenden Mitteln müsste es greifen eigentlich.

Kannst du mir von dem ausgepackten File mal bitte die ersten 4 Zeilen zukommen lassen?


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

the ratman

gern

   DownloadFile rytecDE_Basic.xz
   DownloadURL http://www.xmltvepg.nl/

das file liegt automatisch ausgepackt auf der platte, hat keine endung und heißt "rytecDE_Basic"

hier die ersten5 zeilen<?xml version="1.0" encoding="UTF-8"?>
<tv generator-info-name="Rytec" generator-info-url="https://forums.openpli.org">
   <channel id="Sport1HD.de">
    <display-name lang="de">SPORT1</display-name>
  </channel>

das ende schaut dann so aus ... nur zur sicherheit zeile 91163 bis ende  <programme start="20191123190000 +0100" stop="20191124000000 +0100" channel="Oberbayern.de">
    <title lang="de">stündliche Wiederholung der tagesaktuellen Sendung</title>
  </programme>
</tv>
→do↑p!dnʇs↓shit←

HomeAuto_User

Danke,
ich habe für alle Fälle nun eine hilfreiche Hilfsausgabe eingebaut um von jedem User bei Log verbose 4 die Stelle zu ,,registrieren" wo die Variante genommen wird.

Ein erneute verbose 4 Mitschnitt wäre nun interessant.


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