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

Offline der-Lolo

  • Hero Member
  • *****
  • Beiträge: 1566
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #480 am: 03 November 2018, 17:27:13 »
So, nachdem ich den TimeOut auf 3 gesetzt habe funktioniert der Zugriff ohne weitere Log einträge...

Offline ch.eick

  • Jr. Member
  • **
  • Beiträge: 74
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #481 am: 20 November 2018, 14:58:38 »
Hallo zusammen.

Ich habe da mal wieder ein Problem mit dem Login und dem Handling der $sid

Der Ablauf sollte wie folgt sein:
http://192.168.178.28/data.txt?sid=$sid
  Der StromZaehler Kopf meldet sich mit dem Login Prompt

Nach meiner Definition wird die notwendige Anmeldung erkannt.
http://192.168.178.28/getSID.txt?pwd=MeinPasswort
  Es kommt die Rückmeldung mit der sid als 32 stelliger HEX Code

Die sid1IdRegex [0-9A-F].* habe ich online getestet und würde den 32 stelliger HEX Code auswählen.
Es wird in Data nur der 32 stelliger HEX Code vom StromZaehler Kopf geschickt.

Ob ich dieses Attribut benötige weiß ich nicht:
attr StromZaehler sid1ParseResponse 1

Nun sollte der Aufruf
http://192.168.178.28/data.txt?sid=$sid
wiederholt werden und um die sid ergänzt werden, was jedoch, wie im Log zu sehen ist nicht erfolgt.

Könnte mir hier eventuell jemand helfen?
Ich verwende die Version:
# $Id: 98_HTTPMOD.pm 17736 2018-11-12 19:42:35Z StefanStrobel

Viele Grüße
     Christian

defmod StromZaehler HTTPMOD http://192.168.178.28/data.txt?sid=$sid 0
attr StromZaehler userattr get01Name get01URL sid1IdRegex sid1ParseResponse:0,1 sid1URL
attr StromZaehler get01Name Strom_Status
attr StromZaehler get01URL http://192.168.178.28/data.txt?sid=$sid
attr StromZaehler httpVersion 1.1
attr StromZaehler reAuthRegex Melden Sie sich mit Ihrem Kennwort an
attr StromZaehler showBody 1
attr StromZaehler showError 1
attr StromZaehler sid1IdRegex [0-9A-F].*
attr StromZaehler sid1ParseResponse 1
attr StromZaehler sid1URL http://192.168.178.28/getSID.txt?pwd=MeinPasswort
attr StromZaehler verbose 5

Das FHEM Log:
2018.11.20 15:15:13 5: StromZaehler: get called with Strom_Status
2018.11.20 15:15:13 5: StromZaehler: get found option Strom_Status in attribute get01Name
2018.11.20 15:15:13 4: StromZaehler: get will now request Strom_Status, no optional value
2018.11.20 15:15:13 4: StromZaehler: AddToQueue adds get01, initial queue len: 0
2018.11.20 15:15:13 5: StromZaehler: AddToQueue adds type get01 to URL http://192.168.178.28/data.txt?sid=$sid, no data, no headers, retry 0
2018.11.20 15:15:13 5: StromZaehler: HandleSendQueue called, qlen = 1
2018.11.20 15:15:13 4: StromZaehler: HandleSendQueue sends request type get01 to URL http://192.168.178.28/data.txt?sid=$sid, No Data, No Header
timeout 2
2018.11.20 15:15:13 5: HttpUtils url=http://192.168.178.28/data.txt?sid=$sid
2018.11.20 15:15:13 5: HttpUtils request header:
GET /data.txt?sid=$sid HTTP/1.1
Host: 192.168.178.28
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2018.11.20 15:15:13 4: http://192.168.178.28/data.txt?sid=$sid: HTTP response code 200
2018.11.20 15:15:13 5: HttpUtils http://192.168.178.28/data.txt?sid=$sid: Got data, length: 1101
2018.11.20 15:15:13 5: HttpUtils response header:
HTTP/1.1 200 OK
Connection: close
Content-Type: text/html
Cache-Control: no-cache
2018.11.20 15:15:13 4: StromZaehler: Read callback: request type was get01 retry 0,
Body: <!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" xml:lang="de" lang="de">
<head>
<meta http-equiv="refresh" content="130">
<title>DvLIR</title>
<link href="device.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="shadow-one"><div id="shadow-two"><div id="shadow-three"><div id="shadow-four">
<div id="page">

<center><img src="device.gif" alt="Device"><br><br></center>

<div id="title"><div class="right">DvLIR v2.05</div><span id="hello">&nbsp;</span></div>

<div id="Bordernew">

<form method="post" action="login.htm" name="authenticate" id="authenticate">

<br>
<strong > Melden Sie sich mit Ihrem Kennwort an.</strong><br><br>
<p>
<label>Kennwort: </label>
&nbsp;&nbsp;&nbsp;&nbsp;<input Style="width:211px;" type="Password" name="pwd" value="" maxlength="19" ><br>
</p>
<p id="zero">

<button type="submit" id="btnredirect" >Anmelden</button>
</p>
<br>

</form>
</div>

</div></div></div></div></div>

</body>
</html>

2018.11.20 15:15:13 5: StromZaehler: ExtractSid called, context get, num 01
2018.11.20 15:15:13 5: StromZaehler: CheckAuth is checking buffer with ReAuthRegex Melden Sie sich mit Ihrem Kennwort an
2018.11.20 15:15:13 4: StromZaehler: CheckAuth decided new authentication required
2018.11.20 15:15:13 4: StromZaehler: Auth called with Steps: 1
2018.11.20 15:15:13 4: StromZaehler: AddToQueue adds auth1, initial queue len: 0, prio
2018.11.20 15:15:13 5: StromZaehler: AddToQueue prepends type auth1 to URL http://192.168.178.28/getSID.txt?pwd=MeinPasswort, no data, no headers, retry 0
2018.11.20 15:15:13 5: StromZaehler: HandleSendQueue called, qlen = 1
2018.11.20 15:15:13 5: StromZaehler: HandleSendQueue - minSendDelay not over, rescheduling
2018.11.20 15:15:13 4: StromZaehler: AddToQueue adds get01, initial queue len: 1
2018.11.20 15:15:13 5: StromZaehler: AddToQueue adds type get01 to URL http://192.168.178.28/data.txt?sid=$sid, no data, no headers, retry 1
2018.11.20 15:15:13 5: StromZaehler: HandleSendQueue called, qlen = 2
2018.11.20 15:15:13 5: StromZaehler: HandleSendQueue - minSendDelay not over, rescheduling
2018.11.20 15:15:13 4: StromZaehler: CheckAuth requeued request get01 after auth, retryCount 0 ...
2018.11.20 15:15:14 5: StromZaehler: HandleSendQueue called, qlen = 2
2018.11.20 15:15:14 4: StromZaehler: HandleSendQueue sends request type auth1 to URL http://192.168.178.28/getSID.txt?pwd=MeinPasswort, No Data, No Header
timeout 2
2018.11.20 15:15:14 5: HttpUtils url=http://192.168.178.28/getSID.txt?pwd=MeinPasswort
2018.11.20 15:15:14 5: HttpUtils request header:
GET /getSID.txt?pwd=MeinPasswort HTTP/1.1
Host: 192.168.178.28
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2018.11.20 15:15:14 4: http://192.168.178.28/getSID.txt?pwd=qgE9WFNW: HTTP response code 200
2018.11.20 15:15:14 5: HttpUtils http://192.168.178.28/getSID.txt?pwd=qgE9WFNW: Got data, length: 32
2018.11.20 15:15:14 5: HttpUtils response header:
HTTP/1.1 200 OK
Connection: close
Content-Type: text/plain
Cache-Control: no-cache
2018.11.20 15:15:14 4: StromZaehler: Read callback: request type was auth1 retry 0,
Body: 23CDE0758DA6C417D113C5920122A9F8                               <================ :-)
2018.11.20 15:15:14 5: StromZaehler: ExtractSid called, context sid, num 1
2018.11.20 15:15:14 4: StromZaehler: ExtractSid set sid to              <================ :-(
2018.11.20 15:15:15 5: StromZaehler: HandleSendQueue called, qlen = 1
2018.11.20 15:15:15 4: StromZaehler: HandleSendQueue sends request type get01 to URL http://192.168.178.28/data.txt?sid=$sid, No Data, No Header
timeout 2
2018.11.20 15:15:15 5: HttpUtils url=http://192.168.178.28/data.txt?sid=$sid   <======== :-(
2018.11.20 15:15:15 5: HttpUtils request header:
GET /data.txt?sid=$sid HTTP/1.1
Host: 192.168.178.28
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2018.11.20 15:15:15 4: http://192.168.178.28/data.txt?sid=$sid: HTTP response code 200
2018.11.20 15:15:15 5: HttpUtils http://192.168.178.28/data.txt?sid=$sid: Got data, length: 1101
2018.11.20 15:15:15 5: HttpUtils response header:
HTTP/1.1 200 OK
Connection: close
Content-Type: text/html
Cache-Control: no-cache
2018.11.20 15:15:15 4: StromZaehler: Read callback: request type was get01 retry 1,
Body: <!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" xml:lang="de" lang="de">
<head>
<meta http-equiv="refresh" content="130">
<title>DvLIR</title>
<link href="device.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="shadow-one"><div id="shadow-two"><div id="shadow-three"><div id="shadow-four">
<div id="page">

<center><img src="device.gif" alt="Device"><br><br></center>

<div id="title"><div class="right">DvLIR v2.05</div><span id="hello">&nbsp;</span></div>

<div id="Bordernew">

<form method="post" action="login.htm" name="authenticate" id="authenticate">

<br>
<strong > Melden Sie sich mit Ihrem Kennwort an.</strong><br><br>
<p>
<label>Kennwort: </label>
&nbsp;&nbsp;&nbsp;&nbsp;<input Style="width:211px;" type="Password" name="pwd" value="" maxlength="19" ><br>
</p>
<p id="zero">

<button type="submit" id="btnredirect" >Anmelden</button>
</p>
<br>

</form>
</div>

</div></div></div></div></div>

</body>
</html>

2018.11.20 15:15:15 5: StromZaehler: ExtractSid called, context get, num 01
2018.11.20 15:15:15 5: StromZaehler: CheckAuth is checking buffer with ReAuthRegex Melden Sie sich mit Ihrem Kennwort an
2018.11.20 15:15:15 4: StromZaehler: CheckAuth decided new authentication required
2018.11.20 15:15:15 4: StromZaehler: Authentication still required but no retries left - did last authentication fail?
2018.11.20 15:15:15 5: StromZaehler: ExtractReading for context get, num 01 - no individual parse definition
2018.11.20 15:15:15 5: StromZaehler: Read starts parsing response to get01 with defined readings:
2018.11.20 15:15:15 3: StromZaehler: Read response to get01 didn't match any Reading
2018.11.20 15:15:15 5: StromZaehler: HandleSendQueue called, qlen = 0
« Letzte Änderung: 20 November 2018, 16:06:33 von ch.eick »
FHEM unter Solaris 11.3 nonglobal Zone zum Testen.
Raspberry PI 2; CUNX; Eltako FSB61NP_230V; 230V zentral verschaltet; fronthem; fhem/ftui; SmartVisu

Offline ch.eick

  • Jr. Member
  • **
  • Beiträge: 74
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #482 am: 21 November 2018, 10:15:30 »
Hallo zusammen,

ich habe mal eine zusätzliche Log Message im Modul eingefügt und dann folgendes festgestellt.
# Extract SID
# called from _Read
###################################
sub HTTPMOD_ExtractSid($$$$)
{
    my ($hash, $buffer, $context, $num) = @_;
    my $name = $hash->{NAME};

    Log3 $name, 5, "$name: ExtractSid called, context $context, num $num";
    my $regex   = AttrVal($name, "idRegex", "");
    my $json    = AttrVal($name, "idJSON", "");
    my $xpath   = AttrVal($name, "idXPath", "");
    my $xpathst = AttrVal($name, "idXPath-Strict", "");

    $regex   = HTTPMOD_GetFAttr($name, $context, $num, "IDRegex", $regex);
    $regex   = HTTPMOD_GetFAttr($name, $context, $num, "IdRegex", $regex);
    Log3 $name, 5, "$name: ExtractSid called, regex $regex";                                 < ========= Ich möchte die Regex sehen



Bisherige Regex:
2018.11.21 09:57:12 5: HttpUtils http://192.168.178.28/getSID.txt?pwd=MeinPasswort: Got data, length: 32
2018.11.21 09:57:12 5: HttpUtils response header:
HTTP/1.1 200 OK
Connection: close
Content-Type: text/plain
Cache-Control: no-cache
2018.11.21 09:57:12 4: StromZaehler: Read callback: request type was auth1 retry 0,
Body: 40304CE3E4DAB2D6278F94EA8E692420
2018.11.21 09:57:12 5: StromZaehler: ExtractSid called, context sid, num 1
2018.11.21 09:57:12 5: StromZaehler: ExtractSid called, regex [0-9A-F].*                   <============== Das war die bisherige Regex
2018.11.21 09:57:12 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_HTTPMOD.pm line 2378.     <==== :-(
2018.11.21 09:57:12 4: StromZaehler: ExtractSid set sid to
2018.11.21 09:57:13 5: StromZaehler: HandleSendQueue called, qlen = 1
2018.11.21 09:57:13 4: StromZaehler: HandleSendQueue sends request type get01 to URL http://192.168.178.28/data.txt?sid=$sid, No Data, No Header

Neue Regex:
2018.11.21 09:58:49 5: HttpUtils http://192.168.178.28/getSID.txt?pwd=qgE9WFNW: Got data, length: 32
2018.11.21 09:58:49 5: HttpUtils response header:
HTTP/1.1 200 OK
Connection: close
Content-Type: text/plain
Cache-Control: no-cache
2018.11.21 09:58:49 4: StromZaehler: Read callback: request type was auth1 retry 0,
Body: 2CEB86EA9C4DBFF2232A89F877F5BA7B
2018.11.21 09:58:49 5: StromZaehler: ExtractSid called, context sid, num 1
2018.11.21 09:58:49 5: StromZaehler: ExtractSid called, regex ([0-9A-F].*)                      <============== Neue Regex als Gruppe
2018.11.21 09:58:49 4: StromZaehler: ExtractSid set sid to 1.1 200 OK                            <============== Meine SID steht leider nicht im Header, sondern im Body
2018.11.21 09:58:50 5: StromZaehler: HandleSendQueue called, qlen = 1
2018.11.21 09:58:50 4: StromZaehler: HandleSendQueue sends request type get02 to URL http://192.168.178.28/info.txt?sid=1.1 200 OK        <====== schon mal gut

Ich werde dann jetzt mal im Forum suchen. Wenn jemand jedoch einen Tipp hat, wie ich die SID aus dem Body, zur richtigen Zeit in die SID Variable bekomme, dann ist alles herzlich willkommen.

Gruß
   Christian
« Letzte Änderung: 21 November 2018, 10:17:10 von ch.eick »
FHEM unter Solaris 11.3 nonglobal Zone zum Testen.
Raspberry PI 2; CUNX; Eltako FSB61NP_230V; 230V zentral verschaltet; fronthem; fhem/ftui; SmartVisu

Offline ch.eick

  • Jr. Member
  • **
  • Beiträge: 74
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #483 am: 21 November 2018, 10:34:37 »
Na geht doch :-)

Ich habe die Lösung nun gefunden.

- Es wird natürlich Header und Body durchsucht.
- Wichtig ist jedoch, dass natürlich der erste Treffer genommen wird, was in meinem Fall die erste Zeile im Header ist.
- Die Regex darf nicht zu allgemein gewählt sein, was in diesem Fall schon etwas schwierig ist, da die SID im Body keine Kennzeichnung hat
  und somit einfach nur ein 32 stelliger HEX String ist.

Aus diesem Grung lautet die Regex nun wie folgt:
([0-9A-F]{32})
Die entspricht allen Ziffern oder die Großbuchstaben von A bis F in einer Folge von 32 Stellen.

Das Ergebnis sieht dann so aus:
2018.11.21 10:22:17 5: HttpUtils http://192.168.178.28/getSID.txt?pwd=MeinPasswort: Got data, length: 32
2018.11.21 10:22:17 5: HttpUtils response header:
HTTP/1.1 200 OK
Connection: close
Content-Type: text/plain
Cache-Control: no-cache
2018.11.21 10:22:17 4: StromZaehler: Read callback: request type was auth1 retry 0,
Body: BD69979CB0F0CC430C000CC3ACE8D67D
2018.11.21 10:22:17 5: StromZaehler: ExtractSid called, context sid, num 1
2018.11.21 10:22:17 5: StromZaehler: ExtractSid called, regex ([0-9A-F]{32})
2018.11.21 10:22:17 4: StromZaehler: ExtractSid set sid to BD69979CB0F0CC430C000CC3ACE8D67D
2018.11.21 10:22:18 5: StromZaehler: HandleSendQueue called, qlen = 1
2018.11.21 10:22:18 4: StromZaehler: HandleSendQueue sends request type get02 to URL http://192.168.178.28/info.txt?sid=BD69979CB0F0CC430C000CC3ACE8D67D, No Data, No Header

Vielen Dank für's mitlesen und die Animation es selber lösen zu wollen. Manchmal muss man etwas schreiben und zusammenfassen, um es dann selbst zu verstehen.
Ich hoffe dass es auch Euch helfen wird.

Grüße
     Christian
FHEM unter Solaris 11.3 nonglobal Zone zum Testen.
Raspberry PI 2; CUNX; Eltako FSB61NP_230V; 230V zentral verschaltet; fronthem; fhem/ftui; SmartVisu

Offline buennerbernd

  • Developer
  • Full Member
  • ****
  • Beiträge: 132
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #484 am: 29 November 2018, 09:18:06 »
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

Besser spät, als nie...
Ich habe erst gestern deine Anwort bemerkt.
Kappt! Danke  :)

Viele Grüße,
Stefan.

Offline xulodaZ

  • New Member
  • *
  • Beiträge: 28
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #485 am: 24 Dezember 2018, 19:01:07 »
Hallo FHEMler,

weiß hier jemand, ob ich Timeout-Fehlermeldungen per Attribut oder so ausschalten kann?
Würde nur ungerne die entsprechende Codezeile im Modul auskommentieren.

Der Grund ist, dass ich ein Internetradio besitze welches im Standby die W-LAN-Verbindung verliert und ich dies jedoch regelmäßig mit HTTPMOD polle.

Danke im Voraus und schönen Heiligabend noch!

EDIT: Hab im Modul die Loglevels angeschaut, ich musste nur das Attribut "verbose" auf 2 setzen. - Fehler sind nun weg.
« Letzte Änderung: 24 Dezember 2018, 22:32:03 von Zedolurx »

Offline frank

  • Hero Member
  • *****
  • Beiträge: 7184
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #486 am: 27 Dezember 2018, 16:52:47 »
warum verhinderst du das polling nicht, wenn das radio offline ist?
FHEM: 5.8(SVN) => Pi3(jessie)
IO: CUL433_V3.3(1.00.01B53)|CUL868_V3.3(1.58)|HMLAN(0.965)|HMUSB2(0.967)|HMUART(1.4.1)
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

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1058
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #487 am: 27 Dezember 2018, 21:52:38 »
Hallo,

anbei eine neue Version, die setExtensions eingebaut hat und daher auch attrTemplate unterstützt.
Falls es jemand testen möchte, muss er allerdings erst noch Templates definieren, sonst sieht man davon nichts.

Gruss
   Stefan


Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5110
  • Maintainer: mqtt2.template, httpmod.template
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #488 am: 28 Dezember 2018, 06:45:07 »
Hallo zusammen,

vorab herzlichen Dank für's Aufgreifen der Anregung!

Anbei ein erstes template für clever-tanken.de, das funktioniert mit der HTTPMOD-Version aus dem vorigen Thread. Einfach (in der Regel) nach /opt/fhem/FHEM/lib/AttrTemplate kopieren, (Rechte beachten).

templates sind dazu gedacht, funktionierende Konfigurationen auf einfachem Weg für die Allgemeinheit nutzbar zu machen, ohne dass man sich das notwendige Wissen irgendwo aus den Untiefen des Forums oder sonstwo zusammensuchen muss. Weiter kann es hilfreich sein, auf das eine oder andere Muster zugreifen zu können, um daraus was neues basteln zu können ;) .

Wenn jemand weitere Vorschläge für templates hat, bitte einfach melden und am besten eine RAW-Definition (oder ein "list -r <device>") mitliefern :) . Ansonsten gilt das hier geschriebene sinngemäß, ich übernehme gerne für's erste das Hochladen ins svn, wäre aber auch nicht böse, wenn sich jemand anderes meldet...

@StefanStrobel: Was als Ergänzung nett wäre: Wenn als Attribut "model" verwendbar wäre; damit ist dann in den FHEM-Statistiken nachvollziehbar, ob das feature jemand nutzt :) .

Gruß und viel Spaß mit den templates, ein paar weitere habe ich noch eingesammelt, aber noch nicht getestet, update folgt.

Beta-User
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | CUL_HM: div. Hardware mit VCCU | MySensors seriell (2.3.1@RS485, daran div. Sensoren usw., u.a. DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1058
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #489 am: 28 Dezember 2018, 09:31:27 »
Hier mit zusätzlichem Attribut "model".

Gruss
   Stefan

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5110
  • Maintainer: mqtt2.template, httpmod.template
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #490 am: 28 Dezember 2018, 09:56:43 »
 :)
Dann mal hier eine erweiterte Sammlung für "model", neben Spritpreis ist aktuell drin:
- ORF-Wetter
- homebridge-videodoorbell
- RESOL Solaranlage
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | CUL_HM: div. Hardware mit VCCU | MySensors seriell (2.3.1@RS485, daran div. Sensoren usw., u.a. DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline ch.eick

  • Jr. Member
  • **
  • Beiträge: 74
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #491 am: 28 Dezember 2018, 15:03:46 »
Hallo zusammen.
Nach langer Zeit habe ich mein Thema mit der Vallox KWL wieder aufgenommen. Ich habe neu begonnen den http Ablauf mit Burp zu analysieren, komme jedoch beim Login nicht weiter. Mein Versuch der Steuerung der Vallox KWL ziehlt auf die Kommunikation mit der Vallox Cloud. Der Versuch direkt die KWL mit http anzusprechen ist leider gescheitert.
Hier zu beginn ein funktionierendes Beispiel aus dem Burp repeater:
POST
POST /login HTTP/1.1
Host: cloud.vallox.com
Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: 5jn4kNMz-u__zFY3-oK8LbVZM70cxLEtjdNc
Cookie: _csrf=s%3AbYuUftm2hMBM5dwB5lIHXkJH.kVEfDWomdNPO2DIOucEjX8BM9543%2FjHDtR0hXlylAWI; lang=de; _csrfToken=5jn4kNMz-u__zFY3-oK8LbVZM70cxLEtjdNc; connect.sid=s%3AJQk9_2cWuleAiThm_C2jkwIoEoIRxrh0.ZUcSrQXFs%2BZU%2B%2Fci0xs2JCOecjHpLM7Xg4pCxXmGoWM
Content-Length: 45

username=<Username>&password=<Passwort>
Response
HTTP/1.1 200 OK
Vary: X-HTTP-Method-Override, Accept-Encoding
set-cookie: lang=de; Max-Age=604800; Path=/; Expires=Fri, 04 Jan 2019 13:36:34 GMT
set-cookie: _csrfToken=EPW51Eyj-o0LlTNk9TVWOzyj-dGan1b5kZ7g; Path=/
set-cookie: connect.sid=s%3AEGzl75NUcx4unsQwt5lQhfgPJtuy1bkD.NtBmyxBh%2B9cuIIXzQ%2FnYd%2BC2UMztgOBupIG1N8m0X1w; Path=/; HttpOnly
X-Frame-Options: DENY
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 74
ETag: W/"4a-iFjmKaXUGUWpK3TUuWr9AQ"
Date: Fri, 28 Dec 2018 13:36:34 GMT
Connection: keep-alive

{"success":true,"errors":[],"errfor":{},"message":"","nexturl":"/account"}
Hierbei ist die Ausgabe "success":true die positive Rückmeldung.

Als nächstes kann man dann z.B. eine log Abfrage mit "all" starten:
GET /api/logs/432C7775-3FDA-430A-920A-97B591B5F2C4/all HTTP/1.1
Host: cloud.vallox.com
x-csrf-token: 5jn4kNMz-u__zFY3-oK8LbVZM70cxLEtjdNc
Cookie: _csrf=s%3AbYuUftm2hMBM5dwB5lIHXkJH.kVEfDWomdNPO2DIOucEjX8BM9543%2FjHDtR0hXlylAWI; lang=de; _csrfToken=EPW51Eyj-o0LlTNk9TVWOzyj-dGan1b5kZ7g; connect.sid=s%3AEGzl75NUcx4unsQwt5lQhfgPJtuy1bkD.NtBmyxBh%2B9cuIIXzQ%2FnYd%2BC2UMztgOBupIG1N8m0X1w
Content-Length: 6
Dann bekommt man solch eine Ausgabe, die ich im Datenteil gekürzt habe:
HTTP/1.1 200 OK
set-cookie: lang=de; Max-Age=604800; Path=/; Expires=Fri, 04 Jan 2019 13:39:51 GMT
set-cookie: _csrfToken=oID16ior-Op6S0El6zMbEMNGD64y6VhfEC00; Path=/
set-cookie: connect.sid=s%3AEGzl75NUcx4unsQwt5lQhfgPJtuy1bkD.NtBmyxBh%2B9cuIIXzQ%2FnYd%2BC2UMztgOBupIG1N8m0X1w; Path=/; HttpOnly
X-Frame-Options: DENY
X-Powered-By: Express
Cache-Control: no-cache, must-revalidate
Content-Type: application/json; charset=utf-8
Content-Length: 1819471
ETag: W/"1bc34f-37Y/k7f9OdoTLiRBYO+pqw"
Vary: Accept-Encoding
Date: Fri, 28 Dec 2018 13:39:52 GMT
Connection: keep-alive

{"errors":null,"data":[["2017-12-28T13:46:00.000Z",20,8,5,17,0,58],["2017-12-28T13:56:00.000Z",20,8,5,17,0,57],["2017-12-28T14:06:00.000Z",20,8,5,17,0,57],["2017-12-28T14:16:00.000Z",20,8,5,17,0,57],["2017-12-28T14:26:00.000Z",20,8,5,17,0,57],["2017-12-28T14:36:00.000Z",20,8,5,17,0,56],["2017-12-28T14:46:00.000Z",20,8,5,17,0,57],["2017-12-28T14:56:00.000Z",20,8,5,17,0,57],["2017-12-28T15:06:00.000Z",20,7,4,17,0,56],["2017-12-28T15:16:00.000Z",20,7,4,17,0,56],

snip

["2018-12-28T12:12:00.000Z",20,6,1,19,0,54],["2018-12-28T12:22:00.000Z",20,6,1,19,0,54],["2018-12-28T12:32:00.000Z",20,6,1,18,0,54]]}

Soweit so gut und nun meine HTTPMOD Konfiguration:
defmod vallox_cloud HTTPMOD https://cloud.vallox.com:443/login 0

attr vallox_cloud httpVersion 1.1
attr vallox_cloud enableCookies 1
attr vallox_cloud handleRedirects 1

attr vallox_cloud queueDelay 3
attr vallox_cloud showBody 1
attr vallox_cloud showError 1
attr vallox_cloud timeout 5
attr vallox_cloud verbose 5

attr vallox_cloud get01Name KWL_All
attr vallox_cloud get01URL https://cloud.vallox.com:443/api/logs/432C7775-3FDA-430A-920A-97B591B5F2C4/all

attr vallox_cloud getHeader1 X-XSRF-TOKEN: 5jn4kNMz-u__zFY3-oK8LbVZM70cxLEtjdNc

# Für das Login
attr vallox_cloud reAuthRegex loginController
attr vallox_cloud sid1Data username=<Username>&password=<Passwort>
attr vallox_cloud sid1Header1 Referer: https://cloud.vallox.com/
attr vallox_cloud sid1Header2 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr vallox_cloud sid1Header3 X-XSRF-TOKEN: 5jn4kNMz-u__zFY3-oK8LbVZM70cxLEtjdNc
attr vallox_cloud sid1URL https://cloud.vallox.com/login

Wenn ich nun ein "get vallox_cloud KWL_Status" aufrufe kommen folgende Log Meldungen:
2018.12.28 14:57:19 5: vallox_cloud: get called with KWL_Status
2018.12.28 14:57:19 5: vallox_cloud: get found option KWL_Status in attribute get02Name
2018.12.28 14:57:19 4: vallox_cloud: get will now request KWL_Status, no optional value
2018.12.28 14:57:19 4: vallox_cloud: AddToQueue adds get02, initial queue len: 0
2018.12.28 14:57:19 5: vallox_cloud: AddToQueue adds type get02 to URL https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4?cb=1546002433784, no data, header Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4, retry 0
2018.12.28 14:57:19 5: vallox_cloud: HandleSendQueue called, qlen = 1
2018.12.28 14:57:19 5: vallox_cloud: HandleSendQueue is using Cookie _csrf with path  and Value s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc (key _csrf;, destination path is /api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4?cb=1546002433784)
2018.12.28 14:57:19 5: vallox_cloud: HandleSendQueue is using Cookie _csrfToken with path  and Value V2XGC8dY-ZoWS3v93x1E8x1QZrLs1UXs5yDI (key _csrfToken;, destination path is /api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4?cb=1546002433784)
2018.12.28 14:57:19 5: vallox_cloud: HandleSendQueue is using Cookie connect.sid with path  and Value s%3ALvzl30GcNr-1WMpDNeVGuOchS51Ebcl4.mcGDdZZ0jERK5bk0yfOpDaTXLeG6nd40y2ImuCHmjc4 (key connect.sid;, destination path is /api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4?cb=1546002433784)
2018.12.28 14:57:19 5: vallox_cloud: HandleSendQueue is using Cookie lang with path  and Value en (key lang;, destination path is /api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4?cb=1546002433784)
2018.12.28 14:57:19 5: vallox_cloud: HandleSendQueue is adding Cookie header: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=V2XGC8dY-ZoWS3v93x1E8x1QZrLs1UXs5yDI; connect.sid=s%3ALvzl30GcNr-1WMpDNeVGuOchS51Ebcl4.mcGDdZZ0jERK5bk0yfOpDaTXLeG6nd40y2ImuCHmjc4; lang=en
2018.12.28 14:57:19 4: vallox_cloud: HandleSendQueue sends request type get02 to URL https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4?cb=1546002433784, No Data,
header: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=V2XGC8dY-ZoWS3v93x1E8x1QZrLs1UXs5yDI; connect.sid=s%3ALvzl30GcNr-1WMpDNeVGuOchS51Ebcl4.mcGDdZZ0jERK5bk0yfOpDaTXLeG6nd40y2ImuCHmjc4; lang=en
timeout 5
2018.12.28 14:57:19 5: HttpUtils url=https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4?cb=1546002433784
2018.12.28 14:57:19 4: IP: cloud.vallox.com -> 194.111.216.21
2018.12.28 14:57:20 5: HttpUtils request header:
GET /api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4?cb=1546002433784 HTTP/1.1
Host: cloud.vallox.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=V2XGC8dY-ZoWS3v93x1E8x1QZrLs1UXs5yDI; connect.sid=s%3ALvzl30GcNr-1WMpDNeVGuOchS51Ebcl4.mcGDdZZ0jERK5bk0yfOpDaTXLeG6nd40y2ImuCHmjc4; lang=en
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2018.12.28 14:57:20 4: https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4?cb=1546002433784: HTTP response code 302
2018.12.28 14:57:20 5: HttpUtils https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4?cb=1546002433784: Got data, length: 23
2018.12.28 14:57:20 5: HttpUtils response header:
HTTP/1.1 302 Found
set-cookie: lang=en; Max-Age=604800; Path=/; Expires=Fri, 04 Jan 2019 13:57:21 GMT
set-cookie: _csrfToken=VepUHVO7-Yef8SyniTCIJg4hcOJLRhQ8ggkk; Path=/
set-cookie: connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; Path=/; HttpOnly
X-Frame-Options: DENY
X-Powered-By: Express
X-Auth-Required: true
Location: /
Vary: Accept, Accept-Encoding
Content-Type: text/plain; charset=utf-8
Content-Length: 23
Date: Fri, 28 Dec 2018 13:57:21 GMT
Connection: close
2018.12.28 14:57:20 4: vallox_cloud: Read callback: request type was get02 retry 0,
Body: Found. Redirecting to /
2018.12.28 14:57:20 5: vallox_cloud: GetCookies is looking for Cookies
2018.12.28 14:57:20 4: vallox_cloud: GetCookies parsed Cookie: lang Wert en Rest Max-Age=604800; Path=/; Expires=Fri, 04 Jan 2019 13:57:21 GMT
2018.12.28 14:57:20 4: vallox_cloud: GetCookies parsed Cookie: _csrfToken Wert VepUHVO7-Yef8SyniTCIJg4hcOJLRhQ8ggkk Rest Path=/
2018.12.28 14:57:20 4: vallox_cloud: GetCookies parsed Cookie: connect.sid Wert s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg Rest Path=/; HttpOnly
2018.12.28 14:57:20 5: vallox_cloud: ExtractSid called, context get, num 02
2018.12.28 14:57:20 4: vallox_cloud: checking for redirects, code=302, ignore=0
2018.12.28 14:57:20 4: vallox_cloud: https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4?cb=1546002433784: Redirect (1) to https://cloud.vallox.com:443/
2018.12.28 14:57:20 4: vallox_cloud: AddToQueue adds get02, initial queue len: 0, prio
2018.12.28 14:57:20 5: vallox_cloud: AddToQueue prepends type get02 to URL https://cloud.vallox.com:443/, no data, header Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4, retry 0
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue called, qlen = 1
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie _csrf with path  and Value s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc (key _csrf;, destination path is /)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie _csrfToken with path  and Value VepUHVO7-Yef8SyniTCIJg4hcOJLRhQ8ggkk (key _csrfToken;, destination path is /)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie connect.sid with path  and Value s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg (key connect.sid;, destination path is /)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie lang with path  and Value en (key lang;, destination path is /)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is adding Cookie header: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=VepUHVO7-Yef8SyniTCIJg4hcOJLRhQ8ggkk; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
2018.12.28 14:57:20 4: vallox_cloud: HandleSendQueue sends request type get02 to URL https://cloud.vallox.com:443/, No Data,
header: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=VepUHVO7-Yef8SyniTCIJg4hcOJLRhQ8ggkk; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
timeout 5
2018.12.28 14:57:20 5: HttpUtils url=https://cloud.vallox.com:443/
2018.12.28 14:57:20 4: IP: cloud.vallox.com -> 194.111.216.21
2018.12.28 14:57:20 5: HttpUtils request header:
GET / HTTP/1.1
Host: cloud.vallox.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=VepUHVO7-Yef8SyniTCIJg4hcOJLRhQ8ggkk; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2018.12.28 14:57:20 4: https://cloud.vallox.com:443/: HTTP response code 200
2018.12.28 14:57:20 5: HttpUtils https://cloud.vallox.com:443/: Got data, length: 4169
2018.12.28 14:57:20 5: HttpUtils response header:
HTTP/1.1 200 OK
Set-Cookie: lang=en; Max-Age=604800; Path=/; Expires=Fri, 04 Jan 2019 13:57:22 GMT
Set-Cookie: _csrfToken=zV0aKTaS-5uGjnLFjHc1Bl6T7lUPnZvgmyz0; Path=/
X-Frame-Options: DENY
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
ETag: W/"1049-UbjnUEcK4sCkOD8a4iXojg"
Vary: Accept-Encoding
Content-Encoding: gzip
Date: Fri, 28 Dec 2018 13:57:22 GMT
Connection: close
Transfer-Encoding: chunked
2018.12.28 14:57:20 4: vallox_cloud: Read callback: request type was get02 retry 0,
Body: <!DOCTYPE html><html ng-app="CloudApp"><head><title>MyVallox Cloud</title><!--   Created by ilkka.salminen on 23/09/14.--><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="/layouts/core.min.css?undefined"><!--link(rel='stylesheet', href='/layouts/core.css?#{cacheBreaker}')--><link rel="stylesheet" href="/views/index.min.css?undefined"></head><body><!--Created by ilkka.salminen on 26/09/14.--><div class="header"><div class="row"><div class="logo-always"><img src="/media/logo.png"></div></div></div><div class="main-content"><div class="section demo-area"><div class="row middle"><div class="col-xs-6"><p>Try demo version of MyVallox Cloud</p></div><div class="col-xs-6"><a href="https://cloud.vallox.com:8080/" class="btn btn-block btn-primary">Demo</a></div></div></div><div class="main-image"><div id="main-carousel" data-ride="carousel" class="carousel slide"><ol class="carousel-indicators"><li data-target="#main-carousel" data-slide-to="0" class="active"></li><li data-target="#main-carousel" data-slide-to="1"></li><li data-target="#main-carousel" data-slide-to="2"></li></ol><div role="listbox" class="carousel-inner"><div class="item active"><img src="/media/MyValloxKuvakaruselliKuvatPlain.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>EASY VENTILATION CONTROL</h3>Register your MyVallox ventilation unit with the cloud service and control the ventilation of your home anywhere</div></div></div><div class="item"><img src="/media/MyValloxKuvakaruselliKuvatPlain2.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>HOME OF FRESH AIR</h3>Vallox keeps the indoor air fresh and pure</div></div></div><div class="item"><img src="/media/MyValloxKuvakaruselliKuvatPlain3.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>GOOD VENTILATION IS AN INVESTMENT IN WELL-BEING</h3>and the best insurance for your home</div></div></div></div></div><!--#mobile-titleimageimg(src='/media/MyValloxKuvakaruselliKuvatPlain3.jpg')--></div><div ng-controller="loginController" ng-keypress="enterKey($event)" class="login-area section"><h1>Log in</h1><div ng-show="errors" ng-repeat="error in errors" class="alerts"><div class="alert alert-danger alert-dismissable"><button type="button" data-dismiss="alert" class="close">&times;</button>{{error}}</div></div><form><div class="row"><div class="email-input col-sm-5"><input type="email" placeholder="Email" ng-model="email"></div><div class="password-input col-sm-5"><input type="password" placeholder="Password" ng-model="password"></div><div class="login-buttons col-sm-2"><div class="login-button"><div class="button"><button type="submit" ng-click="login()" class="btn btn-block btn-primary">Log in</button></div></div></div></div></form><div class="extra-row"><a href="/login/forgot/">Forgot your password?</a></div></div><div class="firmware section"><h1>Latest firmware</h1><div class="row"><div class="col-xs-1">v1.8.8</div><div class="col-xs-4"><a href="http://cloud.vallox.com/changelog.txt" target="_blank">Firmware change log</a></div><div class="col-xs-4"><!--a(href='http://cloud.vallox.com/instructions.txt', target="_blank") #{strings.firmware_instructions_link}--></div><div class="col-xs-3"><a href="http://cloud.vallox.com/HSWUPD.BIN" class="btn btn-block btn-primary">Download</a></div></div></div></div><div class="clearfix"></div><!--#debug--><!--Created by ilkka.salminen on 03/02/15.--><div class="cloud-footer"><div class="footer-logo"><img src="/media/logo_sq.png" alt="logo" class="img-responsive"></div><div class="footer-content"><div class="row"><div class="about col-sm-4"><a href="http://www.vallox.com/" target="_blank">About Vallox</a><br><a href="http://www.vallox.com/" target="_blank">Help</a></div><div class="legal col-sm-4"><a href="/terms">Terms and conditions</a><br><a href="/privacy">Privacy policy</a></div><div class="copyright col-sm-4">&copy; Vallox 2018</div></div></div></div><script src="/layouts/core.min.js"></script><script src="/views/backend.js"></script><script src="/views/index.js"></script><script src="/vendor/bootstrap/js/carousel.js"></script></body></html>
2018.12.28 14:57:20 5: vallox_cloud: GetCookies is looking for Cookies
2018.12.28 14:57:20 4: vallox_cloud: GetCookies parsed Cookie: lang Wert en Rest Max-Age=604800; Path=/; Expires=Fri, 04 Jan 2019 13:57:22 GMT
2018.12.28 14:57:20 4: vallox_cloud: GetCookies parsed Cookie: _csrfToken Wert zV0aKTaS-5uGjnLFjHc1Bl6T7lUPnZvgmyz0 Rest Path=/
2018.12.28 14:57:20 5: vallox_cloud: ExtractSid called, context get, num 02
2018.12.28 14:57:20 4: vallox_cloud: checking for redirects, code=200, ignore=0
2018.12.28 14:57:20 4: vallox_cloud: no redirects to handle
2018.12.28 14:57:20 5: vallox_cloud: CheckAuth is checking buffer with ReAuthRegex loginController
2018.12.28 14:57:20 4: vallox_cloud: CheckAuth decided new authentication required
2018.12.28 14:57:20 4: vallox_cloud: Auth called with Steps: 1
2018.12.28 14:57:20 4: vallox_cloud: AddToQueue adds auth1, initial queue len: 0, prio
2018.12.28 14:57:20 5: vallox_cloud: AddToQueue prepends type auth1 to URL https://cloud.vallox.com/login, data username=<Username>&password=<Passwort>, header Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: 5jn4kNMz-u__zFY3-oK8LbVZM70cxLEtjdNc, retry 0
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue called, qlen = 1
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie _csrf with path  and Value s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc (key _csrf;, destination path is /login)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie _csrfToken with path  and Value zV0aKTaS-5uGjnLFjHc1Bl6T7lUPnZvgmyz0 (key _csrfToken;, destination path is /login)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie connect.sid with path  and Value s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg (key connect.sid;, destination path is /login)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie lang with path  and Value en (key lang;, destination path is /login)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is adding Cookie header: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=zV0aKTaS-5uGjnLFjHc1Bl6T7lUPnZvgmyz0; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
2018.12.28 14:57:20 4: vallox_cloud: HandleSendQueue sends request type auth1 to URL https://cloud.vallox.com/login,
data: username=<Username>&password=<Passwort>,
header: Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: 5jn4kNMz-u__zFY3-oK8LbVZM70cxLEtjdNc
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=zV0aKTaS-5uGjnLFjHc1Bl6T7lUPnZvgmyz0; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
timeout 5
2018.12.28 14:57:20 5: HttpUtils url=https://cloud.vallox.com/login
2018.12.28 14:57:20 4: IP: cloud.vallox.com -> 194.111.216.21
2018.12.28 14:57:20 4: vallox_cloud: AddToQueue adds get02, initial queue len: 0
2018.12.28 14:57:20 5: vallox_cloud: AddToQueue adds type get02 to URL https://cloud.vallox.com:443/, no data, header Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4, retry 1
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue called, qlen = 1
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue - still waiting for reply to last request, delay sending from queue
2018.12.28 14:57:20 4: vallox_cloud: CheckAuth requeued request get02 after auth, retryCount 0 ...
2018.12.28 14:57:20 5: HttpUtils request header:
POST /login HTTP/1.1
Host: cloud.vallox.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: 5jn4kNMz-u__zFY3-oK8LbVZM70cxLEtjdNc
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=zV0aKTaS-5uGjnLFjHc1Bl6T7lUPnZvgmyz0; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
Content-Length: 45

2018.12.28 14:57:20 4: https://cloud.vallox.com/login: HTTP response code 302
2018.12.28 14:57:20 5: HttpUtils https://cloud.vallox.com/login: Got data, length: 23
2018.12.28 14:57:20 5: HttpUtils response header:
HTTP/1.1 302 Found
Vary: X-HTTP-Method-Override, Accept, Accept-Encoding
Location: /
Content-Type: text/plain; charset=utf-8
Content-Length: 23
Date: Fri, 28 Dec 2018 13:57:22 GMT
Connection: close
2018.12.28 14:57:20 4: vallox_cloud: Read callback: request type was auth1 retry 0,
Body: Found. Redirecting to /
2018.12.28 14:57:20 5: vallox_cloud: GetCookies is looking for Cookies
2018.12.28 14:57:20 5: vallox_cloud: ExtractSid called, context sid, num 1
2018.12.28 14:57:20 4: vallox_cloud: checking for redirects, code=302, ignore=0
2018.12.28 14:57:20 4: vallox_cloud: https://cloud.vallox.com/login: Redirect (1) to https://cloud.vallox.com:443/
2018.12.28 14:57:20 4: vallox_cloud: AddToQueue adds auth1, initial queue len: 1, prio
2018.12.28 14:57:20 5: vallox_cloud: AddToQueue prepends type auth1 to URL https://cloud.vallox.com:443/, no data, header Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: 5jn4kNMz-u__zFY3-oK8LbVZM70cxLEtjdNc, retry 0
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue called, qlen = 2
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie _csrf with path  and Value s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc (key _csrf;, destination path is /)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie _csrfToken with path  and Value zV0aKTaS-5uGjnLFjHc1Bl6T7lUPnZvgmyz0 (key _csrfToken;, destination path is /)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie connect.sid with path  and Value s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg (key connect.sid;, destination path is /)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is using Cookie lang with path  and Value en (key lang;, destination path is /)
2018.12.28 14:57:20 5: vallox_cloud: HandleSendQueue is adding Cookie header: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=zV0aKTaS-5uGjnLFjHc1Bl6T7lUPnZvgmyz0; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
2018.12.28 14:57:20 4: vallox_cloud: HandleSendQueue sends request type auth1 to URL https://cloud.vallox.com:443/, No Data,
header: Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: 5jn4kNMz-u__zFY3-oK8LbVZM70cxLEtjdNc
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=zV0aKTaS-5uGjnLFjHc1Bl6T7lUPnZvgmyz0; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
timeout 5
2018.12.28 14:57:20 5: HttpUtils url=https://cloud.vallox.com:443/
2018.12.28 14:57:20 4: IP: cloud.vallox.com -> 194.111.216.21
2018.12.28 14:57:21 5: HttpUtils request header:
GET / HTTP/1.1
Host: cloud.vallox.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: 5jn4kNMz-u__zFY3-oK8LbVZM70cxLEtjdNc
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=zV0aKTaS-5uGjnLFjHc1Bl6T7lUPnZvgmyz0; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
Content-Length: 0

2018.12.28 14:57:21 4: https://cloud.vallox.com:443/: HTTP response code 200
2018.12.28 14:57:21 5: HttpUtils https://cloud.vallox.com:443/: Got data, length: 4169
2018.12.28 14:57:21 5: HttpUtils response header:
HTTP/1.1 200 OK
Set-Cookie: lang=en; Max-Age=604800; Path=/; Expires=Fri, 04 Jan 2019 13:57:22 GMT
Set-Cookie: _csrfToken=SrYJsmiX-_4EE6Qm8lGYY8Uf2ncpbIZbLOrE; Path=/
X-Frame-Options: DENY
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
ETag: W/"1049-UbjnUEcK4sCkOD8a4iXojg"
Vary: Accept-Encoding
Content-Encoding: gzip
Date: Fri, 28 Dec 2018 13:57:22 GMT
Connection: close
Transfer-Encoding: chunked
2018.12.28 14:57:21 4: vallox_cloud: Read callback: request type was auth1 retry 0,
Body: <!DOCTYPE html><html ng-app="CloudApp"><head><title>MyVallox Cloud</title><!--   Created by ilkka.salminen on 23/09/14.--><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="/layouts/core.min.css?undefined"><!--link(rel='stylesheet', href='/layouts/core.css?#{cacheBreaker}')--><link rel="stylesheet" href="/views/index.min.css?undefined"></head><body><!--Created by ilkka.salminen on 26/09/14.--><div class="header"><div class="row"><div class="logo-always"><img src="/media/logo.png"></div></div></div><div class="main-content"><div class="section demo-area"><div class="row middle"><div class="col-xs-6"><p>Try demo version of MyVallox Cloud</p></div><div class="col-xs-6"><a href="https://cloud.vallox.com:8080/" class="btn btn-block btn-primary">Demo</a></div></div></div><div class="main-image"><div id="main-carousel" data-ride="carousel" class="carousel slide"><ol class="carousel-indicators"><li data-target="#main-carousel" data-slide-to="0" class="active"></li><li data-target="#main-carousel" data-slide-to="1"></li><li data-target="#main-carousel" data-slide-to="2"></li></ol><div role="listbox" class="carousel-inner"><div class="item active"><img src="/media/MyValloxKuvakaruselliKuvatPlain.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>EASY VENTILATION CONTROL</h3>Register your MyVallox ventilation unit with the cloud service and control the ventilation of your home anywhere</div></div></div><div class="item"><img src="/media/MyValloxKuvakaruselliKuvatPlain2.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>HOME OF FRESH AIR</h3>Vallox keeps the indoor air fresh and pure</div></div></div><div class="item"><img src="/media/MyValloxKuvakaruselliKuvatPlain3.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>GOOD VENTILATION IS AN INVESTMENT IN WELL-BEING</h3>and the best insurance for your home</div></div></div></div></div><!--#mobile-titleimageimg(src='/media/MyValloxKuvakaruselliKuvatPlain3.jpg')--></div><div ng-controller="loginController" ng-keypress="enterKey($event)" class="login-area section"><h1>Log in</h1><div ng-show="errors" ng-repeat="error in errors" class="alerts"><div class="alert alert-danger alert-dismissable"><button type="button" data-dismiss="alert" class="close">&times;</button>{{error}}</div></div><form><div class="row"><div class="email-input col-sm-5"><input type="email" placeholder="Email" ng-model="email"></div><div class="password-input col-sm-5"><input type="password" placeholder="Password" ng-model="password"></div><div class="login-buttons col-sm-2"><div class="login-button"><div class="button"><button type="submit" ng-click="login()" class="btn btn-block btn-primary">Log in</button></div></div></div></div></form><div class="extra-row"><a href="/login/forgot/">Forgot your password?</a></div></div><div class="firmware section"><h1>Latest firmware</h1><div class="row"><div class="col-xs-1">v1.8.8</div><div class="col-xs-4"><a href="http://cloud.vallox.com/changelog.txt" target="_blank">Firmware change log</a></div><div class="col-xs-4"><!--a(href='http://cloud.vallox.com/instructions.txt', target="_blank") #{strings.firmware_instructions_link}--></div><div class="col-xs-3"><a href="http://cloud.vallox.com/HSWUPD.BIN" class="btn btn-block btn-primary">Download</a></div></div></div></div><div class="clearfix"></div><!--#debug--><!--Created by ilkka.salminen on 03/02/15.--><div class="cloud-footer"><div class="footer-logo"><img src="/media/logo_sq.png" alt="logo" class="img-responsive"></div><div class="footer-content"><div class="row"><div class="about col-sm-4"><a href="http://www.vallox.com/" target="_blank">About Vallox</a><br><a href="http://www.vallox.com/" target="_blank">Help</a></div><div class="legal col-sm-4"><a href="/terms">Terms and conditions</a><br><a href="/privacy">Privacy policy</a></div><div class="copyright col-sm-4">&copy; Vallox 2018</div></div></div></div><script src="/layouts/core.min.js"></script><script src="/views/backend.js"></script><script src="/views/index.js"></script><script src="/vendor/bootstrap/js/carousel.js"></script></body></html>
2018.12.28 14:57:21 5: vallox_cloud: GetCookies is looking for Cookies
2018.12.28 14:57:21 4: vallox_cloud: GetCookies parsed Cookie: lang Wert en Rest Max-Age=604800; Path=/; Expires=Fri, 04 Jan 2019 13:57:22 GMT
2018.12.28 14:57:21 4: vallox_cloud: GetCookies parsed Cookie: _csrfToken Wert SrYJsmiX-_4EE6Qm8lGYY8Uf2ncpbIZbLOrE Rest Path=/
2018.12.28 14:57:21 5: vallox_cloud: ExtractSid called, context sid, num 1
2018.12.28 14:57:21 4: vallox_cloud: checking for redirects, code=200, ignore=0
2018.12.28 14:57:21 4: vallox_cloud: no redirects to handle
2018.12.28 14:57:23 5: vallox_cloud: HandleSendQueue called, qlen = 1
2018.12.28 14:57:23 5: vallox_cloud: HandleSendQueue is using Cookie _csrf with path  and Value s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc (key _csrf;, destination path is /)
2018.12.28 14:57:23 5: vallox_cloud: HandleSendQueue is using Cookie _csrfToken with path  and Value SrYJsmiX-_4EE6Qm8lGYY8Uf2ncpbIZbLOrE (key _csrfToken;, destination path is /)
2018.12.28 14:57:23 5: vallox_cloud: HandleSendQueue is using Cookie connect.sid with path  and Value s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg (key connect.sid;, destination path is /)
2018.12.28 14:57:23 5: vallox_cloud: HandleSendQueue is using Cookie lang with path  and Value en (key lang;, destination path is /)
2018.12.28 14:57:23 5: vallox_cloud: HandleSendQueue is adding Cookie header: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=SrYJsmiX-_4EE6Qm8lGYY8Uf2ncpbIZbLOrE; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
2018.12.28 14:57:23 4: vallox_cloud: HandleSendQueue sends request type get02 to URL https://cloud.vallox.com:443/, No Data,
header: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=SrYJsmiX-_4EE6Qm8lGYY8Uf2ncpbIZbLOrE; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
timeout 5
2018.12.28 14:57:23 5: HttpUtils url=https://cloud.vallox.com:443/
2018.12.28 14:57:23 4: IP: cloud.vallox.com -> 194.111.216.21
2018.12.28 14:57:24 5: HttpUtils request header:
GET / HTTP/1.1
Host: cloud.vallox.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=SrYJsmiX-_4EE6Qm8lGYY8Uf2ncpbIZbLOrE; connect.sid=s%3Aso8MJm2kpJ-naPIcDVYv4D_JEdoZmbz2.I%2BCZleRgzC3HLSYlM5bUK56ieIWojPBmkxmvYjn%2BCjg; lang=en
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2018.12.28 14:57:24 4: https://cloud.vallox.com:443/: HTTP response code 200
2018.12.28 14:57:24 5: HttpUtils https://cloud.vallox.com:443/: Got data, length: 4169
2018.12.28 14:57:24 5: HttpUtils response header:
HTTP/1.1 200 OK
Set-Cookie: lang=en; Max-Age=604800; Path=/; Expires=Fri, 04 Jan 2019 13:57:25 GMT
Set-Cookie: _csrfToken=5lGy9oVy-TTb4cZwrUjorgjAL6FTvxOoCh-0; Path=/
X-Frame-Options: DENY
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
ETag: W/"1049-UbjnUEcK4sCkOD8a4iXojg"
Vary: Accept-Encoding
Content-Encoding: gzip
Date: Fri, 28 Dec 2018 13:57:25 GMT
Connection: close
Transfer-Encoding: chunked
2018.12.28 14:57:24 4: vallox_cloud: Read callback: request type was get02 retry 1,
Body: <!DOCTYPE html><html ng-app="CloudApp"><head><title>MyVallox Cloud</title><!--   Created by ilkka.salminen on 23/09/14.--><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="/layouts/core.min.css?undefined"><!--link(rel='stylesheet', href='/layouts/core.css?#{cacheBreaker}')--><link rel="stylesheet" href="/views/index.min.css?undefined"></head><body><!--Created by ilkka.salminen on 26/09/14.--><div class="header"><div class="row"><div class="logo-always"><img src="/media/logo.png"></div></div></div><div class="main-content"><div class="section demo-area"><div class="row middle"><div class="col-xs-6"><p>Try demo version of MyVallox Cloud</p></div><div class="col-xs-6"><a href="https://cloud.vallox.com:8080/" class="btn btn-block btn-primary">Demo</a></div></div></div><div class="main-image"><div id="main-carousel" data-ride="carousel" class="carousel slide"><ol class="carousel-indicators"><li data-target="#main-carousel" data-slide-to="0" class="active"></li><li data-target="#main-carousel" data-slide-to="1"></li><li data-target="#main-carousel" data-slide-to="2"></li></ol><div role="listbox" class="carousel-inner"><div class="item active"><img src="/media/MyValloxKuvakaruselliKuvatPlain.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>EASY VENTILATION CONTROL</h3>Register your MyVallox ventilation unit with the cloud service and control the ventilation of your home anywhere</div></div></div><div class="item"><img src="/media/MyValloxKuvakaruselliKuvatPlain2.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>HOME OF FRESH AIR</h3>Vallox keeps the indoor air fresh and pure</div></div></div><div class="item"><img src="/media/MyValloxKuvakaruselliKuvatPlain3.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>GOOD VENTILATION IS AN INVESTMENT IN WELL-BEING</h3>and the best insurance for your home</div></div></div></div></div><!--#mobile-titleimageimg(src='/media/MyValloxKuvakaruselliKuvatPlain3.jpg')--></div><div ng-controller="loginController" ng-keypress="enterKey($event)" class="login-area section"><h1>Log in</h1><div ng-show="errors" ng-repeat="error in errors" class="alerts"><div class="alert alert-danger alert-dismissable"><button type="button" data-dismiss="alert" class="close">&times;</button>{{error}}</div></div><form><div class="row"><div class="email-input col-sm-5"><input type="email" placeholder="Email" ng-model="email"></div><div class="password-input col-sm-5"><input type="password" placeholder="Password" ng-model="password"></div><div class="login-buttons col-sm-2"><div class="login-button"><div class="button"><button type="submit" ng-click="login()" class="btn btn-block btn-primary">Log in</button></div></div></div></div></form><div class="extra-row"><a href="/login/forgot/">Forgot your password?</a></div></div><div class="firmware section"><h1>Latest firmware</h1><div class="row"><div class="col-xs-1">v1.8.8</div><div class="col-xs-4"><a href="http://cloud.vallox.com/changelog.txt" target="_blank">Firmware change log</a></div><div class="col-xs-4"><!--a(href='http://cloud.vallox.com/instructions.txt', target="_blank") #{strings.firmware_instructions_link}--></div><div class="col-xs-3"><a href="http://cloud.vallox.com/HSWUPD.BIN" class="btn btn-block btn-primary">Download</a></div></div></div></div><div class="clearfix"></div><!--#debug--><!--Created by ilkka.salminen on 03/02/15.--><div class="cloud-footer"><div class="footer-logo"><img src="/media/logo_sq.png" alt="logo" class="img-responsive"></div><div class="footer-content"><div class="row"><div class="about col-sm-4"><a href="http://www.vallox.com/" target="_blank">About Vallox</a><br><a href="http://www.vallox.com/" target="_blank">Help</a></div><div class="legal col-sm-4"><a href="/terms">Terms and conditions</a><br><a href="/privacy">Privacy policy</a></div><div class="copyright col-sm-4">&copy; Vallox 2018</div></div></div></div><script src="/layouts/core.min.js"></script><script src="/views/backend.js"></script><script src="/views/index.js"></script><script src="/vendor/bootstrap/js/carousel.js"></script></body></html>
2018.12.28 14:57:24 5: vallox_cloud: GetCookies is looking for Cookies
2018.12.28 14:57:24 4: vallox_cloud: GetCookies parsed Cookie: lang Wert en Rest Max-Age=604800; Path=/; Expires=Fri, 04 Jan 2019 13:57:25 GMT
2018.12.28 14:57:24 4: vallox_cloud: GetCookies parsed Cookie: _csrfToken Wert 5lGy9oVy-TTb4cZwrUjorgjAL6FTvxOoCh-0 Rest Path=/
2018.12.28 14:57:24 5: vallox_cloud: ExtractSid called, context get, num 02
2018.12.28 14:57:24 4: vallox_cloud: checking for redirects, code=200, ignore=0
2018.12.28 14:57:24 4: vallox_cloud: no redirects to handle
2018.12.28 14:57:24 5: vallox_cloud: CheckAuth is checking buffer with ReAuthRegex loginController
2018.12.28 14:57:24 4: vallox_cloud: CheckAuth decided new authentication required
2018.12.28 14:57:24 4: vallox_cloud: Authentication still required but no retries left - did last authentication fail?
2018.12.28 14:57:24 5: vallox_cloud: ExtractReading for context get, num 02 - no individual parse definition
2018.12.28 14:57:24 5: vallox_cloud: Read starts parsing response to get02 with defined readings:
2018.12.28 14:57:24 3: vallox_cloud: Read response to get02 didn't match any Reading
2018.12.28 14:57:24 5: vallox_cloud: HandleSendQueue called, qlen = 0

Meine Erkenntnisse bisher sind:

- Im Burp Repeater läuft es so weit.
    Hier muss man natürlich die cockies manuell weiterreichen.

- Der Login Prozess in FHEM läuft ab und erkennt, dass ein Login notwendig ist.
- Die sid Attribute werden aufgebaut und der Username und das Passwort als Data weitergereicht.
- Das cockie Handling sieht für mich gut aus.

An dieser Stelle komme ich nun nicht mehr weiter.
Kann es etwas mit den Redirects  zu tun haben? Dafür habe ich handleRedirects aktiviert.


Ich wäre für jeden Tipp dankbar.

Für die ganz interessierten Helfen ist in der Vallox Cloud auch ein Gastzugang zu einer Demo möglich.

Viele Grüße und schöne Weihnachten gehabt zu haben :-)
      Christian
« Letzte Änderung: 28 Dezember 2018, 15:20:24 von ch.eick »
FHEM unter Solaris 11.3 nonglobal Zone zum Testen.
Raspberry PI 2; CUNX; Eltako FSB61NP_230V; 230V zentral verschaltet; fronthem; fhem/ftui; SmartVisu

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5110
  • Maintainer: mqtt2.template, httpmod.template
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #492 am: 28 Dezember 2018, 15:32:20 »
Hier mit zusätzlichem Attribut "model".
Thx.
Habe die modifizierte Version vorhin in meinem FHEM eingespielt, das scheint auch mind. mit den clever-tanken-templates zu funktionieren.

Habe das template-file daher leicht verändert ins svn geschoben, dann ist es für alle ohne Klimmzüge ab morgen verfügbar.

Gruß, Beta-User
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | CUL_HM: div. Hardware mit VCCU | MySensors seriell (2.3.1@RS485, daran div. Sensoren usw., u.a. DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline ch.eick

  • Jr. Member
  • **
  • Beiträge: 74
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #493 am: 29 Dezember 2018, 20:22:42 »
Hallo zusammen,

das Thema Vallox Cloud lässt mich einfach nicht los und so habe ich einen Tipp von Stefan nochmals nachgelesen und versucht umzusetzen.
In der Burp Suite habe ich auch bereits die Header minimiert, bis nur noch die notwendigen Attribute für HTTPMOD übrig blieben.
Ich denke es geht nun einen Schritt weiter und die nächste Frage kommt dann weiter unter.

Device settings:
defmod vallox_cloud HTTPMOD https://cloud.vallox.com:443/login 0
# Allgemeine Attribute
attr vallox_cloud enableControlSet 1
attr vallox_cloud enableCookies 1
attr vallox_cloud handleRedirects 1
attr vallox_cloud httpVersion 1.1
attr vallox_cloud queueDelay 3
attr vallox_cloud showBody 1
attr vallox_cloud showError 1
attr vallox_cloud timeout 5
attr vallox_cloud verbose 5

# get01 habe ich erst mal raus genommen

attr vallox_cloud get02Name KWL_Status
attr vallox_cloud get02URL https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4
attr vallox_cloud get02Header1 Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
attr vallox_cloud get02Header2 X-XSRF-TOKEN: %%_csrfToken%%

# das war ein Tip von Stefan, bei dem ich das csrfToken zuerst lesen sollte
attr vallox_cloud reading1Name _csrfToken
attr vallox_cloud reading1Regex ((?<=_csrfToken=).*);

# und dann mit einem replacement in z.B. get02Header2 einsetzen sollte
attr vallox_cloud replacement1Mode reading
attr vallox_cloud replacement1Regex %%_csrfToken%%
attr vallox_cloud replacement1Value _csrfToken

attr vallox_cloud reAuthRegex loginController
attr vallox_cloud sid1Data1 username=ch.eick%40arcor.de&password=Alexch0-
attr vallox_cloud sid1Header1 Referer: https://cloud.vallox.com/
attr vallox_cloud sid1Header2 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr vallox_cloud sid1Header3 X-XSRF-TOKEN: %%_csrfToken%%
attr vallox_cloud sid1URL https://cloud.vallox.com/login

Dann sehen die Log Meldungen wie folgt aus:

Wichtig ist hier die Erfolgszeile
Body: {"success":true,"errors":[],"errfor":{},"message":"","nexturl":"/account"}
was ein erfolgreiches Login bedeutet. Ich habe es im folgenden durch Leerzeilen herforgehoben.

2018.12.29 20:08:56 5: vallox_cloud: get called with KWL_Status
2018.12.29 20:08:56 5: vallox_cloud: get found option KWL_Status in attribute get02Name
2018.12.29 20:08:56 4: vallox_cloud: get will now request KWL_Status, no optional value
2018.12.29 20:08:56 4: vallox_cloud: AddToQueue adds get02, initial queue len: 0
2018.12.29 20:08:56 5: vallox_cloud: AddToQueue adds type get02 to URL https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4, no data, header Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: %%_csrfToken%%, retry 0
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue called, qlen = 1
2018.12.29 20:08:56 5: vallox_cloud: Replace called for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken input: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: %%_csrfToken%%
2018.12.29 20:08:56 5: vallox_cloud: Replace: reading value is 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
2018.12.29 20:08:56 4: vallox_cloud: Replace: match for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken, input: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: %%_csrfToken%%, result is Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
2018.12.29 20:08:56 5: vallox_cloud: Replace called for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken input:
2018.12.29 20:08:56 5: vallox_cloud: Replace called for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken input: https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue is using Cookie _csrf with path  and Value s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc (key _csrf;, destination path is /api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4)
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue is using Cookie _csrfToken with path  and Value 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8 (key _csrfToken;, destination path is /api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4)
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue is using Cookie connect.sid with path  and Value s%3AYPeCbfa1ImXnDenXhv2hmsMcoaqvalVU.DYALxZyZae%2BAujJQRPuV3YK6GxzaAo0Hd1jtocUp1Xw (key connect.sid;, destination path is /api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4)
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue is using Cookie lang with path  and Value de (key lang;, destination path is /api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4)
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue is adding Cookie header: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8; connect.sid=s%3AYPeCbfa1ImXnDenXhv2hmsMcoaqvalVU.DYALxZyZae%2BAujJQRPuV3YK6GxzaAo0Hd1jtocUp1Xw; lang=de
2018.12.29 20:08:56 4: vallox_cloud: HandleSendQueue sends request type get02 to URL https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4, No Data,
header: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8; connect.sid=s%3AYPeCbfa1ImXnDenXhv2hmsMcoaqvalVU.DYALxZyZae%2BAujJQRPuV3YK6GxzaAo0Hd1jtocUp1Xw; lang=de
timeout 5
2018.12.29 20:08:56 5: HttpUtils url=https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4
2018.12.29 20:08:56 4: IP: cloud.vallox.com -> 194.111.216.21
2018.12.29 20:08:56 5: HttpUtils request header:
GET /api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4 HTTP/1.1
Host: cloud.vallox.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8; connect.sid=s%3AYPeCbfa1ImXnDenXhv2hmsMcoaqvalVU.DYALxZyZae%2BAujJQRPuV3YK6GxzaAo0Hd1jtocUp1Xw; lang=de
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2018.12.29 20:08:56 4: https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4: HTTP response code 302
2018.12.29 20:08:56 5: HttpUtils https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4: Got data, length: 23
2018.12.29 20:08:56 5: HttpUtils response header:
HTTP/1.1 302 Found
set-cookie: lang=de; Max-Age=604800; Path=/; Expires=Sat, 05 Jan 2019 19:08:59 GMT
set-cookie: _csrfToken=qNxTxiZ5-94Yytke5d0UycYKpv66SefB7NiY; Path=/
set-cookie: connect.sid=s%3AS_5HaepB32cw6ydBudaBIREJIcW1BAjw.c0wiMhUUkGU1i3G6%2FKW%2BbBeZvxiG9nk%2FVZeKawRCAkk; Path=/; HttpOnly
X-Frame-Options: DENY
X-Powered-By: Express
X-Auth-Required: true
Location: /
Vary: Accept, Accept-Encoding
Content-Type: text/plain; charset=utf-8
Content-Length: 23
Date: Sat, 29 Dec 2018 19:08:59 GMT
Connection: close
2018.12.29 20:08:56 4: vallox_cloud: Read callback: request type was get02 retry 0,
Body: Found. Redirecting to /
2018.12.29 20:08:56 5: vallox_cloud: GetCookies is looking for Cookies
2018.12.29 20:08:56 4: vallox_cloud: GetCookies parsed Cookie: lang Wert de Rest Max-Age=604800; Path=/; Expires=Sat, 05 Jan 2019 19:08:59 GMT
2018.12.29 20:08:56 4: vallox_cloud: GetCookies parsed Cookie: _csrfToken Wert qNxTxiZ5-94Yytke5d0UycYKpv66SefB7NiY Rest Path=/
2018.12.29 20:08:56 4: vallox_cloud: GetCookies parsed Cookie: connect.sid Wert s%3AS_5HaepB32cw6ydBudaBIREJIcW1BAjw.c0wiMhUUkGU1i3G6%2FKW%2BbBeZvxiG9nk%2FVZeKawRCAkk Rest Path=/; HttpOnly
2018.12.29 20:08:56 5: vallox_cloud: ExtractSid called, context get, num 02
2018.12.29 20:08:56 4: vallox_cloud: checking for redirects, code=302, ignore=0
2018.12.29 20:08:56 4: vallox_cloud: https://cloud.vallox.com:443/api/devicestate/432C7775-3FDA-430A-920A-97B591B5F2C4: Redirect (1) to https://cloud.vallox.com:443/
2018.12.29 20:08:56 4: vallox_cloud: AddToQueue adds get02, initial queue len: 0, prio
2018.12.29 20:08:56 5: vallox_cloud: AddToQueue prepends type get02 to URL https://cloud.vallox.com:443/, no data, header Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: %%_csrfToken%%, retry 0
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue called, qlen = 1
2018.12.29 20:08:56 5: vallox_cloud: Replace called for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken input: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: %%_csrfToken%%
2018.12.29 20:08:56 5: vallox_cloud: Replace: reading value is 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
2018.12.29 20:08:56 4: vallox_cloud: Replace: match for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken, input: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: %%_csrfToken%%, result is Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
2018.12.29 20:08:56 5: vallox_cloud: Replace called for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken input:
2018.12.29 20:08:56 5: vallox_cloud: Replace called for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken input: https://cloud.vallox.com:443/
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue is using Cookie _csrf with path  and Value s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc (key _csrf;, destination path is /)
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue is using Cookie _csrfToken with path  and Value qNxTxiZ5-94Yytke5d0UycYKpv66SefB7NiY (key _csrfToken;, destination path is /)
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue is using Cookie connect.sid with path  and Value s%3AS_5HaepB32cw6ydBudaBIREJIcW1BAjw.c0wiMhUUkGU1i3G6%2FKW%2BbBeZvxiG9nk%2FVZeKawRCAkk (key connect.sid;, destination path is /)
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue is using Cookie lang with path  and Value de (key lang;, destination path is /)
2018.12.29 20:08:56 5: vallox_cloud: HandleSendQueue is adding Cookie header: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=qNxTxiZ5-94Yytke5d0UycYKpv66SefB7NiY; connect.sid=s%3AS_5HaepB32cw6ydBudaBIREJIcW1BAjw.c0wiMhUUkGU1i3G6%2FKW%2BbBeZvxiG9nk%2FVZeKawRCAkk; lang=de
2018.12.29 20:08:56 4: vallox_cloud: HandleSendQueue sends request type get02 to URL https://cloud.vallox.com:443/, No Data,
header: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=qNxTxiZ5-94Yytke5d0UycYKpv66SefB7NiY; connect.sid=s%3AS_5HaepB32cw6ydBudaBIREJIcW1BAjw.c0wiMhUUkGU1i3G6%2FKW%2BbBeZvxiG9nk%2FVZeKawRCAkk; lang=de
timeout 5
2018.12.29 20:08:56 5: HttpUtils url=https://cloud.vallox.com:443/
2018.12.29 20:08:56 4: IP: cloud.vallox.com -> 194.111.216.21
2018.12.29 20:08:57 5: HttpUtils request header:
GET / HTTP/1.1
Host: cloud.vallox.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=qNxTxiZ5-94Yytke5d0UycYKpv66SefB7NiY; connect.sid=s%3AS_5HaepB32cw6ydBudaBIREJIcW1BAjw.c0wiMhUUkGU1i3G6%2FKW%2BbBeZvxiG9nk%2FVZeKawRCAkk; lang=de
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2018.12.29 20:08:57 4: https://cloud.vallox.com:443/: HTTP response code 200
2018.12.29 20:08:57 5: HttpUtils https://cloud.vallox.com:443/: Got data, length: 4244
2018.12.29 20:08:57 5: HttpUtils response header:
HTTP/1.1 200 OK
Set-Cookie: lang=de; Max-Age=604800; Path=/; Expires=Sat, 05 Jan 2019 19:08:59 GMT
Set-Cookie: _csrfToken=WXLKxgtA-53rY8mRpLbXFr93r1iGu8Oy8UX4; Path=/
X-Frame-Options: DENY
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
ETag: W/"1094-F9xEl9P1bK206SUsbxVDxw"
Vary: Accept-Encoding
Content-Encoding: gzip
Date: Sat, 29 Dec 2018 19:08:59 GMT
Connection: close
Transfer-Encoding: chunked
2018.12.29 20:08:57 4: vallox_cloud: Read callback: request type was get02 retry 0,
Body: <!DOCTYPE html><html ng-app="CloudApp"><head><title>MyVallox Cloud</title><!--   Created by ilkka.salminen on 23/09/14.--><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="/layouts/core.min.css?undefined"><!--link(rel='stylesheet', href='/layouts/core.css?#{cacheBreaker}')--><link rel="stylesheet" href="/views/index.min.css?undefined"></head><body><!--Created by ilkka.salminen on 26/09/14.--><div class="header"><div class="row"><div class="logo-always"><img src="/media/logo.png"></div></div></div><div class="main-content"><div class="section demo-area"><div class="row middle"><div class="col-xs-6"><p>Testen Sie die MyVallox Demoversion</p></div><div class="col-xs-6"><a href="https://cloud.vallox.com:8080/" class="btn btn-block btn-primary">Demo</a></div></div></div><div class="main-image"><div id="main-carousel" data-ride="carousel" class="carousel slide"><ol class="carousel-indicators"><li data-target="#main-carousel" data-slide-to="0" class="active"></li><li data-target="#main-carousel" data-slide-to="1"></li><li data-target="#main-carousel" data-slide-to="2"></li></ol><div role="listbox" class="carousel-inner"><div class="item active"><img src="/media/MyValloxKuvakaruselliKuvatPlain.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>EINFACHE LÜFTUNGSSTEUERUNG</h3>Registrieren Sie Ihr MyVallox Lüftungsgerät im Cloud-Dienst und Sie können die Lüftung in Ihrem Haus von überall steuern.</div></div></div><div class="item"><img src="/media/MyValloxKuvakaruselliKuvatPlain2.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>HOME OF FRESH AIR</h3>Mit Vallox bleibt die Innenraumluft frisch und sauber</div></div></div><div class="item"><img src="/media/MyValloxKuvakaruselliKuvatPlain3.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>GUTE LÜFTUNG IST EINE INVESTITION INS WOHLBEFINDEN</h3>und die beste Versicherung für Ihr Zuhause</div></div></div></div></div><!--#mobile-titleimageimg(src='/media/MyValloxKuvakaruselliKuvatPlain3.jpg')--></div><div ng-controller="loginController" ng-keypress="enterKey($event)" class="login-area section"><h1>Einloggen</h1><div ng-show="errors" ng-repeat="error in errors" class="alerts"><div class="alert alert-danger alert-dismissable"><button type="button" data-dismiss="alert" class="close">&times;</button>{{error}}</div></div><form><div class="row"><div class="email-input col-sm-5"><input type="email" placeholder="E-Mail-Adresse" ng-model="email"></div><div class="password-input col-sm-5"><input type="password" placeholder="Kennwort" ng-model="password"></div><div class="login-buttons col-sm-2"><div class="login-button"><div class="button"><button type="submit" ng-click="login()" class="btn btn-block btn-primary">Einloggen</button></div></div></div></div></form><div class="extra-row"><a href="/login/forgot/">Kennwort vergessen?</a></div></div><div class="firmware section"><h1>Aktuelle Firmware</h1><div class="row"><div class="col-xs-1">v1.8.8</div><div class="col-xs-4"><a href="http://cloud.vallox.com/changelog.txt" target="_blank">Firmware Änderungsprotokoll</a></div><div class="col-xs-4"><!--a(href='http://cloud.vallox.com/instructions.txt', target="_blank") #{strings.firmware_instructions_link}--></div><div class="col-xs-3"><a href="http://cloud.vallox.com/HSWUPD.BIN" class="btn btn-block btn-primary">Download</a></div></div></div></div><div class="clearfix"></div><!--#debug--><!--Created by ilkka.salminen on 03/02/15.--><div class="cloud-footer"><div class="footer-logo"><img src="/media/logo_sq.png" alt="logo" class="img-responsive"></div><div class="footer-content"><div class="row"><div class="about col-sm-4"><a href="http://www.vallox.com/" target="_blank">Über Vallox</a><br><a href="http://www.vallox.com/" target="_blank">Hilfe</a></div><div class="legal col-sm-4"><a href="/terms">Geschäftsbedingungen</a><br><a href="/privacy">Datenschutzbestimmungen</a></div><div class="copyright col-sm-4">&copy; Vallox 2018</div></div></div></div><script src="/layouts/core.min.js"></script><script src="/views/backend.js"></script><script src="/views/index.js"></script><script src="/vendor/bootstrap/js/carousel.js"></script></body></html>
2018.12.29 20:08:57 5: vallox_cloud: GetCookies is looking for Cookies
2018.12.29 20:08:57 4: vallox_cloud: GetCookies parsed Cookie: lang Wert de Rest Max-Age=604800; Path=/; Expires=Sat, 05 Jan 2019 19:08:59 GMT
2018.12.29 20:08:57 4: vallox_cloud: GetCookies parsed Cookie: _csrfToken Wert WXLKxgtA-53rY8mRpLbXFr93r1iGu8Oy8UX4 Rest Path=/
2018.12.29 20:08:57 5: vallox_cloud: ExtractSid called, context get, num 02
2018.12.29 20:08:57 4: vallox_cloud: checking for redirects, code=200, ignore=0
2018.12.29 20:08:57 4: vallox_cloud: no redirects to handle
2018.12.29 20:08:57 5: vallox_cloud: CheckAuth is checking buffer with ReAuthRegex loginController
2018.12.29 20:08:57 4: vallox_cloud: CheckAuth decided new authentication required
2018.12.29 20:08:57 4: vallox_cloud: Auth called with Steps: 1
2018.12.29 20:08:57 4: vallox_cloud: AddToQueue adds auth1, initial queue len: 0, prio
2018.12.29 20:08:57 5: vallox_cloud: AddToQueue prepends type auth1 to URL https://cloud.vallox.com/login, data username=ch.eick%40arcor.de&password=Alexch0-, header Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: %%_csrfToken%%, retry 0
2018.12.29 20:08:57 5: vallox_cloud: HandleSendQueue called, qlen = 1
2018.12.29 20:08:57 5: vallox_cloud: Replace called for type auth1, regex %%_csrfToken%%, mode reading, value _csrfToken input: Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: %%_csrfToken%%
2018.12.29 20:08:57 5: vallox_cloud: Replace: reading value is 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
2018.12.29 20:08:57 4: vallox_cloud: Replace: match for type auth1, regex %%_csrfToken%%, mode reading, value _csrfToken, input: Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: %%_csrfToken%%, result is Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
2018.12.29 20:08:57 5: vallox_cloud: Replace called for type auth1, regex %%_csrfToken%%, mode reading, value _csrfToken input: username=ch.eick%40arcor.de&password=Alexch0-
2018.12.29 20:08:57 5: vallox_cloud: Replace called for type auth1, regex %%_csrfToken%%, mode reading, value _csrfToken input: https://cloud.vallox.com/login
2018.12.29 20:08:57 5: vallox_cloud: HandleSendQueue is using Cookie _csrf with path  and Value s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc (key _csrf;, destination path is /login)
2018.12.29 20:08:57 5: vallox_cloud: HandleSendQueue is using Cookie _csrfToken with path  and Value WXLKxgtA-53rY8mRpLbXFr93r1iGu8Oy8UX4 (key _csrfToken;, destination path is /login)
2018.12.29 20:08:57 5: vallox_cloud: HandleSendQueue is using Cookie connect.sid with path  and Value s%3AS_5HaepB32cw6ydBudaBIREJIcW1BAjw.c0wiMhUUkGU1i3G6%2FKW%2BbBeZvxiG9nk%2FVZeKawRCAkk (key connect.sid;, destination path is /login)
2018.12.29 20:08:57 5: vallox_cloud: HandleSendQueue is using Cookie lang with path  and Value de (key lang;, destination path is /login)
2018.12.29 20:08:57 5: vallox_cloud: HandleSendQueue is adding Cookie header: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=WXLKxgtA-53rY8mRpLbXFr93r1iGu8Oy8UX4; connect.sid=s%3AS_5HaepB32cw6ydBudaBIREJIcW1BAjw.c0wiMhUUkGU1i3G6%2FKW%2BbBeZvxiG9nk%2FVZeKawRCAkk; lang=de
2018.12.29 20:08:57 4: vallox_cloud: HandleSendQueue sends request type auth1 to URL https://cloud.vallox.com/login,
data: username=ch.eick%40arcor.de&password=Alexch0-,
header: Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=WXLKxgtA-53rY8mRpLbXFr93r1iGu8Oy8UX4; connect.sid=s%3AS_5HaepB32cw6ydBudaBIREJIcW1BAjw.c0wiMhUUkGU1i3G6%2FKW%2BbBeZvxiG9nk%2FVZeKawRCAkk; lang=de
timeout 5
2018.12.29 20:08:57 5: HttpUtils url=https://cloud.vallox.com/login
2018.12.29 20:08:57 4: IP: cloud.vallox.com -> 194.111.216.21
2018.12.29 20:08:57 4: vallox_cloud: AddToQueue adds get02, initial queue len: 0
2018.12.29 20:08:57 5: vallox_cloud: AddToQueue adds type get02 to URL https://cloud.vallox.com:443/, no data, header Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: %%_csrfToken%%, retry 1
2018.12.29 20:08:57 5: vallox_cloud: HandleSendQueue called, qlen = 1
2018.12.29 20:08:57 5: vallox_cloud: HandleSendQueue - still waiting for reply to last request, delay sending from queue
2018.12.29 20:08:57 4: vallox_cloud: CheckAuth requeued request get02 after auth, retryCount 0 ...
2018.12.29 20:08:57 5: HttpUtils request header:
POST /login HTTP/1.1
Host: cloud.vallox.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Referer: https://cloud.vallox.com/
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=WXLKxgtA-53rY8mRpLbXFr93r1iGu8Oy8UX4; connect.sid=s%3AS_5HaepB32cw6ydBudaBIREJIcW1BAjw.c0wiMhUUkGU1i3G6%2FKW%2BbBeZvxiG9nk%2FVZeKawRCAkk; lang=de
Content-Length: 45

2018.12.29 20:08:57 4: https://cloud.vallox.com/login: HTTP response code 200
2018.12.29 20:08:57 5: HttpUtils https://cloud.vallox.com/login: Got data, length: 74
2018.12.29 20:08:57 5: HttpUtils response header:
HTTP/1.1 200 OK
Vary: X-HTTP-Method-Override, Accept-Encoding
set-cookie: lang=de; Max-Age=604800; Path=/; Expires=Sat, 05 Jan 2019 19:08:59 GMT
set-cookie: _csrfToken=vBbKKx3h-stKmY-s_zqUP3jzEH2qp0PxtTVE; Path=/
set-cookie: connect.sid=s%3Avhd9uWETTmt4FnCCpNQC2x4sfurQb1dR.UmTBsWbjhvMRXNXI%2FJRAXw3OS9EN6EMyc28fWWBXpNA; Path=/; HttpOnly
X-Frame-Options: DENY
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 74
ETag: W/"4a-iFjmKaXUGUWpK3TUuWr9AQ"
Date: Sat, 29 Dec 2018 19:08:59 GMT
Connection: close
2018.12.29 20:08:57 4: vallox_cloud: Read callback: request type was auth1 retry 0,





Body: {"success":true,"errors":[],"errfor":{},"message":"","nexturl":"/account"}





2018.12.29 20:08:57 5: vallox_cloud: GetCookies is looking for Cookies
2018.12.29 20:08:57 4: vallox_cloud: GetCookies parsed Cookie: lang Wert de Rest Max-Age=604800; Path=/; Expires=Sat, 05 Jan 2019 19:08:59 GMT
2018.12.29 20:08:57 4: vallox_cloud: GetCookies parsed Cookie: _csrfToken Wert vBbKKx3h-stKmY-s_zqUP3jzEH2qp0PxtTVE Rest Path=/



Hier hat sich der csrfToken geändert, wird jedoch nicht fom HTTPMOD neu ins reading1Name übernommen.
Wie kann ich denn hier das erneuern der readings veranlassen.



2018.12.29 20:08:57 4: vallox_cloud: GetCookies parsed Cookie: connect.sid Wert s%3Avhd9uWETTmt4FnCCpNQC2x4sfurQb1dR.UmTBsWbjhvMRXNXI%2FJRAXw3OS9EN6EMyc28fWWBXpNA Rest Path=/; HttpOnly
2018.12.29 20:08:57 5: vallox_cloud: ExtractSid called, context sid, num 1
2018.12.29 20:08:57 4: vallox_cloud: checking for redirects, code=200, ignore=0
2018.12.29 20:08:57 4: vallox_cloud: no redirects to handle
2018.12.29 20:09:00 5: vallox_cloud: HandleSendQueue called, qlen = 1
2018.12.29 20:09:00 5: vallox_cloud: Replace called for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken input: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: %%_csrfToken%%
2018.12.29 20:09:00 5: vallox_cloud: Replace: reading value is 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
2018.12.29 20:09:00 4: vallox_cloud: Replace: match for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken, input: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: %%_csrfToken%%, result is Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4


Und hier kommt dann leider das alte csrfToken.

X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8


2018.12.29 20:09:00 5: vallox_cloud: Replace called for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken input:
2018.12.29 20:09:00 5: vallox_cloud: Replace called for type get02, regex %%_csrfToken%%, mode reading, value _csrfToken input: https://cloud.vallox.com:443/
2018.12.29 20:09:00 5: vallox_cloud: HandleSendQueue is using Cookie _csrf with path  and Value s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc (key _csrf;, destination path is /)
2018.12.29 20:09:00 5: vallox_cloud: HandleSendQueue is using Cookie _csrfToken with path  and Value vBbKKx3h-stKmY-s_zqUP3jzEH2qp0PxtTVE (key _csrfToken;, destination path is /)
2018.12.29 20:09:00 5: vallox_cloud: HandleSendQueue is using Cookie connect.sid with path  and Value s%3Avhd9uWETTmt4FnCCpNQC2x4sfurQb1dR.UmTBsWbjhvMRXNXI%2FJRAXw3OS9EN6EMyc28fWWBXpNA (key connect.sid;, destination path is /)
2018.12.29 20:09:00 5: vallox_cloud: HandleSendQueue is using Cookie lang with path  and Value de (key lang;, destination path is /)
2018.12.29 20:09:00 5: vallox_cloud: HandleSendQueue is adding Cookie header: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=vBbKKx3h-stKmY-s_zqUP3jzEH2qp0PxtTVE; connect.sid=s%3Avhd9uWETTmt4FnCCpNQC2x4sfurQb1dR.UmTBsWbjhvMRXNXI%2FJRAXw3OS9EN6EMyc28fWWBXpNA; lang=de
2018.12.29 20:09:00 4: vallox_cloud: HandleSendQueue sends request type get02 to URL https://cloud.vallox.com:443/, No Data,
header: Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=vBbKKx3h-stKmY-s_zqUP3jzEH2qp0PxtTVE; connect.sid=s%3Avhd9uWETTmt4FnCCpNQC2x4sfurQb1dR.UmTBsWbjhvMRXNXI%2FJRAXw3OS9EN6EMyc28fWWBXpNA; lang=de
timeout 5
2018.12.29 20:09:00 5: HttpUtils url=https://cloud.vallox.com:443/
2018.12.29 20:09:00 4: IP: cloud.vallox.com -> 194.111.216.21
2018.12.29 20:09:00 5: HttpUtils request header:
GET / HTTP/1.1
Host: cloud.vallox.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Close
Referer: https://cloud.vallox.com/cloudui/index.html?deviceid=432C7775-3FDA-430A-920A-97B591B5F2C4
X-XSRF-TOKEN: 1WjmsFPE-ktl3lUBDc68-JBEumhxf25M90q8
Cookie: _csrf=s%3A_DQF8hzC94UCgHWDY5Pfy2M5.TamhyzJ5qDr9uaCY86u%2B%2B2NqfDF1jL8UeNLOTCkVzwc; _csrfToken=vBbKKx3h-stKmY-s_zqUP3jzEH2qp0PxtTVE; connect.sid=s%3Avhd9uWETTmt4FnCCpNQC2x4sfurQb1dR.UmTBsWbjhvMRXNXI%2FJRAXw3OS9EN6EMyc28fWWBXpNA; lang=de
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

2018.12.29 20:09:00 4: https://cloud.vallox.com:443/: HTTP response code 200
2018.12.29 20:09:00 5: HttpUtils https://cloud.vallox.com:443/: Got data, length: 4244
2018.12.29 20:09:00 5: HttpUtils response header:
HTTP/1.1 200 OK
Set-Cookie: lang=de; Max-Age=604800; Path=/; Expires=Sat, 05 Jan 2019 19:09:02 GMT
Set-Cookie: _csrfToken=0S8ZJPyP-JibOJgxTNnj3mNs_eg7csev3jbo; Path=/
X-Frame-Options: DENY
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
ETag: W/"1094-F9xEl9P1bK206SUsbxVDxw"
Vary: Accept-Encoding
Content-Encoding: gzip
Date: Sat, 29 Dec 2018 19:09:03 GMT
Connection: close
Transfer-Encoding: chunked
2018.12.29 20:09:00 4: vallox_cloud: Read callback: request type was get02 retry 1,
Body: <!DOCTYPE html><html ng-app="CloudApp"><head><title>MyVallox Cloud</title><!--   Created by ilkka.salminen on 23/09/14.--><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="/layouts/core.min.css?undefined"><!--link(rel='stylesheet', href='/layouts/core.css?#{cacheBreaker}')--><link rel="stylesheet" href="/views/index.min.css?undefined"></head><body><!--Created by ilkka.salminen on 26/09/14.--><div class="header"><div class="row"><div class="logo-always"><img src="/media/logo.png"></div></div></div><div class="main-content"><div class="section demo-area"><div class="row middle"><div class="col-xs-6"><p>Testen Sie die MyVallox Demoversion</p></div><div class="col-xs-6"><a href="https://cloud.vallox.com:8080/" class="btn btn-block btn-primary">Demo</a></div></div></div><div class="main-image"><div id="main-carousel" data-ride="carousel" class="carousel slide"><ol class="carousel-indicators"><li data-target="#main-carousel" data-slide-to="0" class="active"></li><li data-target="#main-carousel" data-slide-to="1"></li><li data-target="#main-carousel" data-slide-to="2"></li></ol><div role="listbox" class="carousel-inner"><div class="item active"><img src="/media/MyValloxKuvakaruselliKuvatPlain.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>EINFACHE LÜFTUNGSSTEUERUNG</h3>Registrieren Sie Ihr MyVallox Lüftungsgerät im Cloud-Dienst und Sie können die Lüftung in Ihrem Haus von überall steuern.</div></div></div><div class="item"><img src="/media/MyValloxKuvakaruselliKuvatPlain2.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>HOME OF FRESH AIR</h3>Mit Vallox bleibt die Innenraumluft frisch und sauber</div></div></div><div class="item"><img src="/media/MyValloxKuvakaruselliKuvatPlain3.png" alt="..."><div class="carousel-caption"><div class="middle"><h3>GUTE LÜFTUNG IST EINE INVESTITION INS WOHLBEFINDEN</h3>und die beste Versicherung für Ihr Zuhause</div></div></div></div></div><!--#mobile-titleimageimg(src='/media/MyValloxKuvakaruselliKuvatPlain3.jpg')--></div><div ng-controller="loginController" ng-keypress="enterKey($event)" class="login-area section"><h1>Einloggen</h1><div ng-show="errors" ng-repeat="error in errors" class="alerts"><div class="alert alert-danger alert-dismissable"><button type="button" data-dismiss="alert" class="close">&times;</button>{{error}}</div></div><form><div class="row"><div class="email-input col-sm-5"><input type="email" placeholder="E-Mail-Adresse" ng-model="email"></div><div class="password-input col-sm-5"><input type="password" placeholder="Kennwort" ng-model="password"></div><div class="login-buttons col-sm-2"><div class="login-button"><div class="button"><button type="submit" ng-click="login()" class="btn btn-block btn-primary">Einloggen</button></div></div></div></div></form><div class="extra-row"><a href="/login/forgot/">Kennwort vergessen?</a></div></div><div class="firmware section"><h1>Aktuelle Firmware</h1><div class="row"><div class="col-xs-1">v1.8.8</div><div class="col-xs-4"><a href="http://cloud.vallox.com/changelog.txt" target="_blank">Firmware Änderungsprotokoll</a></div><div class="col-xs-4"><!--a(href='http://cloud.vallox.com/instructions.txt', target="_blank") #{strings.firmware_instructions_link}--></div><div class="col-xs-3"><a href="http://cloud.vallox.com/HSWUPD.BIN" class="btn btn-block btn-primary">Download</a></div></div></div></div><div class="clearfix"></div><!--#debug--><!--Created by ilkka.salminen on 03/02/15.--><div class="cloud-footer"><div class="footer-logo"><img src="/media/logo_sq.png" alt="logo" class="img-responsive"></div><div class="footer-content"><div class="row"><div class="about col-sm-4"><a href="http://www.vallox.com/" target="_blank">Über Vallox</a><br><a href="http://www.vallox.com/" target="_blank">Hilfe</a></div><div class="legal col-sm-4"><a href="/terms">Geschäftsbedingungen</a><br><a href="/privacy">Datenschutzbestimmungen</a></div><div class="copyright col-sm-4">&copy; Vallox 2018</div></div></div></div><script src="/layouts/core.min.js"></script><script src="/views/backend.js"></script><script src="/views/index.js"></script><script src="/vendor/bootstrap/js/carousel.js"></script></body></html>
2018.12.29 20:09:00 5: vallox_cloud: GetCookies is looking for Cookies
2018.12.29 20:09:00 4: vallox_cloud: GetCookies parsed Cookie: lang Wert de Rest Max-Age=604800; Path=/; Expires=Sat, 05 Jan 2019 19:09:02 GMT
2018.12.29 20:09:00 4: vallox_cloud: GetCookies parsed Cookie: _csrfToken Wert 0S8ZJPyP-JibOJgxTNnj3mNs_eg7csev3jbo Rest Path=/
2018.12.29 20:09:00 5: vallox_cloud: ExtractSid called, context get, num 02
2018.12.29 20:09:00 4: vallox_cloud: checking for redirects, code=200, ignore=0
2018.12.29 20:09:00 4: vallox_cloud: no redirects to handle
2018.12.29 20:09:00 5: vallox_cloud: CheckAuth is checking buffer with ReAuthRegex loginController
2018.12.29 20:09:00 4: vallox_cloud: CheckAuth decided new authentication required
2018.12.29 20:09:00 4: vallox_cloud: Authentication still required but no retries left - did last authentication fail?
2018.12.29 20:09:00 5: vallox_cloud: ExtractReading for context get, num 02 - no individual parse definition
2018.12.29 20:09:00 5: vallox_cloud: Read starts parsing response to get02 with defined readings: 1
2018.12.29 20:09:00 5: vallox_cloud: ExtractReading _csrfToken with regex /((?<=_csrfToken=).*);/...
2018.12.29 20:09:00 5: vallox_cloud: 1 capture group(s), matchlist = 0S8ZJPyP-JibOJgxTNnj3mNs_eg7csev3jbo
2018.12.29 20:09:01 4: vallox_cloud: ExtractReading for reading1-1 sets _csrfToken to 0S8ZJPyP-JibOJgxTNnj3mNs_eg7csev3jbo
2018.12.29 20:09:01 4: vallox_cloud: Read response to get02 matched Reading(s) _csrfToken
2018.12.29 20:09:01 5: vallox_cloud: HandleSendQueue called, qlen = 0


Meine Vermutung ist, dass durch die erneute Verwendung des alten csrfToken dann bei der KWL_Status Abfrage der Login nicht akzeptiert wurde.

Über Tipps würde ich mich wie immer freuen. Und schon mal vielen Dank an Stefan, es hat ein wenig gedauert, bis ich die Inhalte der Postings richtig verstanden hatte.

Viele Grüße
      Christian
« Letzte Änderung: 29 Dezember 2018, 20:25:11 von ch.eick »
FHEM unter Solaris 11.3 nonglobal Zone zum Testen.
Raspberry PI 2; CUNX; Eltako FSB61NP_230V; 230V zentral verschaltet; fronthem; fhem/ftui; SmartVisu

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1058
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #494 am: 29 Dezember 2018, 22:38:26 »
Hallo Christian,

Ich vermute, es fehlt nur noch ein sidParseResponse ...

Gruß
    Stefan