Aktuelles TV-Programm in FHEM

Begonnen von Kuzl, 20 Oktober 2014, 20:41:43

Vorheriges Thema - Nächstes Thema

Elektrolurch

Zitat:
Kann man die  & zeichen wieder in ihre sonderzeichen umwandeln?


Da gibt es ein perl-Modul html::entities mit zwei Funktionen drin, damit kann man die &xxx; - Zeichen hin- und her verwandeln.
Dann kommt es allerdings immer noch auf den Zielzeichensatz in Deinem System an. Z.B. sind ja in reinem ASCII keine Umlaute, dafür braucht man dann Latin-1 (?) oder UTF-8.
configDB und Windows befreite Zone!

ToM_ToM

Hallo zusammen,

ich habe jetzt verschiedene eurer fertigen Configs komplett kopiert und bei mir eingefügt, aber kein einziger will bei mir funktionieren. Ich bekomme lediglich die Überschriften (Sender, Aktuelle Sendung, usw...) und das war es. Brauche ich noch irgendein extra Modul oder muss etwas in meine myUtils..?

Danke!
LG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

WarLord

@ Elektrolurch  zeichensatz hab ich de UTF-8. dieses modul muss dann am raspberry instaliert sein?
FHEM auf RaspberryPi B+
HMLAN Adapter + Div HM Komponenten

Elektrolurch

@Thomas:
Der Aufbau der Seite von clack-TV hat sich geändert. Schau mal einige Beiträge weiter oben. Da muss jetzt vor dem Sendernamen nach "title" gesucht werden und entsprechend die regex für alle Sender  angepasst werden.

@WarLord:

Mit reiner Modulinstallation ist es da nicht getan. Allerdings sollte das ja eigentlich auch automatisch von html - entities nach den codierten Sonderzeichen von dem httpmod - Modul konvertiert werden.

Mein Hinweis galt eher dem geschuldet, wenn man das manuell umsetzen möchte, dann braucht man das html::entities Modul um an die die beiden Konvertierungsroutinen nutzen zu können.
configDB und Windows befreite Zone!

raspklaus

#619
Hallo,

habe nach meinem Urlaub mal wieder das Log angesehen, da bekomme ich neuerdings folgende Fehlermeldung:

2015.09.24 13:54:31 1: define TVhelper_1454_at at 14:54:30:30 {TVhelper_Update("TVhelper");}: Wrong timespec 14:54:30:30: either HH:MM:SS or {perlcode}
2015.09.24 13:54:31 3: define TVhelper_1454_at at 14:54:30:30 {TVhelper_Update("TVhelper");;} : Wrong timespec 14:54:30:30: either HH:MM:SS or {perlcode}


und die Anzeige wird nicht aktuallisiert. Sie zeigt noch die Werte vom 15.09.

Habe jetzt die Seitenänderung bei Klack.tv gesehen

dann muss also

attr TV_Programme readingsRegex_ARD <span class="stationName">ARD</span>[\w\W]*?<div class="content">\s*<a[\w\W]*?>\s*(.*?)\s*</a>


geändert werden in

attr TV_Programme readingsRegex_ARD title="ARD"><img[\w\W]*?<div class="content">\s*<a[\w\W]*?>\s*(.*?)\s*</a>


?????



Elektrolurch

Ja. title="ARD"><img
das ist der Teil, auf den es ankommt.
Steht aber weiter oben in einem Beitrag. Nach der Änderung (Kann man mit Suchen und ersetzen in einem Schritt machen) geht alles wieder und die Timespec im TVhelper ist dann auch wieder korrekt.
configDB und Windows befreite Zone!

raspklaus

oder muss die neue Anweisung:

attr TV_Programme readingsRegex_ARD <span title="ARD"><img[\w\W]*?<div class="content">\s*<a[\w\W]*?>\s*(.*?)\s*</a>

lauten ? Also mit dem <span vor title="ARD"

Tom_S

@raspklaus
Zitatoder muss die neue Anweisung:


Code: [Auswählen]
attr TV_Programme readingsRegex_ARD <span title="ARD"><img[\w\W]*?<div class="content">\s*<a[\w\W]*?>\s*(.*?)\s*</a>
lauten ? Also mit dem <span vor title="ARD"

nein !
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

Elektrolurch

Ein Blick auf den Quelltext der Seite von clack-tv klärt die Frage auch.
Die regex sucht nach title + Sendernamen, danach nach dem nächsten Sendungsnamen und den Uhrzeiten. Was in einer regex in () steht, landet in den internen perl-Variablen $1...$n und kann somit dann in das entsprechende reading geschrieben werden.
configDB und Windows befreite Zone!

WarLord

Zitat von: Elektrolurch am 24 September 2015, 13:17:32
@WarLord:

Mit reiner Modulinstallation ist es da nicht getan. Allerdings sollte das ja eigentlich auch automatisch von html - entities nach den codierten Sonderzeichen von dem httpmod - Modul konvertiert werden.

Mein Hinweis galt eher dem geschuldet, wenn man das manuell umsetzen möchte, dann braucht man das html::entities Modul um an die die beiden Konvertierungsroutinen nutzen zu können.

Das bedeutet nun ?
FHEM auf RaspberryPi B+
HMLAN Adapter + Div HM Komponenten

ChHerrm

#625
Hallo!
Ich versuche erstmal überhaupt die TV-Anzeige bei mir einzubinden bevor ich daran etwas ändere, aber da gibts leider schon Probleme :(
Ich habe den Code von Antwort # 556 nutzen wollen und den in meine fhem.cfg kopiert. Die Iconbezeichnungen habe ich an meine eigenen angepasst und sonst alles unverändert gelassen. Das Ergebnis befindet sich im Anhang. Wo könnte in solchen Fällen der Fehler liegen? Oder habe ich irgendwelche vorher nötigen Schritte übersehen? Ziel ist es, eine Darstellung möglichst wie von Bernhard-IN aus Antwort # 595 zu erhalten. An dieser Stelle sei nochmal drauf hingewiesen, dass der angebotene Code noch immer interessant wäre ;)
Danke für eure Hilfe!

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

Edit: So, inzwischen habe ich wirklich alle 42 Seiten durchgelesen und alles mögliche an Codes ausprobiert. FHEM immer mal wieder neu gestartet und es läuft nach wie vor nichts von all den Versuchen. Bzw wenn was geht, werden sämtliche Sendungsnamen verdreht. Größtenteils passiert aber gar nichts. Die Icons sind erstmal auch nicht so wichtig, habe jetzt auch nichts angepasst. Die Darstellung selbst sollte ja trotzdem gehen hoffe ich.
Wäre es vlt jemandem der Erfahrung mit der Darstellung des TV-Programms hat möglich, eine kurze zusammenfassende To-Do-Liste zu erstellen? Ich kann bei mir keinen Fehler finden :-[ :-[ Im Anhang mal der aktuell in der fhem.cfg eingefügte Code sowie die resultierende Darstellung. Habe ich außer dem Einfügen des Codes was vergessen?
Bin für jede Hilfe dankbar, allein komme ich damit nicht weiter :(

ChHerrm

Niemand eine Idee bisher? :( Vlt nochmal auf einen minimalen Umfang runtergebrochen, erstmal nur exemplarisch ohne richtige Logos mit ARD:

#---------Start:Fernsehprogram---------
#Get Current TV Show
define TV_Programme HTTPMOD http://www.klack.de/fernsehprogramm/was-laeuft-gerade/0/0/all.html 60
attr TV_Programme userattr readingsName_ARD readingsName_ARD_Next readingsName_ARD_Nexttime stateFormat timeout verbose
attr TV_Programme readingsName_ARD ARD
attr TV_Programme readingsName_ARD_Next ARD_Next
attr TV_Programme readingsName_ARD_Nexttime ARD_Nexttime
attr TV_Programme readingsRegex_ARD <span class="stationName">ARD</span>[\w\W]*?<div class="content">\s*<a[\w\W]*?>\s*(.*?)\s*</a>
attr TV_Programme readingsRegex_ARD_Next <span class="stationName">ARD</span>[\w\W]*?<td class="time[\w\W]*?Row">[\w\W]*?<div[\w\W]*?<div class="content">\s*<a[\w\W]*?>\s*(.*?)\s*</a>
attr TV_Programme readingsRegex_ARD_Nexttime <span class="stationName">ARD</span>[\w\W]*?<td class="time[\w\W]*?Row">\s*(.*?)\s*<div
attr TV_Programme stateFormat mein_TV_programm: ARD_Next
attr TV_Programme timeout 20
attr TV_Programme verbose 1


#Create Web UI
define TV_Programm_Next readingsGroup <Sender>,<Aktuelle Sendung>,<Start Zeit>,<Nachfolgende Sendung> \
TV_Programme:ARD,ARD_Nexttime,ARD_Next \
attr TV_Programm_Next alias TV_Programm
attr TV_Programm_Next nameIcon { ARD => 'Aral_breit' }
attr TV_Programm_Next nameStyle style="color:yellow"
attr TV_Programm_Next room TV
attr TV_Programm_Next style style="font-size:18px"
#attr TV_Programm_Next notime 1
#---------Stop:Fernsehprogram---------


Es erfolgt keine Ausgabe außer der vorbereiteten Tabelle. Diese bleibt jedoch leer.




Falls das weiterhilft, hier mal ein Ausschnitt (im Bereich der aktuellen ARD-Sendung) von TV_Programme:

src="http://images.klack.de//templates/klack/images/iconRightDblArrowActive.png" alt="Zeitpunkt um 60 Minuten nach vorne verschieben" /> </a> </div> </td> </tr> <tr class="evenRow"> <td class="station"> <a href="/fernsehsender/5/ard.html" onclick="station=window.open('/fernsehsender/5/ard.html?popup=station','','height = 700, width = 750,scrollbars=yes,status=no,directories=no,menubar=no,resizable=no,location=tabelle');station.focus();return false;" title="ARD"><img class="stationIcon" src="http://images.klack.de/images/stories/stations/../stations-mobile/large/ard.png" alt="ARD" /></a> </td> <td class="time"> 10:45 <br/> <div style="padding-top: 3px; padding-bottom: 3px; margin-left: 2px;"> <a class="planer_link" href="http://www.klack.de/" title="Sendung zum TV-Planer hinzufügen" onclick="return false;"> <img src="http://images.klack.de//templates/klack/images/iconMarkBroadcast.png" alt="Sendung zum TV-Planer hinzufügen" /> <input name="planer_link_action" type="hidden" value="/component/pit_user/?task=addToPlaner&amp;id=1573119" /> </a> </div> <div style="padding-top: 3px; padding-bottom: 3px; margin-left: 2px;"> <a href="/sendung-empfehlen/1573119.html" onclick="emailFriend=window.open('/sendung-empfehlen/1573119.html?popup=emailFriend','','height = 700, width = 743,scrollbars=yes,status=no,directories=no,menubar=no,resizable=no,location=tabelle');emailFriend.focus();return false;" title="Sendung weiter empfehlen" target="page"> <img src="http://images.klack.de//templates/klack/images/iconMailToFriend.png" alt="Sendung weiter empfehlen" /> </a> </div> </td> <td class="details"> <div class="content"> <a href="/tv-programm/fernsehsendung/1573119/um-himmels-willen-88.html" title="ARD: Um Himmels Willen (88)" onclick="details=window.open('/tv-programm/fernsehsendung/1573119/um-himmels-willen-88.html?popup=details','','height = 700, width = 743,scrollbars=yes,status=no,directories=no,menubar=no,resizable=no,location=tabelle');details.focus();return false;">Um Himmels Willen (88)</a> <br/> Familienserie, D 2008<br/>Staffel: 7 / Folge: 10<br/>Laufzeit: 50 Minuten<br/>Original-Titel: Um Himmels Willen<br/>Mit: Jutta Speidel, Janina Hartwig, Fritz Wepper, Rosel Zech, Emanuela von Frankenberg, Anne Weinknecht<br/><br/>Schwester Hanna trifft sich im &quot;Ochsen&quot; mit ihrer alten Liebe aus früheren Zeiten, dem Tänzer André, den sie seit zehn Jahren nicht gesehen hat.<br/><img class="typeIcon" src="http://images.klack.de//templates/klack/images/typeIconStereo.png" alt="Stereo" title="Stereo" /><img class="typeIcon" src="http://images.klack.de//templates/klack/images/typeIconSubtitle.png" alt="Untertitel" title="Untertitel" /> </div> </td> <td class="image left"> <a href="/tv-programm/fernsehsendung/1573119/um-himmels-willen-88.html" title="ARD: Um Himmels Willen (88)" onclick="details=window.open('/tv-programm/fernsehsendung/1573119/um-himmels-willen-88.html?popup=details','','height = 700, width = 743,scrollbars=yes,status=no,directories=no,menubar=no,resizable=no,location=tabelle');details.focus();return false;"><img class="epgImage" src="http://funke.images.dvbdata.com/1065267/1065267_176x120.jpg" alt="Um Himmels Willen (88)" /></a> </td> <td class="time evenRow"> </td> <td class="details"> </td> <td class="image"> </td> </tr> <tr class="oddRow"> <td class="station"> <a href="/fernsehsender/129/zdf.html" onclick="station=window.open('/fernsehsender/129/zdf.html?

Kann mir dabei niemand helfen?  :-\

raspklaus

Du hast immer noch stationname drin. Schau mal weiter oben --> title

ChHerrm


ChHerrm

Ein letztes Problem habe ich noch, was auch schon mehrfach angesprochen aber scheinbar noch nicht abschließend gelöst wurde: Die Sonderzeichen (s. Anhang).

Ich verwende einen Raspberry Pi 2 und verwende UTF-8. Auch nach mehreren Stunden werden diese Zeichen nicht aktualisiert. Es hat jedoch schon mal funktioniert, bevor ich das Ganze ausgebaut und readingsGroups umbenannt habe. Kann es damit irgendwas zu tun haben?