Hauptmenü

HTTPMOD für STIHL iMOW Login?

Begonnen von Helmi55, 16 April 2021, 12:18:13

Vorheriges Thema - Nächstes Thema

Helmi55

Hallo liebe Gemeinde,
ich habe nichts bezüglich Verbindung FHEM und STIHL iMOW gefunden.
Darum habe ich versucht per HTTPMOD die Seite aufzubauen/abzufragen
Leider scheitere ich schon beim Login
Ein: define imow HTTPMOD http://app.imow.stihl.com/
bringt mich auf die Seite und es erscheint das Login Fenster
Jetzt dachte ich das es so funktionieren könnte:
define imow HTTPMOD http://app.imow.stihl.com/login.json?user=meineemailadresse&pwd=strenggeheim
sollte funktionieren.
Leider nein

Kann mir bitte jemand weiterhelfen?

Schönen Tag, gesund bleiben
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

ch.eick

#1
Zitat von: Helmi55 am 16 April 2021, 12:18:13
Hallo liebe Gemeinde,
ich habe nichts bezüglich Verbindung FHEM und STIHL iMOW gefunden.
Darum habe ich versucht per HTTPMOD die Seite aufzubauen/abzufragen
Leider scheitere ich schon beim Login
Ein: define imow HTTPMOD http://app.imow.stihl.com/
bringt mich auf die Seite und es erscheint das Login Fenster
Jetzt dachte ich das es so funktionieren könnte:
define imow HTTPMOD http://app.imow.stihl.com/login.json?user=meineemailadresse&pwd=strenggeheim
sollte funktionieren.
Leider nein
Du solltest Dir im Browser mal die Anmeldeprozedur anschauen und diese dann im HTTPMOD nachbauen.
Im Browser findest Du eventuell unter "Weiter Tools/Entwickler Tools" die Hilfsmittel, um den Netzwerk Trafic anzuschauen.
Sollte das nicht reichen gibt es z.B. Burp als Tool zum tracen.

Wichtig sind z.B. die Header und die Art der Anmeldung. Wer hat denn die Information mit der Basic Authentfication gegeben?
Hast Du cookies und redirection aktiviert? Verbose 5 und ein Fhem Log wären auch gut.
enableCookies 1
showBody 1
showError 1
verbose 5


http://app.imow.stihl.com/login.json?user=meineemailadresse&pwd=strenggeheim
Wenn das im Browser geht, sollte es auch mit HTTPMOD gehen.

VG
   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

Helmi55

Servus und danke für deine Antworten.
Das Login funktioniert so wie beschrieben leider nicht im Browser.
Diese Art habe ich aus einem Forenbeitrag hier.
Ich muss am Wochenende schauen, ob ICH es herausfinde wie diese Anmeldeprozedur hier abläuft

Das ist ein List vom derzeitigen Zustand
Internals:
   BUSY       0
   CFGFN     
   DEF        http://app.imow.stihl.com/login.json?user=xxx.at&pwd=xxx
   FUUID      607961f8-f33f-c23a-1e28-d70607f23e497007
   Interval   300
   MainURL    http://app.imow.stihl.com/login.json?user=xxx.at&pwd=xxx
   ModuleVersion 4.1.05 - 6.3.2021
   NAME       imow
   NOTIFYDEV  global
   NR         24
   NTFY_ORDER 50-imow
   STATE      ???
   TYPE       HTTPMOD
   httpbody   The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
   value     
   HTTPCookieHash:
     ARRAffinity;:
       Name       ARRAffinity
       Options    Path=/;HttpOnly;Secure;Domain=app.imow.stihl.com
       Path       
       Value      a5a342a80bda39eee708a0eb644abfcc337cf45e3ce2944cd9d9546b32f783ef
     ARRAffinitySameSite;:
       Name       ARRAffinitySameSite
       Options    Path=/;HttpOnly;SameSite=None;Secure;Domain=app.imow.stihl.com
       Path       
       Value      a5a342a80bda39eee708a0eb644abfcc337cf45e3ce2944cd9d9546b32f783ef
   HttpUtils:
     NAME       
     addr       https://app.imow.stihl.com:443
     auth       0
     buf       
     code       404
     compress   1
     conn       
     data       
     displayurl https://app.imow.stihl.com/login.json?user=xxx.at&pwd=xxx
     header     Cookie: ARRAffinity=a5a342a80bda39eee708a0eb644abfcc337cf45e3ce2944cd9d9546b32f783ef; ARRAffinitySameSite=a5a342a80bda39eee708a0eb644abfcc337cf45e3ce2944cd9d9546b32f783ef
     host       app.imow.stihl.com
     httpheader HTTP/1.1 404 Not Found
Content-Length: 103
Content-Type: text/html
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Sat, 17 Apr 2021 07:19:42 GMT
Connection: close
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /login.json?user=xxx.at&pwd=xxx
     protocol   https
     redirects  0
     timeout    2
     url        https://app.imow.stihl.com/login.json?user=xxx.at&pwd=xxx
     sslargs:
   QUEUE:
   READINGS:
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        0
     priority   1
     retryCount 0
     type       update
     url        https://app.imow.stihl.com/login.json?user=xxx.at&pwd=xxx
Attributes:
   enableCookies 1
   showBody   1
   showError  1
   verbose    5



Also ich versuche mein Glück
LG
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

ch.eick

Zitat von: Helmi55 am 17 April 2021, 09:25:40
Servus und danke für deine Antworten.
Das Login funktioniert so wie beschrieben leider nicht im Browser.
Diese Art habe ich aus einem Forenbeitrag hier.
Ich muss am Wochenende schauen, ob ICH es herausfinde wie diese Anmeldeprozedur hier abläuft
Dann solltest Du Dich im Browser anmelden und mit dem Netztrace des Browsers die Kommunikation anschauen.

Im HTTPMOD kannst Du das Login aufrufen und Dir im Fhem Log die Rückmeldung anschauen. Eventuell siehst Du ja z.B.

einen randomString64
nonce
salt
rounds
transactionId

Das kannst Du dann in readings schreiben und für den nächsten Anmeldeschritt verwenden.

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

Helmi55

Servus Christian,
in der Zwischenzeit habe ich herausgefunden, das ich mit dieser URL zum Login gelange
https://oauth2.imow.stihl.com/authentication/?lang=de_DE&authorizationRedirectUrl=https%3A%2F%2Foauth2.imow.stihl.com%2Fauthorization%2F%3Fresponse_type%3Dtoken%26client_id%3D9526273B-1477-47C6-801C-4356F58EF883%26redirect_uri%3Dhttps%253A%252F%252Fapp.imow.stihl.com%252F%2523%252Fauthorize%26state%3DTglubvL18FGvp5bLNQmAfHPqTmBWCkFYAqkRdSHK
das habe ich auch um define vom imow eingetragen.

Im Seitenquelltext vom Firefox habe ich das gefunden:
<h1 class="viking-heading">Willkommen zur ¡MOW® App</h1>
                                <form action="authentication/authenticate/?lang=de" method="post">
            <div class="form-group viking-form-group">
                <label class="viking-label">E-Mail-Adresse</label>
                <input type="email" id="user-email" class="form-control viking-input" autofocus
                       placeholder="E-Mail-Adresse"
                       autocomplete="off"
                       value=""
                       name="mail"/>
            </div>
            <div class="form-group viking-form-group">
                <label class="viking-label">Passwort</label>
                <input type="password" id="user-password" class="form-control viking-input"
                       placeholder="Passwort"
                       name="password"/>


Dann habe ich dieses attr angelegt
sid01URL auch mit diesem link
unter sid01Data habe ich versucht mail, email und user-email

Alles ohne Erfolg.

Das ist das derzeitige List
Internals:
   BUSY       0
   CFGFN     
   DEF        https://oauth2.imow.stihl.com/authentication/?lang=de_DE&authorizationRedirectUrl=https%3A%2F%2Foauth2.imow.stihl.com%2Fauthorization%2F%3Fresponse_type%3Dtoken%26client_id%3D9526273B-1477-47C6-801C-4356F58EF883%26redirect_uri%3Dhttps%253A%252F%252Fapp.imow.stihl.com%252F%2523%252Fauthorize%26state%3DTglubvL18FGvp5bLNQmAfHPqTmBWCkFYAqkRdSHK
   FUUID      607961f8-f33f-c23a-1e28-d70607f23e497007
   Interval   300
   MainURL    https://oauth2.imow.stihl.com/authentication/?lang=de_DE&authorizationRedirectUrl=https%3A%2F%2Foauth2.imow.stihl.com%2Fauthorization%2F%3Fresponse_type%3Dtoken%26client_id%3D9526273B-1477-47C6-801C-4356F58EF883%26redirect_uri%3Dhttps%253A%252F%252Fapp.imow.stihl.com%252F%2523%252Fauthorize%26state%3DTglubvL18FGvp5bLNQmAfHPqTmBWCkFYAqkRdSHK
   ModuleVersion 4.1.05 - 6.3.2021
   NAME       imow
   NOTIFYDEV  global
   NR         24
   NTFY_ORDER 50-imow
   STATE      ???
   TYPE       HTTPMOD
   httpbody   <!DOCTYPE html>
<html>
<head>
        <meta charset="UTF-8"/>
    <meta name="csrf-token" content="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJpMGpydHJnODZzZjBxaGlxZ24wZXJmNnE2cCIsImlhdCI6MTYxODY0NjgzNywibmJmIjoxNjE4NjQ2ODM3LCJleHAiOjE2MTg4MTk2Mzd9.EigTjQj5MN3Es4YgEWO_GxOmZue2p8kopB_MUErNe8w">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <base href="https://oauth2.imow.stihl.com/">
    <title>iMow</title>
        <link rel="preload" as="font" href="assets/fonts/STIHLContrafaceDisplayTitling.ttf" type="font/ttf" crossorigin="anonymous">
    <link rel="preload" as="font" href="assets/fonts/STIHLContrafaceDisplayMedium.ttf" type="font/ttf" crossorigin="anonymous">
    <link rel="preload" as="font" href="assets/fonts/STIHLContrafaceText.ttf" type="font/ttf" crossorigin="anonymous">
    <link rel="preload" as="font" href="assets/fonts/STIHLContrafaceText-Bold.ttf" type="font/ttf" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="assets/components/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/layout.css?v=3"/>
    <link rel="icon" type="image/x-icon" href="assets/img/favicon_orange.png">
        </head>
<body>
<div id="wrapper">
    <div class="main-container">
        <img class="viking-stihl" src="assets/img/stihl.png" />
                <div class="login">
    <div class="login__inner">
                    <h1 class="viking-heading">Willkommen zur ¡MOW® App</h1>
                                <form action="authentication/authenticate/?lang=de" method="post">
            <div class="form-group viking-form-group">
                <label class="viking-label">E-Mail-Adresse</label>
                <input type="email" id="user-email" class="form-control viking-input" autofocus
                       placeholder="E-Mail-Adresse"
                       autocomplete="off"
                       value=""
                       name="mail"/>
            </div>
            <div class="form-group viking-form-group">
                <label class="viking-label">Passwort</label>
                <input type="password" id="user-password" class="form-control viking-input"
                       placeholder="Passwort"
                       name="password"/>
            </div>
            <div class="form-group text-right viking-controls-container">
                <div>
                    <button class="btn btn-block viking-button" id="login-button" type="submit">
                        Login                    </button>
                    <span class="password-forgot d-inline-block mt-3">
                        <a class="viking-link" href="authentication/password-reset/?requestId=f52b224044ec8fba1384756c8eb1f7ca367ccb49fcae4c35ba3cd518964711be&lang=de">
                            Passwort vergessen                        </a>
                    </span>
                </div>
            </div>
            <input type="hidden" name="csrf-token" value="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJpMGpydHJnODZzZjBxaGlxZ24wZXJmNnE2cCIsImlhdCI6MTYxODY0NjgzNywibmJmIjoxNjE4NjQ2ODM3LCJleHAiOjE2MTg4MTk2Mzd9.EigTjQj5MN3Es4YgEWO_GxOmZue2p8kopB_MUErNe8w">
            <input type="hidden" name="requestId" value="f52b224044ec8fba1384756c8eb1f7ca367ccb49fcae4c35ba3cd518964711be">
        </form>
    </div>
</div>
                                    <div class="bottom-nav">
                <ul>
                    <a data-toggle="modal" data-target="#legalNotice" target="_blank" id="legal">
                        Impressum                    </a>

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

    <!-- Modal -->
    <div class="modal" id="legalNotice">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">Impressum</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    <iframe id="legalNoticeIframe"
                            src="https://app.imow.stihl.com/imprint/#/?language=de"></iframe>
                </div>
                <div class="modal-footer">
                    <div class="action-container">
                        <p><a id="privacyStatement" data-dismiss="modal" data-toggle="modal"
                              data-target="#termOfUse">Datenschutzerklärung</a></p>
                        <p><a id="termOfUseAction" data-dismiss="modal" data-toggle="modal"
                              data-target="#termOfUse">Nutzungsbedingungen</a></p>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="modal" id="termOfUse">
        <a href="https://app-api-contract-r-euwe-411542.azurewebsites.net" id="modalContractAPI" style="display: none"
           data-us="0"></a>
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="modalTitle"
                        data-title-terms="Nutzungsbedingungen"
                        data-title-privacy="Datenschutzerklärung">
                        Datenschutzerklärung                    </h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    <div class="select-container">
                        <div class="select-icon">
                            <span>▲</span>
                            <span>▼</span>
                        </div>
                        <select id="selectCountry" class="imow-select">
                            <option value="none" selected disabled>
                                Land                            </option>
                        </select>
                        </center>
                    </div>
                    <div class="select-container">
                        <div class="select-icon">
                            <span>▲</span>
                            <span>▼</span>
                        </div>
                        <select id="selectLanguage" class="imow-select" disabled>
                            <option value="placeholder" selected disabled>
                                Sprache                            </option>
                        </select>
                        </center>
                    </div>
                </div>
                <div class="modal-footer">
                    <div class="pull-right">
                        <button data-dismiss="modal" class="btn modal-action-btn">
                            Abbrechen                        </button>
                        <button disabled="true" id="showPdf" class="btn modal-action-btn" target="_blank" >
                            continue                        </button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script type="text/javascript" src="assets/components/jquery/jquery.min.js"></script>
<!--[if IE 9]>
<script type="text/javascript" src="assets/components/jquery/jquery.xdomainrequest.min.js"></script>
<![endif]-->
<script type="text/javascript" src="assets/components/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="assets/components/iframe-resizer/iframeResizer.js"></script>
<script type="text/javascript" src="assets/js/main.js?v4"></script>
<script src="assets/js/login.js?v=2"></script>
</body>
</html>

   value     
   HTTPCookieHash:
     ARRAffinity;:
       Name       ARRAffinity
       Options    Path=/;HttpOnly;Secure;Domain=oauth2.imow.stihl.com
       Path       
       Value      2ee8dbca0c17fb4b4d8c562ef791535fd57061466334fb9e50f39326ad63a5ae
     ARRAffinitySameSite;:
       Name       ARRAffinitySameSite
       Options    Path=/;HttpOnly;SameSite=None;Secure;Domain=oauth2.imow.stihl.com
       Path       
       Value      2ee8dbca0c17fb4b4d8c562ef791535fd57061466334fb9e50f39326ad63a5ae
     oauth2;/:
       Name       oauth2
       Options    path=/; secure; HttpOnly
       Path       /
       Value      i0jrtrg86sf0qhiqgn0erf6q6p
   HttpUtils:
     NAME       
     addr       https://oauth2.imow.stihl.com:443
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl https://oauth2.imow.stihl.com/authentication/?lang=de_DE&authorizationRedirectUrl=https%3A%2F%2Foauth2.imow.stihl.com%2Fauthorization%2F%3Fresponse_type%3Dtoken%26client_id%3D9526273B-1477-47C6-801C-4356F58EF883%26redirect_uri%3Dhttps%253A%252F%252Fapp.imow.stihl.com%252F%2523%252Fauthorize%26state%3DTglubvL18FGvp5bLNQmAfHPqTmBWCkFYAqkRdSHK
     header     Cookie: ARRAffinity=2ee8dbca0c17fb4b4d8c562ef791535fd57061466334fb9e50f39326ad63a5ae; ARRAffinitySameSite=2ee8dbca0c17fb4b4d8c562ef791535fd57061466334fb9e50f39326ad63a5ae; oauth2=i0jrtrg86sf0qhiqgn0erf6q6p
     host       oauth2.imow.stihl.com
     httpheader HTTP/1.1 200 OK
Cache-Control: no-cache, private
Content-Length: 7982
Content-Type: text/html; charset=UTF-8
Strict-Transport-Security: max-age=31536000
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
Date: Sat, 17 Apr 2021 08:47:15 GMT
Connection: close
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /authentication/?lang=de_DE&authorizationRedirectUrl=https%3A%2F%2Foauth2.imow.stihl.com%2Fauthorization%2F%3Fresponse_type%3Dtoken%26client_id%3D9526273B-1477-47C6-801C-4356F58EF883%26redirect_uri%3Dhttps%253A%252F%252Fapp.imow.stihl.com%252F%2523%252Fauthorize%26state%3DTglubvL18FGvp5bLNQmAfHPqTmBWCkFYAqkRdSHK
     protocol   https
     redirects  0
     timeout    2
     url        https://oauth2.imow.stihl.com/authentication/?lang=de_DE&authorizationRedirectUrl=https%3A%2F%2Foauth2.imow.stihl.com%2Fauthorization%2F%3Fresponse_type%3Dtoken%26client_id%3D9526273B-1477-47C6-801C-4356F58EF883%26redirect_uri%3Dhttps%253A%252F%252Fapp.imow.stihl.com%252F%2523%252Fauthorize%26state%3DTglubvL18FGvp5bLNQmAfHPqTmBWCkFYAqkRdSHK
     sslargs:
   QUEUE:
   READINGS:
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        0
     retryCount 0
     type       update
     url        https://oauth2.imow.stihl.com/authentication/?lang=de_DE&authorizationRedirectUrl=https%3A%2F%2Foauth2.imow.stihl.com%2Fauthorization%2F%3Fresponse_type%3Dtoken%26client_id%3D9526273B-1477-47C6-801C-4356F58EF883%26redirect_uri%3Dhttps%253A%252F%252Fapp.imow.stihl.com%252F%2523%252Fauthorize%26state%3DTglubvL18FGvp5bLNQmAfHPqTmBWCkFYAqkRdSHK
Attributes:
   enableCookies 1
   extractAllJSON 1
   showBody   1
   showError  1
   sid01Data  mail=xxx.at&password=xxx
   sid01URL   https://oauth2.imow.stihl.com/authentication/?lang=de_DE&authorizationRedirectUrl=https%3A%2F%2Foauth2.imow.stihl.com%2Fauthorization%2F%3Fresponse_type%3Dtoken%26client_id%3D9526273B-1477-47C6-801C-4356F58EF883%26redirect_uri%3Dhttps%253A%252F%252Fapp.imow.stihl.com%252F%2523%252Fauthorize%26state%3DTglubvL18FGvp5bLNQmAfHPqTmBWCkFYAqkRdSHK
   verbose    5



Danke für deine Zeit und Hilfe

Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

ch.eick

#5
Zuerst machst Du ein Get für eine Abfrage, dann kommt die "Willkommen zur ..." Meldung

Hier erkennst Du das Du noch nicht angemeldet bist
Zitat von: Helmi55 am 17 April 2021, 10:55:35
Im Seitenquelltext vom Firefox habe ich das gefunden:
<h1 class="viking-heading">Willkommen zur ¡MOW® App</h1>
                                <form action="authentication/authenticate/?lang=de" method="post">
            <div class="form-group viking-form-group">
                <label class="viking-label">E-Mail-Adresse</label>
                <input type="email" id="user-email" class="form-control viking-input" autofocus
                       placeholder="E-Mail-Adresse"
                       autocomplete="off"
                       value=""
                       name="mail"/>
            </div>
            <div class="form-group viking-form-group">
                <label class="viking-label">Passwort</label>
                <input type="password" id="user-password" class="form-control viking-input"
                       placeholder="Passwort"
                       name="password"/>


Das erkennt die Anmeldung und startet sid01... , was Du noch im  Browser Trace finden musst

reAuthRegex authentication


Hier ist schon mal ein csrf-token
Zitat
           </div>
            <input type="hidden" name="csrf-token" value="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJpMGpydHJnODZzZjBxaGlxZ24wZXJmNnE2cCIsImlhdCI6MTYxODY0NjgzNywibmJmIjoxNjE4NjQ2ODM3LCJleHAiOjE2MTg4MTk2Mzd9.EigTjQj5MN3Es4YgEWO_GxOmZue2p8kopB_MUErNe8w">
            <input type="hidden" name="requestId" value="f52b224044ec8fba1384756c8eb1f7ca367ccb49fcae4c35ba3cd518964711be">
Wenn die requestId auch bei der Anmeldung wichtig ist musst Du beides zwischenspeichern.

Das könntest Du mal mit diesem reading speichern und wirst es später sicher mitsenden müssen um Dich anzumelden

Bei diesem reading musst Du die RegEx noch anpassen. Im reading sollte der csrf-token stehen. Aut regex101.com kannst Du testen
reading1Name auth_csrf-token
reading1Regex csrf-token.*value="(.*)">

Eventuell so in einen Header einbauen:
replacement1Mode reading
replacement1Regex %%auth_csrf-token%%
replacement1Value auth_csrf-token

getHeader1 X-XSRF-TOKEN: %%auth_csrf-token%%       <<<< nur ein Beispiel, das findest Du im Browser Trace bei den Headern


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

ch.eick

Hallo Helmut,
ich habe gerade nochmal einen Login Versuch gemacht und einen Daten Header gefunden.
Hier nur ein Leitfaden mal ins grobe geschrieben. Das ist aus einem Device von mir, das auch mit csrf-token arbeitet.

defmod imow HTTPMOD http://app.imow.stihl.com 0    <<<< 0 = kein regelmäßiger Aufruf

attr imow dontRequeueAfterAuth 1
attr imow enableControlSet 1
attr imow enableCookies 1
attr imow enforceGoodReadingNames 1
attr imow handleRedirects 1
attr imow httpVersion 1.1

attr imow get01Name imov                              <<<<<<<< Das wird später der Abruf Deiner Daten
attr imow get01URL http://app.imow.stihl.com
attr imow getHeader1 Referer: http://app.imow.stihl.com
attr imow getHeader2 <Das muss noch richtig gefunden werden>

attr imow reAuthRegex authentication           <<<<< wird das gefunden, dann startet sid01 ...

attr imow reading1Name auth_csrf-token                   <<<< in diesem reading soll der Token stehen
attr imow reading1Regex csrf-token.*value="(.*)">     <<<< Das muss getestet werden und eventuell angepasst werden.
attr imow reading2Name auth_requestId                   <<<< hier die requestid rein
attr imow reading2Regex requestId="(.*)">             <<<< die regex muss auch angepasst werden

attr imow replacement1Mode reading                            <<<< hier wird der Token in den nächsten http request eingesetzt
attr imow replacement1Regex %%auth_csrf-token%%
attr imow replacement1Value auth_csrf-token

attr imow replacement2Mode reading                     <<<< die requestid auch einsetzen
attr imow replacement2Regex %%auth_requestid%%
attr imow replacement2Value auth_requestid


attr imow sid01URL https://oauth2.imow.stihl.com/authentication/authenticate/?lang=de                   <<<< das soll der Login werden, aber erst den Token und die requestid korrekt in readings speichern.
attr imow sid01Header1 Referer: http://app.imow.stihl.com
attr imow sid01Header2 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr imow sid01Data mail=<mailadresse mit %40 für @>&password=<passwort im klartext>&csrf-token=%%auth_csrf-token%%&requestId=%%auth_requestid%%

attr imow sid01ParseResponse 1                     <<<< damit kann man die Rückmeldung des Login erneut durchsuchen


attr imow showBody 1
attr imow showError 1
attr imow verbose 0


Nun der Ablauf:
1) Get01 ausführen
2) Aus der Rückmeldung muss csrf-token und requestid gelesen werden. Also solange testen, bis die richtigen Werte in den readings stehen. regex101.com ist Dein Freund :-)
3) die readings auth_* haben jetzt korrekte Werte.
4) Aus der Rückmeldung wird die Willkommensseite gelesen
5) reAuthRegex erkennt, das es diese Seite ist und ein Login notwendig ist.
6) sid01 wird ausgeführt und csrf-token und requestid in sid01Data eingefügt.

Dabei immer wieder das FHEM Log lesen und die einzelnen Schritte nachvollziehen.
Beim nächsten Post bitte den Ausschnitt aus dem FHEM Log in einer .txt Datei an den Post hängen. Alle fremden Meldungen von anderen Devices bitte löschen, damit es nicht noch länger wird.

VG
   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

Helmi55

Hallo Christian,

herzlichen Dank für deine Zeit und Hilfe.
ich werde das jetzt in Ruhe durcharbeiten und melde mich wieder
Schönen Sonntag
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Helmi55

#8
Servus Christian,
ich glaube ich bin zu doof für HTTPMOD  :-\

Das einzige Readings das ich bekomme ist gleich eine Fehlermeldung, obwohl, wenn ich die URL so aufrufe, funktioniert sie

LAST_ERROR  http://app.imow.stihl.com: malformed or unsupported URL

Auch wenn ich in der def die 0 rausnehme....

Hier ein List vom imow
Internals:
   DEF        http://app.imow.stihl.com 0
   FUUID      607961f8-f33f-c23a-1e28-d70607f23e497007
   Interval   0
   MainURL    http://app.imow.stihl.com
   ModuleVersion 4.1.05 - 6.3.2021
   NAME       imow
   NOTIFYDEV  global
   NR         17
   NTFY_ORDER 50-imow
   STATE      ???
   TYPE       HTTPMOD
   CompiledRegexes:
   READINGS:
     2021-04-18 14:34:56   LAST_ERROR      http://app.imow.stihl.com: malformed or unsupported URL
Attributes:
   dontRequeueAfterAuth 1
   enableControlSet 1
   enableCookies 1
   enforceGoodReadingNames 1
   get01Name  imow
   get01URL   http://app.imow.stihl.com
   getHeader1 Referer: http://app.imow.stihl.com
   handleRedirects 1
   httpVersion 1.1
   reAuthRegex authentication
   reading1Name auth_csfr-token "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJjdmZkNGpiajF0OHU5ZGluMDBoZmdxcjJpNiIsImlhdCI6MTYxODc0NTExOCwibmJmIjoxNjE4NzQ1MTE4LCJleHAiOjE2MTg5MTc5MTh9.qE1QTR8JmtuBzagaxfEJTJ2yzC_BNswIrhCxgVceuVw">
   reading1Regex csrf-token.*value="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJjdmZkNGpiajF0OHU5ZGluMDBoZmdxcjJpNiIsImlhdCI6MTYxODc0NTExOCwibmJmIjoxNjE4NzQ1MTE4LCJleHAiOjE2MTg5MTc5MTh9.qE1QTR8JmtuBzagaxfEJTJ2yzC_BNswIrhCxgVceuVw">
   reading2Name auth_requestId "1bf98463e2a3a1860d0f2906a683afde1b9e8c76687dd2ceccfb1f58b21e268d">
   reading2Regex requestId="1bf98463e2a3a1860d0f2906a683afde1b9e8c76687dd2ceccfb1f58b21e268d">
   replacement1Mode reading
   replacement1Regex %%auth_csrf-token%%
   replacement1Value auth_csrf-token
   replacement2Mode reading
   replacement2Regex %%auth_requestid%%
   replacement2Value auth_requestid
   showBody   1
   showError  1
   sid01Data  mail=xxx%40xxx.at&password=xxxxxx&csrf-token=%%auth_csrf-token%%&requestId=%%auth_requestid%%
   sid01Header1 http://app.imow.stihl.com
   sid01Header2 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
   sid01URL   https://oauth2.imow.stihl.com/authentication/authenticate/?lang=de
   verbose    5


und das Logfile nach einem get

2021.04.18 14:45:59 3: imow: interval is 0, no periodic updates will done.
2021.04.18 14:45:59 3: imow: Defined with URL http://app.imow.stihl.com featurelevel 6
2021.04.18 14:45:59 5: imow: UpdateHintList called
2021.04.18 14:45:59 5: imow: UpdateHintList: setlist = interval reread:noArg stop:noArg start:noArg clearCookies:noArg upgradeAttributes:noArg storeKeyValue
2021.04.18 14:45:59 5: imow: UpdateHintList: getlist = imow:noArg
2021.04.18 14:48:24 5: imow: get called with imow
2021.04.18 14:48:24 5: imow: get found option imow in attribute get01Name
2021.04.18 14:48:24 4: imow: get will now request imow, no optional value
2021.04.18 14:48:24 5: imow: AddToQueue adds type get01 to URL http://app.imow.stihl.com, no data, header Referer: http://app.imow.stihl.com, retry 0, initial queue len: 0
2021.04.18 14:48:24 5: imow: HandleSendQueue called from AddToSendQueue, qlen = 1
2021.04.18 14:48:24 5: imow: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input: Referer: http://app.imow.stihl.com
2021.04.18 14:48:24 5: imow: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input: Referer: http://app.imow.stihl.com
2021.04.18 14:48:24 5: imow: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input:
2021.04.18 14:48:24 5: imow: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input:
2021.04.18 14:48:24 5: imow: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input: http://app.imow.stihl.com
2021.04.18 14:48:24 5: imow: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input: http://app.imow.stihl.com
2021.04.18 14:48:24 4: imow: HandleSendQueue sends get01 with timeout 2 to http://app.imow.stihl.com, No Data,
header: Referer: http://app.imow.stihl.com
2021.04.18 14:48:24 5: imow: ReadCallback called from HttpUtils_NonblockingGet
2021.04.18 14:48:24 5: imow: Read callback Error LogLvl set to 3, regex
2021.04.18 14:48:24 3: imow: Read callback: Error: http://app.imow.stihl.com: malformed or unsupported URL
2021.04.18 14:48:24 4: imow: Read callback: request type was get01 retry 0, no headers, no body
2021.04.18 14:48:24 5: imow: Read callback: body empty
2021.04.18 14:48:24 4: imow: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2021.04.18 14:48:24 5: imow: GetCookies is looking for Cookies
2021.04.18 14:48:24 5: imow: ExtractSid called, context get, num 01
2021.04.18 14:48:24 4: imow: no header to look for redirects
2021.04.18 14:48:24 5: imow: Read callback sets LAST_REQUEST to get01
2021.04.18 14:48:24 5: imow: CheckAuth is checking buffer with ReAuthRegex (?^:authentication)
2021.04.18 14:48:24 5: imow: CheckAuth decided no authentication required


Ich finde auch nix im Wiki, wie man Token und Id genau formatiert angeben muss.
ich habs jetzt so probiert wie ich es im Seitenquelltext vom Firefox angezeigt bekommen habe......

Vielleicht hast du bitte noch einmal Lust und Zeit

Danke
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

ch.eick

Zitat von: Helmi55 am 18 April 2021, 14:49:47

reAuthRegex authentication
   reading1Name auth_csfr-token "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJjdmZkNGpiajF0OHU5ZGluMDBoZmdxcjJpNiIsImlhdCI6MTYxODc0NTExOCwibmJmIjoxNjE4NzQ1MTE4LCJleHAiOjE2MTg5MTc5MTh9.qE1QTR8JmtuBzagaxfEJTJ2yzC_BNswIrhCxgVceuVw">
   reading1Regex csrf-token.*value="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJjdmZkNGpiajF0OHU5ZGluMDBoZmdxcjJpNiIsImlhdCI6MTYxODc0NTExOCwibmJmIjoxNjE4NzQ1MTE4LCJleHAiOjE2MTg5MTc5MTh9.qE1QTR8JmtuBzagaxfEJTJ2yzC_BNswIrhCxgVceuVw">
   reading2Name auth_requestId "1bf98463e2a3a1860d0f2906a683afde1b9e8c76687dd2ceccfb1f58b21e268d">
   reading2Regex requestId="1bf98463e2a3a1860d0f2906a683afde1b9e8c76687dd2ceccfb1f58b21e268d">

Hast Du hier token und requestid fest rein geschrieben? Das soll aus der Antwort vom get01 mit der regex gelesen werden und dann ins reading geschrieben werden

Wenn die regex richtig ist, gibt es hinterher solche readings

auth_csfr-token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJjdmZkNGpiajF0OHU5ZGluMDBoZmdxcjJpNiIsImlhdCI6MTYxODc0NTExOCwibmJmIjoxNjE4NzQ1MTE4LCJleHAiOjE2MTg5MTc5MTh9.qE1QTR8JmtuBzagaxfEJTJ2yzC_BNswIrhCxgVceuVw

auth_requestId 1bf98463e2a3a1860d0f2906a683afde1b9e8c76687dd2ceccfb1f58b21e268d



Zitat

2021.04.18 14:48:24 4: imow: HandleSendQueue sends get01 with timeout 2 to http://app.imow.stihl.com, No Data,
header: Referer: http://app.imow.stihl.com
2021.04.18 14:48:24 5: imow: ReadCallback called from HttpUtils_NonblockingGet
2021.04.18 14:48:24 5: imow: Read callback Error LogLvl set to 3, regex
2021.04.18 14:48:24 3: imow: Read callback: Error: http://app.imow.stihl.com: malformed or unsupported URL
2021.04.18 14:48:24 4: imow: Read callback: request type was get01 retry 0, no headers, no body

Eventuell sind hier die Header noch falsch.
Das mit dem getHeader1 war nur ein Vorschlag. Nimm das erstmal wieder raus, also ohne Header, dann setzt HTTPMOD erstmal defaults.

Setz dann auch bitte mal folgendes

handleRedirects 1


Jetzt ist die Konzentration erstmal auf dem get01, bis eine Antwort mit dem "Willkommen" zurück kommt. Dort sollte dann csrf-token und requestid drin sein.
Dann im Log schauen, ob die regex passt und was in den auth_* readings steht.

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

Helmi55

Servus
ok das Erste war ein blöder Fehler von mir das dort rein zu schreiben. Ist ja ein reading?

Aber ich bekomme als einziges readings den LAST_ERROR http://app.imow.stihl.com: malformed or unsupported URL

Gebe ich im Browser http://app.imow.stihl.com ein, wird die Seite aufgerufen und ich stehe beim Login.

Hier nochmals das aktuelle List
Internals:
   BUSY       0
   DEF        http://app.imow.stihl.com 0
   FUUID      607961f8-f33f-c23a-1e28-d70607f23e497007
   Interval   0
   MainURL    http://app.imow.stihl.com
   ModuleVersion 4.1.05 - 6.3.2021
   NAME       imow
   NOTIFYDEV  global
   NR         17
   NTFY_ORDER 50-imow
   STATE      ???
   TYPE       HTTPMOD
   httpbody   
   value     
   CompiledRegexes:
   HttpUtils:
     data       
     displayurl http://app.imow.stihl.com
     header     
     httpversion 1.1
     hu_blocking 0
     ignoreredirects 1
     loglevel   4
     redirects  0
     timeout    2
     url        http://app.imow.stihl.com
     sslargs:
   QUEUE:
   READINGS:
     2021-04-18 16:30:21   LAST_ERROR      http://app.imow.stihl.com: malformed or unsupported URL
   REQUEST:
     context    get
     data       
     header     
     ignoreredirects 0
     num        01
     retryCount 0
     type       get01
     url        http://app.imow.stihl.com
     value     
Attributes:
   dontRequeueAfterAuth 1
   enableControlSet 1
   enableCookies 1
   enforceGoodReadingNames 1
   get01Name  imow
   get01URL   http://app.imow.stihl.com
   handleRedirects 1
   httpVersion 1.1
   reAuthRegex authentication
   reading1Name auth_csfr-token
   reading1Regex csrf-token.*value="(.*)">
   reading2Name auth_requestId
   reading2Regex requestId="(.*)">
   replacement1Mode reading
   replacement1Regex %%auth_csrf-token%%
   replacement1Value auth_csrf-token
   replacement2Mode reading
   replacement2Regex %%auth_requestid%%
   replacement2Value auth_requestid
   showBody   1
   showError  1
   sid01Data  mail=xxx%40xxx.at&password=xxxxxx&csrf-token=%%auth_csrf-token%%&requestId=%%auth_requestid%%
   sid01Header1 http://app.imow.stihl.com
   sid01Header2 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
   sid01ParseResponse 1
   sid01URL   https://oauth2.imow.stihl.com/authentication/authenticate/?lang=de
   userattr   replacement1Mode:reading,internal,text,expression,key replacement2Mode:reading,internal,text,expression,key sid01ParseResponse:0,1
   verbose    5


Und das Logfile
2021.04.18 16:30:21 5: imow: get called with imow
2021.04.18 16:30:21 5: imow: get found option imow in attribute get01Name
2021.04.18 16:30:21 4: imow: get will now request imow, no optional value
2021.04.18 16:30:21 5: imow: AddToQueue adds type get01 to URL http://app.imow.stihl.com, no data, no headers, retry 0, initial queue len: 0
2021.04.18 16:30:21 5: imow: HandleSendQueue called from AddToSendQueue, qlen = 1
2021.04.18 16:30:21 5: imow: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input:
2021.04.18 16:30:21 5: imow: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input:
2021.04.18 16:30:21 5: imow: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input:
2021.04.18 16:30:21 5: imow: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input:
2021.04.18 16:30:21 5: imow: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input: http://app.imow.stihl.com
2021.04.18 16:30:21 5: imow: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input: http://app.imow.stihl.com
2021.04.18 16:30:21 4: imow: HandleSendQueue sends get01 with timeout 2 to http://app.imow.stihl.com, No Data, No Header
2021.04.18 16:30:21 5: imow: ReadCallback called from HttpUtils_NonblockingGet
2021.04.18 16:30:21 5: imow: Read callback Error LogLvl set to 3, regex
2021.04.18 16:30:21 3: imow: Read callback: Error: http://app.imow.stihl.com: malformed or unsupported URL
2021.04.18 16:30:21 4: imow: Read callback: request type was get01 retry 0, no headers, no body
2021.04.18 16:30:21 5: imow: Read callback: body empty
2021.04.18 16:30:21 4: imow: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2021.04.18 16:30:21 5: imow: GetCookies is looking for Cookies
2021.04.18 16:30:21 5: imow: ExtractSid called, context get, num 01
2021.04.18 16:30:21 4: imow: no header to look for redirects
2021.04.18 16:30:21 5: imow: Read callback sets LAST_REQUEST to get01
2021.04.18 16:30:21 5: imow: CheckAuth is checking buffer with ReAuthRegex (?^:authentication)
2021.04.18 16:30:21 5: imow: CheckAuth decided no authentication required


Ich komme zu keiner Willkommensmeldung.....

Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

ch.eick

Zitat von: Helmi55 am 16 April 2021, 12:18:13
Ein: define imow HTTPMOD http://app.imow.stihl.com/
bringt mich auf die Seite und es erscheint das Login Fenster
Dann versuche es doch mal mit dem "/" am Ende, das hat doch schon mal geklappt.
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

Helmi55

Servus
und DANKE für deine Zeit und Geduld.

Hat mir jetzt keine Ruhe gelassen, warum der Login nicht funktioniert.
Keine Ahnung warum. Habe jetzt das Ding nochmals neu definiert - als Robi - und siehe da kein URL Fehler mehr.
Aber zur Willkommenste komme ich noch immer nicht...

Das ist nun das Log
2021.04.18 19:10:17 5: Robi: get called with Robi
2021.04.18 19:10:17 5: Robi: get found option Robi in attribute get01Name
2021.04.18 19:10:17 4: Robi: get will now request Robi, no optional value
2021.04.18 19:10:17 5: Robi: AddToQueue adds type get01 to URL http://app.imow.stihl.com/, no data, no headers, retry 0, initial queue len: 0
2021.04.18 19:10:17 5: Robi: HandleSendQueue called from AddToSendQueue, qlen = 1
2021.04.18 19:10:17 5: Robi: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input:
2021.04.18 19:10:17 5: Robi: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input:
2021.04.18 19:10:17 5: Robi: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input:
2021.04.18 19:10:17 5: Robi: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input:
2021.04.18 19:10:17 5: Robi: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input: http://app.imow.stihl.com/
2021.04.18 19:10:17 5: Robi: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input: http://app.imow.stihl.com/
2021.04.18 19:10:17 4: Robi: HandleSendQueue sends get01 with timeout 2 to http://app.imow.stihl.com/, No Data, No Header
2021.04.18 19:10:17 5: Robi: ReadCallback called from __ANON__
2021.04.18 19:10:17 4: Robi: Read callback: request type was get01 retry 0,
header: HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=UTF-8
Location: https://app.imow.stihl.com/
Date: Sun, 18 Apr 2021 17:10:16 GMT
Connection: close
Content-Length: 0, no body
2021.04.18 19:10:17 5: Robi: Read callback: body empty
2021.04.18 19:10:17 4: Robi: BodyDecode is not decoding the response body (charset UTF-8, bodyDecode defaults to none)
2021.04.18 19:10:17 5: Robi: GetCookies is looking for Cookies
2021.04.18 19:10:17 5: Robi: ExtractSid called, context get, num 01
2021.04.18 19:10:17 4: Robi: checking for redirects, code=301, ignore=0
2021.04.18 19:10:17 4: Robi: http://app.imow.stihl.com/: Redirect (1) to https://app.imow.stihl.com/
2021.04.18 19:10:17 5: Robi: AddToQueue prepends type get01 to URL https://app.imow.stihl.com/, no data, no headers, retry 0, initial queue len: 0
2021.04.18 19:10:17 5: Robi: HandleSendQueue called from CheckRedirects, qlen = 1
2021.04.18 19:10:17 5: Robi: StartQueueTimer called from ReadyForSending sets internal timer to process queue in 1.000 seconds, minSendDelay 0.2 not over
2021.04.18 19:10:18 5: Robi: HandleSendQueue called from Fhem internal timer, qlen = 1
2021.04.18 19:10:18 5: Robi: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input:
2021.04.18 19:10:18 5: Robi: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input:
2021.04.18 19:10:18 5: Robi: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input:
2021.04.18 19:10:18 5: Robi: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input:
2021.04.18 19:10:18 5: Robi: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input: https://app.imow.stihl.com/
2021.04.18 19:10:18 5: Robi: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input: https://app.imow.stihl.com/
2021.04.18 19:10:18 4: Robi: HandleSendQueue sends get01 with timeout 2 to https://app.imow.stihl.com/, No Data, No Header
2021.04.18 19:10:18 5: Robi: ReadCallback called from __ANON__
2021.04.18 19:10:18 4: Robi: Read callback: request type was get01 retry 0,
header: HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, must-revalidate
Content-Length: 1188
Content-Type: text/html
Content-Encoding: gzip
Last-Modified: Wed, 17 Mar 2021 14:52:58 GMT
Accept-Ranges: bytes
ETag: "0c12a383d1bd71:0"
Vary: Accept-Encoding
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Set-Cookie: ARRAffinity=65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95;Path=/;HttpOnly;Secure;Domain=app.imow.stihl.com
Set-Cookie: ARRAffinitySameSite=65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95;Path=/;HttpOnly;SameSite=None;Secure;Domain=app.imow.stihl.com
Date: Sun, 18 Apr 2021 17:10:17 GMT
Connection: close, body length 2805
2021.04.18 19:10:18 5: Robi: Read callback: body
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="theme-color" content="#f57a00">
  <base href="">
  <title>STIHL iMOW</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <style>
  html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  border: 0;
  font: inherit;
  font-size: 100%;
  padding: 0;
  vertical-align: baseline;
  margin: 0;
}

#app-loader {
  height: 100vh;
  width: 100%;
}

#app-loader .loader-box {
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}

#app-loader .loader-box img {
  width: 110px;
}

#app-loader .loader {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  -webkit-animation: typing 1s linear infinite alternate;
  -moz-animation: Typing 1s linear infinite alternate;
  animation: typing 1s linear infinite alternate;
  margin: 20px auto;
  position: relative;
  left: -12px;
}

@keyframes typing {
    0% {
        background-color: rgba(255, 255, 255, 1);
        box-shadow: 12px 0 0 0 rgba(255, 255, 255, 0.2), 24px 0 0 0 rgba(255, 255, 255, 0.2);
    }
    25% {
        background-color: rgba(255, 255, 255, 0.4);
        box-shadow: 12px 0 0 0 rgba(255, 255, 255, 2),
        24px 0 0 0 rgba(255, 255, 255, 0.2);
    }
    75% {
        background-color: rgba(255, 255, 255, 0.4);
        box-shadow: 12px 0 0 0 rgba(255, 255, 255, 0.2),
        24px 0 0 0 rgba(255, 255, 255, 1);
    }
}

  </style>
<link rel="stylesheet" href="styles.8b75af968d2a4ae225f1.css"></head>
<body>
<stihl-imow-root>
  <div id="app-loader">
    <div class="loader-box">
      <img src="assets/img/l_imow_ic_004.png" alt="stihl-imow-logo"/>
      <div class="loader"></div>
    </div>
  </div>
</stihl-imow-root>
<script src="runtime-es2015.dc6964439c45858aaf95.js" type="module"></script><script src="runtime-es5.dc6964439c45858aaf95.js" nomodule defer></script><script src="polyfills-es5.30d7324f10bb7260f9e8.js" nomodule defer></script><script src="polyfills-es2015.87f0172f9e5c5ce14f38.js" type="module"></script><script src="scripts.a3ceafd45794493b97d5.js" defer></script><script src="main-es2015.17a087d08ad56910a230.js" type="module"></script><script src="main-es5.17a087d08ad56910a230.js" nomodule defer></script></body>
</html>

2021.04.18 19:10:18 4: Robi: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2021.04.18 19:10:18 5: Robi: GetCookies is looking for Cookies
2021.04.18 19:10:18 4: Robi: GetCookies parsed Cookie: ARRAffinity Wert 65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95 Rest Path=/;HttpOnly;Secure;Domain=app.imow.stihl.com
2021.04.18 19:10:18 4: Robi: GetCookies parsed Cookie: ARRAffinitySameSite Wert 65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95 Rest Path=/;HttpOnly;SameSite=None;Secure;Domain=app.imow.stihl.com
2021.04.18 19:10:18 5: Robi: ExtractSid called, context get, num 01
2021.04.18 19:10:18 4: Robi: checking for redirects, code=200, ignore=0
2021.04.18 19:10:18 4: Robi: no redirects to handle
2021.04.18 19:10:18 5: Robi: Read callback sets LAST_REQUEST to get01
2021.04.18 19:10:18 5: Robi: CheckAuth is checking buffer with ReAuthRegex (?^:authentication)
2021.04.18 19:10:18 5: Robi: CheckAuth decided no authentication required
2021.04.18 19:10:18 5: Robi: ExtractReading for context get, num 01 - no individual parse definition
2021.04.18 19:10:18 5: Robi: UpdateReadingList created list of reading.* nums to parse during getUpdate as 1 2
2021.04.18 19:10:18 5: Robi: Read starts parsing response to get01 with defined readings: 1,2
2021.04.18 19:10:18 5: Robi: ExtractReading auth_csfr-token with regex /(?^:csrf-token.*value="(.*)">)/...
2021.04.18 19:10:18 5: Robi: ExtractReading auth_csfr-token did not match
2021.04.18 19:10:18 5: Robi: ExtractReading auth_requestId with regex /(?^:requestId="(.*)">)/...
2021.04.18 19:10:18 5: Robi: ExtractReading auth_requestId did not match
2021.04.18 19:10:18 4: Robi: Read response to get01 didn't match any Reading
2021.04.18 19:10:18 5: Robi: HandleSendQueue called from ReadCallback, qlen = 0
2021.04.18 19:10:18 5: Robi: HandleSendQueue found no usable entry in queue


und das das neue List

Internals:
   BUSY       0
   DEF        http://app.imow.stihl.com/ 0
   FUUID      607c6202-f33f-c23a-3673-355f1176a8e331f3
   Interval   0
   MainURL    http://app.imow.stihl.com/
   ModuleVersion 4.1.05 - 6.3.2021
   NAME       Robi
   NOTIFYDEV  global
   NR         17
   NTFY_ORDER 50-Robi
   STATE      ???
   TYPE       HTTPMOD
   httpbody   <!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="theme-color" content="#f57a00">
  <base href="">
  <title>STIHL iMOW</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <style>
  html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  border: 0;
  font: inherit;
  font-size: 100%;
  padding: 0;
  vertical-align: baseline;
  margin: 0;
}

#app-loader {
  height: 100vh;
  width: 100%;
}

#app-loader .loader-box {
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}

#app-loader .loader-box img {
  width: 110px;
}

#app-loader .loader {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  -webkit-animation: typing 1s linear infinite alternate;
  -moz-animation: Typing 1s linear infinite alternate;
  animation: typing 1s linear infinite alternate;
  margin: 20px auto;
  position: relative;
  left: -12px;
}

@keyframes typing {
    0% {
        background-color: rgba(255, 255, 255, 1);
        box-shadow: 12px 0 0 0 rgba(255, 255, 255, 0.2), 24px 0 0 0 rgba(255, 255, 255, 0.2);
    }
    25% {
        background-color: rgba(255, 255, 255, 0.4);
        box-shadow: 12px 0 0 0 rgba(255, 255, 255, 2),
        24px 0 0 0 rgba(255, 255, 255, 0.2);
    }
    75% {
        background-color: rgba(255, 255, 255, 0.4);
        box-shadow: 12px 0 0 0 rgba(255, 255, 255, 0.2),
        24px 0 0 0 rgba(255, 255, 255, 1);
    }
}

  </style>
<link rel="stylesheet" href="styles.8b75af968d2a4ae225f1.css"></head>
<body>
<stihl-imow-root>
  <div id="app-loader">
    <div class="loader-box">
      <img src="assets/img/l_imow_ic_004.png" alt="stihl-imow-logo"/>
      <div class="loader"></div>
    </div>
  </div>
</stihl-imow-root>
<script src="runtime-es2015.dc6964439c45858aaf95.js" type="module"></script><script src="runtime-es5.dc6964439c45858aaf95.js" nomodule defer></script><script src="polyfills-es5.30d7324f10bb7260f9e8.js" nomodule defer></script><script src="polyfills-es2015.87f0172f9e5c5ce14f38.js" type="module"></script><script src="scripts.a3ceafd45794493b97d5.js" defer></script><script src="main-es2015.17a087d08ad56910a230.js" type="module"></script><script src="main-es5.17a087d08ad56910a230.js" nomodule defer></script></body>
</html>

   value     
   CompiledRegexes:
   HTTPCookieHash:
     ARRAffinity;:
       Name       ARRAffinity
       Options    Path=/;HttpOnly;Secure;Domain=app.imow.stihl.com
       Path       
       Value      65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95
     ARRAffinitySameSite;:
       Name       ARRAffinitySameSite
       Options    Path=/;HttpOnly;SameSite=None;Secure;Domain=app.imow.stihl.com
       Path       
       Value      65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95
   HttpUtils:
     NAME       
     addr       https://app.imow.stihl.com:443
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl https://app.imow.stihl.com/
     header     
     host       app.imow.stihl.com
     httpheader HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, must-revalidate
Content-Length: 1188
Content-Type: text/html
Content-Encoding: gzip
Last-Modified: Wed, 17 Mar 2021 14:52:58 GMT
Accept-Ranges: bytes
ETag: "0c12a383d1bd71:0"
Vary: Accept-Encoding
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Set-Cookie: ARRAffinity=65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95;Path=/;HttpOnly;Secure;Domain=app.imow.stihl.com
Set-Cookie: ARRAffinitySameSite=65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95;Path=/;HttpOnly;SameSite=None;Secure;Domain=app.imow.stihl.com
Date: Sun, 18 Apr 2021 17:10:17 GMT
Connection: close
     httpversion 1.1
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /
     protocol   https
     redirects  0
     timeout    2
     url        https://app.imow.stihl.com/
     sslargs:
   QUEUE:
   READINGS:
   REQUEST:
     context    get
     data       
     header     
     ignoreredirects 0
     num        01
     priority   1
     retryCount 0
     type       get01
     url        https://app.imow.stihl.com/
     value     
Attributes:
   dontRequeueAfterAuth 1
   enableControlSet 1
   enableCookies 1
   enforceGoodReadingNames 1
   get01Name  Robi
   get01URL   http://app.imow.stihl.com/
   handleRedirects 1
   httpVersion 1.1
   reAuthRegex authentication
   reading1Name auth_csfr-token
   reading1Regex csrf-token.*value="(.*)">
   reading2Name auth_requestId
   reading2Regex requestId="(.*)">
   replacement1Mode reading
   replacement1Regex %%auth_csrf-token%%
   replacement1Value auth_csrf-token
   replacement2Mode reading
   replacement2Regex %%auth_requestid%%
   replacement2Value auth_requestid
   showBody   1
   showError  1
   sid01Data  mail=xxx%40xxx.at&password=xxxxxx100&csrf-token=%%auth_csrf-token%%&requestId=%%auth_requestid%%
   sid01Header1 http://app.imow.stihl.com/
   sid01Header2 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
   sid01ParseResponse 1
   sid01URL   https://oauth2.imow.stihl.com/authentication/authenticate/?lang=de
   verbose    5


Es sind jetzt mehr Infos vorhanden da die URL jetzt stimmt

Nochmals Danke für deine Zeit
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

ch.eick

Zitat von: Helmi55 am 18 April 2021, 19:14:21

header: HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=UTF-8
Location: https://app.imow.stihl.com/
Date: Sun, 18 Apr 2021 17:10:16 GMT
Connection: close
Content-Length: 0, no body

Dann schau Dir jetzt mal die Header an und definier sie mit getHeader[1-n]

Zitat
2021.04.18 19:10:17 4: Robi: http://app.imow.stihl.com/: Redirect (1) to https://app.imow.stihl.com/
Beim get01url gib direkt https an

Was da als html Seite kommt ist sicher das Bild mit dem Mähroboter.

VG
   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

Helmi55

servus Christian,

sollte ich dann nicht auch im deine https statt http eintragen? - Hab ich jetzt gemacht.
Mit dem Header bin ich mir sicher habe ich dich nicht verstanden

Hab das mal so eingetragen:
get01Header header: HTTP/1.1 301 Moved Permanently
   get01Name  Robi
   get01URL   https://app.imow.stihl.com/
   get02Header Content-Type: text/html; charset=UTF-8
   get03Header Location: https://app.imow.stihl.com/


Und das ist da letzte Log:
2021.04.19 10:16:21 5: Robi: get called with Robi
2021.04.19 10:16:21 5: Robi: get found option Robi in attribute get01Name
2021.04.19 10:16:21 4: Robi: get will now request Robi, no optional value
2021.04.19 10:16:21 5: Robi: AddToQueue adds type get01 to URL https://app.imow.stihl.com/, no data, header header: HTTP/1.1 301 Moved Permanently, retry 0, initial queue len: 0
2021.04.19 10:16:21 5: Robi: HandleSendQueue called from AddToSendQueue, qlen = 1
2021.04.19 10:16:21 5: Robi: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input: header: HTTP/1.1 301 Moved Permanently
2021.04.19 10:16:21 5: Robi: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input: header: HTTP/1.1 301 Moved Permanently
2021.04.19 10:16:21 5: Robi: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input:
2021.04.19 10:16:21 5: Robi: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input:
2021.04.19 10:16:21 5: Robi: Replace called for type get01, regex (?^:%%auth_csrf-token%%), mode reading, value auth_csrf-token input: https://app.imow.stihl.com/
2021.04.19 10:16:21 5: Robi: Replace called for type get01, regex (?^:%%auth_requestid%%), mode reading, value auth_requestid input: https://app.imow.stihl.com/
2021.04.19 10:16:21 5: Robi: HandleSendQueue is using Cookie ARRAffinity with path  and Value 65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95 (key ARRAffinity;, destination path is /)
2021.04.19 10:16:21 5: Robi: HandleSendQueue is using Cookie ARRAffinitySameSite with path  and Value 65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95 (key ARRAffinitySameSite;, destination path is /)
2021.04.19 10:16:21 5: Robi: DoCookies is adding Cookie header: ARRAffinity=65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95; ARRAffinitySameSite=65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95
2021.04.19 10:16:21 4: Robi: HandleSendQueue sends get01 with timeout 2 to https://app.imow.stihl.com/, No Data,
header: header: HTTP/1.1 301 Moved Permanently
Cookie: ARRAffinity=65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95; ARRAffinitySameSite=65a45ba790aa0eec64e26110b99f953fb1bbeb68dc97cd01cec58b4fec18dc95
2021.04.19 10:16:21 5: Robi: ReadCallback called from __ANON__
2021.04.19 10:16:21 4: Robi: Read callback: request type was get01 retry 0,
header: HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, must-revalidate
Content-Length: 1188
Content-Type: text/html
Content-Encoding: gzip
Last-Modified: Wed, 17 Mar 2021 14:52:58 GMT
Accept-Ranges: bytes
ETag: "0c12a383d1bd71:0"
Vary: Accept-Encoding
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Mon, 19 Apr 2021 08:16:21 GMT
Connection: close, body length 2805
2021.04.19 10:16:21 5: Robi: Read callback: body
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="theme-color" content="#f57a00">
  <base href="">
  <title>STIHL iMOW</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <style>
  html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  border: 0;
  font: inherit;
  font-size: 100%;
  padding: 0;
  vertical-align: baseline;
  margin: 0;
}

#app-loader {
  height: 100vh;
  width: 100%;
}

#app-loader .loader-box {
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}

#app-loader .loader-box img {
  width: 110px;
}

#app-loader .loader {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  -webkit-animation: typing 1s linear infinite alternate;
  -moz-animation: Typing 1s linear infinite alternate;
  animation: typing 1s linear infinite alternate;
  margin: 20px auto;
  position: relative;
  left: -12px;
}

@keyframes typing {
    0% {
        background-color: rgba(255, 255, 255, 1);
        box-shadow: 12px 0 0 0 rgba(255, 255, 255, 0.2), 24px 0 0 0 rgba(255, 255, 255, 0.2);
    }
    25% {
        background-color: rgba(255, 255, 255, 0.4);
        box-shadow: 12px 0 0 0 rgba(255, 255, 255, 2),
        24px 0 0 0 rgba(255, 255, 255, 0.2);
    }
    75% {
        background-color: rgba(255, 255, 255, 0.4);
        box-shadow: 12px 0 0 0 rgba(255, 255, 255, 0.2),
        24px 0 0 0 rgba(255, 255, 255, 1);
    }
}

  </style>
<link rel="stylesheet" href="styles.8b75af968d2a4ae225f1.css"></head>
<body>
<stihl-imow-root>
  <div id="app-loader">
    <div class="loader-box">
      <img src="assets/img/l_imow_ic_004.png" alt="stihl-imow-logo"/>
      <div class="loader"></div>
    </div>
  </div>
</stihl-imow-root>
<script src="runtime-es2015.dc6964439c45858aaf95.js" type="module"></script><script src="runtime-es5.dc6964439c45858aaf95.js" nomodule defer></script><script src="polyfills-es5.30d7324f10bb7260f9e8.js" nomodule defer></script><script src="polyfills-es2015.87f0172f9e5c5ce14f38.js" type="module"></script><script src="scripts.a3ceafd45794493b97d5.js" defer></script><script src="main-es2015.17a087d08ad56910a230.js" type="module"></script><script src="main-es5.17a087d08ad56910a230.js" nomodule defer></script></body>
</html>

2021.04.19 10:16:21 4: Robi: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2021.04.19 10:16:21 5: Robi: GetCookies is looking for Cookies
2021.04.19 10:16:21 5: Robi: ExtractSid called, context get, num 01
2021.04.19 10:16:21 4: Robi: checking for redirects, code=200, ignore=0
2021.04.19 10:16:21 4: Robi: no redirects to handle
2021.04.19 10:16:21 5: Robi: Read callback sets LAST_REQUEST to get01
2021.04.19 10:16:21 5: Robi: CheckAuth is checking buffer with ReAuthRegex (?^:authentication)
2021.04.19 10:16:21 5: Robi: CheckAuth decided no authentication required
2021.04.19 10:16:21 5: Robi: ExtractReading for context get, num 01 - no individual parse definition
2021.04.19 10:16:21 5: Robi: UpdateReadingList created list of reading.* nums to parse during getUpdate as 1 2
2021.04.19 10:16:21 5: Robi: Read starts parsing response to get01 with defined readings: 1,2
2021.04.19 10:16:21 5: Robi: ExtractReading auth_csfr-token with regex /(?^:csrf-token.*value="(.*)">)/...
2021.04.19 10:16:21 5: Robi: ExtractReading auth_csfr-token did not match
2021.04.19 10:16:21 5: Robi: ExtractReading auth_requestId with regex /(?^:requestId="(.*)">)/...
2021.04.19 10:16:21 5: Robi: ExtractReading auth_requestId did not match
2021.04.19 10:16:21 4: Robi: Read response to get01 didn't match any Reading
2021.04.19 10:16:21 5: Robi: HandleSendQueue called from ReadCallback, qlen = 0
2021.04.19 10:16:21 5: Robi: HandleSendQueue found no usable entry in queue

jump to the top


danke für deine Zeit und Geduld

Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/