Neue Version von HTTPMOD mit neuen Features zum Testen

Begonnen von StefanStrobel, 05 Dezember 2015, 08:31:32

Vorheriges Thema - Nächstes Thema

Burny4600

Hat sich bei HTTPMOD irgendetwas gravierend geändert?

Seit 24.09. werden die eingelesenen Werte nicht umgesetzt.

LIST Fronius Datalogger Web 2
Internals:
   BUSY       0
   CFGFN      /media/hdd/fhem/mycfg/Fronius/PV_Anlagen_rasp01.cfg
   DEF        http://192.168.17.232/solar_api/GetInverterRealtimeData.cgi?Scope=System 15
   Interval   15
   LASTSEND   1475254687.79835
   MainURL    http://192.168.17.232/solar_api/GetInverterRealtimeData.cgi?Scope=System
   ModuleVersion 3.3.5 - 29.9.2016
   NAME       PV_Anlage_1
   NR         524
   STATE      Aktuell: 1282 Watt | Heute: 1 kWh | Dieses Jahr: 1593 kWh
   TRIGGERTIME 1475254702.79509
   TRIGGERTIME_FMT 2016-09-30 18:58:22
   TYPE       HTTPMOD
   addr       http://192.168.17.232:80
   buf        HTTP/1.0 200 OK

Content-Type: text/javascript



{
"Head" : {
"RequestArguments" : {
"Scope" : "System"
},
"Status" : {
"Code" : 0,
"Reason" : "",
"UserMessage" : ""
},
"Timestamp" : "2016-09-30T18:57:08+02:00"
},
"Body" : {
"Data" : {
"PAC" : {
"Unit" : "W",
"Values" : {}
},
"DAY_ENERGY" : {
"Unit" : "Wh",
"Values" : {
"1" : 9000
}
},
"YEAR_ENERGY" : {
"Unit" : "Wh",
"Values" : {
"1" : 1648000
}
},
"TOTAL_ENERGY" : {
"Unit" : "Wh",
"Values" : {
"1" : 21347000
}
}
}
}
}
   code       200
   conn
   data
   displayurl http://192.168.17.232/solar_api/GetInverterRealtimeData.cgi?Scope=System
   header
   host       192.168.17.232
   httpheader HTTP/1.0 200 OK

Content-Type: text/javascript
   httpversion 1.0
   hu_blocking 0
   hu_filecount 2
   ignoreredirects 0
   loglevel   4
   path       /solar_api/GetInverterRealtimeData.cgi?Scope=System
   protocol   http
   redirects  0
   timeout    2
   url        http://192.168.17.232/solar_api/GetInverterRealtimeData.cgi?Scope=System
   value      0
   QUEUE:
   Readings:
     2016-09-24 10:07:20   Body_Data_DAY_ENERGY_Unit Wh
     2016-09-24 10:07:20   Body_Data_DAY_ENERGY_Values_1 1000
     2016-09-24 10:07:20   Body_Data_PAC_Unit W
     2016-09-24 10:07:20   Body_Data_PAC_Values_1 1282
     2016-09-24 10:07:20   Body_Data_TOTAL_ENERGY_Unit Wh
     2016-09-24 10:07:20   Body_Data_TOTAL_ENERGY_Values_1 21292000
     2016-09-24 10:07:20   Body_Data_YEAR_ENERGY_Unit Wh
     2016-09-24 10:07:20   Body_Data_YEAR_ENERGY_Values_1 1593000
     2016-09-24 10:07:01   DDE             1
     2016-09-24 10:07:01   DTE             21292
     2016-09-24 10:07:01   DYE             1593
     2016-09-24 10:07:20   Head_RequestArguments_Scope System
     2016-09-24 10:07:20   Head_Status_Code 0
     2016-09-24 10:07:20   Head_Status_Reason
     2016-09-24 10:07:20   Head_Status_UserMessage
     2016-09-24 10:07:20   Head_Timestamp  2016-09-24T10:06:15+02:00
     2016-09-24 10:07:20   PAC             1282
   Request:
     data
     header
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://192.168.17.232/solar_api/GetInverterRealtimeData.cgi?Scope=System
     value      0
   Sslargs:
Attributes:
   alias      PV Anlage 1
   devStateStyle style="text-align:left;;font-weight:bold;;"
   event-min-interval .*:60
   event-on-change-reading Body_Data_PAC_Values_1,PAC,Body_Data_DAY_ENERGY_Values_1,DDE,Body_Data_TOTAL_ENERGY_Values_1,DTE,Body_Data_YEAR_ENERGY_Values_1,DYE
   group      Schnittstellen LAN
   icon       measure_photovoltaic_inst
   room       _RxTx
   stateFormat {sprintf("Aktuell: %s Watt | Heute: %s kWh | Dieses Jahr: %s kWh",
(ReadingsVal("$name","PAC",0)),
(ReadingsVal("$name","DDE",0)),
(ReadingsVal("$name","DYE",0)))}
   userReadings PAC:Body_Data_PAC_Values_1.* {ReadingsVal("$name","Body_Data_PAC_Values_1",0)},
DDE:Body_Data_DAY_ENERGY_Values_1.* {ReadingsVal("$name","Body_Data_DAY_ENERGY_Values_1",0)/1000},
DYE:Body_Data_YEAR_ENERGY_Values_1.* {ReadingsVal("$name","Body_Data_YEAR_ENERGY_Values_1",0)/1000},
DTE:Body_Data_TOTAL_ENERGY_Values_1.* {ReadingsVal("$name","Body_Data_TOTAL_ENERGY_Values_1",0)/1000}
   userattr   event-min-interval event-on-change-reading icon stateFormat verbose
   verbose    1
Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

StefanStrobel

Hallo Chris,

am 29.9. habe ich eine neue Version eingecheckt. Davor am 19.6. In den 3 Monaten dazwischen hat sich HTTPMOD im SVN nicht geändert.

Wenn Dein Problem also seit dem 24.9. auftritt, dann scheint es eine andere Ursache zu haben. Mein letztes Zwischen-Update vom 21.9. liegt auch noch im Forum.

Gruss
    Stefan

Burny4600

Gut dann muss ich das Ganze nochmals überprüfen.
Danke für die Rückmeldung.
Mfg Chris

Raspberry Pi 2/2+/3/3+/4 / Betriebssystem: Bullseye Lite
Schnittstellen: RFXtrx433E, SIGNALduino, MQTT, nanoCUL, HM-MOD-UART, 1-Wire, LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, Fronius Datalogger Web 2, FS20, IT, Resol VBUS & DL2, TEK603, WMR200, YouLess, Homematic, MQTT

StefanStrobel

Hallo Amenophis86,

ich habe das Logging im Read-Callback ein wenig optimiert.
Anbei eine neue Version zum testen.

Gruss
    Stefan

Amenophis86

Top, werde es gleich mal einspielen und testen. Dank dir :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

gason

Habe die neue Version installiert und bekomme beim Start folgendes:
Bitte um einen Hinweis was ich tun kann.
Danke.

[code]2016.10.03 15:17:05 0: syntax error at ./FHEM/98_HTTPMOD.pm line 2341, near "Log3 "HTTPMOD""

2016.10.03 15:17:07 1: reload: Error:Modul 98_HTTPMOD deactivated:
syntax error at ./FHEM/98_HTTPMOD.pm line 2341, near "Log3 "HTTPMOD""

2016.10.03 15:17:07 0: syntax error at ./FHEM/98_HTTPMOD.pm line 2341, near "Log3 "HTTPMOD""
[/code]


Amenophis86

Ich bekomme den Fehler nicht. Und der neue Output beim Fehler 403 ist nur noch

2016.10.03 19:10:05 3: Benzin: Read callback: Error: read from https://creativecommons.tankerkoenig.de:443 timed out

Was mir sehr gut gefällt. Frage ist, ob man ein Attribut einbauen kann, was quasi diesen Fehler bei aktivieren ganz unterdrückt. Alternativ natürlich das Log Level hoch setzen, wobei da dann auch andere Fehler unterdrückt werden würden. Aber so, wie es jetzt ist, ist auf jeden Fall schon mal top :) Vielen Dank dafür.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

StefanStrobel

Hallo Gason,

das ist seltsam. Ich bekomme den Fehler auch nicht. An der entsprechenden Stelle sehe ich auch keinen Syntax error.
Was für eine Perl-Version setzt Du denn ein? Ich hab die betreffende Zeile mal geringfügig umgeschrieben (Variante angehängt). Kommt der Fehler so bei Dir immer noch?

Gruss
   Stefan

SofB

Hallo,

ich versuche mit HTTPMOD eine monit Seite auszulesen.
Das ganze soll mit xpath laut Wiki funktionieren.
Leider werden keine Readings angezeigt.

http://admin:geheim@rackstation:2812/ 15

Ich bekomme auch ein 200 zurueck und kann im Buffer die Seite sehen.

reading01Name
Temperature
   
reading01XPath
//table/tbody/tr[6]/td[3]
   
userattr   
reading01Name reading01XPath

Auch ein xpath auf .//*[@id='header-row']/tbody/tr[6]/td[3] bringt nix. Ermittelt wird das xpath von mir per Firebug Extension.
Hat jemand Erfahrung mit xpath in HTTPMOD?
FHEM auf Debian Jessie VM - ESXi 6.0 Intel Nuc i5 4th Gen
HM-CFG-LAN | HM-CFG-USB | nanoCUL868 | nanoCUL433 | JeeLink868

JoeALLb

Habe eine Frage zu setTextArg.
Wenn ich das gesetzt habe, wie kann ich dann einen Leerstring an das Device senden?
Mit "NoArg" kann ich das, aber ich muss manchman eben Text senden, und manchmal einen Leerstring...
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

StefanStrobel

Hallo,

Mit TextArg sollte auch ein Leerstring funktionieren.

Gruß
    Stefan

Tueftler1983

Hallo habe folgendes Problem ich lese mit httpmod die werte meiner Pool Steuerung aus und steuer diese. Dieses klappt auch wunderbar, bis auf den Punkt das mir negative Werte ohne voran gesetztes - angezeigt werden.
Derzeit sind es -2,5°C im modul Buffer werden diese als -25 angezeigt was also soweit stimmt aber an meiner regex muss ich nochmal ändern damit auch das - erkannt und ausgelesen wird.

Wer kann helfen?

HTTP/1.1 200 OK <html><head><title>E2000-NET-IO</title></head> <body text=white link=white alink=white vlink=white bgcolor=black><font face='Courier New'><h1>E2000-NET-IO</h1> <div style='float:left;margin:5px'><a href='p0'>POOL Pum</a></div> <div style='float:left;margin:5px'><a href='p1'>Pool Lic</a></div> <div style='background:#333;float:left;margin:5px'><a href='p2'>Temperat</a></div> <div style='float:left;margin:5px'><a href='p3'>Garten</a></div> <div style='float:left;margin:5px'><a href='p4'>Carport</a></div> <div style='float:left;margin:5px'><a href='p5'></a></div> <div style='float:left;margin:5px'><a href='s '>Status</a></div><table style='clear:both;width:400px'> <tr><td>Luft</td><td> -25</td></tr> <tr><td>Wasser</td><td> -30</td></tr> <tr><td>PH Anheb</td><td> 495</td></tr> <tr><td>???</td><td> 49</td></tr> <tr><td>PH in</td><td> 288</td></tr> </table><p>Created by <a href='http://elektronik2000.de/'>Elektronik2000.de</a></p> <meta http-equiv='refresh' content='3; URL=?'></font></body></html>



(?s).*?Luft.*?([\d]+)



Vize

Moin Tueftler,

vielleicht können wir uns zusammen tun...hab gerade ein ähnliches Problem:
Von einer Wetterstation hole ich mir die aktuelle Luft-Temperatur aus diesem Ausschnitt:

<b>Temperatur</b></font></td> <td valign="bottom" bgcolor="#E5E5E5"> <font face="Verdana" size="2">Aktuell: -3,6 °C</font></td>

Da es bisher mit Plus-Graden geklappt hat, mit Minus-Graden aber nicht, habe ich mal folgende Regex probiert:
(?s)>Temperatur<.*?\:([\-]?[ \d\,]+)

Klappt leider nicht, und das entsprechende Reading bleibt einfach leer.

Bei Plus-Graden funktioniert diese Regex:
(?s)>Temperatur<.*?\:([ \d\,]+)


Vielleicht gibt es ja Tipps, die uns beiden weiterhelfen...  ;)

Vielen Dank schonmal!

Gruß
Andreas

JoeALLb

Zitat von: Tueftler1983 am 29 November 2016, 08:24:51
Derzeit sind es -2,5°C im modul Buffer werden diese als -25 angezeigt was also soweit stimmt aber an meiner regex muss ich nochmal ändern damit auch das - erkannt und ausgelesen wird.

Nimm mal den...
Du brauchst nur eine  "-?" prüft, ob es ein Minus gibt und nimmt es mit in die Klammer.

>Luft.*?>\s*(-?[\d]+)<


@Vize:
Der klappt mit deinen Testdaten.
>Temperatur<.*?\:\s*(-?[\d,]+)
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Tueftler1983

#299
Super mit

(?s).*?Luft.*?([-?\d]+)


Klappt es, mal gucken was später angezeigt wird wenn es wieder + Grade sind