Autor Thema: Neue Version von HTTPMOD mit neuen Features zum Testen  (Gelesen 76831 mal)

Online der-Lolo

  • Hero Member
  • *****
  • Beiträge: 1483
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #465 am: 03 Oktober 2018, 07:44:37 »
Guten Morgen Stefan,
ich habe schon länger HTTPMOD im Einsatz um werte meiner "Bayernlüfter" abzufragen...
Nun wollte ich mal einen Plot aus den werten machen - hier sind meldungen im Log aufgeschlagen welche auf "isnt numeric in...SVGPlot" hinweisen.
Ok, ich dachte mir ich füge im HTTPMOD ein reading04Format %.1f hinzu und alles ist gut - das problem mit dem isnt numeric habe ich damit aaber leider nur verschoben.
im Log habe ich nun
Zitat
2018.10.03 07:35:44 1: PERL WARNING: Argument "N/A " isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:35:44 1: PERL WARNING: Argument "49,7" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:35:44 1: PERL WARNING: Argument "37,3" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:35:44 1: PERL WARNING: Argument "17,0" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:35:00 1: PERL WARNING: Argument "92,3" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:35:00 1: PERL WARNING: Argument "47,0" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:35:00 1: PERL WARNING: Argument "36,3" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:35:00 1: PERL WARNING: Argument "15,3" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:34:16 1: PERL WARNING: Argument "90,1" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:34:16 1: PERL WARNING: Argument "15,0" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:34:14 1: PERL WARNING: Argument "21,4" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:33:33 1: PERL WARNING: Argument "90,0" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:33:33 1: PERL WARNING: Argument "35,1" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:33:28 1: PERL WARNING: Argument "16,9" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:32:50 1: PERL WARNING: Argument "89,9" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:32:50 1: PERL WARNING: Argument "35,2" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:32:50 1: PERL WARNING: Argument "15,1" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:32:07 1: PERL WARNING: Argument "90,7" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:32:07 1: PERL WARNING: Argument "21,8" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:31:25 1: PERL WARNING: Argument "89,8" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:31:25 1: PERL WARNING: Argument "47,1" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:31:25 1: PERL WARNING: Argument "21,1" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:31:25 1: PERL WARNING: Argument "15,2" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:30:42 1: PERL WARNING: Argument "21,2" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:29:58 1: PERL WARNING: Argument "21,3" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
2018.10.03 07:29:15 1: PERL WARNING: Argument "15,4" isn't numeric in sprintf at ./FHEM/98_HTTPMOD.pm line 1746.
 

Hast Du eine Idee was ich hier tun kann?

PS: ich habe noch ein list gemacht :

Internals:
   BUSY       0
   CHANGED   
   DEF        http://192.168.1.151/ 45
   Interval   45
   LASTSEND   1538545347.92591
   MainURL    http://192.168.1.151/
   ModuleVersion 3.5.1 - 5.7.2018
   NAME       LueftungBadOG
   NR         113
   STATE       01
   TRIGGERTIME 1538545392.92535
   TRIGGERTIME_FMT 2018-10-03 07:43:12
   TYPE       HTTPMOD
   addr       http://192.168.1.151:80
   auth       0
   buf        HTTP/1.1 200 OK
Content-Type: text/html

<html><head>
<meta http-equiv="refresh" content="60; URL=http://192.168.1.151"><title>Onlineschema Bayernluft</title>
<style type='text/css'>
#graphic {text-align: left; vertical-align: top; position: relative; width: 800px; height: 600px; margin-right: auto; margin-left: auto;}
#bezeichnung {top: 1px; left: 210px;}
#hilfe {top: 1px; left: 90px;}
#rssi {top: 665px; left: 340px;}
#zeit {top: 30px; left: 210px;}
#frischluft_temp {top: 333px; left: 500px;}
#abluft_temp {top: 303px; left:30px;}
#label_wrg {top: 320px; left: 275px;}
#wrg {top: 350px; left: 273px;}
#label_transport {top: 473px; left: 218px;}
#feuchtetransport {top: 503px; left: 250px;}
#abluft_feuchte_rel {top: 333px; left: 30px;}
#abluft_feuchte_abs {top: 363px; left: 30px;}
#zuluft_temp {top: 490px; left: 30px;}
#zuluft_feuchte_rel {top: 520px; left: 30px;}
#zuluft_feuchte_abs {top: 550px; left:30px;}
#abluft_motorstufe {top: 233px; left: 100px;}
#frischluft_motorstufe {top: 233px; left: 390px;}
#buttons {top: 650px; left: 350px;}
#fs_motor {top: 125px; left: 293px;}
#label_fs_motor {top: 100px; left: 292px;}
#select_speed {top: 255px; left: 251px;}
.style1 {font-family: Arial; font-size: 20px; text-align: left; font-style: normal; font-weight: bold; color: #000000; position: absolute;}
.style2 {font-family: Arial; font-size: 13px; text-align: left; font-style: normal; font-weight: bold; color: #000000; position: absolute;}
.style3 {font-family: Arial; font-size: 10px; text-align: right; font-style: normal; font-weight: bold; color: #2076CD; position: absolute;}
.style4 {font-family: Arial; font-size: 13px; text-align: left; font-style: normal; font-weight: bold; color: #FFFFFF; position: absolute;}
</style>
</head>
<body {font-size: 14px; font-family: Verdana, Arial, Helvetica, sans-serif; background-repeat: no-repeat;}>
<div id='graphic'>
<img src='https://www.bayernluft.de/live/test_schema_blauverlauf.jpg' border='0' width="662" height="800" usemap="#Geraet">

<map name="Geraet">
  <area shape="rect" coords="255,206,293,244"
        href="http://192.168.1.151?button=power"
        title="Power">

  <area shape="rect" coords="312,206,349,244"
        href="http://192.168.1.151?button=timer"
        title="Timer">

  <area shape="rect" coords="40,20,60,50"
        href="https://www.bayernluft.de/de/frame.cgi?page=live_hilfe"
        target="_blank"
        title="Hilfe">

  <area shape="rect" coords="80,20,110,50"
        title="Einstellungen"
        href="https://www.bayernluft.de/de/wlan_setting.cgi/?IP=192.168.1.151&MAC=A020A62A96DF&NAME=">

</map>
<div class='style3' id='rssi'>[-69 dBm] [1744000A] [20171006]</div>
<div class='style1' id='hilfe'><a href="https://www.bayernluft.de/de/frame.cgi?page=live_hilfe" target="_blank"></a></div>
<div class='style1' id='bezeichnung'></div>
<div class='style1' id='zeit'>03.10.2018 - 08:01:13</div>
<div class='style1' id='label_fs_motor'>FS</div>
<div class='style1' id='fs_motor'>00</div>
<div class='style1' id='abluft_temp'>21,1 &deg;C</div>
<div class='style1' id='label_wrg'>WRG</div>
<div class='style1' id='wrg'>N/A &#37</div>
<div class='style1' id='label_transport'>Feuchtetransport:</div>
<div class='style1' id='feuchtetransport'>-290 g&#47;24h</div>
<div class='style1' id='abluft_feuchte_rel'>49,4 &#37 rF</div>
<div class='style1' id='abluft_feuchte_abs'>9,1 g&#47m&#179</div>
<div class='style1' id='zuluft_temp'>21,2 &deg;C</div>
<div class='style1' id='zuluft_feuchte_rel'>36,0 &#37 rF</div>
<div class='style1' id='zuluft_feuchte_abs'>6,7 g&#47m&#179</div>
<div class='style1' id='frischluft_temp'>16,4 &deg;C</div>
<form method="get" action="http://192.168.1.151/?speed=">
<div class='style1' id='select_speed'>
<font size="3">Stufe: <select size="1" name="speed" onchange="this.form.submit()">
<option selected value="-1">Select</option>
<option value="0">Auto</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select></font>
</div>
</form>
<div class='style1' id='abluft_motorstufe'>Abluft: 01</div>
<div class='style1' id='frischluft_motorstufe'>Frischluft: 01</div></div>
</div>
</body>
</html>
   code       200
   data       
   displayurl http://192.168.1.151/
   header     
   host       192.168.1.151
   httpdatalen -2
   httpversion 1.0
   ignoreredirects 0
   loglevel   4
   path       /
   protocol   http
   redirects  0
   timeout    2
   url        http://192.168.1.151/
   value      0
   Helper:
     DBLOG:
       AbluftFeuchtigkeit:
         DbLog:
           TIME       1538544944.16679
           VALUE      49.0
       AbluftStufe:
         DbLog:
           TIME       1538457667.87548
           VALUE       01
       AbluftTemperatur:
         DbLog:
           TIME       1538544944.16679
           VALUE      21.0
       AussenLuftTemperatur:
         DbLog:
           TIME       1538544989.28686
           VALUE      16.0
       WRG:
         DbLog:
           TIME       1538544944.16679
           VALUE      0.0
       ZuluftFeuchtigkeit:
         DbLog:
           TIME       1538545033.87104
           VALUE      36.0
       ZuluftStufe:
         DbLog:
           TIME       1538457667.87548
           VALUE       01
       ZuluftTemperatur:
         DbLog:
           TIME       1538544854.05686
           VALUE      21.0
   QUEUE:
   READINGS:
     2018-10-03 07:41:44   AbluftFeuchtigkeit 49.0
     2018-10-03 07:41:44   AbluftStufe      01
     2018-10-03 07:41:44   AbluftTemperatur 21.0
     2018-10-03 07:41:44   AussenLuftTemperatur 16.0
     2018-10-03 07:41:44   WRG             0.0
     2018-10-03 07:41:44   ZuluftFeuchtigkeit 36.0
     2018-10-03 07:41:44   ZuluftStufe      01
     2018-10-03 07:41:44   ZuluftTemperatur 21.0
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://192.168.1.151/
     value      0
   defptr:
     readingBase:
       AbluftFeuchtigkeit reading
       AbluftStufe reading
       AbluftTemperatur reading
       AussenLuftTemperatur reading
       WRG        reading
       ZuluftFeuchtigkeit reading
       ZuluftStufe reading
       ZuluftTemperatur reading
     readingNum:
       AbluftFeuchtigkeit 07
       AbluftStufe 01
       AbluftTemperatur 06
       AussenLuftTemperatur 03
       WRG        08
       ZuluftFeuchtigkeit 05
       ZuluftStufe 02
       ZuluftTemperatur 04
     readingOutdated:
     requestReadings:
       update:
         AbluftFeuchtigkeit reading 07
         AbluftStufe reading 01
         AbluftTemperatur reading 06
         AussenLuftTemperatur reading 03
         WRG        reading 08
         ZuluftFeuchtigkeit reading 05
         ZuluftStufe reading 02
         ZuluftTemperatur reading 04
   helper:
     bm:
       HTTPMOD_Attr:
         cnt        7
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        03.10. 07:33:27
         max        0.00397586822509766
         tot        0.0232529640197754
         mAr:
           set
           LueftungBadOG
           reading03Format
           %.1f
       HTTPMOD_Get:
         cnt        8
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        03.10. 07:35:08
         max        6.79492950439453e-05
         tot        0.000486850738525391
         mAr:
           HASH(0x3b51278)
           LueftungBadOG
           ?
       HTTPMOD_Set:
         cnt        248
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        02.10. 05:30:03
         max        0.00293302536010742
         tot        0.0786707401275635
         mAr:
           HASH(0x3b51278)
           LueftungBadOG
           SpeedSelect
           3
   sslargs:
Attributes:
   enableControlSet 1
   event-on-change-reading .*
   reading01Name AbluftStufe
   reading01Regex >Abluft:(...)<
   reading02Name ZuluftStufe
   reading02Regex >Frischluft:(...)<
   reading03Format %.1f
   reading03Name AussenLuftTemperatur
   reading03Regex id='frischluft_temp'>(....)
   reading04Format %.1f
   reading04Name ZuluftTemperatur
   reading04Regex id='zuluft_temp'>(....)
   reading05Format %.1f
   reading05Name ZuluftFeuchtigkeit
   reading05Regex id='zuluft_feuchte_rel'>(....)
   reading06Format %.1f
   reading06Name AbluftTemperatur
   reading06Regex id='abluft_temp'>(....)
   reading07Format %.1f
   reading07Name AbluftFeuchtigkeit
   reading07Regex id='abluft_feuchte_rel'>(....)
   reading08Format %.1f
   reading08Name WRG
   reading08Regex id='wrg'>(....)
   room       95-Lüftung
   set01Name  Power
   set01NoArg 1
   set01URL   http://192.168.1.151/?button=power
   set02Hint  1,2,3,4,5,6,7,8,9,10
   set02Max   10
   set02Min   1
   set02Name  SpeedSelect
   set02URL   http://192.168.1.151/?speed=$val
   set03Name  Automatik
   set03NoArg 1
   set03URL   http://192.168.1.151/?speed=-1
   stateFormat AbluftStufe
   userattr   reading01Name reading01Regex reading02Name reading02Regex reading03Format reading03Name reading03Regex reading04Format reading04Name reading04Regex reading05Format reading05Name reading05Regex reading06Format reading06Name reading06Regex reading07Format reading07Name reading07Regex reading08Format reading08Name reading08Regex set01Name set01NoArg:0,1 set01URL set02Hint set02Max set02Min set02Name set02URL set03Name set03NoArg:0,1 set03URL
   verbose    2
   webCmd     Power
   widgetOverride userattr:textField-long

Offline StefanStrobel

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 995
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #466 am: 03 Oktober 2018, 19:47:05 »
Hallo,

ich würde die Regexes für die Readings so ändern, dass nur Zahlen mit . oder , erlaubt sind. N/A oder ähnliche Strings sollten dann nicht mehr matchen und ignoriert werden. Mit einem (get|reading)[0-9]*OExpr Attribut würde ich dann die Kommas in Punkte umwandeln.

Gruss
   Stefan

Offline stenny

  • Jr. Member
  • **
  • Beiträge: 73
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #467 am: 11 Oktober 2018, 19:57:29 »
Hallo

Ich möchte ein JSON Datei auswerten in denen an mehreren Stellen scheinbar ein Tab enthalten ist.
Kann ich diesen Tab automatisch ersetzen durch ein leerzeichen? Wenn Ja wie

{
  "senrows": [
{"area": 1, "zone": 1, "type": 37, "type_f": "{D_TYPE_37}", "name": "Eingang",
"cond": "", "cond_ok": "1", "battery": "", "battery_ok": "1",
"tamper": "", "tamper_ok": "1", "bypass": 0, "rssi": "{WEB_MSG_STRONG} 9",
"resp_mode": [0,5,5,5,5,0], "ammeter": "0", "ver": "",
"hue": "-1", "sat": "-1", "bypass_tamper": 0,
"status": "", "sid": "RF:0073ed70", "su": 0, "alarm_status": "", "status_ex": "0"},
{"area": 2, "zone": 1, "type": 9, "type_f": "{D_TYPE_9}", "name": "BM Treppenhaus",
"cond": "", "cond_ok": "1", "battery": "", "battery_ok": "1",
"tamper": "", "tamper_ok": "1", "bypass": 0, "rssi": "{WEB_MSG_STRONG} 9",
"resp_mode": [0,0,0,0,0,0], "ammeter": "0", "ver": "",
"hue": "-1", "sat": "-1", "bypass_tamper": 0,
"status": "", "sid": "RF:04435330", "su": 1, "alarm_status": "", "status_ex": "0"},
{"area": 1, "zone": 2, "type": 4, "type_f": "{D_TYPE_4}", "name": "Wohnungstür",
"cond": "", "cond_ok": "1", "battery": "", "battery_ok": "1",
"tamper": "", "tamper_ok": "1", "bypass": 0, "rssi": "{WEB_MSG_STRONG} 9",
"resp_mode": [3,1,1,1,1,0], "ammeter": "0", "ver": "",
"hue": "-1", "sat": "-1", "bypass_tamper": 0,
"status": "{WEB_MSG_DC_CLOSE}", "sid": "RF:04993310", "su": 1, "alarm_status": "", "status_ex": "0"}]
}

Der Tab ist nach "{WEB_MSG_STRONG}"


Danke

Offline StefanStrobel

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 995
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #468 am: 12 Oktober 2018, 17:37:58 »
Hallo,

mit dem Attribut preProcessRegex kann man vor dem Parsen Zeichen oder ganze Bereiche ersetzen.
Ein Tab sollte eigentlich kein Problem sein, aber wenn man ihn entfernen möchte:
attr MyHTTPMOD preProcessRegex s/\t//g

Gruss
   Stefan

Offline stenny

  • Jr. Member
  • **
  • Beiträge: 73
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #469 am: 13 Oktober 2018, 00:28:15 »
Hallo,

mit dem Attribut preProcessRegex kann man vor dem Parsen Zeichen oder ganze Bereiche ersetzen.
Ein Tab sollte eigentlich kein Problem sein, aber wenn man ihn entfernen möchte:
attr MyHTTPMOD preProcessRegex s/\t//g

Gruss
   Stefan


Super, jetzt liest er es scheinbar sauber ein


Danke


Gesendet von iPhone mit Tapatalk

 

decade-submarginal