Neue Version von HTTPMOD mit neuen Features zum Testen

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

Vorheriges Thema - Nächstes Thema

StefanStrobel

Hallo Andreas,

StoreKeyValue mit Replacements hatte ich am 15.2. in diesem Thread beschrieben.
Das geht für URLs, Header und Daten gleichermaßen.

Gruß
   Stefan


buennerbernd

Zitat von: StefanStrobel am 27 Mai 2016, 14:07:56
Hallo Buennerbernd,

HTTPMOD macht ohne entsprechende Attribute keine Zeichensatzkonvertierung.
Du kannst das aber mit den Encode- und Decode- Attributen steuern.
Diskussionen dazu findest Du auch im Forum.

Edit: für ExtractAllJSON gibt es jedoch noch kein Encode und Decode. Das steht noch auf der Wunschliste. Du müsstest daher für die relevanten Readings einzelne Definitionen machen und dabei dann Decode und Encode angeben.

Gruß
    Stefan

Danke für die Antwort. Ich verstehe jedoch nicht, warum überhaupt konvertiert werden muss. Die Daten kommen als UTF-8 per JSON. Die FHEM-Seite wird als UTF-8 gerendert. Im Buffer kümmert sich auch keiner um die Konvertierung und der Buffer sieht in FHEM gut aus. Nur in den Readings sind die Daten kaputt.
Ich vermute, beim Zuweisen der Readings wird im Hintergrund schon einmal zu viel konvertiert.
Modulentwickler von KLF200 und KLF200Node

Vize

Zitat von: StefanStrobel am 27 Mai 2016, 14:16:02
Hallo Andreas,

StoreKeyValue mit Replacements hatte ich am 15.2. in diesem Thread beschrieben.
Das geht für URLs, Header und Daten gleichermaßen.

Gruß
   Stefan

Hallo Stefan,

danke dir für die Auskunft, werde ich mal testen...
Kann ich damit eigentlich mehrere "keys" in einem device generieren, also z.B. einmal für das eigentliche Passwort - wie in deinem post vom 15.02. - und dann nochmal für den Benutzernamen?
Also zusätzlich
set <device> storeKeyValue user meine@email.de

Wo werden die denn dann im Sytem abgelegt?

Ach ja, und hast du eventuell auch noch einen Tipp zum Beschränken der Abfrageparameter, damit der buffer etwas "schlanker" wird?

So, jetzt hab ich aber erstmal genug genervt...

Gruß
Andreas

Vize

Hallo nochmal Stefan,

wollte gerade mal versuchen, deinen Vorschlag mit den Replacements umzusetzen, aber ich scheitere schon zu Beginn...

Hiermit
attr <httpmod_device> replacement1Mode key
erhalte ich folgende "Fehlerausgabe"
unknown attribute replacement1Mode. Type 'attr httpmod_senec_online ?' for a detailed list.

Eine Änderung von replacement1Mode zu replacement01Mode bringt keine Besserung...

Was mache ich falsch?

Gruß
Andreas

StefanStrobel

Hallo Andreas,

Für Deine Fehlermeldung bei replacement1Mode habe ich jetzt auch keine Erklärung.
Was kommt denn bei attr HTTPMODDevice ?
Da sollte replacement[0-9]+Mode dabei sein.

bei setKeyValue kannst Du natürlich mehrere Keys verwenden.
Gespeichert wird in $attr{global}{modpath}."/FHEM/FhemUtils/uniqueID"
Alle Details findest Du im Code in der Funktion setKeyValue von fhem.pl.
HTTPMOD ruft die Funktion nur auf.

Für das Begrenzen der Antworten von Deinem Server habe ich auch keine Ideen.
Das hängt vom Server ab. Vielleicht bietet der ja noch eine andere Auswahl von Werten unter einer anderen URL oder mit anderen Parametern. Ich kenne den aber nicht.

Gruß
    Stefan

Vize

Hallo Stefan,

vielen Dank nachmals für deine Erläuterungen.

Wenn ich attr <httpmod_device> ? absetze, ist replacement[0-9]+Mode key dabei, das ist ja das seltsame...
replacement01Regex und replacement01Value sowie set storeKeyValue funktionieren einwandfrei.
Oder könnte es daran liegen, dass ich seit Längerem kein "System-Update" mehr gemacht habe und die fhem.pl ziemlich alt ist?

Na ja, gelöst habe ich es jetzt dadurch, dass ich das Attribut - und unter userattr replacemantMode - direkt in die fhem.cfg beim jeweiligen device eingefügt habe. Damit läuft es entsprechend.

Gruß
Andreas

StefanStrobel

Hallo Andreas,

probier doch mal ein Update (danach bitte wieder die neue Version von HTTPMOD einspielen). Es wäre schon interessant, ob das Problem damit behoben ist und nur Fhemweb dazwischen gefunkt hat.

Gruss / Thanx
    Stefan

StefanStrobel

#217
Hallo Nochmal,

hier eine neue Version zum Testen.
DeleteIfUnmatched und DeleteOnError sollten jetzt auch nach einem Restart Readings löschen. Bei ExtractAllReadings kann das aber leider nicht funktionieren, da das Modul nach einem Restart nicht mehr wissen kann, ob Readings tatsächlich per JSON erzeugt wurden, oder z.B. von anderen Hilfsmodulen kommen.
Poll=0 sollte jetzt funktionieren und ReAuthRegex auf Fehlermeldungen im Header ebenso.
LAST_REQUEST wird auch bei Errors gesetzt.
Attribute zur Formatierung / Encode etc. von Readings sollten jetzt auch bei ExtractAllJSON angewendet werden.

Ein paar Funktionen habe ich intern umstrukturiert. Ich hoffe, dass dadurch keine neuen Fehler reingeraten sind.

Gruss
    Stefan

EDIT 2.6.16: abgehängtes Modul entfernt, neue Version in späterem Post

Vize

#218
Zitat von: StefanStrobel am 29 Mai 2016, 17:43:36
Hallo Andreas,

probier doch mal ein Update (danach bitte wieder die neue Version von HTTPMOD einspielen). Es wäre schon interessant, ob das Problem damit behoben ist und nur Fhemweb dazwischen gefunkt hat.

Gruss / Thanx
    Stefan

Hallo Stefan,

lag in der Tat an meiner Uralt-Version von FHEM...nach einem Update funktioniert es wie es soll...

***EDIT***
ZitatReAuthRegex auf Fehlermeldungen im Header ebenso

Kann ich bestätigen...funktioniert... Danke!


Gruß
Andreas

StefanStrobel

Hallo buennerbernd,

in der neuen Version (hier gepostet) kannst Du per

attr device readingEncode utf8


auch für alle Readings, die im zyklischen Update per extractAllJSON erzeugt werden, die Ausgabe in utf8 erreichen.
Entsprechend würde man bei einem get z.B. get01Encode utf8 angeben, wenn get01ExtractAllJSON spezifiziert wurde.

Beim Parsen per Regex wäre das nicht nötig, da ich keine Zeichensatzkonvertierung ohne Attribut eingebaut habe.

HTTPMOD verwendet aber für das Parsen von JSON und XPath fertige Bibliotheken (z.B. libjson-perl), die offenbar die Eingabedaten konvertieren. Deshalb klappt es bei Dir nicht, obwohl die Ausgangsdaten bereits als utf8 geliefert werden.
Mit obigem Attribut sollte das Problem aber gelöst sein.

Gruss
    Stefan

SirUli

#220
Zitat von: StefanStrobel am 29 Mai 2016, 18:24:56
Ich hoffe, dass dadurch keine neuen Fehler reingeraten sind.

Mein FHEM ist mal nicht ganz so glücklich beim Anlegen einer neuen Definition.

Gestestet auf einer neuen Installation (erstes Device) - einmal "update" und dann probiert:
2016.05.31 21:43:05 1: reload: Error:Modul 98_HTTPMOD deactivated:
Type of arg 1 to each must be hash (not array dereference) at ./FHEM/98_HTTPMOD.pm line 1386, near "}) "
BEGIN not safe after errors--compilation aborted at ./FHEM/98_HTTPMOD.pm line 1640.

2016.05.31 21:43:05 0: Type of arg 1 to each must be hash (not array dereference) at ./FHEM/98_HTTPMOD.pm line 1386, near "}) "
BEGIN not safe after errors--compilation aborted at ./FHEM/98_HTTPMOD.pm line 1640.


Das angehängte probiert: Gleicher fehler, andere Zeile:
2016.05.31 21:06:59 1: reload: Error:Modul 98_HTTPMOD deactivated:
Type of arg 1 to each must be hash (not array dereference) at ./FHEM/98_HTTPMOD.pm line 1533, near "}) "
BEGIN not safe after errors--compilation aborted at ./FHEM/98_HTTPMOD.pm line 1803.

2016.05.31 21:06:59 0: Type of arg 1 to each must be hash (not array dereference) at ./FHEM/98_HTTPMOD.pm line 1533, near "}) "
BEGIN not safe after errors--compilation aborted at ./FHEM/98_HTTPMOD.pm line 1803.


Definition:
define TST HTTPMOD http://google.com 3600

Viele Grüße,
Uli

Edit: Ich sehe gerade dass das Modul via "update" schon zwei Monate alt ist - das wird es wohl kaum sein...damn, mal sehen ob es perl ist...

Edit 2: Indeed: Perl 5.10.1 geht nix, mit 5.16.0 passt alles. Sorry :)

StefanStrobel

#221
Hallo Uli,

ich hab die entsprechende Stelle geändert, so dass sie auch mit einem alten Perl wieder gehen sollte.
Neue Version anbei.

Gruss
    Stefan

EDIT: alte Version entfernt

frank

#222
hallo stefan,

die tests:
getXXAlwaysNum: zufällig gefunden und funktioniert.  :)
getXXPoll 0/1: funktioniert wunderbar.
disable=1 / enableControlSet=1: wegen fehlermeldungen bei einem alten stillgelegten httpmod device bezüglich des veralteten namensschemas für readingName/Regex, wollte ich set upgradeAttributes ausführen. hier gab es dann eine kurze irritation, da enableControlSet nur funktioniert, wenn disable nicht 1 ist. vielleicht wäre dieses verhalten einen hinweis wert oder etwas zu verändern.

deleteIfUnmatched: httpmod meldet jetzt nach restart das reading unter UNMATCHED_READINGS. nur werden die alten readings leider noch nicht gelöscht.

log des reread nach restart:
2016.06.02 20:14:38.261 5: eq4: UpdateHintList called
2016.06.02 20:14:38.264 5: eq4: UpdateHintList: setlist = interval reread:noArg stop:noArg start:noArg upgradeAttributes:noArg storeKeyValue
2016.06.02 20:14:38.266 5: eq4: UpdateHintList: getlist = fw_link2:noArg fw_link1:noArg
2016.06.02 20:14:46.318 5: eq4: set called with reread
2016.06.02 20:14:46.320 4: eq4: GetUpdate called (reread)
2016.06.02 20:14:46.322 5: eq4: GetUpdate checks if poll required for fw_link1 (1)
2016.06.02 20:14:46.336 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_HTTPMOD.pm line 1484.
2016.06.02 20:14:46.339 3: stacktrace:
2016.06.02 20:14:46.341 3:     main::__ANON__                      called by ./FHEM/98_HTTPMOD.pm (1484)
2016.06.02 20:14:46.343 3:     main::HTTPMOD_GetUpdate             called by ./FHEM/98_HTTPMOD.pm (1229)
2016.06.02 20:14:46.344 3:     main::HTTPMOD_ControlSet            called by ./FHEM/98_HTTPMOD.pm (1281)
2016.06.02 20:14:46.346 3:     main::HTTPMOD_Set                   called by fhem.pl (3167)
2016.06.02 20:14:46.348 3:     main::CallFn                        called by fhem.pl (1583)
2016.06.02 20:14:46.350 3:     main::DoSet                         called by fhem.pl (1615)
2016.06.02 20:14:46.351 3:     main::CommandSet                    called by fhem.pl (1072)
2016.06.02 20:14:46.353 3:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2238)
2016.06.02 20:14:46.354 3:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (722)
2016.06.02 20:14:46.356 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (454)
2016.06.02 20:14:46.358 3:     main::FW_Read                       called by fhem.pl (3172)
2016.06.02 20:14:46.359 3:     main::CallFn                        called by fhem.pl (659)
2016.06.02 20:14:46.361 4: eq4: GetUpdate will request fw_link1
2016.06.02 20:14:46.365 4: eq4: AddToQueue adds get1, initial queue len: 0
2016.06.02 20:14:46.367 5: eq4: AddToQueue adds type get1 to URL http://www.eq-3.de/ajax/downloads.php, data suchtext=&suche_in=2&downloadart=11, no headers, retry 0
2016.06.02 20:14:46.368 5: eq4: HandleSendQueue called, qlen = 1
2016.06.02 20:14:46.371 4: eq4: HandleSendQueue sends request type get1 to URL http://www.eq-3.de/ajax/downloads.php,
data: suchtext=&suche_in=2&downloadart=11, No Header,
timeout 2
2016.06.02 20:14:46.373 4: HttpUtils url=http://www.eq-3.de/ajax/downloads.php
2016.06.02 20:14:46.383 5: eq4: GetUpdate checks if poll required for fw_link2 (2)
2016.06.02 20:14:46.384 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_HTTPMOD.pm line 1484.
2016.06.02 20:14:46.386 3: stacktrace:
2016.06.02 20:14:46.387 3:     main::__ANON__                      called by ./FHEM/98_HTTPMOD.pm (1484)
2016.06.02 20:14:46.389 3:     main::HTTPMOD_GetUpdate             called by ./FHEM/98_HTTPMOD.pm (1229)
2016.06.02 20:14:46.391 3:     main::HTTPMOD_ControlSet            called by ./FHEM/98_HTTPMOD.pm (1281)
2016.06.02 20:14:46.392 3:     main::HTTPMOD_Set                   called by fhem.pl (3167)
2016.06.02 20:14:46.394 3:     main::CallFn                        called by fhem.pl (1583)
2016.06.02 20:14:46.395 3:     main::DoSet                         called by fhem.pl (1615)
2016.06.02 20:14:46.397 3:     main::CommandSet                    called by fhem.pl (1072)
2016.06.02 20:14:46.399 3:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2238)
2016.06.02 20:14:46.400 3:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (722)
2016.06.02 20:14:46.402 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (454)
2016.06.02 20:14:46.403 3:     main::FW_Read                       called by fhem.pl (3172)
2016.06.02 20:14:46.405 3:     main::CallFn                        called by fhem.pl (659)
2016.06.02 20:14:46.407 4: eq4: GetUpdate will request fw_link2
2016.06.02 20:14:46.411 4: eq4: AddToQueue adds get2, initial queue len: 0
2016.06.02 20:14:46.412 5: eq4: AddToQueue adds type get2 to URL https://github.com/kc-GitHub/Wettersensor/tree/master/Firmware-Release, no data, no headers, retry 0
2016.06.02 20:14:46.415 5: eq4: HandleSendQueue called, qlen = 1
2016.06.02 20:14:46.418 5: eq4: HandleSendQueue - still waiting for reply to last request, delay sending from queue
2016.06.02 20:14:46.684 4: http://www.eq-3.de/ajax/downloads.php: HTTP response code 200
2016.06.02 20:14:46.686 4: HttpUtils http://www.eq-3.de/ajax/downloads.php: Got data, length: 15036
2016.06.02 20:14:46.690 4: eq4: Read callback: request type was get1 retry 0,
Header: HTTP/1.1 200 OK
Date: Thu, 02 Jun 2016 18:14:46 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_fcgid/2.3.9
X-Powered-By: PHP/5.6.5
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=t0sompo2sppuj5voj81ifd81k4; path=/
Connection: close
Content-Type: text/html; charset=UTF-8,
Body: <p class="anzahl">19 Ergebnisse gefunden.</p> <div class="row head">

no error
2016.06.02 20:14:46.698 5: eq4: ExtractSid called, context get, num 1
2016.06.02 20:14:46.704 4: eq4: CheckAuth decided no authentication required
2016.06.02 20:14:46.707 5: eq4: ExtractReading fw_link1 with regex /<a.href="(\/Downloads\/Software\/Firmware\/.*?\.(?:tgz|tar\.gz))/g ...
2016.06.02 20:14:46.711 5: eq4: ExtractReading fw_link1 did not match
2016.06.02 20:14:46.713 5: eq4: UpdateReadingList created list of reading.* nums to parse during getUpdate as
2016.06.02 20:14:46.719 3: eq4: Read response to get1 didn't match any Reading
2016.06.02 20:14:46.882 5: eq4: UpdateRequestHash called
2016.06.02 20:14:46.890 5: eq4: HandleSendQueue called, qlen = 1
2016.06.02 20:14:46.894 4: eq4: HandleSendQueue sends request type get2 to URL https://github.com/kc-GitHub/Wettersensor/tree/master/Firmware-Release, No Data, No Header,
timeout 2
2016.06.02 20:14:46.895 4: HttpUtils url=https://github.com/kc-GitHub/Wettersensor/tree/master/Firmware-Release
2016.06.02 20:14:48.350 4: https://github.com/kc-GitHub/Wettersensor/tree/master/Firmware-Release: HTTP response code 200
2016.06.02 20:14:48.352 4: HttpUtils https://github.com/kc-GitHub/Wettersensor/tree/master/Firmware-Release: Got data, length: 42042
2016.06.02 20:14:48.361 4: eq4: Read callback: request type was get2 retry 0,
Header: HTTP/1.1 200 OK
Server: GitHub.com
Date: Thu, 02 Jun 2016 18:14:47 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Status: 200 OK
Cache-Control: no-cache
Vary: X-PJAX
X-UA-Compatible: IE=Edge,chrome=1
Set-Cookie: _octo=GH1.1.1780425522.1464891287; domain=.github.com; path=/; expires=Sat, 02 Jun 2018 18:14:47 -0000
Set-Cookie: logged_in=no; domain=.github.com; path=/; expires=Mon, 02 Jun 2036 18:14:47 -0000; secure; HttpOnly
Set-Cookie: _gh_sess=eyJzZXNzaW9uX2lkIjoiM2E1ZmFmMDBiYzIwM2M1Y2NhYzZhMjFlOGE2MTBmZWEiLCJzcHlfcmVwbyI6ImtjLUdpdEh1Yi9XZXR0ZXJzZW5zb3IiLCJzcHlfcmVwb19hdCI6MTQ2NDg5MTI4NywiX2NzcmZfdG9rZW4iOiJmMXFkejhsMVBma0lNc1NldktQcytVeENHVFdXczFXQ0ErWUJqdERQemx3PSJ9--448ceabf618ed64df6cb5b573facb8e8062c306e; path=/; secure; HttpOnly
X-Request-Id: e4f67404fd710d167751780c95f91676
X-Runtime: 0.048430
Content-Security-Policy: default-src 'none'; base-uri 'self'; block-all-mixed-content; child-src render.githubusercontent.com; connect-src 'self' uploads.github.com status.github.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com wss://live.github.com; font-src assets-cdn.github.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: assets-cdn.github.com identicons.github.com www.google-analytics.com collector.githubapp.com *.gravatar.com *.wp.com *.githubusercontent.com; media-src 'none'; object-src assets-cdn.github.com; plugin-types application/x-shockwave-flash; script-src assets-cdn.github.com; style-src 'unsafe-inline' assets-cdn.github.com
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
Public-Key-Pins: max-age=5184000; pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18="; pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho="; pin-sha256="k2v657xBsOVe1PQRwOsHsw3bsGT2VzIqz5K+59sNQws="; pin-sha256="K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q="; pin-sha256="IQBnNBEiFuhj+8x6X8XLgh01V9Ic5/V3IRQLNFFc7v4="; pin-sha256="iie1VXtL7HzAMF+/PVPR9xzT80kQxdZeJ+zduCB3uj0="; pin-sha256="LvRiGEjRqfzurezaWuj8Wie2gyHMrW5Q06LspMnox7A="; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
Vary: Accept-Encoding
X-Served-By: 926b734ea1992f8ee1f88ab967a93dac
X-GitHub-Request-Id: 50905B68:7A04:FC6A4F5:57507797,
Body:

no error
2016.06.02 20:14:48.387 5: eq4: ExtractSid called, context get, num 2
2016.06.02 20:14:48.393 4: eq4: CheckAuth decided no authentication required
2016.06.02 20:14:48.397 5: eq4: ExtractReading fw_link2 with regex /href="\/kc-GitHub\/Wettersensor\/blob(\/master\/Firmware-Release\/[^.]+\.tgz)"/g ...
2016.06.02 20:14:48.402 5: eq4: 4 capture group(s), matchlist = /master/Firmware-Release/HB-UW-Sen-THPL_update_V0_14_001_150301-I.tgz,/master/Firmware-Release/HB-UW-Sen-THPL_update_V0_14_001_150301-O.tgz,/master/Firmware-Release/HB-UW-Sen-THPL_update_V0_15_000_150303-I.tgz,/master/Firmware-Release/HB-UW-Sen-THPL_update_V0_15_000_150303-O.tgz
2016.06.02 20:14:48.407 5: eq4: FormatReading changed value with Expr ($val=~m/^([^_]+)([^-]+)(-[IO])(.*)$/)?($1.$3.$2.$4):$val from /master/Firmware-Release/HB-UW-Sen-THPL_update_V0_14_001_150301-I.tgz to /master/Firmware-Release/HB-UW-Sen-THPL-I_update_V0_14_001_150301.tgz
2016.06.02 20:14:48.408 5: eq4: FormatReading does sprintf with format https://raw.githubusercontent.com/kc-GitHub/Wettersensor%s value is /master/Firmware-Release/HB-UW-Sen-THPL-I_update_V0_14_001_150301.tgz
2016.06.02 20:14:48.410 5: eq4: FormatReading sprintf result is https://raw.githubusercontent.com/kc-GitHub/Wettersensor/master/Firmware-Release/HB-UW-Sen-THPL-I_update_V0_14_001_150301.tgz
2016.06.02 20:14:48.411 4: eq4: ExtractReading for get2-1 sets fw_link2-01 to https://raw.githubusercontent.com/kc-GitHub/Wettersensor/master/Firmware-Release/HB-UW-Sen-THPL-I_update_V0_14_001_150301.tgz
2016.06.02 20:14:48.418 5: eq4: FormatReading changed value with Expr ($val=~m/^([^_]+)([^-]+)(-[IO])(.*)$/)?($1.$3.$2.$4):$val from /master/Firmware-Release/HB-UW-Sen-THPL_update_V0_14_001_150301-O.tgz to /master/Firmware-Release/HB-UW-Sen-THPL-O_update_V0_14_001_150301.tgz
2016.06.02 20:14:48.419 5: eq4: FormatReading does sprintf with format https://raw.githubusercontent.com/kc-GitHub/Wettersensor%s value is /master/Firmware-Release/HB-UW-Sen-THPL-O_update_V0_14_001_150301.tgz
2016.06.02 20:14:48.421 5: eq4: FormatReading sprintf result is https://raw.githubusercontent.com/kc-GitHub/Wettersensor/master/Firmware-Release/HB-UW-Sen-THPL-O_update_V0_14_001_150301.tgz
2016.06.02 20:14:48.422 4: eq4: ExtractReading for get2-2 sets fw_link2-02 to https://raw.githubusercontent.com/kc-GitHub/Wettersensor/master/Firmware-Release/HB-UW-Sen-THPL-O_update_V0_14_001_150301.tgz
2016.06.02 20:14:48.428 5: eq4: FormatReading changed value with Expr ($val=~m/^([^_]+)([^-]+)(-[IO])(.*)$/)?($1.$3.$2.$4):$val from /master/Firmware-Release/HB-UW-Sen-THPL_update_V0_15_000_150303-I.tgz to /master/Firmware-Release/HB-UW-Sen-THPL-I_update_V0_15_000_150303.tgz
2016.06.02 20:14:48.430 5: eq4: FormatReading does sprintf with format https://raw.githubusercontent.com/kc-GitHub/Wettersensor%s value is /master/Firmware-Release/HB-UW-Sen-THPL-I_update_V0_15_000_150303.tgz
2016.06.02 20:14:48.431 5: eq4: FormatReading sprintf result is https://raw.githubusercontent.com/kc-GitHub/Wettersensor/master/Firmware-Release/HB-UW-Sen-THPL-I_update_V0_15_000_150303.tgz
2016.06.02 20:14:48.433 4: eq4: ExtractReading for get2-3 sets fw_link2-03 to https://raw.githubusercontent.com/kc-GitHub/Wettersensor/master/Firmware-Release/HB-UW-Sen-THPL-I_update_V0_15_000_150303.tgz
2016.06.02 20:14:48.439 5: eq4: FormatReading changed value with Expr ($val=~m/^([^_]+)([^-]+)(-[IO])(.*)$/)?($1.$3.$2.$4):$val from /master/Firmware-Release/HB-UW-Sen-THPL_update_V0_15_000_150303-O.tgz to /master/Firmware-Release/HB-UW-Sen-THPL-O_update_V0_15_000_150303.tgz
2016.06.02 20:14:48.440 5: eq4: FormatReading does sprintf with format https://raw.githubusercontent.com/kc-GitHub/Wettersensor%s value is /master/Firmware-Release/HB-UW-Sen-THPL-O_update_V0_15_000_150303.tgz
2016.06.02 20:14:48.442 5: eq4: FormatReading sprintf result is https://raw.githubusercontent.com/kc-GitHub/Wettersensor/master/Firmware-Release/HB-UW-Sen-THPL-O_update_V0_15_000_150303.tgz
2016.06.02 20:14:48.443 4: eq4: ExtractReading for get2-4 sets fw_link2-04 to https://raw.githubusercontent.com/kc-GitHub/Wettersensor/master/Firmware-Release/HB-UW-Sen-THPL-O_update_V0_15_000_150303.tgz
2016.06.02 20:14:48.451 4: eq4: Read response to get2 matched Reading(s) fw_link2-01 fw_link2-02 fw_link2-03 fw_link2-04
2016.06.02 20:14:48.623 5: eq4: DoDeleteIfUnmatched: check reading fw_link2-01 (matched)
2016.06.02 20:14:48.624 5: eq4: DoDeleteIfUnmatched: check reading fw_link2-02 (matched)
2016.06.02 20:14:48.625 5: eq4: DoDeleteIfUnmatched: check reading fw_link2-03 (matched)
2016.06.02 20:14:48.626 5: eq4: DoDeleteIfUnmatched: check reading fw_link2-04 (matched)
2016.06.02 20:14:48.628 5: eq4: HandleSendQueue called, qlen = 0



dann ist mir noch folgendes aufgefallen: jetzt wird mit jedem request das reading LAST_REQUEST 2 mal aktualisiert. die roten einträge sind neu dazu gekommen.
Zitat2016-05-31 16:27:21.766 HTTPMOD eq4 reread
2016-05-31 16:27:22.749 HTTPMOD eq4 LAST_REQUEST: get1
2016-05-31 16:27:22.749 HTTPMOD eq4 MATCHED_READINGS:
2016-05-31 16:27:22.749 HTTPMOD eq4 UNMATCHED_READINGS: fw_link1
2016-05-31 16:27:22.749 HTTPMOD eq4 LAST_REQUEST: get1
2016-05-31 16:27:23.909 HTTPMOD eq4 LAST_REQUEST: get2
2016-05-31 16:27:23.909 HTTPMOD eq4 MATCHED_READINGS: fw_link2-01 fw_link2-02 fw_link2-03 fw_link2-04
2016-05-31 16:27:23.909 HTTPMOD eq4 UNMATCHED_READINGS:
2016-05-31 16:27:23.909 HTTPMOD eq4 LAST_REQUEST: get2

deleteOnError: der test von neulich (die ip erneuern lassen, kurz vorm request) hat nicht mehr funktioniert. ich denke das hat mit einer änderung in httputils zu tun. da muss ich mir was anderes ausdenken.

gruss frank

edit:
deleteOnError: auch hier wird nach restart nicht gelöscht.

die events sehen etwas anders aus, als bei deleteIfUnmatched (jetzt ohne restart zwischendurch).
eventmonitor: zuerst ein 2-facher gültiger request, dann url geändert (rot) wegen fehler, dann die events mit fehlerhafter url. hier fehlt das reread-event und das neue "doppelte" LAST_REQUEST event. die readings wurden aber gelöscht

Zitat2016-06-02 21:24:27.128 HTTPMOD eq4 reread
2016-06-02 21:24:27.611 HTTPMOD eq4 LAST_REQUEST: get1
2016-06-02 21:24:27.611 HTTPMOD eq4 MATCHED_READINGS: fw_link1-01 fw_link1-02 fw_link1-03 fw_link1-04 fw_link1-05 fw_link1-06 fw_link1-07 fw_link1-08 fw_link1-09 fw_link1-10 fw_link1-11 fw_link1-12 fw_link1-13 fw_link1-14 fw_link1-15
2016-06-02 21:24:27.611 HTTPMOD eq4 UNMATCHED_READINGS:
2016-06-02 21:24:27.611 HTTPMOD eq4 LAST_REQUEST: get1
2016-06-02 21:24:29.095 HTTPMOD eq4 LAST_REQUEST: get2
2016-06-02 21:24:29.095 HTTPMOD eq4 MATCHED_READINGS: fw_link2-01 fw_link2-02 fw_link2-03 fw_link2-04
2016-06-02 21:24:29.095 HTTPMOD eq4 UNMATCHED_READINGS:
2016-06-02 21:24:29.095 HTTPMOD eq4 LAST_REQUEST: get2
2016-06-02 21:26:12.840 Global global ATTR eq4 get1URL http://www.eq-4.de/ajax/downloads.php
2016-06-02 21:26:19.328 HTTPMOD eq4 LAST_ERROR: gethostbyname www.eq-4.de failed
2016-06-02 21:26:19.328 HTTPMOD eq4 LAST_REQUEST: get1
2016-06-02 21:26:20.529 HTTPMOD eq4 LAST_REQUEST: get2
2016-06-02 21:26:20.529 HTTPMOD eq4 MATCHED_READINGS: fw_link2-01 fw_link2-02 fw_link2-03 fw_link2-04
2016-06-02 21:26:20.529 HTTPMOD eq4 UNMATCHED_READINGS:
2016-06-02 21:26:20.529 HTTPMOD eq4 LAST_REQUEST: get2
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

SirUli

Ich hab auch noch einen:
setze enableControlSet = 1 und anschließend ändere die URL in der Definition -> das menü ist weg. Setzt man dann das attribut einmal neu, so geht es wieder.

frank

Zitat von: SirUli am 02 Juni 2016, 22:24:00
Ich hab auch noch einen:
setze enableControlSet = 1 und anschließend ändere die URL in der Definition -> das menü ist weg. Setzt man dann das attribut einmal neu, so geht es wieder.
stimmt. ich kenne den mit änderung des intervals.
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