Neue Version von HTTPMOD mit neuen Features zum Testen

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

Vorheriges Thema - Nächstes Thema

brembs

Also wenn ich auf "getstatusoverview" gehe, dann bekomme ich genau diesen 403 error im header und als response einen JSON syntax error (JSON.parse: unexpected end of data). Habe reAuthRegex jetzt bei mir gelöscht, dann passiert aber auch nichts.

Bin mir nicht sicher, was man eingeben soll, dass er auf "login.php" geht, bevor er auf getstatusoverview geht?

Vize

Guten Morgen,

habe nun einfach mal bei reAuthRegex .* (als "Wildcard") eingetragen und erhalte dann das im log:
2016.05.25 10:58:04 5: httpmod_test_2: CheckAuth is checking buffer with ReAuthRegex .*
2016.05.25 10:58:04 4: httpmod_test_2: CheckAuth decided new authentication required (ReAuthRegex matched: .*)
2016.05.25 10:58:04 4: httpmod_test_2: CheckAuth has no more retries left - did authentication fail?
2016.05.25 10:58:04 3: httpmod_test_2: no parsed JSON structure available
2016.05.25 10:58:04 5: httpmod_test_2: Read starts parsing response to update with defined readings:
2016.05.25 10:58:04 3: httpmod_test_2: Read response to update didn't match any Reading
2016.05.25 10:58:04 5: httpmod_test_2: HandleSendQueue called, qlen = 0


Kann man daraus was ableiten, was uns weiterbringen könnte?

Gruß
Andreas

Vize

Man sollte auch aufpassen, was man alles so klickt in FHEM...  ::)

Na ja, jedenfalls funktioniert es nun wieder...

Hatte aus Versehen das Atrribut sid1Data gelöscht  :-[

Mit der "Wildcard" in reAuthRegex funktioniert es dann auch...vielleicht weiß jemand ja auch eine bessere Regex dafür...

@brembs
Björn, kannst du das mal nachstellen, ob es so bei dir auch funktioniert...

Hier nochmal alle Attribute für das HTTPMOD-Device:
enableCookies 1
extractAllJSON 1
reAuthRegex .*
sid1Data   {"email":"meine@email.de","password":"geheim"}
sid1Header1 Content-Type: application/json
sid1Header2 Accept: */*
sid1URL    https://mein-senec.de/monitoring/json/auth/login.php
timeout    20
userattr   sid1Data sid1Header1 sid1Header2 sid1URL


Gruß
Andreas

StefanStrobel

Hallo  Andreas und brembs,

Das mit der ReAuthRegex ist folgendermaßen gedacht:
HTTPMOD fragt zunächst die URL für die Daten ab.
Dann versucht es die ReAuthRegex zu matchen. Wenn die passt, schließt HTTPMOD daraus, dass eine neue Authentisierung nötig ist, da z.B. Die Session nicht mehr gültig ist oder noch gar keine Session erstellt wurde. Dann werden die sid-Attribute zum Einloggen verwendet.
Danach wird wieder versucht, die ReAuthRegex zu matchen (bis zu einem Maximum an Retries). Wenn die Regex wieder matcht, dann geht HTTPMOD davon aus, dass das Login nicht funktioniert hat.

In Eurem Fall würde ich als ReAuthRegex sowohl das 403 Forbidden also auch das "success":false kombinieren, z.B.

attr httpmod_test_2 reAuthRegex {"success":false}|Forbidden


Eine ReAuthRegex als .* führt dazu, dass HTTPMOD sich bei jedem Request mehrfach anmeldet. Das ist nicht unbedingt erstrebenswert ...

Gruß
    Stefan


Vize

Hi Stefan,

danke für die Erläuterungen!

Ein
attr httpmod_test_2 reAuthRegex {"success":false}|Forbidden
funktioniert hier leider nicht, und ich erhalte damit weiterhin ein "Forbidden" und somit keine Daten...

Wie könnte man denn wohl herausfinden, auf was die ReAuthRegex matchen soll, um das .* zu vermeiden?

Gruß
Andreas

StefanStrobel

Hallo Andreas,

Zum Testen von Regexes gibt es hübsche online Regex-Tester.
Im konkreten Fall nützt Dir das aber leider nichts, da ich gerade einen Fehler in der aktuellen Version von HTTPMOD entdeckt habe. Beim Matchen der ReAuthRegex wird momentan nur der HTTP-Body verwendet und nicht die Header.
Leider kann ich Dir auch gerade keine reparierte Version anhängen. Wenn Du es selbst machen möchtest, dann musst Du im Code den Aufruf von HTTPMOD_CheckAuth suchen und dort $body durch $buffer ersetzen. Dann sollte klappen.
Nächste Woche kann ich dann eine neue Version bereitstellen. Du kannst vielleicht so lange auch mit .* leben und bei jedem Aufruf zwei Logins durchführen.

Gruß
    Stefan

brembs

Spitzenklasse! Funktioniert! Ganz hervorragende Arbeit, Andreas, vielen Dank!

Besonderen Dank auch an Dich Stefan, natürlich nicht nur für Deine konkrete Hilfe hier, sondern insbesondere für Dein Modul!
Ausgezeichnet!

brembs

@Andreas,

leider ist auf getstatusoverview der Batteriestatus nicht zu sehen. Das müsste man/ich dann später noch nachholen...
Aber sonst ist alles bestens ab zu lesen, bin sehr begeistert :-)

Vize

@Stefan
Kein Problem, kann natürlich warten - oder selber mal nachsehen...danke dir nochmal für deine Mühe und Hilfe!!!

@brembs
Ja, den Akkustand gibt es auf einer ander (Unter)Seite im Portal. Hab mir dafür einfach ein zweites HTTPMOD-Device angelegt...

DEF
https://mein-senec.de/monitoring/json/status/getaccustate.php 300

Attribute
enableCookies 1
reAuthRegex .*
reading01JSON fuelgauge
reading01Name Akku-Füllstand
sid1Data   {"email":"meine@email.de","password":"geheim"}
sid1Header1 Content-Type: application/json
sid1Header2 Accept: */*
sid1URL    https://mein-senec.de/monitoring/json/auth/login.php
stateFormat { sprintf("%.2f %%",ReadingsVal($name,"Akku-Füllstand",0)) }
timeout    20


Sieht dann so, wie im Anhang aus...

Off-Topic:
Kurioserweise sehe ich im buf dieses devices nicht meinen Namen etc. unter den id-Daten, sondern einen ganz anderen Namen?!?  :o
Wie sieht das bei dir aus, Björn?

Gruß
Andreas

brembs

Alles funzt perfekt,tausend Dank! Bin so begeistert!

Hmm, bei mir steht mein Name- aber ich war schon einmal mit dem Browser vor Ort und habe in einem der JSON Dateien einen völlig anderen Namen gelesen ... :-)

buennerbernd

Ich benutze HTTPMOD mit extractAllJSON.
Klappt ja super einfach, nur habe ich ein Problem mit Umlauten.
Im buf steht noch alles richtig: z.B. "bewölkt",
aber im erzeugten Reading steht dann "bew�lkt".


httpheader: HTTP/1.0 200 OK Access-Control-Allow-Origin: * Content-Language: de-DE Content-Type: application/json;charset=UTF-8 X-EdgeConnect-MidMile-RTT: 4 X-EdgeConnect-Origin-MEX-Latency: 45 X-EdgeConnect-MidMile-RTT: 29 X-EdgeConnect-Origin-MEX-Latency: 45 Cache-Control: public, max-age=599, s-maxage=599 Expires: Thu, 26 May 2016 19:46:43 GMT Date: Thu, 26 May 2016 19:36:44 GMT Content-Length: 18276 Connection: close


Ist da noch Optimierungspotential im Modul oder muss ich noch etwas tun?
Modulentwickler von KLF200 und KLF200Node

Vize

Guten Morgen,

nachdem die Abfrage des SENEC Online-Portales nun so schön klappt - danke noch mal an Stefan und Björn für die tatkräftige Unterstützung - habe ich nun noch zwei Detailfragen:

1.
Der Akku-Füllstand wird per HTTPMOD hier abgeholt:
https://mein-senec.de/monitoring/json/status/getaccustate.php

Nun wird dadurch der buffer im device aber mit ganz, ganz vielen Werten "überschwemmt", die ich nicht verwerte.
HTTP/1.1 200 OK Date: Fri, 27 May 2016 08:36:14 GMT Server: Apache/2.4.10 (Debian) Expires: Fri, 27 May 2016 07:36:14 GMT Connection: close Content-Type: application/json
{"batterycurrent":"10","batteryvoltage":"52.5","fuelgauge":"96.77","capacity":100,"bars":"5","lastupdated":1464337947,
"client_id":"XXX","client_firstname":"XXX","client_lastname":"XXX","client_email":"XXX",
"val":[[[1464251851000,51.8],[1464252152000,51.6],[1464252450000,51.4],[1464252752000,51.8],
[1464253050000,51.8],[1464253350000,51.5],[1464253650000,51.5],[1464253952000,52],
[1464254251000,51.8],[1464254550000,51.8],[1464254851000,51.8],[1464255151000,51.8]
usw...usw...

Mich interessiert aber nur der Wert von "fuelgauge".

Ist es möglich, schon per Definition des devices, diese Abfrage einzuschränken? Wenn ja, wie?

2.
Um an die Daten zu kommen, ist ein login auf der Seite nötig.
Nun stehen dafür die Zugangsdaten aber im Klartext in den Attributen des Devices.
sid1Data {"email":"meine@email.de","password":"geheim"}

In der commandref habe ich gelesen, dass es wohl per storeKeyValue möglich ist, diese zu "verschleiern".
Leider habe ich aber nicht verstanden, wie das genau geht, bzw. ob das für meinen konkreten Fall möglich ist.
Ich verstehe es so, dass es nur möglich ist, wenn man die Zugangsdaten per Url mitschickt...?

Vielleicht kann jemand weiterhelfen?

Vielen Dank schonmal für jegliche Hilfe!

Gruß
Andreas

Vize

Hallo buennerbernd,

zeigt doch mal den kompletten buffer, ich seh in deinem code-Schnippel nix von "bewölkt"...

Gruß
Andreas

buennerbernd

#208
Zitat von: Vize am 27 Mai 2016, 11:00:29
Hallo buennerbernd,

zeigt doch mal den kompletten buffer, ich seh in deinem code-Schnippel nix von "bewölkt"...

Gruß
Andreas

Der Buffer:


HTTP/1.0 200 OK Access-Control-Allow-Origin: * Content-Language: de-DE Content-Type: application/json;charset=UTF-8 X-EdgeConnect-MidMile-RTT: 6 X-EdgeConnect-Origin-MEX-Latency: 42 X-EdgeConnect-MidMile-RTT: 13 X-EdgeConnect-Origin-MEX-Latency: 42 X-EdgeConnect-MidMile-RTT: 8 X-EdgeConnect-Origin-MEX-Latency: 42 Cache-Control: public, max-age=275, s-maxage=599 Expires: Thu, 26 May 2016 20:49:42 GMT Date: Thu, 26 May 2016 20:45:07 GMT Content-Length: 18238 Connection: close {"metadata":{"language":"de-DE","transaction_id":"1464295207701:2094721218","version":"1","latitude":52.55,"longitude":13.08,"units":"m","expire_time_gmt":1464295807,"status_code":200},"forecasts":[{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464295500,"fcst_valid_local":"2016-05-26T22:45:00+0200","num":1,"day_ind":"N","temp":13,"dewpt":12,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Donnerstag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":91,"wspd":6,"wdir":298,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":37,"vis":16.0,"mslp":1016.53,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464296400,"fcst_valid_local":"2016-05-26T23:00:00+0200","num":2,"day_ind":"N","temp":13,"dewpt":12,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Donnerstag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":92,"wspd":6,"wdir":297,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":47,"vis":16.0,"mslp":1016.6,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464297300,"fcst_valid_local":"2016-05-26T23:15:00+0200","num":3,"day_ind":"N","temp":13,"dewpt":12,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Donnerstag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":93,"wspd":5,"wdir":298,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":46,"vis":16.0,"mslp":1016.6,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464298200,"fcst_valid_local":"2016-05-26T23:30:00+0200","num":4,"day_ind":"N","temp":13,"dewpt":12,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Donnerstag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":93,"wspd":5,"wdir":298,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":45,"vis":16.0,"mslp":1016.6,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464299100,"fcst_valid_local":"2016-05-26T23:45:00+0200","num":5,"day_ind":"N","temp":13,"dewpt":12,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Donnerstag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":94,"wspd":5,"wdir":299,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":43,"vis":16.0,"mslp":1016.6,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464300000,"fcst_valid_local":"2016-05-27T00:00:00+0200","num":6,"day_ind":"N","temp":13,"dewpt":12,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":95,"wspd":5,"wdir":299,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":42,"vis":16.0,"mslp":1016.6,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464300900,"fcst_valid_local":"2016-05-27T00:15:00+0200","num":7,"day_ind":"N","temp":13,"dewpt":12,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":95,"wspd":5,"wdir":299,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":40,"vis":16.0,"mslp":1016.61,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464301800,"fcst_valid_local":"2016-05-27T00:30:00+0200","num":8,"day_ind":"N","temp":13,"dewpt":12,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":95,"wspd":5,"wdir":299,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":37,"vis":16.0,"mslp":1016.61,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464302700,"fcst_valid_local":"2016-05-27T00:45:00+0200","num":9,"day_ind":"N","temp":13,"dewpt":12,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1650","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":95,"wspd":5,"wdir":299,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":35,"vis":16.0,"mslp":1016.62,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464303600,"fcst_valid_local":"2016-05-27T01:00:00+0200","num":10,"day_ind":"N","temp":13,"dewpt":12,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1650","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":95,"wspd":5,"wdir":299,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":32,"vis":16.0,"mslp":1016.62,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464304500,"fcst_valid_local":"2016-05-27T01:15:00+0200","num":11,"day_ind":"N","temp":13,"dewpt":12,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":93,"wspd":5,"wdir":300,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":37,"vis":16.0,"mslp":1016.62,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464305400,"fcst_valid_local":"2016-05-27T01:30:00+0200","num":12,"day_ind":"N","temp":13,"dewpt":11,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":91,"wspd":4,"wdir":300,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":42,"vis":16.0,"mslp":1016.61,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464306300,"fcst_valid_local":"2016-05-27T01:45:00+0200","num":13,"day_ind":"N","temp":13,"dewpt":11,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":89,"wspd":4,"wdir":301,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":47,"vis":16.0,"mslp":1016.61,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464307200,"fcst_valid_local":"2016-05-27T02:00:00+0200","num":14,"day_ind":"N","temp":13,"dewpt":11,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":88,"wspd":4,"wdir":302,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":52,"vis":16.0,"mslp":1016.6,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464308100,"fcst_valid_local":"2016-05-27T02:15:00+0200","num":15,"day_ind":"N","temp":13,"dewpt":11,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":88,"wspd":4,"wdir":300,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":53,"vis":16.0,"mslp":1016.63,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464309000,"fcst_valid_local":"2016-05-27T02:30:00+0200","num":16,"day_ind":"N","temp":13,"dewpt":11,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1600","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":89,"wspd":4,"wdir":299,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":54,"vis":16.0,"mslp":1016.65,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464309900,"fcst_valid_local":"2016-05-27T02:45:00+0200","num":17,"day_ind":"N","temp":13,"dewpt":11,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1650","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":90,"wspd":4,"wdir":297,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":55,"vis":16.0,"mslp":1016.68,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464310800,"fcst_valid_local":"2016-05-27T03:00:00+0200","num":18,"day_ind":"N","temp":13,"dewpt":11,"hi":13,"wc":13,"feels_like":13,"icon_extd":2900,"wxman":"wx1650","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":91,"wspd":4,"wdir":295,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":56,"vis":16.0,"mslp":1016.7,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464311700,"fcst_valid_local":"2016-05-27T03:15:00+0200","num":19,"day_ind":"N","temp":12,"dewpt":11,"hi":12,"wc":12,"feels_like":12,"icon_extd":2900,"wxman":"wx1650","icon_code":29,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Wolkig","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":91,"wspd":4,"wdir":292,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":59,"vis":16.0,"mslp":1016.7,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464312600,"fcst_valid_local":"2016-05-27T03:30:00+0200","num":20,"day_ind":"N","temp":12,"dewpt":11,"hi":12,"wc":12,"feels_like":12,"icon_extd":2700,"wxman":"wx1250","icon_code":27,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Stark bewölkt","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":0,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":92,"wspd":4,"wdir":289,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":63,"vis":16.0,"mslp":1016.7,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464313500,"fcst_valid_local":"2016-05-27T03:45:00+0200","num":21,"day_ind":"N","temp":12,"dewpt":11,"hi":12,"wc":12,"feels_like":12,"icon_extd":2700,"wxman":"wx1250","icon_code":27,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Stark bewölkt","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":1,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":93,"wspd":4,"wdir":286,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":67,"vis":16.0,"mslp":1016.7,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464314400,"fcst_valid_local":"2016-05-27T04:00:00+0200","num":22,"day_ind":"N","temp":12,"dewpt":11,"hi":12,"wc":12,"feels_like":12,"icon_extd":2700,"wxman":"wx1250","icon_code":27,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Stark bewölkt","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":1,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":93,"wspd":4,"wdir":283,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":71,"vis":16.0,"mslp":1016.7,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464315300,"fcst_valid_local":"2016-05-27T04:15:00+0200","num":23,"day_ind":"N","temp":12,"dewpt":11,"hi":12,"wc":12,"feels_like":12,"icon_extd":2700,"wxman":"wx1250","icon_code":27,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Stark bewölkt","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":2,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":93,"wspd":4,"wdir":282,"wdir_cardinal":"WNW","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":72,"vis":16.0,"mslp":1016.68,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464316200,"fcst_valid_local":"2016-05-27T04:30:00+0200","num":24,"day_ind":"N","temp":12,"dewpt":11,"hi":12,"wc":12,"feels_like":12,"icon_extd":2700,"wxman":"wx1250","icon_code":27,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Stark bewölkt","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":2,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":92,"wspd":4,"wdir":281,"wdir_cardinal":"W","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":73,"vis":16.0,"mslp":1016.65,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464317100,"fcst_valid_local":"2016-05-27T04:45:00+0200","num":25,"day_ind":"N","temp":12,"dewpt":11,"hi":12,"wc":12,"feels_like":12,"icon_extd":2700,"wxman":"wx1250","icon_code":27,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Stark bewölkt","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":3,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":92,"wspd":4,"wdir":280,"wdir_cardinal":"W","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":74,"vis":16.0,"mslp":1016.63,"uv_index_raw":0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464318000,"fcst_valid_local":"2016-05-27T05:00:00+0200","num":26,"day_ind":"D","temp":12,"dewpt":11,"hi":12,"wc":12,"feels_like":12,"icon_extd":2800,"wxman":"wx1250","icon_code":28,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Stark bewölkt","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":3,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":91,"wspd":4,"wdir":279,"wdir_cardinal":"W","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":75,"vis":16.0,"mslp":1016.6,"uv_index_raw":0.0,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464318900,"fcst_valid_local":"2016-05-27T05:15:00+0200","num":27,"day_ind":"D","temp":12,"dewpt":11,"hi":12,"wc":12,"feels_like":12,"icon_extd":2800,"wxman":"wx1250","icon_code":28,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Stark bewölkt","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":3,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":91,"wspd":4,"wdir":280,"wdir_cardinal":"W","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":77,"vis":16.0,"mslp":1016.65,"uv_index_raw":0.05,"uv_warning":0,"severity":1},{"class":"fod_short_range_fifteen_minute","expire_time_gmt":1464295807,"fcst_valid":1464319800,"fcst_valid_local":"2016-05-27T05:30:00+0200","num":28,"day_ind":"D","temp":12,"dewpt":11,"hi":12,"wc":12,"feels_like":12,"icon_extd":2800,"wxman":"wx1250","icon_code":28,"dow":"Freitag","phrase_12char":"","phrase_22char":"","phrase_32char":"Stark bewölkt","subphrase_pt1":"","subphrase_pt2":"","subphrase_pt3":"","pop":3,"precip_type":"rain","precip_rate":0.0,"snow_rate":0.0,"rh":90,"wspd":3,"wdir":282,"wdir_cardinal":"W","uv_desc":"Niedrig","uv_index":0,"gust":null,"clds":78,"vis":16.0,"mslp":1016.7,"uv_index_raw":0.04,"uv_warning":0,"severity":1}]}


In den Readings steht dann z.B.


forecasts_16_phrase_32char Stark bew�lkt


Die FHEM-Seite wird scheinbar in UTF-8 gerendert:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head root="/fhem">
<title>Home, Sweet Home</title>
<link rel="shortcut icon" href="/fhem/icons/favicon" />
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
...


Ich denke, dass die Readings einmal zu viel convertiert werden.

Gruß, buennerbernd.
Modulentwickler von KLF200 und KLF200Node

StefanStrobel

#209
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