Hallo,
ich habe auf einem Raspberry einen Apache2 Webserver installiert und lasse auf der Index.php Messwerte anzeigen.
Jetzt wollte ich über HTTPMOD die Seite auslesen und in FHEM weiterverarbeiten.
Leider werden keine Daten eingelesen.
Ich habe auch schon versucht auf einem "frischen" Apache-Raspberry Server die Seite auszulesen, leider auch ohne Erfolg.
Gibt es dafür einen Grund oder was mache ich falsch?
Hier das List:
Internals:
.getList
.setList
.updateRequestHash 1
BUSY 1
CFGFN
CHANGED
DEF http://192.168.0.168/index.php 10
FD 65
Interval 10
LASTSEND 1514192761.58106
MainURL http://192.168.0.168/index.php
ModuleVersion 3.3.11 - 8.5.2017
NAME Sensor_Heizung
NR 26169
STATE ???
TRIGGERTIME 1514192771.57901
TRIGGERTIME_FMT 2017-12-25 10:06:11
TYPE HTTPMOD
addr http://192.168.0.168:80
buf
code 200
data
displayurl http://192.168.0.168/index.php
header
host 192.168.0.168
httpheader HTTP/1.0 200 OK
Content-type: text/html; charset=UTF-8
Content-Length: 302
Connection: close
Date: Mon, 25 Dec 2017 09:05:51 GMT
Server: lighttpd/1.4.35
httpversion 1.0
hu_blocking 0
hu_filecount 180
hu_portSfx
ignoreredirects 0
loglevel 4
path /index.php
protocol http
redirects 0
timeout 5
url http://192.168.0.168/index.php
value 0
.readingParseList:
01
QUEUE:
READINGS:
REQUEST:
data
header
ignoreredirects 0
retryCount 0
type update
url http://192.168.0.168/index.php
value 0
sslargs:
Attributes:
reading01Name Terrasse
reading01Regex <span>Terrasse</span>[^0-9]+([0-9\.]+)
room Überwachung
timeout 5
userattr reading01Name reading01Regex
Tobias
ist es normal, dass ein apache sich als lighttpd meldet?
Kann es sein, dass auf Deinem Raspi zwei Webserver laufen und Du schlichtweg den falschen erreichst?
Hallo,
jetzt wo du es sagts.... . Ich hatte ursprünglich den lighttpd installiert.
Ich deinstalliere ihn und werde berichten!
Danke
Tobias
Hallo,
ich musste den Raspberry neu aufsetzen.
Nun ist nur noch der Apache drauf aber eine Anzeige im HTTPMOD kommt nicht raus.
Das "buf" bleibt leer obwohl ich über den Browser meine Webseite sehe.
Ich habe jetzt auch einfach mal eine html Seite hinterlegt. Leider wird die auch nicht angezeigt
Hat jemand noch eine Idee?
Internals:
.getList
.setList
.updateRequestHash 1
BUSY 0
CFGFN
CHANGED
DEF http://192.168.0.113/index.php 60
Interval 60
LASTSEND 1514243555.82008
MainURL http://192.168.0.113/index.php
ModuleVersion 3.3.11 - 8.5.2017
NAME Sensor_Heizung
NR 26169
STATE ???
TRIGGERTIME 1514243615.81823
TRIGGERTIME_FMT 2017-12-26 00:13:35
TYPE HTTPMOD
addr http://192.168.0.113:80
buf
code 200
conn
data
displayurl http://192.168.0.113/index.php
header
host 192.168.0.113
httpheader HTTP/1.1 200 OK
Date: Mon, 25 Dec 2017 23:12:35 GMT
Server: Apache/2.4.10 (Raspbian)
Vary: Accept-Encoding
Content-Length: 239
Connection: close
Content-Type: text/html; charset=UTF-8
httpversion 1.0
hu_blocking 0
hu_filecount 703
hu_portSfx
ignoreredirects 0
loglevel 4
path /index.php
protocol http
redirects 0
timeout 5
url http://192.168.0.113/index.php
value 0
.readingParseList:
01
QUEUE:
READINGS:
REQUEST:
data
header
ignoreredirects 0
retryCount 0
type update
url http://192.168.0.113/index.php
value 0
sslargs:
Attributes:
reading01Name Terrasse
reading01Regex <span>Terrasse</span>[^0-9]+([0-9\.]+)
room Überwachung
timeout 5
userattr reading01Name reading01Regex
http://192.168.0.113/index.php
Ist aber keine HTML-Seite
Wie sollen wir Dir helfen, wenn wir den Inhalt nicht kennen?
Grundsätzlich - schreib doch mal einen generischen regex wie .*
Hallo,
ich dachte es gibt vielleicht etwas grundsätzliches was ich berücksichtigen muss.
Also, dann hier eine Webseite deren Inhalt eigentlich erscheinen sollte:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
</head>
<body>
<h1>It works!</h1>
</body>
</html>
Zitat von: TobiasR am 26 Dezember 2017, 00:16:35
Das "buf" bleibt leer obwohl ich über den Browser meine Webseite sehe.
Das ist völlig normal.
Mach doch mal den Abruf mit verbose=5 und poste die Logausgaben.
In Deinem HTTPMod-Device prüfst Du auf einen Ausdruck
<span>Terrasse</span>[^0-9]+([0-9\.]+)
der in Deiner Seite aber nicht enthalten ist - wie soll das funktionieren?
Wie gesagt probiere doch mal ein sehr generisches regex .* und schau mal was im Reading landet.
Zitat von: viegener am 26 Dezember 2017, 16:00:24
In Deinem HTTPMod-Device prüfst Du auf einen Ausdruck
<span>Terrasse</span>[^0-9]+([0-9\.]+)
der in Deiner Seite aber nicht enthalten ist - wie soll das funktionieren?
Wie gesagt probiere doch mal ein sehr generisches regex .* und schau mal was im Reading landet.
Stimmt! Ich hatte zwischenzeitlich auch vieles ausprobiert weil ich der Meinung war dass die Seite im buf angezeigt werden mus.
Zitat von: betateilchen am 26 Dezember 2017, 11:28:59
Das ist völlig normal.
Mach doch mal den Abruf mit verbose=5 und poste die Logausgaben.
Da steht tatsächlich jetzt etwas:
ZitatBody: 13 28-031664d6bfff Vorlauf Heizkreise 33.562 26.12.2017 um 17:35:45 Uhr 18:37:47<br />14 28-031664d5b2ff Heizungsraum 11.375 inaktiv 14:33:29<br />15 28-0416642894ff Terrasse 5.312 26.12.2017 um 17:35:45 Uhr 18:37:46<br />16 28-00000534e1bd neu angelegt 19.375 inaktiv 17:21:54<br />27 28-00000535c734 neu angelegt 19.312 inaktiv 17:21:52<br />28 28-000005359574 neu angelegt 19.625 inaktiv 17:21:53<br />
2017.12.26 18:38:02 5: Sensor_Heizung: ExtractSid called, context reading, num
2017.12.26 18:38:02 4: Sensor_Heizung: CheckAuth decided no authentication required
2017.12.26 18:38:02 5: Sensor_Heizung: Read starts parsing response to update with defined readings: 01
2017.12.26 18:38:02 5: Sensor_Heizung: ExtractReading Terrasse with regex /<span>Terrasse/span>[^0-9]+([0-9\.]+)/...
2017.12.26 18:38:02 5: Sensor_Heizung: ExtractReading Terrasse did not match
2017.12.26 18:38:02 3: Sensor_Heizung: Read response to update didn't match any Reading
2017.12.26 18:38:02 5: Sensor_Heizung: HandleSendQueue called, qlen = 0
Aber wieso bekomme ich nun beim Reading nichts raus?
Ausschnitt:
15 28-0416642894ff Terrasse 5.312 26.12.2017
Ich denke die Meldung ist doch ziemlich eindeutig:
2017.12.26 18:38:02 5: Sensor_Heizung: ExtractReading Terrasse with regex /<span>Terrasse/span>[^0-9]+([0-9\.]+)/...
2017.12.26 18:38:02 5: Sensor_Heizung: ExtractReading Terrasse did not match
Der von Dir angegebene Ausdruck ist so in der Seite nicht enthalten.
Ich wiederhole mich, fang doch mal mit allgemeinen Ausdrücken wie .* an - ein span kommt gar nicht vor?
ich dachte span wäre der Bereich bis zur ersten Zahl. Habe ich wohl falsch verstanden.
Wie müsste es den aussehen wenn ich Terrasse 4.687 bzw. die 4.687 rausholen möchte.
"Terasse.*" ist es wohl eher nicht. Dann bekomme ich nur letzten Zeichen der Seite
Habs raus bekommen:
Terrasse[^0-9]+([0-9\.]+)
Danke!!