Hallo,
ich habe schon seit einiger Zeit eine Überwachung einer WebSeite am Laufen und bin mir ziemlich sicher, dass es am Anfang auch funktionierte. Jetzt war die Seite gezielt down und ich bekam keine Meldung.
Ich lese per HTTPMOD den Seitentitel. Dieser landet im reading "webpage-www.meine-webseite.de". Das passt auch so weit.
Innerhalb des userreadings werte ich das reading aus und sollte da etwas anderes als "Seitentitel" stehen soll Alarm geschlagen werden.
(da derzeit immer das richtige ankommt, habe ich den vergleiswert auf etwas anderes "istnichtOK" gesetzt)
Also meiner Meinung nach ist "Seitentitel" == "istnichtOK" nicht wahr...? Oder?
Wo könnte mein Fehler liegen?
Die RAW-definition mit readings:
defmod WebRequests HTTPMOD none 300
attr WebRequests userattr get01Name get01Poll:0,1 get01Regex get01URL get02Name get02Poll:0,1 get02Regex get02URL get03Name get03Poll:0,1 get03Regex get03URL get04Name get04Poll:0,1 get04Regex get04URL get05Name get05Poll:0,1 get05Regex get05URL get06Name get06Poll:0,1 get06Regex get06URL get07Name get07Poll:0,1 get07Regex get07URL get08Name get08Poll:0,1 get08Regex get08URL get09Name get09Poll:0,1 get09Regex get09URL
attr WebRequests get01Name webpage-www.meine-webseite.de
attr WebRequests get01Poll 1
attr WebRequests get01Regex <title>(.................)
attr WebRequests get01URL https://www.meine-webseite.de/index.htm
attr WebRequests room 1.9_Technik,9.4_System -> Dienste,99-LAB -> TEST,TEST SYSSTAT SYSMON APT2DATE
attr WebRequests stateFormat MELDUNG
attr WebRequests userReadings MELDUNG:webpage-www.meine-webseite.de.* { \
if(ReadingsVal("$NAME","webpage-www.meine-webseite.de",0) == "istnichtOK" ) { \
fhem("set PostIt remove AlarmLevel7 Problem Webseite");;\
return "Webseite OK";;\
};; \
fhem("set PostIt add AlarmLevel7 Problem Webseite");;\
return "Problem Webseite"\
},
setstate WebRequests Webseite OK
setstate WebRequests 2020-02-11 19:52:33 MELDUNG Webseite OK
setstate WebRequests 2020-02-11 19:52:33 webpage-www.meine-webseite.de Seitentitel
das list vom Device:
Internals:
.getList webpage-www.meine-webseite.de:noArg
.setList interval reread:noArg stop:noArg start:noArg clearCookies:noArg upgradeAttributes:noArg storeKeyValue
.updateRequestHash 1
BUSY 0
DEF none 300
FUUID 5d75425a-f33f-52b7-cd47-cae93a1aca63bf12
Interval 300
LASTSEND 1581447453.36152
MainURL
ModuleVersion 3.5.21 - 27.12.2019
NAME WebRequests
NOTIFYDEV global
NR 381
NTFY_ORDER 50-WebRequests
STATE Webseite OK
TRIGGERTIME 1581447753.35882
TRIGGERTIME_FMT 2020-02-11 20:02:33
TYPE HTTPMOD
addr https://www.meine-webseite.de:443
auth 0
code 200
compress 1
conn
data
displayurl https://www.meine-webseite.de/index.htm
header
host www.meine-webseite.de
httpheader HTTP/1.1 200 OK
Date: Tue, 11 Feb 2020 18:51:13 GMT
Server: Apache
Vary: Accept-Encoding
Content-Type: text/html;charset=UTF-8
Accept-Ranges: bytes
ETag: "1877569011-gzip"
Last-Modified: Mon, 10 Feb 2020 20:43:24 GMT
Content-Encoding: gzip
Connection: close
httpversion 1.0
hu_blocking 0
hu_filecount 6
hu_port 443
hu_portSfx
ignoreredirects 1
loglevel 4
path /index.htm
protocol https
redirects 0
timeout 2
url https://www.meine-webseite.de/index.htm
value 0
.attraggr:
.attrminint:
.readingParseList:
.userReadings:
HASH(0x55a40f106570)
CompiledRegexes:
QUEUE:
READINGS:
2020-02-11 19:57:33 MELDUNG Webseite OK
2020-02-11 19:57:33 webpage-www.meine-webseite.de Seitentitel
REQUEST:
data
header
ignoreredirects 0
retryCount 0
type get01
url https://www.meine-webseite.de/index.htm
value 0
defptr:
readingBase:
webpage-www.meine-webseite.de get
readingNum:
webpage-www.meine-webseite.de 01
readingOutdated:
requestReadings:
get01:
webpage-www.meine-webseite.de get 01
lastpoll:
webpage-www.meine-webseite.de 1581447453.35876
sslargs:
Attributes:
get01Name webpage-www.meine-webseite.de
get01Poll 1
get01Regex <title>(.................)
get01URL https://www.meine-webseite.de/index.htm
room 1.9_Technik,9.4_System -> Dienste,99-LAB -> TEST,TEST SYSSTAT SYSMON APT2DATE
stateFormat MELDUNG
userReadings MELDUNG:webpage-www.meine-webseite.de.* {
if(ReadingsVal("$NAME","webpage-www.meine-webseite.de",0) == "istnichtOK" ) {
fhem("set PostIt remove AlarmLevel7 Problem Webseite");
return "Webseite OK";
};
fhem("set PostIt add AlarmLevel7 Problem Webseite");
return "Problem Webseite"
},
userattr get01Name get01Poll:0,1 get01Regex get01URL get02Name get02Poll:0,1 get02Regex get02URL get03Name get03Poll:0,1 get03Regex get03URL get04Name get04Poll:0,1 get04Regex get04URL get05Name get05Poll:0,1 get05Regex get05URL get06Name get06Poll:0,1 get06Regex get06URL get07Na......
In Perl werden Zeichenketten nicht mit == verglichen, sondern mit eq.
Danke, das war es.