Hallo,
ich versuche über HTTPMOD eine Zitatewebseite abzufragen. Die Abfrage der Seite funktioniert sodas ich als buf die von mir gewünschten Texte sehe, aber ich bekomme kein Readings zustande. Es wird überhaupt kein Ergebnis angezeigt. Das Regex funktioniert zumindestens in einem OnlineRegexTester.
die Defininition in der fhem.cfg
Zitat
define Zitatzufall HTTPMOD http://www.zitate-online.de/zufallszitat.txt.php 360
attr Zitatzufall userattr 1 reading03Name reading03Regex readingsName.* readingsRegex.* timeout
attr Zitatzufall reading03Name Zitat
attr Zitatzufall reading03Regex (<a href=".*?".*?> )
attr Zitatzufall room 2_Info
attr Zitatzufall timeout 300
Auf der Konsole bekomme ich mit verbose 5 folgende Meldung
ZitatContent-Type: text/plain,
buffer: <div id="zufallszitat"><strong><a href="http://www.zitate-online.de/autor/bonaparte-napoleon/">Napoleon Bonaparte</a></strong>: „Revolution: eine Meinung, die auf Bajonette trifft.“<br /><span id="zufallszitatlink">von <a href="http://www.zitate-online.de/" title="Zitate und Sprüche">zitate-online.de</a></span></div>
2015.04.22 18:39:14 5: Zitatzufall: Read starts extracting all Readings from HTTP Response to Update
2015.04.22 18:39:14 5: Zitatzufall: ExtractReading Zitat with regex /<a href=".*?".*?>/...
2015.04.22 18:39:14 5: Zitatzufall: ExtractReading sets Zitat to
2015.04.22 18:39:14 5: Zitatzufall: ExtractReading Zitatzufall with regex /(<a href=".*?".*?> )/...
2015.04.22 18:39:14 4: Zitatzufall: Read response to Update matched Reading(s) Zitat
2015.04.22 18:39:14 4: Zitatzufall: Read response to Update did not match Zitatzufall
2015.04.22 18:39:14 5: Zitatzufall: HandleSendQueue called, qlen = 0
Denk bitte daran, dass Zeichen, wie < oder > maskiert werden müssen, also für < muss \< genommen werden.
Grüße Jörg
Gesendet von iPhone mit Tapatalk
Hallo,
Zitat von: JoWiemann am 25 April 2015, 08:05:03
Denk bitte daran, dass Zeichen, wie < oder > maskiert werden müssen, also für < muss \< genommen werden.
das stimmt so nicht - meine RegEx funktionieren auch ohne Maskierung.
Das Problem von bm7777 ist, dass kein Ergebnis definiert wurde: Das erfolgt nämlich mit (.*?)
Folgende RegEx sollte funktionieren:
attr Zitatzufall reading03Regex <a href=".*?">(.*?)<span
Testen kannst du das ganz gut mit https://regex101.com/#pcre -> einfach den Inhalt der Seite unten reinkopieren und oben die RegExp eingeben (darauf achten, dass in dem Feld hinter der RegExp ein "s" eingetragen ist, damit es als SingleLine betrachtet wird). Wenn alles passt gibt es einen Match der Farblich hervorgehoben und auch am rechten Rand unter Match Information angezeigt wird.
Ronny
Zitat von: RoBra81 am 25 April 2015, 08:36:57
Hallo,
das stimmt so nicht - meine RegEx funktionieren auch ohne Maskierung.
Das Problem von bm7777 ist, dass kein Ergebnis definiert wurde: Das erfolgt nämlich mit (.*?)
Folgende RegEx sollte funktionieren:
attr Zitatzufall reading03Regex <a href=".*?">(.*?)<span
Testen kannst du das ganz gut mit https://regex101.com/#pcre -> einfach den Inhalt der Seite unten reinkopieren und oben die RegExp eingeben (darauf achten, dass in dem Feld hinter der RegExp ein "s" eingetragen ist, damit es als SingleLine betrachtet wird). Wenn alles passt gibt es einen Match der Farblich hervorgehoben und auch am rechten Rand unter Match Information angezeigt wird.
Ronny
Super, danke das hat funktioniert. Regex ist für mich irgendwie ein Buch mit sieben Siegeln. Immer wenn ich denke ich habe es verstanden, bekomme ich es wieder nicht hin.