Neue Version von HTTPMOD mit neuen Features zum Testen

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

Vorheriges Thema - Nächstes Thema

JF Mennedy

Hallo und guten Abend,

vielleicht kann mir ja jemand weiterhelfen. Ich habe es bisher geschafft, mich auf der Seite, von der ich die Daten beziehen möchte einzuloggen und auch den http-Body auszulesen. Aus dem Body der wie folgt aufgebaut ist,


<tr><th>Break Info</th>
<th>Date_Temps</th>
<th>Puiss_A_Cons (kW)</th>
<th>Enrg_A_Cons (kWh)</th>
</tr>
<tr><td class='data'>&nbsp</td>
<td class='data'>14/09/2020 00:15</td>
<td class='data'>0,160</td>
<td class='data'>0,040</td>
</tr>
<tr><td class='data'>&nbsp</td>
<td class='data'>14/09/2020 00:30</td>
<td class='data'>0,168</td>
<td class='data'>0,042</td>
</tr>
<tr><td class='data'>&nbsp</td>
<td class='data'>14/09/2020 00:45</td>
<td class='data'>0,168</td>
<td class='data'>0,042</td>
</tr>
<tr><td class='data'>&nbsp</td>
<td class='data'>14/09/2020 01:00</td>
<td class='data'>0,168</td>
<td class='data'>0,042</td>
</tr>
<tr><td class='data'>&nbsp</td>
<td class='data'>14/09/2020 01:15</td>
<td class='data'>0,176</td>
<td class='data'>0,044</td>
</tr>
<tr><td class='data'>&nbsp</td>
<td class='data'>14/09/2020 01:30</td>
<td class='data'>0,184</td>
<td class='data'>0,046</td>
</tr>
<tr><td class='data'>&nbsp</td>
<td class='data'>14/09/2020 01:45</td>
<td class='data'>0,184</td>
<td class='data'>0,046</td>
</tr>
<tr><td class='data'>&nbsp</td>
<td class='data'>14/09/2020 02:00</td>
<td class='data'>0,192</td>
<td class='data'>0,048</td>
</tr>



möchte ich gerne diese Daten, die viertelstündlich aufgezeichnet sind, in Readings schreiben:

<td class='data'>0,192</td>
<td class='data'>0,048</td>


Ich komme da irgendwie mit Regex oder XPath nicht weiter :(

Kann mich jemand in die richtige Richtung schubsen?

Danke schonmals im Voraus :-)

Gruss Jan

amenomade

Wenn die Daten immer gleich formattiert sind:
reading01Name data
reading01Regex class='data'>([0-9]+,[0-9]*)
reading01RegOpt g
sollte alle Werte in Readings data-1 data-2 data-3 usw holen
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

ch.eick

Zitat von: amenomade am 14 September 2020, 19:48:45
Wenn die Daten immer gleich formattiert sind:
reading01Name data
reading01Regex class='data'>([0-9]+,[0-9]*)
reading01RegOpt g
sollte alle Werte in Readings data-1 data-2 data-3 usw holen
Und dann noch anhübschen mit


reading01-1Name Break_Info_01_Date_Temps
reading01-2Name Break_Info_01_Puiss_A_Cons
reading01-3Name Break_Info_01_Enrg_A_Cons

reading01-4Name Break_Info_02_Date_Temps
reading01-5Name Break_Info_02_Puiss_A_Cons
...


Gruß
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

JF Mennedy

Super Vielen Dank :-) Das geht einwandfrei :-)

@Christian
Wie meinst Du das zum Aufhübschen ? Muss ich die Attribute vorher anlegen?

Gruss Jan

ch.eick

Zitat von: JF Mennedy am 15 September 2020, 09:49:15
@Christian
Wie meinst Du das zum Aufhübschen ? Muss ich die Attribute vorher anlegen?
Du kannst jedem reading eine lesbaren Namen geben. Dazu schaust Du Dir die readings, die jetzt durchnummeriert sind an und kannst sie nach meinem Muster umbenennen lassen. Ansonsten heißt Dein Datum data-1, der nächste Wert data-2, ...
Das ganze lässt sich mit dem RAW Editor recht schnell eingeben.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

JF Mennedy

Ah ok, also muss ich das nach dem ersten Auslesen machen, wenn die Readings angelegt sind...

ch.eick

Zitat von: JF Mennedy am 15 September 2020, 11:39:27
Ah ok, also muss ich das nach dem ersten Auslesen machen, wenn die Readings angelegt sind...
Genau, dann siehst Du auch die Reihenfolge der Werte, wie HTTPMOD sie ausgelesen hat.
Sind da eventuell auch noch +/- Werte dabei?
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

JF Mennedy

Ich will ungefähr 40 Liegenschaften auslesen mit bis zu 3 Zählern (Wasser, Gas, Strom). Die Werte sind alle positiv und haben gelegentlich auch mehr Werte (bis zu 10). Ich denke, das Anlegen der Liegenschaften und der Zähler wird etwas Fleissarbeit. Anschliessend werde ich mit dbLog in eine SQL Datenbank schreiben und täglich aus SQL für jeden Zähler eine csv Datei schreiben, die ich dann per Mail verschicke...

Ich denke, die Namensgebung ist schon gut in fhem zu realisieren, um, wie DU schon sagtest, zu sehen, dass sie auch richtig eingelesen wurden, der Rest passiert dann auf SQL Basis...

Aber schon mal gut, dass ich die Werte ausgelesen bekomme :-)

guhu

Hallo zusammen, vielleicht hat jemand Lust, mich hier ein wenig anzustubsen (mehr oder weniger ... ;) ):
Ich möchte einige Daten aus meinem Komoot-Profil einlesen. Leider ist der Login-Prozess in zwei Schritten, also ertsmal Abfrage email-Adresse und dann separat das Passwort.
Ich habe das wie folgt definiert, kann mich aber nicht einloggen:

defmod komoot HTTPMOD https://www.komoot.de/community/your-regions 3600
attr komoot userattr sid01Data sid01URL sid02Data
attr komoot enableCookies 1
attr komoot reAuthRegex .*403.Forbidden.*
attr komoot sid01Data email="xx@gmx.de"
attr komoot sid01URL https://account.komoot.com/signin?redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1
attr komoot sid02Data password="xxxx"
attr komoot verbose 4


Wie komme ich da weiter? Mit Dank im voraus ..
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

ch.eick

Zitat von: guhu am 15 September 2020, 16:45:27
Hallo zusammen, vielleicht hat jemand Lust, mich hier ein wenig anzustubsen (mehr oder weniger ... ;) ):
Ich möchte einige Daten aus meinem Komoot-Profil einlesen. Leider ist der Login-Prozess in zwei Schritten, also ertsmal Abfrage email-Adresse und dann separat das Passwort.
Ich habe das wie folgt definiert, kann mich aber nicht einloggen:

defmod komoot HTTPMOD https://www.komoot.de/community/your-regions 3600
attr komoot userattr sid01Data sid01URL sid02Data
attr komoot enableCookies 1
attr komoot reAuthRegex .*403.Forbidden.*
attr komoot sid01Data email="xx@gmx.de"
attr komoot sid01URL https://account.komoot.com/signin?redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1
attr komoot sid02Data password="xxxx"
attr komoot verbose 4


Wie komme ich da weiter? Mit Dank im voraus ..
Du solltest Dir die Kommunikation mit den Entwickertools im Browser oder Burp ansehen, was wird gesendet, was kommt zurück.
Dann wird hier immer ein Log mit verbose 5 benötigt.

Ob userid und passwort in zwei Headern stehen muss wird man im Browser sehen können.

Gruß
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

guhu

#895
Danke für den Tip. Ich habe das mit Burp angeschaut.

Es werden 2x POST abgesetzt, das erste mal mit:
{"email":"xx@xx.com"}

das zweite Mal mit

{"email":"xx@xx.com","password":"xx","reason":null}


Das habe ich wie folgt umgesetzt:


attr komoot reAuthRegex .*403.Forbidden.*
attr komoot sid01Data {"email":"xx@xx.com"}
attr komoot sid01URL https://account.komoot.com/signin?redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1
attr komoot sid02Data {"email":"xx@xx.com","password":"xx","reason":null}
attr komoot sid02URL https://account.komoot.com/signin?redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1
attr komoot verbose 5


Das klappt aber so leider nicht,  im host steht:
HTTP/1.1 404 Not Found
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Fri, 18 Sep 2020 16:23:52 GMT
ETag: W/"14f8-jmcBrnMoCQozH8gpFuZvgAkM1gM"


Muss ich das sein lassen ...  ?
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

amenomade

#896
defmod komoot HTTPMOD https://www.komoot.de/community/your-regions 0
attr komoot enableCookies 1
attr komoot httpVersion 1.1
attr komoot reAuthRegex .*403.Forbidden.*
attr komoot sid01Data {"email":"xxx@xxx.com"}
attr komoot sid01URL https://account.komoot.com/v1/signin
attr komoot sid02Data {"email":"xxx@xxx.com","password":"xxx","reason":null}
attr komoot sid02URL https://account.komoot.com/v1/signin
attr komoot sidHeader01 Referer: https://account.komoot.com/signin?redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1
attr komoot sidHeader02 Origin: https://account.komoot.com
attr komoot sidHeader03 Content-Type: application/json
attr komoot verbose 5



Entscheidend sind auf jeden Fall die login URLs mit v1 und ohne das ?parameter Teil danach, und sidHeader03
Vielleicht sind die andere Headers, und httpVersion nicht nötig (hab ich nicht getestet), aber zumindest funktioniert es so.

Ob das was zurückkommt brauchbar ist, ist eine andere Geschichte ;) Alles scheint auf api Request verlinkt zu sein
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

guhu

das Device ist ja darauf angelegt, periodisch die URLs abzufragen. Wie bekommt man das Device eigentlich dazu, die Aktion zu starten? Ist sicher beim Debuggen hilfreich.
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

amenomade

#898
Zitat von: guhu am 19 September 2020, 13:44:15
das Device ist ja darauf angelegt, periodisch die URLs abzufragen. Wie bekommt man das Device eigentlich dazu, die Aktion zu starten? Ist sicher beim Debuggen hilfreich.
Verstehe deine Frage nicht. Meinst Du das Intervall? Einfach in der DEF ändern. Das setze ich immer bei Tests auf 0 und starte manuell über "set <name> reread" (EDIT: abhängig von deiner Version vom HTTPMOD Modul, musst Du vielleicht noch das Attribut enableControlSet auf 1 setzen, damit Du die "set" Kommandos hast.)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

guhu

ok, danke, das ist für Tests sicher gut, das meinte ich.

Habe das jetzt mal geändert, so dass ich 2x  die v1/signin URL ansteuere. Leider loggt der sich noch nicht ein. Im Logfile steht das so:
2020.09.19 13:47:00.128 4: https://www.komoot.de/community/your-regions: HTTP response code 403
2020.09.19 13:47:00.129 5: HttpUtils https://www.komoot.de/community/your-regions: Got data, length: 7728
2020.09.19 13:47:00.129 5: HttpUtils response header:
HTTP/1.1 403 Forbidden
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Sat, 19 Sep 2020 11:47:00 GMT
ETag: W/"1e30-dUGc8I2xfRRam6pTW1kQwvwFl9Y"
Expires: 0
Pragma: no-cache
Server: nginx/1.14.1
Vary: Accept-Encoding
X-Powered-By: Express
Connection: Close
2020.09.19 13:47:00.129 4: komoot: Read callback: request type was update retry 0,
header: HTTP/1.1 403 Forbidden
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Sat, 19 Sep 2020 11:47:00 GMT
ETag: W/"1e30-dUGc8I2xfRRam6pTW1kQwvwFl9Y"
Expires: 0
Pragma: no-cache
Server: nginx/1.14.1
Vary: Accept-Encoding
X-Powered-By: Express
Connection: Close, body length 7728
2020.09.19 13:47:00.129 5: komoot: Read callback: body
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>komoot: 403 Forbidden</title>
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <link rel="shortcut icon" href="/icons/favicon.png">

  <style>
    * {
      margin: 0;
      padding: 0;
    }

    h1, p {
      margin-bottom: 12px;
    }

    a {
      color: #1086E8;
    }

    a:hover,
    a:focus,
    a:active {
      color: #1770BA;
      text-decoration: none;
    }

    html {
      background: #F5F4E9;
      font-family: -apple-system,system-ui,BlinkMacSystemFont,Roboto,"Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
      font-size: 16px;
      line-height: 1.5;
      color: #9D9D9D;
      padding: 48px 24px;
    }

    body {
      max-width: 560px;
      background: white;
      box-shadow: 0 6px 24px 6px rgba(0,0,0,.11);
      margin: 0 auto;
      padding: 24px;
    }

    header {
      border-bottom: 1px solid #E5E4D8;
      padding-bottom: 24px;
      margin-bottom: 24px;
    }

    header a {
      display: inline-block;
    }

    header svg {
      vertical-align: bottom;
    }

    h1 {
      font-size: 24px;
      color: #383838;
      margin-top: 0;
    }

    pre {
      color: black;
      font-size: 11px;
      font-family: monospace;
      overflow: auto;
      margin-top: 50px;
    }

    .en {
      margin-bottom: 42px;
    }

  </style>

</head>

<body>
  <header>
     <a href="/">
       <svg width="130" height="32" viewBox="0 0 130 32" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="a"><stop stop-color="#93D759" offset="0%"/><stop stop-color="#78B34A" offset="100%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><g><path d="M92.164 20.01c-1.606 0-2.908-1.352-2.908-3.018 0-1.667 1.302-3.018 2.908-3.018 1.605 0 2.907 1.351 2.907 3.018 0 1.666-1.302 3.017-2.907 3.017m0-9.026c-3.386 0-6.131 2.69-6.131 6.009 0 3.318 2.745 6.008 6.13 6.008 3.387 0 6.131-2.69 6.131-6.008s-2.744-6.009-6.13-6.009zm-34.597 0c-3.386 0-6.131 2.69-6.131 6.009 0 3.318 2.745 6.008 6.13 6.008 3.387 0 6.131-2.69 6.131-6.008 0-3.319-2.744-6.008-6.13-6.008zm48.599 0c-3.386 0-6.131 2.69-6.131 6.009 0 3.318 2.745 6.008 6.13 6.008 3.387 0 6.131-2.69 6.131-6.008s-2.744-6.009-6.13-6.009zm-54.941.335h-4.16l-3.784 4.57V8H40v14.713h3.282v-4.868s4.251 4.872 4.344 4.872c.735.002 4.081 0 4.081 0l-5.461-5.998 4.979-5.401zm70.116 8.842c-1.232.207-1.931-.276-2.222-.574-.299-.307-.521-.8-.521-1.122V14.02h3.062v-2.686h-3.062V8.233h-3.246v3.1h-2.217v2.687h2.217v4.444c0 2.494 2.075 4.524 4.626 4.524 0 0 1.19.043 2.022-.295l-.66-2.533zm-52.243 2.533s-.01-4.455 0-5.89c.002-.375.048-.737.13-1.078.171-.708.463-1.211 1.08-1.496.387-.18.83-.25 1.35-.22.69.043 1.15.351 1.403.944.18.421.205.876.205 1.266.002 1.602.001 6.474.001 6.474h3.174V16.8c0-.475.06-.887.184-1.257.237-.711.647-1.167 1.25-1.393.472-.176.923-.2 1.46-.07.435.104.754.343.977.729.216.375.333.817.336 1.31.008 1.616 0 6.574 0 6.574h3.25v-6.43c0-.355-.018-.726-.05-1.135-.068-.842-.273-1.559-.627-2.193a3.451 3.451 0 0 0-2.117-1.682c-.81-.235-1.678-.27-2.578-.106-.908.166-1.66.585-2.233 1.244-.147.169-.282.35-.412.525l-.029.038c-.334-.642-.802-1.12-1.392-1.423-.924-.474-1.954-.602-3.15-.392-1.067.187-1.788.723-2.36 1.594l-.4-1.396h-2.726v11.356h3.274zm-11.531-2.704c-1.606 0-2.908-1.342-2.908-2.997 0-1.656 1.302-2.998 2.908-2.998 1.605 0 2.907 1.342 2.907 2.998 0 1.655-1.302 2.997-2.907 2.997zm48.599.02c-1.606 0-2.908-1.35-2.908-3.017 0-1.667 1.302-3.018 2.908-3.018 1.606 0 2.907 1.351 2.907 3.018 0 1.666-1.301 3.017-2.907 3.017z" fill="#78B62E"/><path d="M0 16c0 3.745 1.29 7.187 3.446 9.913l8.188-8.188A4.676 4.676 0 0 1 11.303 16a4.697 4.697 0 0 1 9.394 0c0 .61-.12 1.19-.33 1.725l8.187 8.188A15.925 15.925 0 0 0 32 16c0-8.836-7.164-16-16-16S0 7.164 0 16m12.95 3.564l-8 8A15.938 15.938 0 0 0 16 32c4.287 0 8.177-1.69 11.05-4.436l-8-8c-.085.072-3.05-4.776-3.05-4.776s-2.965 4.848-3.05 4.776" fill="url(#a)"/></g></g></svg>
     </a>
  </header>

  <noscript>
  <meta name="refresh" http-equiv="refresh" content="0; url=https://account.komoot.com/signin?hl=de&redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1">
</noscript>

<div id="pageMountNode">
  <article class="en">
    <h1>
      Please Hold!
    </h1>
    <p>
      We'll be redirecting you to the <a href="/login">log-in page</a> in just a few seconds.
    </p>
  </article>

  <article class="de">
    <h1>
      Bitte warte einen Augenblick!
    </h1>
    <p>
      Wir leiten dich weiter zur <a href="/login">Login-Seite</a>.
    </p>
  </article>
</div>

<p>Redirect to: <a href="https://account.komoot.com/signin?hl=de&redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1">https://account.komoot.com/signin</a></p>
<script>
  (function () {
    var crossLoginFailed = function () {
            location.href = 'https://account.komoot.com/signin?hl=de&redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1';
        };

    // Prevent cicular redirect
    if (/(\?|&)_redirected=/.test(location.search)) {
        return crossLoginFailed();
    }

    // Prepare iframe
    var pageNode = document.getElementById('pageMountNode');
    var iframeNode = document.createElement('iframe');

    iframeNode.src = '/actions/signin/iframe_check';
    iframeNode.style.position = 'absolute';
    iframeNode.style.top = '0';
    iframeNode.style.left = '-10000px';
    iframeNode.style.width = '50px';
    iframeNode.style.height = '50px';
    iframeNode.onload = function (event) {
        try {
            // Read iframe content
            var content = iframeNode.contentWindow && iframeNode.contentWindow.document ? (
                iframeNode.contentWindow.document.body ? iframeNode.contentWindow.document.body.innerHTML : ''
            ) : iframeNode.contentDocument && iframeNode.contentDocument.document ? (
                iframeNode.contentDocument.document.body ? iframeNode.contentDocument.document.body.innerHTML : ''
            ) : '';

            // Remove iframe
            iframeNode.parentNode.removeChild(iframeNode);

            // Redirect
            if (/login_ok/.test(content)) {
                location.href = location.href
                    .replace(/(\?|#|$)/, function (all, key) {
                        if (key === '?') {
                            return '?_redirected=1&';
                        }
                        if (key === '#') {
                            return '?_redirected=1#';
                        }
                        return '?_redirected=1';
                    });
            } else {
               crossLoginFailed();
            }
        } catch (err) {
           crossLoginFailed();
        }
    };
    iframeNode.onerror = function (event) {
        // Remove iframe
        iframeNode.parentNode.removeChild(iframeNode);

        crossLoginFailed();
    };

    pageNode.parentNode.insertBefore(iframeNode, pageNode.nextSibling);
  })();
</script>


  <script>
    // Listen to pop state, getting back button working
    window.addEventListener('popstate', event => {
        if (event.state.path) {
            location.href = event.state.path;
        }
    });

    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    window.ga && window.ga('create', 'UA-21610363-1', 'auto');
    window.ga && window.ga('send', 'pageview');
  </script>
</body>
</html>

2020.09.19 13:47:00.129 5: komoot: GetCookies is looking for Cookies
2020.09.19 13:47:00.129 5: komoot: ExtractSid called, context reading, num
2020.09.19 13:47:00.129 5: komoot: GetRegex found precompiled reAuthRegex for  as (?^:.*403.Forbidden.*)
2020.09.19 13:47:00.129 5: komoot: CheckAuth is checking buffer with ReAuthRegex (?^:.*403.Forbidden.*)
2020.09.19 13:47:00.129 4: komoot: CheckAuth decided new authentication required
2020.09.19 13:47:00.129 4: komoot: Auth called with Steps: 01 02
2020.09.19 13:47:00.129 5: komoot: AddToQueue prepends type auth02 to URL https://account.komoot.com/v1/signin, data {"email":"xx@xx.com","password":"xx","reason":null}, no headers, retry 0, initial queue len: 0
2020.09.19 13:47:00.130 5: komoot: AddToQueue prepends type auth01 to URL https://account.komoot.com/v1/signin, data {"email":"xx@xx.com"}, no headers, retry 0, initial queue len: 1
2020.09.19 13:47:00.130 5: komoot: HandleSendQueue called, qlen = 2
2020.09.19 13:47:00.130 5: komoot: HandleSendQueue is using Cookie ka_s.sig with path / and Value MQxvmjlD8zMdTG--MffVJKbn1Tg (key ka_s.sig;/, destination path is /v1/signin)
2020.09.19 13:47:00.130 5: komoot: HandleSendQueue is using Cookie ka_s=eyJsYW5nIjoiZW4ifQ with path / and Value = (key ka_s=eyJsYW5nIjoiZW4ifQ;/, destination path is /v1/signin)
2020.09.19 13:47:00.130 5: komoot: HandleSendQueue is using Cookie kmt_session.sig with path / and Value TeH6fZTwqkPEfyTX1VjHW_lywTA (key kmt_session.sig;/, destination path is /v1/signin)
2020.09.19 13:47:00.130 5: komoot: HandleSendQueue is using Cookie kmt_session with path / and Value eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9 (key kmt_session;/, destination path is /v1/signin)
2020.09.19 13:47:00.130 5: komoot: HandleSendQueue is adding Cookie header: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9
2020.09.19 13:47:00.130 4: komoot: HandleSendQueue sends auth01 with timeout 2 to https://account.komoot.com/v1/signin,
data: {"email":"xx@xx.com"},
header: Cookie: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9
2020.09.19 13:47:00.130 5: HttpUtils url=https://account.komoot.com/v1/signin
2020.09.19 13:47:00.130 4: IP: account.komoot.com -> 54.72.14.39
2020.09.19 13:47:00.131 5: komoot: AddToQueue adds type update to URL https://www.komoot.de/community/your-regions, no data, no headers, retry 1, initial queue len: 1
2020.09.19 13:47:00.131 5: komoot: HandleSendQueue called, qlen = 2
2020.09.19 13:47:00.131 5: komoot: HandleSendQueue - still waiting for reply to last request, delay sending from queue
2020.09.19 13:47:00.131 4: komoot: CheckAuth requeued request update after auth, retryCount 0 ...
2020.09.19 13:47:00.274 5: HttpUtils request header:
POST /v1/signin HTTP/1.0
Host: account.komoot.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Cookie: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9
Content-Length: 33
Content-Type: application/x-www-form-urlencoded

2020.09.19 13:47:00.323 4: https://account.komoot.com/v1/signin: HTTP response code 200
2020.09.19 13:47:00.323 5: HttpUtils https://account.komoot.com/v1/signin: Got data, length: 37
2020.09.19 13:47:00.324 5: HttpUtils response header:
HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Type: application/json; charset=utf-8
Date: Sat, 19 Sep 2020 11:47:00 GMT
ETag: W/"25-2EfkMpD8JXWf9pKC2xUNUebJFxc"
Server: nginx/1.14.1
Vary: Accept-Encoding
Vary: Accept-Encoding
X-Powered-By: Express
Content-Length: 49
Connection: Close
2020.09.19 13:47:00.324 4: komoot: Read callback: request type was auth01 retry 0,
header: HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Type: application/json; charset=utf-8
Date: Sat, 19 Sep 2020 11:47:00 GMT
ETag: W/"25-2EfkMpD8JXWf9pKC2xUNUebJFxc"
Server: nginx/1.14.1
Vary: Accept-Encoding
Vary: Accept-Encoding
X-Powered-By: Express
Content-Length: 49
Connection: Close, body length 37
2020.09.19 13:47:00.324 5: komoot: Read callback: body
{"type":null,"error":null,"email":""}
2020.09.19 13:47:00.324 5: komoot: GetCookies is looking for Cookies
2020.09.19 13:47:00.324 5: komoot: ExtractSid called, context sid, num 01
2020.09.19 13:47:01.131 5: komoot: HandleSendQueue called, qlen = 2
2020.09.19 13:47:01.132 5: komoot: HandleSendQueue is using Cookie ka_s.sig with path / and Value MQxvmjlD8zMdTG--MffVJKbn1Tg (key ka_s.sig;/, destination path is /v1/signin)
2020.09.19 13:47:01.132 5: komoot: HandleSendQueue is using Cookie ka_s=eyJsYW5nIjoiZW4ifQ with path / and Value = (key ka_s=eyJsYW5nIjoiZW4ifQ;/, destination path is /v1/signin)
2020.09.19 13:47:01.132 5: komoot: HandleSendQueue is using Cookie kmt_session.sig with path / and Value TeH6fZTwqkPEfyTX1VjHW_lywTA (key kmt_session.sig;/, destination path is /v1/signin)
2020.09.19 13:47:01.132 5: komoot: HandleSendQueue is using Cookie kmt_session with path / and Value eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9 (key kmt_session;/, destination path is /v1/signin)
2020.09.19 13:47:01.132 5: komoot: HandleSendQueue is adding Cookie header: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9
2020.09.19 13:47:01.132 4: komoot: HandleSendQueue sends auth02 with timeout 2 to https://account.komoot.com/v1/signin,
data: {"email":"xx@xx.com","password":"xx","reason":null},
header: Cookie: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9
2020.09.19 13:47:01.132 5: HttpUtils url=https://account.komoot.com/v1/signin
2020.09.19 13:47:01.132 4: IP: account.komoot.com -> 54.72.14.39
2020.09.19 13:47:01.286 5: HttpUtils request header:
POST /v1/signin HTTP/1.0
Host: account.komoot.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Cookie: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9
Content-Length: 69
Content-Type: application/x-www-form-urlencoded

2020.09.19 13:47:01.340 4: https://account.komoot.com/v1/signin: HTTP response code 200
2020.09.19 13:47:01.340 5: HttpUtils https://account.komoot.com/v1/signin: Got data, length: 37
2020.09.19 13:47:01.340 5: HttpUtils response header:
HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Type: application/json; charset=utf-8
Date: Sat, 19 Sep 2020 11:47:01 GMT
ETag: W/"25-2EfkMpD8JXWf9pKC2xUNUebJFxc"
Server: nginx/1.14.1
Vary: Accept-Encoding
Vary: Accept-Encoding
X-Powered-By: Express
Content-Length: 49
Connection: Close
2020.09.19 13:47:01.340 4: komoot: Read callback: request type was auth02 retry 0,
header: HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Type: application/json; charset=utf-8
Date: Sat, 19 Sep 2020 11:47:01 GMT
ETag: W/"25-2EfkMpD8JXWf9pKC2xUNUebJFxc"
Server: nginx/1.14.1
Vary: Accept-Encoding
Vary: Accept-Encoding
X-Powered-By: Express
Content-Length: 49
Connection: Close, body length 37
2020.09.19 13:47:01.340 5: komoot: Read callback: body
{"type":null,"error":null,"email":""}
2020.09.19 13:47:01.340 5: komoot: GetCookies is looking for Cookies
2020.09.19 13:47:01.340 5: komoot: ExtractSid called, context sid, num 02
2020.09.19 13:47:02.132 5: komoot: HandleSendQueue called, qlen = 1
2020.09.19 13:47:02.133 5: komoot: HandleSendQueue is using Cookie ka_s.sig with path / and Value MQxvmjlD8zMdTG--MffVJKbn1Tg (key ka_s.sig;/, destination path is /community/your-regions)
2020.09.19 13:47:02.133 5: komoot: HandleSendQueue is using Cookie ka_s=eyJsYW5nIjoiZW4ifQ with path / and Value = (key ka_s=eyJsYW5nIjoiZW4ifQ;/, destination path is /community/your-regions)
2020.09.19 13:47:02.133 5: komoot: HandleSendQueue is using Cookie kmt_session.sig with path / and Value TeH6fZTwqkPEfyTX1VjHW_lywTA (key kmt_session.sig;/, destination path is /community/your-regions)
2020.09.19 13:47:02.133 5: komoot: HandleSendQueue is using Cookie kmt_session with path / and Value eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9 (key kmt_session;/, destination path is /community/your-regions)
2020.09.19 13:47:02.133 5: komoot: HandleSendQueue is adding Cookie header: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9
2020.09.19 13:47:02.133 4: komoot: HandleSendQueue sends update with timeout 2 to https://www.komoot.de/community/your-regions, No Data,
header: Cookie: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9
2020.09.19 13:47:02.133 5: HttpUtils url=https://www.komoot.de/community/your-regions
2020.09.19 13:47:02.133 4: IP: www.komoot.de -> 52.16.197.180
2020.09.19 13:47:02.284 5: HttpUtils request header:
GET /community/your-regions HTTP/1.0
Host: www.komoot.de
User-Agent: fhem
Accept-Encoding: gzip,deflate
Cookie: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9

2020.09.19 13:47:02.398 4: https://www.komoot.de/community/your-regions: HTTP response code 403
2020.09.19 13:47:02.398 5: HttpUtils https://www.komoot.de/community/your-regions: Got data, length: 7728
2020.09.19 13:47:02.398 5: HttpUtils response header:
HTTP/1.1 403 Forbidden
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Sat, 19 Sep 2020 11:47:02 GMT
ETag: W/"1e30-dUGc8I2xfRRam6pTW1kQwvwFl9Y"
Expires: 0
Pragma: no-cache
Server: nginx/1.14.1
Vary: Accept-Encoding
X-Powered-By: Express
Connection: Close
2020.09.19 13:47:02.398 4: komoot: Read callback: request type was update retry 1,
header: HTTP/1.1 403 Forbidden
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Sat, 19 Sep 2020 11:47:02 GMT
ETag: W/"1e30-dUGc8I2xfRRam6pTW1kQwvwFl9Y"
Expires: 0
Pragma: no-cache
Server: nginx/1.14.1
Vary: Accept-Encoding
X-Powered-By: Express
Connection: Close, body length 7728
2020.09.19 13:47:02.398 5: komoot: Read callback: body
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>komoot: 403 Forbidden</title>
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <link rel="shortcut icon" href="/icons/favicon.png">

  <style>
    * {
      margin: 0;
      padding: 0;
    }

    h1, p {
      margin-bottom: 12px;
    }

    a {
      color: #1086E8;
    }

    a:hover,
    a:focus,
    a:active {
      color: #1770BA;
      text-decoration: none;
    }

    html {
      background: #F5F4E9;
      font-family: -apple-system,system-ui,BlinkMacSystemFont,Roboto,"Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
      font-size: 16px;
      line-height: 1.5;
      color: #9D9D9D;
      padding: 48px 24px;
    }

    body {
      max-width: 560px;
      background: white;
      box-shadow: 0 6px 24px 6px rgba(0,0,0,.11);
      margin: 0 auto;
      padding: 24px;
    }

    header {
      border-bottom: 1px solid #E5E4D8;
      padding-bottom: 24px;
      margin-bottom: 24px;
    }

    header a {
      display: inline-block;
    }

    header svg {
      vertical-align: bottom;
    }

    h1 {
      font-size: 24px;
      color: #383838;
      margin-top: 0;
    }

    pre {
      color: black;
      font-size: 11px;
      font-family: monospace;
      overflow: auto;
      margin-top: 50px;
    }

    .en {
      margin-bottom: 42px;
    }

  </style>

</head>

<body>
  <header>
     <a href="/">
       <svg width="130" height="32" viewBox="0 0 130 32" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="a"><stop stop-color="#93D759" offset="0%"/><stop stop-color="#78B34A" offset="100%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><g><path d="M92.164 20.01c-1.606 0-2.908-1.352-2.908-3.018 0-1.667 1.302-3.018 2.908-3.018 1.605 0 2.907 1.351 2.907 3.018 0 1.666-1.302 3.017-2.907 3.017m0-9.026c-3.386 0-6.131 2.69-6.131 6.009 0 3.318 2.745 6.008 6.13 6.008 3.387 0 6.131-2.69 6.131-6.008s-2.744-6.009-6.13-6.009zm-34.597 0c-3.386 0-6.131 2.69-6.131 6.009 0 3.318 2.745 6.008 6.13 6.008 3.387 0 6.131-2.69 6.131-6.008 0-3.319-2.744-6.008-6.13-6.008zm48.599 0c-3.386 0-6.131 2.69-6.131 6.009 0 3.318 2.745 6.008 6.13 6.008 3.387 0 6.131-2.69 6.131-6.008s-2.744-6.009-6.13-6.009zm-54.941.335h-4.16l-3.784 4.57V8H40v14.713h3.282v-4.868s4.251 4.872 4.344 4.872c.735.002 4.081 0 4.081 0l-5.461-5.998 4.979-5.401zm70.116 8.842c-1.232.207-1.931-.276-2.222-.574-.299-.307-.521-.8-.521-1.122V14.02h3.062v-2.686h-3.062V8.233h-3.246v3.1h-2.217v2.687h2.217v4.444c0 2.494 2.075 4.524 4.626 4.524 0 0 1.19.043 2.022-.295l-.66-2.533zm-52.243 2.533s-.01-4.455 0-5.89c.002-.375.048-.737.13-1.078.171-.708.463-1.211 1.08-1.496.387-.18.83-.25 1.35-.22.69.043 1.15.351 1.403.944.18.421.205.876.205 1.266.002 1.602.001 6.474.001 6.474h3.174V16.8c0-.475.06-.887.184-1.257.237-.711.647-1.167 1.25-1.393.472-.176.923-.2 1.46-.07.435.104.754.343.977.729.216.375.333.817.336 1.31.008 1.616 0 6.574 0 6.574h3.25v-6.43c0-.355-.018-.726-.05-1.135-.068-.842-.273-1.559-.627-2.193a3.451 3.451 0 0 0-2.117-1.682c-.81-.235-1.678-.27-2.578-.106-.908.166-1.66.585-2.233 1.244-.147.169-.282.35-.412.525l-.029.038c-.334-.642-.802-1.12-1.392-1.423-.924-.474-1.954-.602-3.15-.392-1.067.187-1.788.723-2.36 1.594l-.4-1.396h-2.726v11.356h3.274zm-11.531-2.704c-1.606 0-2.908-1.342-2.908-2.997 0-1.656 1.302-2.998 2.908-2.998 1.605 0 2.907 1.342 2.907 2.998 0 1.655-1.302 2.997-2.907 2.997zm48.599.02c-1.606 0-2.908-1.35-2.908-3.017 0-1.667 1.302-3.018 2.908-3.018 1.606 0 2.907 1.351 2.907 3.018 0 1.666-1.301 3.017-2.907 3.017z" fill="#78B62E"/><path d="M0 16c0 3.745 1.29 7.187 3.446 9.913l8.188-8.188A4.676 4.676 0 0 1 11.303 16a4.697 4.697 0 0 1 9.394 0c0 .61-.12 1.19-.33 1.725l8.187 8.188A15.925 15.925 0 0 0 32 16c0-8.836-7.164-16-16-16S0 7.164 0 16m12.95 3.564l-8 8A15.938 15.938 0 0 0 16 32c4.287 0 8.177-1.69 11.05-4.436l-8-8c-.085.072-3.05-4.776-3.05-4.776s-2.965 4.848-3.05 4.776" fill="url(#a)"/></g></g></svg>
     </a>
  </header>

  <noscript>
  <meta name="refresh" http-equiv="refresh" content="0; url=https://account.komoot.com/signin?hl=de&redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1">
</noscript>

<div id="pageMountNode">
  <article class="en">
    <h1>
      Please Hold!
    </h1>
    <p>
      We'll be redirecting you to the <a href="/login">log-in page</a> in just a few seconds.
    </p>
  </article>

  <article class="de">
    <h1>
      Bitte warte einen Augenblick!
    </h1>
    <p>
      Wir leiten dich weiter zur <a href="/login">Login-Seite</a>.
    </p>
  </article>
</div>

<p>Redirect to: <a href="https://account.komoot.com/signin?hl=de&redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1">https://account.komoot.com/signin</a></p>
<script>
  (function () {
    var crossLoginFailed = function () {
            location.href = 'https://account.komoot.com/signin?hl=de&redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1';
        };

    // Prevent cicular redirect
    if (/(\?|&)_redirected=/.test(location.search)) {
        return crossLoginFailed();
    }

    // Prepare iframe
    var pageNode = document.getElementById('pageMountNode');
    var iframeNode = document.createElement('iframe');

    iframeNode.src = '/actions/signin/iframe_check';
    iframeNode.style.position = 'absolute';
    iframeNode.style.top = '0';
    iframeNode.style.left = '-10000px';
    iframeNode.style.width = '50px';
    iframeNode.style.height = '50px';
    iframeNode.onload = function (event) {
        try {
            // Read iframe content
            var content = iframeNode.contentWindow && iframeNode.contentWindow.document ? (
                iframeNode.contentWindow.document.body ? iframeNode.contentWindow.document.body.innerHTML : ''
            ) : iframeNode.contentDocument && iframeNode.contentDocument.document ? (
                iframeNode.contentDocument.document.body ? iframeNode.contentDocument.document.body.innerHTML : ''
            ) : '';

            // Remove iframe
            iframeNode.parentNode.removeChild(iframeNode);

            // Redirect
            if (/login_ok/.test(content)) {
                location.href = location.href
                    .replace(/(\?|#|$)/, function (all, key) {
                        if (key === '?') {
                            return '?_redirected=1&';
                        }
                        if (key === '#') {
                            return '?_redirected=1#';
                        }
                        return '?_redirected=1';
                    });
            } else {
               crossLoginFailed();
            }
        } catch (err) {
           crossLoginFailed();
        }
    };
    iframeNode.onerror = function (event) {
        // Remove iframe
        iframeNode.parentNode.removeChild(iframeNode);

        crossLoginFailed();
    };

    pageNode.parentNode.insertBefore(iframeNode, pageNode.nextSibling);
  })();
</script>


  <script>
    // Listen to pop state, getting back button working
    window.addEventListener('popstate', event => {
        if (event.state.path) {
            location.href = event.state.path;
        }
    });

    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    window.ga && window.ga('create', 'UA-21610363-1', 'auto');
    window.ga && window.ga('send', 'pageview');
  </script>
</body>
</html>

2020.09.19 13:47:02.399 5: komoot: GetCookies is looking for Cookies
2020.09.19 13:47:02.399 5: komoot: ExtractSid called, context reading, num
2020.09.19 13:47:02.399 5: komoot: GetRegex found precompiled reAuthRegex for  as (?^:.*403.Forbidden.*)
2020.09.19 13:47:02.399 5: komoot: CheckAuth is checking buffer with ReAuthRegex (?^:.*403.Forbidden.*)
2020.09.19 13:47:02.399 4: komoot: CheckAuth decided new authentication required
2020.09.19 13:47:02.399 4: komoot: Authentication still required but no retries left - did last authentication fail?
2020.09.19 13:47:02.399 5: komoot: Read starts parsing response to update with defined readings:
2020.09.19 13:47:02.399 4: komoot: Read response to update didn't match any Reading
2020.09.19 13:47:02.399 5: komoot: HandleSendQueue called, qlen = 0
2020.09.19 13:47:09.794 5: komoot: GetUpdate called (update)
2020.09.19 13:47:09.795 5: komoot: update timer modified: will call GetUpdate in 10.0 seconds at 2020-09-19 13:47:19
2020.09.19 13:47:09.795 5: komoot: AddToQueue adds type update to URL https://www.komoot.de/community/your-regions, no data, no headers, retry 0, initial queue len: 0
2020.09.19 13:47:09.796 5: komoot: HandleSendQueue called, qlen = 1
2020.09.19 13:47:09.796 5: komoot: HandleSendQueue is using Cookie ka_s.sig with path / and Value MQxvmjlD8zMdTG--MffVJKbn1Tg (key ka_s.sig;/, destination path is /community/your-regions)
2020.09.19 13:47:09.796 5: komoot: HandleSendQueue is using Cookie ka_s=eyJsYW5nIjoiZW4ifQ with path / and Value = (key ka_s=eyJsYW5nIjoiZW4ifQ;/, destination path is /community/your-regions)
2020.09.19 13:47:09.796 5: komoot: HandleSendQueue is using Cookie kmt_session.sig with path / and Value TeH6fZTwqkPEfyTX1VjHW_lywTA (key kmt_session.sig;/, destination path is /community/your-regions)
2020.09.19 13:47:09.796 5: komoot: HandleSendQueue is using Cookie kmt_session with path / and Value eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9 (key kmt_session;/, destination path is /community/your-regions)
2020.09.19 13:47:09.796 5: komoot: HandleSendQueue is adding Cookie header: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9
2020.09.19 13:47:09.796 4: komoot: HandleSendQueue sends update with timeout 2 to https://www.komoot.de/community/your-regions, No Data,
header: Cookie: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9
2020.09.19 13:47:09.796 5: HttpUtils url=https://www.komoot.de/community/your-regions
2020.09.19 13:47:09.797 4: IP: www.komoot.de -> 52.16.197.180
2020.09.19 13:47:10.550 5: HttpUtils request header:
GET /community/your-regions HTTP/1.0
Host: www.komoot.de
User-Agent: fhem
Accept-Encoding: gzip,deflate
Cookie: ka_s.sig=MQxvmjlD8zMdTG--MffVJKbn1Tg; ka_s=eyJsYW5nIjoiZW4ifQ==; kmt_session.sig=TeH6fZTwqkPEfyTX1VjHW_lywTA; kmt_session=eyJsYW5nIjoiZGUiLCJtZXRyaWMiOnRydWV9

2020.09.19 13:47:10.632 4: https://www.komoot.de/community/your-regions: HTTP response code 403
2020.09.19 13:47:10.632 5: HttpUtils https://www.komoot.de/community/your-regions: Got data, length: 7728
2020.09.19 13:47:10.632 5: HttpUtils response header:
HTTP/1.1 403 Forbidden
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Sat, 19 Sep 2020 11:47:10 GMT
ETag: W/"1e30-dUGc8I2xfRRam6pTW1kQwvwFl9Y"
Expires: 0
Pragma: no-cache
Server: nginx/1.14.1
Vary: Accept-Encoding
X-Powered-By: Express
Content-Length: 3106
Connection: Close
2020.09.19 13:47:10.632 4: komoot: Read callback: request type was update retry 0,
header: HTTP/1.1 403 Forbidden
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Sat, 19 Sep 2020 11:47:10 GMT
ETag: W/"1e30-dUGc8I2xfRRam6pTW1kQwvwFl9Y"
Expires: 0
Pragma: no-cache
Server: nginx/1.14.1
Vary: Accept-Encoding
X-Powered-By: Express
Content-Length: 3106
Connection: Close, body length 7728
2020.09.19 13:47:10.632 5: komoot: Read callback: body
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>komoot: 403 Forbidden</title>
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <link rel="shortcut icon" href="/icons/favicon.png">

  <style>
    * {
      margin: 0;
      padding: 0;
    }

    h1, p {
      margin-bottom: 12px;
    }

    a {
      color: #1086E8;
    }

    a:hover,
    a:focus,
    a:active {
      color: #1770BA;
      text-decoration: none;
    }

    html {
      background: #F5F4E9;
      font-family: -apple-system,system-ui,BlinkMacSystemFont,Roboto,"Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
      font-size: 16px;
      line-height: 1.5;
      color: #9D9D9D;
      padding: 48px 24px;
    }

    body {
      max-width: 560px;
      background: white;
      box-shadow: 0 6px 24px 6px rgba(0,0,0,.11);
      margin: 0 auto;
      padding: 24px;
    }

    header {
      border-bottom: 1px solid #E5E4D8;
      padding-bottom: 24px;
      margin-bottom: 24px;
    }

    header a {
      display: inline-block;
    }

    header svg {
      vertical-align: bottom;
    }

    h1 {
      font-size: 24px;
      color: #383838;
      margin-top: 0;
    }

    pre {
      color: black;
      font-size: 11px;
      font-family: monospace;
      overflow: auto;
      margin-top: 50px;
    }

    .en {
      margin-bottom: 42px;
    }

  </style>

</head>

<body>
  <header>
     <a href="/">
       <svg width="130" height="32" viewBox="0 0 130 32" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="a"><stop stop-color="#93D759" offset="0%"/><stop stop-color="#78B34A" offset="100%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><g><path d="M92.164 20.01c-1.606 0-2.908-1.352-2.908-3.018 0-1.667 1.302-3.018 2.908-3.018 1.605 0 2.907 1.351 2.907 3.018 0 1.666-1.302 3.017-2.907 3.017m0-9.026c-3.386 0-6.131 2.69-6.131 6.009 0 3.318 2.745 6.008 6.13 6.008 3.387 0 6.131-2.69 6.131-6.008s-2.744-6.009-6.13-6.009zm-34.597 0c-3.386 0-6.131 2.69-6.131 6.009 0 3.318 2.745 6.008 6.13 6.008 3.387 0 6.131-2.69 6.131-6.008 0-3.319-2.744-6.008-6.13-6.008zm48.599 0c-3.386 0-6.131 2.69-6.131 6.009 0 3.318 2.745 6.008 6.13 6.008 3.387 0 6.131-2.69 6.131-6.008s-2.744-6.009-6.13-6.009zm-54.941.335h-4.16l-3.784 4.57V8H40v14.713h3.282v-4.868s4.251 4.872 4.344 4.872c.735.002 4.081 0 4.081 0l-5.461-5.998 4.979-5.401zm70.116 8.842c-1.232.207-1.931-.276-2.222-.574-.299-.307-.521-.8-.521-1.122V14.02h3.062v-2.686h-3.062V8.233h-3.246v3.1h-2.217v2.687h2.217v4.444c0 2.494 2.075 4.524 4.626 4.524 0 0 1.19.043 2.022-.295l-.66-2.533zm-52.243 2.533s-.01-4.455 0-5.89c.002-.375.048-.737.13-1.078.171-.708.463-1.211 1.08-1.496.387-.18.83-.25 1.35-.22.69.043 1.15.351 1.403.944.18.421.205.876.205 1.266.002 1.602.001 6.474.001 6.474h3.174V16.8c0-.475.06-.887.184-1.257.237-.711.647-1.167 1.25-1.393.472-.176.923-.2 1.46-.07.435.104.754.343.977.729.216.375.333.817.336 1.31.008 1.616 0 6.574 0 6.574h3.25v-6.43c0-.355-.018-.726-.05-1.135-.068-.842-.273-1.559-.627-2.193a3.451 3.451 0 0 0-2.117-1.682c-.81-.235-1.678-.27-2.578-.106-.908.166-1.66.585-2.233 1.244-.147.169-.282.35-.412.525l-.029.038c-.334-.642-.802-1.12-1.392-1.423-.924-.474-1.954-.602-3.15-.392-1.067.187-1.788.723-2.36 1.594l-.4-1.396h-2.726v11.356h3.274zm-11.531-2.704c-1.606 0-2.908-1.342-2.908-2.997 0-1.656 1.302-2.998 2.908-2.998 1.605 0 2.907 1.342 2.907 2.998 0 1.655-1.302 2.997-2.907 2.997zm48.599.02c-1.606 0-2.908-1.35-2.908-3.017 0-1.667 1.302-3.018 2.908-3.018 1.606 0 2.907 1.351 2.907 3.018 0 1.666-1.301 3.017-2.907 3.017z" fill="#78B62E"/><path d="M0 16c0 3.745 1.29 7.187 3.446 9.913l8.188-8.188A4.676 4.676 0 0 1 11.303 16a4.697 4.697 0 0 1 9.394 0c0 .61-.12 1.19-.33 1.725l8.187 8.188A15.925 15.925 0 0 0 32 16c0-8.836-7.164-16-16-16S0 7.164 0 16m12.95 3.564l-8 8A15.938 15.938 0 0 0 16 32c4.287 0 8.177-1.69 11.05-4.436l-8-8c-.085.072-3.05-4.776-3.05-4.776s-2.965 4.848-3.05 4.776" fill="url(#a)"/></g></g></svg>
     </a>
  </header>

  <noscript>
  <meta name="refresh" http-equiv="refresh" content="0; url=https://account.komoot.com/signin?hl=de&redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1">
</noscript>

<div id="pageMountNode">
  <article class="en">
    <h1>
      Please Hold!
    </h1>
    <p>
      We'll be redirecting you to the <a href="/login">log-in page</a> in just a few seconds.
    </p>
  </article>

  <article class="de">
    <h1>
      Bitte warte einen Augenblick!
    </h1>
    <p>
      Wir leiten dich weiter zur <a href="/login">Login-Seite</a>.
    </p>
  </article>
</div>

<p>Redirect to: <a href="https://account.komoot.com/signin?hl=de&redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1">https://account.komoot.com/signin</a></p>
<script>
  (function () {
    var crossLoginFailed = function () {
            location.href = 'https://account.komoot.com/signin?hl=de&redirect=%2Fcommunity%2Fyour-regions%3F_redirected%3D1';
        };

    // Prevent cicular redirect
    if (/(\?|&)_redirected=/.test(location.search)) {
        return crossLoginFailed();
    }

    // Prepare iframe
    var pageNode = document.getElementById('pageMountNode');
    var iframeNode = document.createElement('iframe');

    iframeNode.src = '/actions/signin/iframe_check';
    iframeNode.style.position = 'absolute';
    iframeNode.style.top = '0';
    iframeNode.style.left = '-10000px';
    iframeNode.style.width = '50px';
    iframeNode.style.height = '50px';
    iframeNode.onload = function (event) {
        try {
            // Read iframe content
            var content = iframeNode.contentWindow && iframeNode.contentWindow.document ? (
                iframeNode.contentWindow.document.body ? iframeNode.contentWindow.document.body.innerHTML : ''
            ) : iframeNode.contentDocument && iframeNode.contentDocument.document ? (
                iframeNode.contentDocument.document.body ? iframeNode.contentDocument.document.body.innerHTML : ''
            ) : '';

            // Remove iframe
            iframeNode.parentNode.removeChild(iframeNode);

            // Redirect
            if (/login_ok/.test(content)) {
                location.href = location.href
                    .replace(/(\?|#|$)/, function (all, key) {
                        if (key === '?') {
                            return '?_redirected=1&';
                        }
                        if (key === '#') {
                            return '?_redirected=1#';
                        }
                        return '?_redirected=1';
                    });
            } else {
               crossLoginFailed();
            }
        } catch (err) {
           crossLoginFailed();
        }
    };
    iframeNode.onerror = function (event) {
        // Remove iframe
        iframeNode.parentNode.removeChild(iframeNode);

        crossLoginFailed();
    };

    pageNode.parentNode.insertBefore(iframeNode, pageNode.nextSibling);
  })();
</script>


  <script>
    // Listen to pop state, getting back button working
    window.addEventListener('popstate', event => {
        if (event.state.path) {
            location.href = event.state.path;
        }
    });

    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    window.ga && window.ga('create', 'UA-21610363-1', 'auto');
    window.ga && window.ga('send', 'pageview');
  </script>
</body>
</html>

FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS