Hallo,
ich lese seit ewiger Zeit die Webseite eines Temperatursensors aus:
# Temperatur im Serverraum
define Servertemp HTTPMOD http://192.200.100.90/User.htm 60
attr Servertemp userattr readingsExpr_Temp readingsName_Temp readingsRegex_Temp stateFormat timeout
attr Servertemp alias Temperatur Serverraum
attr Servertemp group Temperatur
attr Servertemp readingsExpr_Temp substr($val,0,4)
attr Servertemp readingsName_Temp STemp
attr Servertemp readingsRegex_Temp <td class="bgAnLRed">(.*)C</td>
attr Servertemp room Klima,Serverraum,System
attr Servertemp stateFormat STemp
attr Servertemp timeout 60
define FileLog_Servertemp FileLog ./log/Servertemp-%Y-%m.log Servertemp
attr FileLog_Servertemp logtype text
Plötzlich seit gestern nacht besomme ich folgende Logeinträge:
2016.02.07 12:04:49 3: Servertemp: Read response to Update didn't match any Reading(s)
2016.02.07 12:05:52 3: Servertemp: Read response to Update didn't match any Reading(s)
2016.02.07 12:06:56 3: Servertemp: Read response to Update didn't match any Reading(s)
2016.02.07 12:07:58 3: Servertemp: Read response to Update didn't match any Reading(s)
2016.02.07 12:09:02 3: Servertemp: Read response to Update didn't match any Reading(s)
2016.02.07 12:10:05 3: Servertemp: Read response to Update didn't match any Reading(s)
2016.02.07 12:11:08 3: Servertemp: Read response to Update didn't match any Reading(s)
2016.02.07 12:12:11 3: Servertemp: Read response to Update didn't match any Reading(s)
2016.02.07 12:13:14 3: Servertemp: Read response to Update didn't match any Reading(s)
2016.02.07 12:14:17 3: Servertemp: Read response to Update didn't match any Reading(s)
2016.02.07 12:15:20 3: Servertemp: Read response to Update didn't match any Reading(s)
2016.02.07 12:16:23 3: Servertemp: Read response to Update didn't match any Reading(s)
Den Sensor und FHEM habe ich bereits neu gestartet, hat aber keine Auswirkung gezeigt.
Was ist da passiert ?
Gelesen wird:
HTTP/1.0 200 OK Date: Mon, 08 Feb 2016 08:40:19 UTC Last-Modified: Mon, 08 Feb 2016 08:40:18 UTC Expires: Mon, 08 Feb 2016 08:40:19 UTC Content-Length: 2792 Content-Type: text/html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" href="style.css" type="text/css"> <title>USERUP</title> </head> <body> <table border="0" cellpadding="0" cellspacing="0" width="600" align="center"> <tr><td colspan="3" align="center" class="size5"><b>User.htm</b></td></tr> <tr><td colspan="3" align="center" class="size5"><b>Serverraum</b></td></tr> <tr><td colspan="3" align="center" class="size4"> </td></tr> <tr><td colspan="3"> </td></tr> <tr><td colspan="3" align="right"><p>last update: Mo, KW06,<br>08.02.2016 09:40:19 * (UTC +01)</p></td></tr> <tr> <td colspan="3" align="center"> <table border="2"> <tr> <th><a href="info.htm?Ili=0&Ref=user.htm?Vpos=25274&DTb=0&">Sensor 1</a></th> </tr> <tr> <td >23,6 �C</td> </tr> <tr> <th align="center">ΔT</th> </tr> <tr> <td align="center" > 0,0 �C/min</td> </tr> </table></td> </tr> <tr> <td align="center" colspan="3"> </td> </tr> <tr> <td colspan="3" align="center" class="size3"><b>Data Logger</b></td> </tr> <tr> <td colspan="3" align="center"> <table border="1"> <tr><td> <form action="log.htm" method="POST" > <table border="0" cellpadding="5%"> <tr> <td align="center"><b>Ausgabe Datalogger</b></td> </tr> <tr> <td align="center"><select name="DTb" size="1"><option selected value="4"> 60 Min</option></select></td> </tr> <tr> <td align="center"> <input type="hidden" name="B2" value=" OK "><input type="submit" name="B4" value=" OK "> </td> </tr> </table></form> </td> <td> <form action="thermo.csv" method="POST" > <table border="0" cellpadding="5%"> <tr> <td align="center"><b>Download Excelformat</b></td> </tr> <tr> <td align="center"><select name="DTb" size="1"><option selected value="4"> 60 Min</option></select></td> </tr> <tr> <td align="center"> <input type="hidden" name="B2" value=" OK "><input type="submit" name="B4" value=" OK "> </td> </tr> </table></form> </td></tr> </table> </td> </tr> <tr><td align="center" colspan="3"><br><br><form action="user.htm" method="GET" ><input type="hidden" name="DTb" value="0"><input type="hidden" name="Vpos" value="25274"><input type="hidden" name="B2" value="Reload"><input type="submit" name="B4" value="Reload"></form></td></tr> <tr><td align="center" colspan="3"><br><br><a href="index.htm" target="_top">zurück zur Web-Thermograph Homepage</a></td></tr> </table> </body> </html>
Das Ganze mit künstlichen Zeilenumbrüchen:
HTTP/1.0 200 OK Date: Sun, 07 Feb 2016 11:31:41 UTC Last-Modified: Sun, 07 Feb 2016 11:31:40 UTC Expires: Sun, 07 Feb 2016 11:31:41 UTC Content-Length: 2774 Content-Type:
text/html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css" type="text/css"> <title>USERUP</title> </head> <body> <table border="0" cellpadding="0" cellspacing="0" width="600" align="center">
<tr><td colspan="3" align="center" class="size5"><b>User.htm</b></td></tr> <tr><td colspan="3" align="center" class="size5"><b>Serverraum</b></td></tr>
<tr><td colspan="3" align="center" class="size4"> </td></tr> <tr><td colspan="3"> </td></tr> <tr><td colspan="3" align="right"><p>last update: So, KW06,
<br>07.02.2016 12:31:41 * (UTC +01)</p></td></tr> <tr> <td colspan="3" align="center"> <table border="2"> <tr> <th>
<a href="info.htm?Ili=0&Ref=user.htm?Vpos=25253&DTb=0&">Sensor 1</a></th> </tr> <tr> <td >23,6 �C</td> </tr> <tr> <th align="center">ΔT</th>
</tr> <tr> <td align="center" > 0,0 �C/min</td> </tr> </table></td> </tr> <tr> <td align="center" colspan="3"> </td> </tr> <tr> <td colspan="3" align="center" class="size3">
<b>Data Logger</b></td> </tr> <tr> <td colspan="3" align="center"> <table border="1"> <tr><td> <form action="log.htm" method="POST" > <table border="0" cellpadding="5%">
<tr> <td align="center"><b>Ausgabe Datalogger</b></td> </tr> <tr> <td align="center"><select name="DTb" size="1"><option value="4"> 60 Min</option></select></td> </tr> <tr>
<td align="center"> <input type="hidden" name="B2" value=" OK "><input type="submit" name="B4" value=" OK "> </td> </tr>
</table></form> </td> <td> <form action="thermo.csv" method="POST" > <table border="0" cellpadding="5%"> <tr> <td align="center"><b>Download Excelformat</b></td> </tr> <tr>
<td align="center"><select name="DTb" size="1"><option value="4"> 60 Min</option></select></td> </tr> <tr> <td align="center">
<input type="hidden" name="B2" value=" OK "><input type="submit" name="B4" value=" OK "> </td> </tr>
</table></form> </td></tr> </table> </td> </tr> <tr><td align="center" colspan="3"><br><br><form action="user.htm" method="GET" ><input type="hidden" name="DTb" value="0">
<input type="hidden" name="Vpos" value="25253"><input type="hidden" name="B2" value="Reload"><input type="submit" name="B4" value="Reload"></form></td></tr> <tr>
<td align="center" colspan="3"><br><br>
<a href="index.htm" target="_top">zurück zur Web-Thermograph Homepage</a></td></tr> </table> </body> </html>
Das Ganze lief bis gestern nacht einwandfrei:
2016-02-07_02:24:11 Servertemp STemp: 24,0
2016-02-07_02:25:14 Servertemp STemp: 24,0
2016-02-07_02:26:17 Servertemp STemp: 24,0
2016-02-07_02:27:20 Servertemp STemp: 24,0
2016-02-07_02:28:23 Servertemp STemp: 24,1
2016-02-07_02:29:26 Servertemp STemp: 24,1
2016-02-07_02:30:29 Servertemp STemp: 24,1
2016-02-07_02:31:32 Servertemp STemp: 24,1
2016-02-07_02:32:35 Servertemp STemp: 24,1
2016-02-07_02:33:38 Servertemp STemp: 24,1
2016-02-07_02:34:41 Servertemp STemp: 24,1
2016-02-07_02:36:07 Servertemp STemp: 24,1
2016-02-07_02:36:51 Servertemp STemp: 24,1
2016-02-07_02:37:53 Servertemp STemp: 24,0
2016-02-07_02:38:56 Servertemp STemp: 24,0
2016-02-07_02:45:17 Servertemp STemp: 24,0
2016-02-07_02:46:20 Servertemp STemp: 24,0
2016-02-07_02:47:23 Servertemp STemp: 24,0
2016-02-07_02:48:26 Servertemp STemp: 24,0
2016-02-07_02:49:29 Servertemp STemp: 24,0
2016-02-07_02:50:32 Servertemp STemp: 24,1
2016-02-07_02:51:35 Servertemp STemp: 24,1
2016-02-07_02:52:38 Servertemp STemp: 24,0
2016-02-07_02:53:42 Servertemp STemp: 24,1
2016-02-07_02:54:44 Servertemp STemp: 24,1
2016-02-07_02:56:02 Servertemp STemp: 24,0
2016-02-07_02:56:50 Servertemp STemp: 24,0
2016-02-07_02:57:53 Servertemp STemp: 24,0
2016-02-07_03:03:12 Servertemp STemp: 24,0
2016-02-07_03:16:51 Servertemp STemp: 24,0
2016-02-07_03:18:58 Servertemp STemp: 24,0
2016-02-07_03:20:00 Servertemp STemp: 24,0
Ich habe nun versucht mit dem RegExtester 101 das Reading anzupassen, komme aber zu keinem wirklichen Erfolg:
Sensor 1(.*C)<
Relevant ist ja:
">Sensor 1</a></th> </tr> <tr> <td >23,6 �C</td>
Kann mir da jemand auf die Sprünge helfen. Ich sehe mal wieder den Wald vor lauter Bäumen nicht
Feiern alle die Regex wirklich verstehen Fasching ?
Geht so etwas nicht?
attr Servertemp readingsRegex_Temp </td>Sensor 1</a></th> </tr> <tr> <td >([,\d]+)
Nein, bringt keinen Erfolg
Was ist denn in der DEF aktuell für eine RegEx drin?
Oben steht:
<td class="bgAnLRed">(.*)C</td>
Das findet in Deinem Beispiel-HTML nix.
Dein
Sensor 1(.*C)<
hingegen liefert zumindest beim Testen mit Regexe.com (http://www.regexe.com) einen Treffer.
Den Treffer beim Testen habe ich auch bemerkt, aber er schreibt trotzdem keine Werte und der State ändert sich nicht.
Mit dem:
<td class="bgAnLRed">(.*)C</td>
lief es bis Sonntag nacht um 3:20, ab da erscheinen keine Werte mehr. (siehe Log oben)
Vollkommen unerklärlich
ok,
habs selbst gefunden:
d >([,\d]+)
Zitat von: raspklaus am 10 Februar 2016, 13:12:12
ok,
habs selbst gefunden:
d >([,\d]+)
:-\ Aber das ist doch genau das, was
SCMP77 gestern in Antwort #2 schon geschrieben hatte?
Finde den Unterschied:
attr Servertemp readingsRegex_Temp </td>Sensor 1</a></th> </tr> <tr> <td >([,\d]+)
Richtig:
attr Servertemp readingsRegex_Temp d >([,\d]+)
;D
RegEx sagt zum oberen:
/</td>Sensor 1</a></th> </tr> <tr> <td >([,\d]+)/
Errors are explained from left to right. Move the mouse cursor over them to see the error highlighted in your pattern
/ Unescaped delimiter
/ Unescaped delimiter
/ Unescaped delimiter
/ Unescaped delimiter
;D