Autor Thema: [Gelöst] HTTPMOD Probleme mit der Website  (Gelesen 5687 mal)

Offline raspklaus

  • Sr. Member
  • ****
  • Beiträge: 702
[Gelöst] HTTPMOD Probleme mit der Website
« am: 21 Juli 2014, 22:12:15 »
Hi,

ich versuche gerade eine Website von einem Wiesemann&Theiss Thermometer auszulesen. Aber ich komme dabei nicht weiter.

Der Code:

define Servertemp HTTPMOD http://192.200.100.90/User.htm 600
attr Servertemp readingsName_Temp STemp
attr Servertemp readingsRegex_Temp <td class="bgAnLRed">Sensor)
attr Servertemp room System
attr Servertemp stateFormat STemp
attr Dieselpreis timeout 5

Das List:

Internals:
   CHANGED
   DEF        http://192.200.100.90/User.htm 600
   Interval   600
   NAME       Servertemp
   NR         60
   STATE      STemp
   TYPE       HTTPMOD
   addr       http://192.200.100.90:80
   buf        HTTP/1.0 200 OK
 
Date: Mon, 21 Jul 2014 13:28:57 UTC
 
Last-Modified: Mon, 21 Jul 2014 13:28:56 UTC
 
Expires: Mon, 21 Jul 2014 13:28:57 UTC
 
Content-Length: 2808
 
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">&nbsp;</td></tr>
 
<tr><td colspan="3" align="right"><p>last update: Mo, KW30,<br>21.07.2014 15:28:57&nbsp;* (UTC +02)</p></td></tr>
 
<tr>
 
<td colspan="3" align="center">
 
<table border="2">
 
<tr>
 
<th><a href="info.htm?Ili=0&amp;Ref=user.htm?Vpos=11669&amp;DTb=0&amp;">Sensor 1</a></th>
 
</tr>
 
<tr>
 
<td class="bgAnLRed">27,6 �C</td>
 
</tr>
 
<tr>
 
<th align="center">&Delta;T</th>
 
</tr>
 
<tr>
 
<td align="center" >  0,0 �C/min</td>
 
</tr>
 
</table></td>
 
</tr>
 

 
<tr>
 
<td align="center" colspan="3">&nbsp;</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="&nbsp;&nbsp;OK&nbsp;&nbsp;"><input type="submit" name="B4" value="&nbsp;&nbsp;OK&nbsp;&nbsp;">
 
</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="&nbsp;&nbsp;OK&nbsp;&nbsp;"><input type="submit" name="B4" value="&nbsp;&nbsp;OK&nbsp;&nbsp;">
 
</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="11669"><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&uuml;ck zur Web-Thermograph Homepage</a></td></tr>
 
</table>
 
</body>
 
</html>
 

   code       200
   conn
   displayurl http://192.200.100.90/User.htm
   host       192.200.100.90
   loglevel   4
   path       /User.htm
   protocol   http
   redirects  0
   timeout    2
   url        http://192.200.100.90/User.htm
   Readings:
Attributes:
   readingsName_Temp STemp
   readingsRegex_Temp <td class="bgAnLRed">STemp[^0-9]+([0-9\.]+)
   room       System
   stateFormat STemp
   timeout    5

Es soll die Temperatur angezeigt werden
« Letzte Änderung: 22 Juli 2014, 19:15:04 von raspklaus »

Offline frank

  • Hero Member
  • *****
  • Beiträge: 10684
Antw:HTTPMOD Probleme mit der Website
« Antwort #1 am: 21 Juli 2014, 22:36:44 »
versuche das:
attr Servertemp readingsRegex_Temp <td class="bgAnLRed">(.*)</td>
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Offline raspklaus

  • Sr. Member
  • ****
  • Beiträge: 702
Antw:HTTPMOD Probleme mit der Website
« Antwort #2 am: 22 Juli 2014, 08:00:07 »
ok,

funktioniert fast  ;)

Es wird nun

27,6 �C

angezeigt. Das Fragezeichen steht anscheinend für das Gradzeichen. Wie bekomme ich das noch weg ?

Offline frank

  • Hero Member
  • *****
  • Beiträge: 10684
Antw:HTTPMOD Probleme mit der Website
« Antwort #3 am: 22 Juli 2014, 10:26:39 »
du hast doch sicherlich bemerkt, dass der text der durch "(.*)" ausgeblendet wird, in dein reading übernommen wird. wenn du weniger in deinem reading haben willst, musst du weniger ausblenden.

<td class="bgAnLRed">(.*) �C</td>
jetzt bekommst du nur den wert. die einheiten fügst du dann selber nach deinem geschmack zur "anzeige" hinzu.

attr Servertemp stateFormat meine_temperatur:STemp °C
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Offline raspklaus

  • Sr. Member
  • ****
  • Beiträge: 702
Antw:HTTPMOD Probleme mit der Website
« Antwort #4 am: 22 Juli 2014, 11:51:09 »
Das funktioniert bei mir nicht. Es wird dann

meine_temperatur:27,7 �C °C
angezeigt

attr Servertemp readingsRegex_Temp <td class="bgAnLRed">(.*) �C</td>

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9838
Antw:HTTPMOD Probleme mit der Website
« Antwort #5 am: 22 Juli 2014, 12:04:02 »
Hallo,

da du 3 Stellen in deinem Reading haben willst kannst du ja auch (...) verwenden, oder nicht?
Wenn allerdings das Komma als ein Zeichen zählt musst du natürlich 4 Punkte machen.
Versuchs doch einfach mal.

Grüsse
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 21048
Antw:HTTPMOD Probleme mit der Website
« Antwort #6 am: 22 Juli 2014, 12:05:29 »
versuch es mal so: <td class="bgAnLRed">.*([\d.]*).*</td>

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline frank

  • Hero Member
  • *****
  • Beiträge: 10684
Antw:HTTPMOD Probleme mit der Website
« Antwort #7 am: 22 Juli 2014, 13:07:56 »
hattest du denn auch 600 sekunden nach der änderung auf ein neues reading gewartet? ich glaube nicht.  ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Offline raspklaus

  • Sr. Member
  • ****
  • Beiträge: 702
Antw:HTTPMOD Probleme mit der Website
« Antwort #8 am: 22 Juli 2014, 14:18:57 »
Ich hatte gewartet. Habe es nun aber auf 60 Sekunden gesetzt

Offline raspklaus

  • Sr. Member
  • ****
  • Beiträge: 702
Antw:HTTPMOD Probleme mit der Website
« Antwort #9 am: 22 Juli 2014, 15:06:43 »
Fhem kann das � Zeichen nicht verarbeiten. Beide Versionen von oben ergeben:

HTTPMOD: Response didn't match Reading(s) STemp

Servertemp müsste mit einer Art Stringoperation bearbeitet werden so wie lstrg(4). Aber leider kenne ich zu wenig Perl um dies zu realisieren.

Offline raspklaus

  • Sr. Member
  • ****
  • Beiträge: 702
Antw:HTTPMOD Probleme mit der Website
« Antwort #10 am: 22 Juli 2014, 15:45:55 »
Die Funktion wäre :

{
  $Zeichen[$i] = substr($Satz,$i,1);
}


Aber wie das einbauen ?????????????????????????????????????

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1710
Antw:HTTPMOD Probleme mit der Website
« Antwort #11 am: 22 Juli 2014, 18:50:22 »
Hallo,

Eine Nachbearbeitung der Werte kann man mit ReadingsExpr machen.
Ist leider im Wiki noch nicht drin.

attr Servertemp readingsExpr_Temp substr($val, 1, 3)
oder ähnlich.

Naheliegender wäre es aber die Regex richtig hinzubiegen.
Die bisher genannten Beispiele sollten eigentlich funktionieren.

Gruß
    Stefan

Offline raspklaus

  • Sr. Member
  • ****
  • Beiträge: 702
Antw:HTTPMOD Probleme mit der Website
« Antwort #12 am: 22 Juli 2014, 19:14:34 »
Die folgende Funktion brachte den Erfolg

attr Servertemp readingsExpr_Temp substr($val, 0, 4)
Danke

 

decade-submarginal