Neue Version von HTTPMOD (mit get Kommando) zum Testen

Begonnen von StefanStrobel, 13 Februar 2015, 22:33:49

Vorheriges Thema - Nächstes Thema

StefanStrobel

Hallo,

anbei eine neue Version von HTTPMOD zum Testen. Es wäre schön wenn ein paar Leute bestätigen könnten, dass alles funktioniert bevor ich es einchecke.

Neu ist die Möglichkeit Get-Befehle per Attribut zu definieren beziehungsweise weitere Readings von Geräten abzufragen, die dafür eine eigene URL oder spezielle Parameter benötigen oder die für jeden HTTP-Request nur einen Wert als Antwort liefern können.
Beispiel:


attr PM get01Name MyGetValue
attr PM get01URL http://MyDevice/directory/webgui?special=xy?sid=$sid
attr PM getHeader1 Content-Type: application/json
attr PM get01Data {"get" :{"30.1234.value"}}
attr PM get01Poll 1
attr PM get01PollDelay 300


Danach kann man mit

get Device MyGetValue

einen HTTP-Request auslösen, der dann mit den Reading-Namen und Regexes wie bisher in der früheren HTTPMOD-Version geparsed wird. Zusätzliche Namen / Regexes werden dort einfach hinzugefügt.
Bisher gab es eine Log-Meldung auf Level 3 wenn ein Reading nicht gematcht werden konnt. Das habe ich nun geändert, da bei zusätzlichen Reading/Regex Paaren für Gets nicht immer alle matchen können. Das Ändert jedoch nur das Log-Verhalten und nicht die eigentliche Funktion.

Mit get01Poll kann man dafür sorgen, dass das Reading ebenfalls zyklisch abgefragt wird und mit get01PollDelay bestimmt man, dass dies nicht bei jedem Zyklus erfolgt sondern erst wieder wenn mindestens die angegebene Anzahl Sekunden seit dem letzten Lesen dieses Readings vorüber ist.
Effektiv ist das angegebene PollDelay damit immer ein Vielfaches des Intervalls, das man beim Define angegeben hat. Es gibt keinen zusätzlichen internal timer sondern nur eine Prüfung und ggf. ein Überspringen der HTTP-Anfrage.

geringfügig geändert habe ich auch das Handling der Map-Attribute. Dort können Elemente jetzt auch Spaces enthalten. Getrennt wird am : und an Komma mit Space. Ein einzelnes Leerzeichen ist kein Trenner mehr (und war es zumondest in den Beispielen bisher auch nicht).

Gruss
   Stefan

Edit: alte angehängte Datei gelöscht.

Lanhydrock

#1
Hi Stefan,

mal abgesehen davon, dass hier seit einigen Stunden aus unerklärlichen Gründen die HttpUtils_NonBlockingGets keine Antworten mehr erhalten... ;-)

[EDIT: Fehler gefunden, es lag am neu aufgesetzten Mac mini, bei dem wir das selbstsignierte Zertifikat des Siemens Webservers noch nicht akzeptiert hatten - wer im Macumfeld weiss, wie man das für die Perl-Installation macht, bitte kurze PM - daher kam es zum SSL Fehler beim NonBlockingGet der HttpUtils - wir haben uns nun kurzerhand mit SSL_verify_mode => 'SSL_VERIFY_NONE' beholfen...]

VIELEN Dank für die Weiterentwicklung Deines tollen Moduls!

Eine Rückfrage:

Der Siemens Webserver ozw672 braucht (nach der Authentifizierung) je einen Request für einen bestimmten Parameter und liefert dann einen JSON, der immer verhältnismäßig ;-) gleich aufgebaut ist.

Leider aber nur verhältnismäßig, daher bräuchte ich eine Regex und einen Namen des (wirklich zugewiesenen) Readings *pro* GET, da ich das in den Reading[0-9]*Regex sonst nicht auseinander bekomme.

Man kann also anhand der JSON-Response nicht ableiten, welches Reading ankommt.
Man braucht dazu die Request-URL [EDIT: bzw. die Zuordnung von einem GetNum zu einer Regex bei der Zuweisung in das Reading].

Daher habe ich bei meinem Fork auch die Zuweisung in der Sub Read gemacht...

Hilfst Du mir mal kurz, ob ich da was übersehe, ob das mit Deinem Konzept momentan doch auch geht?

Danke sehr.

Bsp., aus dem das vllt deutlicher wird (Annahme: gültige Session ist vorhanden):

Request:
https://192.168.178.8/api/menutree/read_datapoint.json?SessionId=d056ecd8-261e-4eb0-bd44-c8aef123eb34&Id=1960

Response:
{
"Data":
{

"Type": "Numeric",
"Value": "        4.5",
"Unit": "°C"

},
    "Result":
{
"Success": "true"
    }
}


Also brauchen wir:
attr mydevice Get01Regex Value": "([-.0-9 ]*)"
attr mydevice Get01Name tempAussen


Request:
https://192.168.178.8/api/menutree/read_datapoint.json?SessionId=d056ecd8-261e-4eb0-bd44-c8aef123eb34&Id=1915

Response:
{
"Data":
{

"Type": "Numeric",
"Value": "       30.5",
"Unit": "°C"

},
    "Result":
{
"Success": "true"
    }
}


Also brauchen wir:
attr mydevice Get02Regex Value": "([-.0-9 ]*)"
attr mydevice Get02Name tempHeizkreisRuecklauf


Und leider auch:
Request:
https://192.168.178.8/api/menutree/read_datapoint.json?SessionId=d056ecd8-261e-4eb0-bd44-c8aef123eb34&Id=1898

Response:
{
"Data":
{

"Type": "String",
"Value": "Aus",
"Unit": ""

},
    "Result":
{
"Success": "true"
    }
}


Also brauchen wir:
attr mydevice Get03Regex Value": "([a-zA-Zü ]*)"
attr mydevice Get03Name statusKessel
attr mydevice Get03Map 0:Aus/5:Nachlauf aktiv/10:Freigegeben für TWW/20:Freigegeben für HK/40:In Teillastbetrieb für TWW/50:In Teillastbetrieb für HK/90:In Betrieb für Trinkwasser/100:In Betrieb für Heizkreis
- FHEMs in VM @ Mac mini & RPi, fhem2fhem
- Homematic, 1wire, Hue & Lightify & Tradfri & Xiaomi & Oblo via zigbee2mqtt/Conbee II, Rademacher DuoFern, Roto i8 & Hunter Ventile via HM-LC-Sw4-DR
- Interdomo GBK (via Siemens ozw672; dank HTTPMOD, lest Post #33765)
- homebridge(-fhem), Grafana, DBLog

StefanStrobel

Hallo Marcus,

Ich verstehe das Problem mit dem Siemens Webserver. Bisher klappt das so noch nicht. Da muss ich dann doch noch ein get-spezifisches Regex Attribut und ein wenig Drum herum eingebauen. Sollte aber kein Problem sein.
Ich überlege auch ob der Get dann nicht auf die HTTP-Antwort warten und den Wert zurückgeben sollte. Evt. über ein Attribut gesteuert ...

Gruss
    Stefan

StefanStrobel

Hallo,

hier nochmal eine stark erweiterte Version.
Es gibt jetzt für jedes get die folgenden Attribute:

get[0-9]+Name
get[0-9]*URL
get[0-9]*Data.*
get[0-9]*Header.*
get[0-9]+Poll
get[0-9]+PollDelay
get[0-9]*Regex
get[0-9]*Expr
get[0-9]*Map
get[0-9]*Format
get[0-9]*CheckAllReadings


Der Unterscheid zwischen [0-9]+ und [0-9]* ist gewollt. dort wo man die Zahlen auch weglassen kann, kann man ohne Zahlen einen Default für alle gets definieren.

Aus der Doku:
get[0-9]+Name
            Name of a get option and Reading to be retrieved / extracted
get[0-9]*URL
            URL to be requested for the get option. If this option is missing,
            the URL specified during define will be used.
get[0-9]*Data
            optional data to be sent to the device as POST data when the get is executed.
            if this attribute is not specified, an HTTP GET method will be used instead of an HTTP POST
get[0-9]*Header
            optional HTTP Headers to be sent to the device when the get is executed
get[0-9]+Poll
            if set to 1 the get is executed automatically during the normal update cycle
           (after the interval provided in the define command has elapsed)
get[0-9]+PollDelay
            if the value should not be read in each iteration
           (after the interval given to the define command),
           then a minimum delay can be specified with this attribute.
           This has only an effect if the above Poll attribute has also been set.
           Every time the update function is called, it checks if since this get has been read
           the last time, the defined delay has elapsed. If not, then it is skipped this time.
           PollDelay can be specified as seconds or as x[0-9]+ which means a multiple
           of the interval in the define command.
get[0-9]*Regex
           If this attribute is specified, the Regex defined here is used to extract the value from the
           HTTP Response and assign it to a Reading with the name defined in the get[0-9]+Name attribute.
           if this attribute is not specified for an individual Reading but as getRegex, then it applies to
           all get options where no specific Regex is defined.<br>
           If neither a generic getRegex attribute nor a specific get[0-9]+Regex attribute is specified,
           then HTTPMOD tries all Regex / Reading pairs defined in Reading[0-9]+Name and
           Reading[0-9]+Regex attributes and assigns the Readings that match.
get[0-9]*Expr
            this attribute behaves just like Reading[0-9]*Expr but is applied to a get value.
get[0-9]*Map
            this attribute behaves just like Reading[0-9]*Map but is applied to a get value.
get[0-9]*Format
            this attribute behaves just like Reading[0-9]*Format but is applied to a get value.
get[0-9]*CheckAllReadings
            this attribute modifies the bahevior of HTTPMOD when the HTTP Response of a get command is parsed.
            If this attribute is set to 1, then additionally to any matching of get specific regexes
            (get[0-9]*Regex), also all the Regex / Reading pairs defined in Reading[0-9]+Name and
            Reading[0-9]+Regex attributes are checked and if they match, the coresponding Readings are assigned as well.

Ich hoffe das deckt nun auch den Siemens-Webserver elegant ab. Wenn die meisten Readings eine Zahl liefern, würde ich eine entsprechende default-Regex als getRegex setzen und dann nur die Ausnahmen explizit angeben.

Ich habe bei der Gelegenheit die Read-Routine von HTTPMod generell neu strukturiert und etwas optimiert. Dabei können sich leider auch Fehler eingeschlichen haben. Für Testberichte bin ich daher dankbar.

Gruss
     Stefan

Lanhydrock

#4
Hi Stefan,

Weltklasse! Vielen Dank... - sitzt, passt, wackelt und hat Luft, diese Version von HTTPMOD.

[Leute, wisst Ihr eigentlich, was hier für Perlen entwickelt werden? Mann, sind wir froh, dass wir FHEM und dessen Community gefunden haben.]

Mein Fork ist damit überflüssig.

Hier für Interessierte unsere relevanten Definitionen für den Siemens Webserver ozw672:

define ozw672 HTTPMOD https://192.168.178.8/api/auth/login.json?user=test&pwd=test 300
attr ozw672 event-on-change-reading anzahlStartsBrenner,statusKessel,tempAussen,tempAussenGemischt,tempKesselRuecklauf,tempKesselRuecklaufSoll,tempKesselSoll,tempTWW
attr ozw672 get1Name tempAussen
attr ozw672 get1Poll 1
attr ozw672 get1PollDelay 1800
attr ozw672 get1URL https://192.168.178.8/api/menutree/read_datapoint.json?SessionId=$sid&Id=1960
attr ozw672 get2Name tempAussenGemischt
attr ozw672 get2Poll 1
attr ozw672 get2PollDelay 1800
attr ozw672 get2URL https://192.168.178.8/api/menutree/read_datapoint.json?SessionId=$sid&Id=1964
attr ozw672 get3Name tempTWW
attr ozw672 get3Poll 1
attr ozw672 get3URL https://192.168.178.8/api/menutree/read_datapoint.json?SessionId=$sid&Id=1996
attr ozw672 get4Name tempKesselSoll
attr ozw672 get4Poll 1
attr ozw672 get4URL https://192.168.178.8/api/menutree/read_datapoint.json?SessionId=$sid&Id=1910
attr ozw672 get5Name tempKesselRuecklauf
attr ozw672 get5Poll 1
attr ozw672 get5URL https://192.168.178.8/api/menutree/read_datapoint.json?SessionId=$sid&Id=1915
attr ozw672 get6Name tempKesselRuecklaufSoll
attr ozw672 get6Poll 1
attr ozw672 get6URL https://192.168.178.8/api/menutree/read_datapoint.json?SessionId=$sid&Id=1916
attr ozw672 get7Name anzahlStartsBrenner
attr ozw672 get7Poll 1
attr ozw672 get7PollDelay 1800
attr ozw672 get7URL https://192.168.178.8/api/menutree/read_datapoint.json?SessionId=$sid&Id=1927
attr ozw672 get8Map Aus:0, Nachlauf aktiv:5, Freigegeben für TWW:10, Freigegeben für HK:20, In Teillastbetrieb für TWW:40, In Teillastbetrieb für HK:50, In Betrieb für Trinkwasser:90, In Betrieb für Heizkreis:100
attr ozw672 get8Name statusKessel
attr ozw672 get8Poll 1
attr ozw672 get8Regex Value": "([a-zA-Zü ]*)"
attr ozw672 get8URL https://192.168.178.8/api/menutree/read_datapoint.json?SessionId=$sid&Id=1898
attr ozw672 getRegex Value": "[ ]*([-.0-9]*)"
attr ozw672 reAuthRegex .*session not valid.*
attr ozw672 sid1IDRegex .*"(.*-.*-.*-[0-9a-z]*).*
attr ozw672 sid1URL https://192.168.178.8/api/auth/login.json?user=test&pwd=test


[EDIT: Obwohl unnötig, so geben wir doch die URL für die Session ID als Definitions-URL des Devices an; das spart zu manchen Zeitpunkten eine Abfrage...]

Eine bessere und einfachere Anleitung, wie man für den ozw672 die Parameter IDs findet, (besser: als hier) schreibe ich in den nächsten Tagen noch und hänge sie dann an.
- FHEMs in VM @ Mac mini & RPi, fhem2fhem
- Homematic, 1wire, Hue & Lightify & Tradfri & Xiaomi & Oblo via zigbee2mqtt/Conbee II, Rademacher DuoFern, Roto i8 & Hunter Ventile via HM-LC-Sw4-DR
- Interdomo GBK (via Siemens ozw672; dank HTTPMOD, lest Post #33765)
- homebridge(-fhem), Grafana, DBLog

Lanhydrock

#5
wie versprochen... alles ohne Dokumentation, hoffentlich klappt das auch bei Euch so... ;-)

How it works:
The HTTPMOD module connects to the webserver via HTTPS request and gets a JSON message with the current value of the defined parameter back.
Siemens implemented a session based authorization, so the module gets a valid session id first, then pulls the parameter from the device with that session id.

The parameter id is crucial for the definiton of the URL to pull it from the server.

Here is how to find it:

(1) Get valid session ID
Open a web browser and connect to your web server with the following URL.
Replace ipaddress, ozw672username and ozw672password in the following URL.

https://ipaddress/api/auth/login.json?user=OZW672USERNAME&pwd=OZW672PASSWORD

Make a note of the session ID that is stated in the JSON.

(2) Get list of menu tree items on top level
Open a web browser and connect to your web server with the following URL.
Replace ipaddress and session ID [step (1)] in the following URL.

https://ipaddress/api/menutree/list.json?SessionId=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Make a note of the relevant ID of the menu item, it's the first "Id:" string above the "Text:" string.

(3) Travel thru the tree to the value you are interested in
Open a web browser and connect to your web server with the following URL.
Replace ipaddress, session ID [step (1)] and the menuid [step (2)] in the following URL.

https://ipaddress/api/menutree/list.json?SessionId=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&Id=MENUID&Idtype=2

Make a note of the relevant ID of the (sub)menu item, it's the first "Id:" string above the "Text:" string.
Repeat until you arrived at the correct parameter ID.

Example:

https://192.168.178.8/api/auth/login.json?user=test&pwd=test

https://192.168.178.8/api/menutree/list.json?SessionId=4a0a9905-2eb9-4df6-b4d1-cc23c4946af5

{
"MenuItems":
[

{
"Id": "1298",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "106",
"Long": "1 Domostar GBK 25 SH",
"Short": "ZSP 1"
}
},


{
"Id": "2",
"Text": {
"CatId": "1",
"GroupId": "4",
"Id": "106",
"Long": "50 Siemens ozw672.01",
"Short": "Gerät"
}
}

],
"DatapointItems":
[

],
"WidgetItems":
[

],
"Result": {
"Success": "true"
}
}


https://192.168.178.8/api/menutree/list.json?SessionId=4a0a9905-2eb9-4df6-b4d1-cc23c4946af5&Id=1298&Idtype=2

{
"MenuItems":
[

{
"Id": "1299",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "215",
"Long": "Uhrzeit",
"Short": "Uhrzeit"
}
},


{
"Id": "1314",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "311",
"Long": "Zeitschaltprogramm 1",
"Short": "ZSP 1"
}
},


{
"Id": "1323",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "313",
"Long": "Zeitschaltprogramm 3",
"Short": "ZSP 3"
}
},


{
"Id": "1332",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "308",
"Long": "Zeitschaltprogramm 4",
"Short": "ZSP 4"
}
},


{
"Id": "1341",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "327",
"Long": "Zeitschaltprogramm 5",
"Short": "ZSP 5"
}
},


{
"Id": "1350",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "291",
"Long": "Ferienprogramme HK1",
"Short": "Ferienprogramme HK1"
}
},


{
"Id": "1368",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "181",
"Long": "Heizkreis 1",
"Short": "Heizkreis 1"
}
},


{
"Id": "1415",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "295",
"Long": "Trinkwasser",
"Short": "Trinkwasser"
}
},


{
"Id": "1432",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "112",
"Long": "Kessel",
"Short": "Kessel"
}
},


{
"Id": "1477",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "317",
"Long": "Sitherm Pro",
"Short": "Sitherm Pro"
}
},


{
"Id": "1743",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "303",
"Long": "Fehler",
"Short": "Fehler"
}
},


{
"Id": "1833",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "304",
"Long": "Wartung\/Sonderbetrieb",
"Short": "Wartung\/Sonderbetrieb"
}
},


{
"Id": "1905",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "314",
"Long": "Diagnose Erzeuger",
"Short": "Diagnose Erzeuger"
}
},


{
"Id": "1959",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "315",
"Long": "Diagnose Verbraucher",
"Short": "Diagnose Verbraucher"
}
},


{
"Id": "2120",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "29",
"Long": "Info",
"Short": "Info"
}
}

],
"DatapointItems":
[

],
"WidgetItems":
[

],
"Result": {
"Success": "true"
}
}


https://192.168.178.8/api/menutree/list.json?SessionId=4a0a9905-2eb9-4df6-b4d1-cc23c4946af5&Id=1959&Idtype=2

{
"MenuItems":
[

],
"DatapointItems":
[

{
"Id": "1960",
"Address": "0x50521",
"WriteAccess": "false",
"Text": {
"CatId": "2",
"GroupId": "2",
"Id": "39",
"Long": "Aussentemperatur",
"Short": "Aussentemperatur"
}
},


{
"Id": "1961",
"Address": "0x5056f",
"WriteAccess": "true",
"Text": {
"CatId": "2",
"GroupId": "2",
"Id": "3731",
"Long": "Aussentemperatur Minimum",
"Short": "Aussentemperatur Min"
}
},


{
"Id": "1962",
"Address": "0x5056e",
"WriteAccess": "true",
"Text": {
"CatId": "2",
"GroupId": "2",
"Id": "3732",
"Long": "Aussentemperatur Maximum",
"Short": "Aussentemperatur Max"
}
}

],
"WidgetItems":
[

],
"Result": {
"Success": "true"
}
}


Aussentemperatur=1960
- FHEMs in VM @ Mac mini & RPi, fhem2fhem
- Homematic, 1wire, Hue & Lightify & Tradfri & Xiaomi & Oblo via zigbee2mqtt/Conbee II, Rademacher DuoFern, Roto i8 & Hunter Ventile via HM-LC-Sw4-DR
- Interdomo GBK (via Siemens ozw672; dank HTTPMOD, lest Post #33765)
- homebridge(-fhem), Grafana, DBLog

Brockmann

Darf ich bei der Gelegenheit eine Frage zu HTTPMOD loswerden?

Ich habe vor einiger Zeit schon versucht, mit diesem Modul einen Webseitencheck zu realisieren, der mich informiert, wenn eine bestimmte Webseite nicht verfügbar ist.
Im Prinzip einfach konfigurierbar, nur war das Problem, dass bei nicht Verfügbarkeit (=RegEx konnte nicht gematcht werden) nur eine Meldung im Log auftauchte. Aber es gab kein Status, Reading o.ä., auf das ich mit einem Notify oder DOIF hätte reagieren können.

Gibt es (inzwischen) eine Möglichkeit, das Nicht-Matchen in FHEM zu erkennen und darauf zu reagieren?
Falls nein, wäre es denkbar, eine solche Option einzubauen, z. B. indem man ähnlich wie bei ReadingsVal ein "defaultvalue" angeben kann, auf welches das Reading gesetzt wird, wenn kein Match möglich war?

Elektrolurch

Hallo,

ich habe das Modul bei meinem TVhelper eingesetzt,dass ist das Projekt, bei dem die Programmvorschau von einer Webseite heruntergeladen wird und per readingsGroup angezeigt wird. Das Teil nutzt httpmod per Intervall, läuft somit also erst einmal alle 24 h. Der TVhelper macht jetzt folgendes: er wertet die Zeiten der Nachfolgesendungen aus und ruft dann die interne Funktion von httpmod zum Laden und Parsen der Seite auf (die, die auch über InternalTimer aufgerufen wird).
Nicht so ganz sauber. Schön wäre es, wenn es so eine

get name update

Aufruf gäbe, der das Abrufen und Parsen der Webseite auch außerhalb des Timers machen würde.

Ich denke, der Einbau ist ein Zweizeiler. Danke.

Elekttrolurch

configDB und Windows befreite Zone!

StefanStrobel

Hallo Elektrolurch,

das sollte sogar jetzt schon ohne Änderung gehen.
einfach ein entsprechendes get per Attribut definieren. Wenn keine eigene Regex für das get angegeben ist, werden automatisch alle Regexes / Readings durchprobiert, die ursprünglich für update definiert wurden.

Beispiel:

define PM HTTPMOD http://192.168.70.90/cgi-bin/webgui.fcgi 60

# get definition für update
attr PM get02Name update
attr PM getHeader1 Content-Type: application/json
attr PM getHeader2 Accept: */*
attr PM get02Data {"get" :["34.4001.value" ,"34.4008.value" ,"34.4033.value"]}

# die Readings / Regexes wie bisher
attr PM reading01Name PH
attr PM reading01Regex 34.4001.value":[ \t]+"([\d\.]+)"
attr PM reading02Name CL
attr PM reading02Regex 34.4008.value":[ \t]+"([\d\.]+)"
attr PM reading03Name TEMP
attr PM reading03Regex 34.4033.value":[ \t]+"([\d\.]+)"


Gruss
   Stefan

wmr72

Hallo Stefan,

ich habe bei mir eine Webseite, die einfach nur eine Zahl zurückliefert, die ich über HTTPMOD abfrage. Ich hatte deswegen als Attribut

attr httpmod Readings1Regex([0-9]\.+)

gesetzt und mich gewundert, dass mein Reading immer 1.0 war. Das liegt daran, dass die Regex auf $buffer losgelassen wird, in dem header und body der Response stehen, und da stand bei mir eben immer ein "HTTP/1.0 200 OK" drin.
Ist es Absicht, dass die Regex auf den Header matcht?

StefanStrobel

Hallo wmr72,

Ja, das mit dem Header ist Absicht. Es können ja auch mal interessant Daten im Header bzw. in Cookies zurück geliefert werden.
Am einfachsten wäre es wenn Du eine geringfügig komplexere Regex verwendest.

Gruss
   Stefan

wmr72

Hi Stefan,

hatte ich mir fast gedacht. Finde ich nicht schön aber erklärbar, ich hab jetzt einfach die einzulesende Webseite angepasst, das ist in meinem Fall die einfachste/übersichtlichste Lösung.

Gruß Wolfgang

StefanStrobel

Hallo,

ich habe die neue Version gerade eingecheckt und das Wiki aktualisiert.
@Brockmann: es gibt jetzt auch ein neues Attribut "showMatched". Wenn das auf 1 steht, erzeugt HTTPMOD ein Reading mit Namen MATCHED_READINGS, das die Namen der gematchten Readings enthält.
Ich hoffe das erfüllt Deine Anforderung.

Gruss   
    Stefan

Brockmann

Zitat von: StefanStrobel am 24 März 2015, 21:38:56
@Brockmann: es gibt jetzt auch ein neues Attribut "showMatched". Wenn das auf 1 steht, erzeugt HTTPMOD ein Reading mit Namen MATCHED_READINGS, das die Namen der gematchten Readings enthält.
Ich hoffe das erfüllt Deine Anforderung.
DANKE!  :)
Ja, damit sollte es klappen.

RoBra81

Hallo,

ich nutze dieses get-Feature, muss aber seit einigen Updates immer wieder eine alte Version zurückspielen, da das get-Feature verschwunden ist - gibt es dafür einen Grund?

Ronny