Hauptmenü

HTTPMOD Login

Begonnen von holzwurm83, 28 Oktober 2017, 16:35:28

Vorheriges Thema - Nächstes Thema

eldi0s

#90
Hi,

ich habe mich gestern mal an die integration meiner Lüftungsanlage in FHEM gemacht um speziell die tollen CO2 Werte
auf meinen KNX Bus zu bekommen. Da bin ich auf diesen Thread gestoßen ;-)

Hab die halbe nacht mit diversen Parametern gespielt aber leider nichts brauchbares zusammenbekommen.
PHP, HTML und Java ist jetzt garnicht meine Welt, daher verstehe ich das ganze auch nicht so richtig und kann
nur basteln bzw. kopieren und ändern.

Es geht um folgende Seite, die ich aufrufen und auslesen möchte. Leider ruft er mir immer nur die "leere" Seite
auf und meldet sich nicht an.

https://www.freeair-connect.de

Die einzelnen Geräte kan man direkt mit anhängen der Seriennummer aufrufen:
PS: es heisst unten wirklich seriennumber ;-)

https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX

Somit müsste man eigentlich nur das Passwort übergeben.

Mein gebastelter Code sieht bis jetzt so aus:
defmod freeair100 HTTPMOD https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX 60
attr freeair100 userattr requestHeader1 requestHeader2 sid01Data sid01Header1 sid01IdRegex sid01IgnoreRedirects:0,1 sid01URL sid02Data sid02Header1 sid02IdRegex sid02URL sidURL
attr freeair100 clearSIdBeforeAuth 1
attr freeair100 disable 0
attr freeair100 reAuthRegex (class="login-item"|Bad Request)
attr freeair100 reading01Name Airflow
attr freeair100 reading01Regex id="air_flow_val".*?>([\d]+)
attr freeair100 requestHeader1 Cookie: $sid
attr freeair100 room Lüftung
attr freeair100sid01IdRegex (ASP.NET_SessionId[^;;\n]+)
attr freeair100 sid02Data password=XXXXXXXXXXXXXX&Remember=false
attr freeair100 sid02Header1 Cookie: $sid
attr freeair100 sid02IdRegex Cookie: ([^\n]+)
attr freeair100 sidURL https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX
attr freeair100 verbose 5


Er findet das Reading, gibt aber nur die nächste  gefundene Zahl im Quelltext der "leeren" Seite aus,
da er sich nicht anmeldet um den Wert zu bekommen.

Sprich die 3 aus der Einheit m³/h der leeren Seite
<p class="value" id="air_flow"><span id="air_flow_val"></span><span class="units"> m<sup>3</sup>/h</span></p>

und nicht den Wert 60 wie hier, wenn man angemeldet ist:
<p class="value" id="air_flow"><span id="air_flow_val">60</span><span class="units"> m<sup>3</sup>/h</span></p>

Bin noch auf Arbeit und habe keinen Zugriff auf mein FHEM. Werde heute Abend mal die List und das Log posten.

Vllt. fällt ja jemandem auch so etwas dazu ein?

Vielen Dank und beste Grüße,
eldi

hier noch ein Großteil des Quelltexts der ganzen Seite (nicht angemeldet):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="images/BM.png">
<title>
freeAir - Remote Connect
</title>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" rel="stylesheet">
<link href="css_min/src/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="css_min/src/jquery.jscrollpane.css" rel="stylesheet" type="text/css" media="all" />
<link href="css_min/page.min.css" rel="stylesheet" type="text/css">
<link href="css_min/detail.min.css" rel="stylesheet" type="text/css">
<!--link href="css/diagram.css" rel="stylesheet" type="text/css"-->
<link href="css_min/button.min.css" rel="stylesheet" type="text/css">
<link href="css_min/table.min.css" rel="stylesheet" type="text/css" media="all">
<link href="css_min/popup.min.css" rel="stylesheet" type="text/css" media="all">
<link href="css_min/media.min.css" rel="stylesheet" type="text/css">
<!--link href="css/chart.css" rel="stylesheet" type="text/css" media="all"-->
<script type="text/javascript" src="js_min/jquery/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="js_min/src/bootstrap.min.js"></script>
<script type="text/javascript" src="js_min/src/jquery.mousewheel.js"></script>
<script type="text/javascript" src="js_min/src/jquery.jscrollpane.min.js"></script>
<script type="text/javascript" src="js_min/src/modernizr-custom.js"></script>
<script type="text/javascript" src="js_min/src/inde.min.js"></script>
        <script type="text/javascript" src="js_min/def.min.js"> </script>
<script type="text/javascript" src="js_min/faAES.min.js"> </script>
<!-- script type="text/javascript" src="js/createChart.js"> </script-->
<script type="text/javascript" src="js_min/helpCreatePrimBlobObject.min.js"> </script>
<script type="text/javascript" src="js_min/fillOverviewAndDetails.min.js"> </script>
<script type="text/javascript" src="js_min/helpCreateSecBlobObject.min.js"> </script>
<script type="text/javascript" src="js_min/helpParseBlob.min.js"> </script>
<script type="text/javascript" src="js_min/createPBO.min.js"> </script>
<script type="text/javascript" src="js_min/createSBO.min.js"> </script>
<script type="text/javascript" src="js_min/translation.min.js"> </script>
<script type="text/javascript" src="js_min/main.min.js"></script>
<script type="text/javascript" src="js_min/button.min.js"></script>
        <script type="text/javascript" src="js_min/getDataFce.min.js"></script>
        <script type="text/javascript" src="js_min/srn.min.js"></script>
        <script type="text/javascript" src="js_min/key.min.js"></script>
        <script type="text/javascript" src="js_min/scriptfce.min.js"></script>
<!--script type="text/javascript" src="js/diagram.js"></script-->
</head>

<body>
<noscript>
<p class="noscript en">This website needs JavaScript to be shown properly. See bluMartin Help. </p>
<p class="noscript de">Diese Seite ben&ouml;tigt JavaScript, um korrekt dargestellt zu werden. Anleitung in bluMartin Hilfe.</p>
</noscript>
<div class="page">
<header id="top" class="page-header navbar navbar-default">
<div id="logo_desktop" class="logo hidden-xs"><a href="#"><img src="images/logo.png" height="33" width="253" alt="freeAirConnect"></a></div>
<div id="logo_mobile" class="logo hidden-sm hidden-md hidden-lg"><a href="#"><img src="images/logoMobile.png" height="27" width="164" alt="freeAirConnect"></a></div>
<form action="tabs.php" class="form-search form-inline" method = "post">
<div class="form-group" id="input_popover">
<input type="text"
   name="seriennumber"
   id="seriennumber"
   class="form-control"
   placeholder=""
   data-toggle="popover"
   data-placement="bottom"
   data-trigger="manual"
>
<input id="SerNrLS" style="display: none">
<input id="po_on" style="display: none" value="off">
<button type="submit">Go</button>
</div>
</form>
<div id="key_icon" class="logo1" onclick="editKeyPopup()"><img src="images/key_icon.png" width="34" height="16"></div>
<div class="collapse navbar-collapse pull-right" id="main-nav">
<ul class="nav nav-tabs my-nav">
<li><a id="OV_overview" href="#nav1" data-toggle="tab" class="trans">Overview</a></li>
<li><a id="OV_details" href="#nav2" data-toggle="tab" class="trans">Details</a></li>
<!-- li><a id="OV_diagrams" href="#nav3" data-toggle="tab" class="trans">Diagrams</a></li-->
<li><a id="OV_minute_values" href="#nav4" data-toggle="tab" class="trans">Minute Values</a></li>
<li><a id="OV_daily_values" href="#nav5" data-toggle="tab" class="trans">Daily Values</a></li>
<li><a id="OV_monthly_values" href="#nav6" data-toggle="tab" class="trans">Monthly Values</a></li>
<li><a id="OV_help" href="#nav7" data-toggle="tab" class = "trans">Help</a></li>
</ul>
</div>
<div class="dropdown lang-dropdown">
<div class="dropdown-toggle" id="lang-menu-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="current"><img src="images/eng.png" width="34" height="16"></span>
<span class="caret"></span>
</div>
<ul id="lang-menu" class="dropdown-menu" aria-labelledby="lang-menu-toggle">
<li id="flag_en"><a href="javascript:getLang('en')"><img src="images/eng.png" width="34" height="16"></a></li>
<li id="flag_de"><a href="javascript:getLang('de')"><img src="images/de.png" width="34" height="16"></a></li>
</ul>
</div>
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-nav" aria-expanded="false">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
</header>
<div class="page-content tab-content">
<div role="tabpanel" class="tab-pane active" id="nav1">
                    <div id="error_div" style="display: none"></br><p id="red-error" align="left"><span id="err_msg" class="err trans">Error:</span><span>&nbsp; </span><span id="error_msg_en" class="en err"></span>
                                                            <span id="error_msg_de" class="de err"></span><span></span><span id="switch-off" class= "err trans"></span></p> </div>
                            <div class="flex-column stretched">
                               
<div class="overview-list">
<div class="overview-item item-1">
<div class="overview-main">
<h3 id="OV_air_flow" class="name trans">Air Flow</h3>
<p class="value" id="air_flow"><span id="air_flow_val"></span><span class="units"> m<sup>3</sup>/h</span></p>
</div>
</div>
<div class="overview-item item-5">
<div class="overview-type">
<h3 id="OV_outdoor" class="name text-outdoor trans">Outdoor</h3>
<div class="values">
<p class="value"><span class="label trans" id="OV_temperature_outdoor">Temperature</span><span id="outdoor_temp_val"></span><span class="units"> ℃</span></p>
<p class="value"><span class="label"><span class="trans" id="OV_humidity_rel_outdoor">Humidity</span><span> (rel)</span></span><span id="outdoor_hum_rel_val"></span><span class="units"> %</span></p>
<p class="value"><span class="label"><span class="trans" id="OV_humidity_abs_outdoor">Humidity</span><span> (abs)</span></span><span id="outdoor_hum_abs_val"></span><span class="units"> g/m<sup>3</sup></span></p>
</div>
</div>
</div>
<div class="overview-item item-2">
<div class="overview-main">
<h3 id="OV_heat_recovery" class="name trans">Heat Recovery</h3>
<h3 id="OV_cooling_power" class="name trans power">Cooling Power</h3>
<p id="heat_recovery_p" class="value"><span id="heat_recovery_val"></span><span class="units"> %</span></p>
<p id="cooling_power_p" class="value power"><span id="cooling_power_val"></span><span class="units"> W</span></p>
</div>
</div>
<div class="overview-item item-6">
<div class="overview-type">
<h3 id="OV_supply" class="name text-supply trans">Supply</h3>
<div class="values">
<p class="value"><span class="label trans" id="OV_temperature_supply">Temperature</span><span id="supply_temp_val"></span><span class="units"> ℃</span></p>
</div>
</div>
</div>
<div class="overview-item item-3">
<div class="overview-main">
<h3 id="OV_power_recovery" class="name trans">Energy Recovery</h3>
<p id="power_recovery_p" class="value"><span id="power_recovery_val"></span><span class="units"> W</span></p>
</div>
<button class="btn-img" onclick="buttonAction()"></button>
</div>
<div class="overview-item item-7">
<div class="overview-type">
<h3 id="OV_extract" class="name text-extract trans">Extract</h3>
<div class="values">
<p class="value"><span class="label trans" id="OV_temperature_extract">Temperature</span><span id="extract_temp_val"></span><span class="units"> ℃</span></p>
<p class="value"><span class="label"><span class="trans" id="OV_humidity_rel_extract">Humidity</span><span> (rel)</span></span><span id="extract_hum_rel_val"></span><span class="units"> %</span></p>
<p class="value"><span class="label"><span class="trans" id="OV_humidity_abs_extract">Humidity</span><span> (abs)</span></span><span id="extract_hum_abs_val"></span><span class="units"> g/m<sup>3</sup></span>
</p>
<p class="value" id="extract_CO2"><span class="label">CO<sub>2</sub></span><span id="extract_CO2_val"></span><span class="units"> ppm</span>
</p>
</div>
</div>
</div>
<div class="overview-item item-4">
<div class="overview-grade">
<div class="grade-info">
<div class="grade-item">
<p id="OV_humidity_tl" class="label trans">Humidity</p>
<ul id="OV_traffic_lights_humidity" class="grade-type">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="grade-item">
<p class="label">CO<sub>2</sub></p>
<ul id="OV_traffic_lights_CO2" class="grade-type">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="grade-item">
<p id="OV_supply_filter_tl" class="label trans">Filter Supply</p>
<ul id="OV_tl_sf" class="grade-type">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="grade-item">
<p id="OV_extract_filter_tl" class="label trans">Filter Extract</p>
<ul id="OV_tl_ef" class="grade-type">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div><!--grade item  -->
</div>
</div>
</div>
<div class="overview-item item-8">
<div class="overview-type">
<h3 id="OV_exhaust" class="name text-exhaust trans">Exhaust</h3>
<div class="values">
<p class="value"><span class="label trans" id="OV_temperature_exhaust">Temperature</span><span id="exhaust_temp_val"></span><span class="units"> ℃</span></p>
</div>
</div>
</div>
</div>
</div><!--flex column stretched  -->
</div><!--nav1  -->
<div onload="alert('super');" role="tabpanel" class="tab-pane" id="nav2">
<div class="container details-tab">
<div class="row">
<div class=" col-sm-6 col-md-5 col-md-offset-1 col-lg-4 col-lg-ofset-1 col-xs-12">
<div class="main-info">
<div class="info-row-details">
<h3 class="text-outdoor heading-details">Parameter</h3>
<div class="details-info">
<div class="values-details">
<p class="value-details parameter-name"><span id="D_operation_mode" class="trans">Operation Mode</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_OM" class="trans">OM</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_OM_val_en" class="details-1 detail-input en"></span><span id="D_OM_val_de" class="details-1 detail-input de"></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_comfort_level" class="trans">Comfort Level</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1">(CL)</span></p>
<p class="value-details parameter-value"><span id="D_CL_val" class="details-1 detail-input"></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_operation_hours" class="trans">Operation Hours</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_OPH" class="trans">OPH</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_OPH_val" class="details-1 detail-input" ></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_filter_hours" class="trans">Filter Hours</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_FIH" class="trans">FIH</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_FIH_val" class="details-1 detail-input"></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_room_area" class="trans">Room Area</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_RA" class="trans">RA</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_RA_val" class="details-1 detail-input"></span><span class="span">m<sup>2</sup></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_defrosting_mode" class="trans">Deicing</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_dei" class="trans">dfr</span><span>)</span></span></p>
<div class="value-details parameter-value">
<div class="checkbox">
<input id="D_dei_val" type="checkbox" onclick="return false;">
<label for="D_dei_val" id="D_deeicing_label">&nbsp;</label>
</div>
</div>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_2nd_room_adapter" class="trans">2nd Room Adapter</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1">(2A)</span></p>
<p class="value-details parameter-value"><span id="D_2A_val" class="details-1 detail-input"></span><span class="span">m<sup>3</sup>/h</span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_fan_speed_supply" class="trans">Fan Speed Supply</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_FSS" class="trans">FSS</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_FSS_val" class="details-1 detail-input"></span><span class="span">1/min</span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_fan_speed_extract" class="trans">Fan Speed Extract</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_FSE" class="trans">FSE</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_FSE_val" class="details-1 detail-input"></span><span class="span">1/min</span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_software_version" class="trans">Software Version</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1">(SWV)</span></p>
<p class="value-details parameter-value"><span id="D_SWV_val" class="details-1 detail-input"></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_circuit_board_version" class="trans">Circuit Board Version</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_CBV" class="trans">CBV</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_CBV_val" class="details-1 detail-input"></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_serial_number" class="trans">Serial Number</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1">(SNR)</span></p>
<p class="value-details parameter-value"><span id="D_SNR_val" class="details-1 detail-input"></span></p>
</div>
</div>
</div><!--info-row-details  -->
</div><!-- main-info -->
</div>
<div class="col-sm-5 col-sm-offset-1 col-md-4 col-md-offset-1 col-lg-3 col-lg-offset-3 col-xl-3 col-xl-offset-2 col-xs-12">
<div class="main-info">
<div class="info-row-details program-reduction col-details-2">
<h3 id="D_program_heading"class="text-outdoor heading-details-2-3 trans">Program</h3>
<div class="details-info">
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_mve_val" type="checkbox" onclick="return false;">
<label for="D_mve_val" id="D_minimum_ventilation" class="trans">Minimum Ventilation</label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_mve" class="trans">mve</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_hrr_val" type="checkbox" onclick="return false;">
<label for="D_hrr_val" id="D_humidity_reduction_rel" class="trans">Humidity Reduction</label><span> (rel)</span>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_hrr" class="trans">hrr</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_hra_val" type="checkbox" onclick="return false;">
<label for="D_hra_val" id="D_humidity_reduction_abs" class="trans">Humidity Reduction</label><span> (abs)</span>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_hra" class="trans">hra</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_col_val" type="checkbox" onclick="return false;">
<label for="D_col_val" id="D_active_cooling" class="trans">Active Cooling</label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_col" class="trans">col</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_co2_val" type="checkbox" onclick="return false;">
<label for="D_co2_val" id="D_reduction_co2" class="trans">Reduction CO<sub>2</sub></label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1">(co2)</span></p>
</div>
</div>
</div><!-- info-row-details  -->
</div><!-- main-info -->
<div class="main-info">
<div class="info-row-details-3 program-reduction col-details-3" id="info-row-reduction">
<h3> <span id="D_reduction_heading" class="text-outdoor heading-details-2-3 trans">Reduction</span><span class="text-outdoor heading-details-2-3 without"> (mini)</span></h3>
<div class="details-info">
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_dfr_val" type="checkbox" onclick="return false;">
<label for="D_dfr_val" id="D_defrosting" class="trans">Defrosting</label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_dfr" class="trans">dfr</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_hin_val" type="checkbox" onclick="return false;">
<label for="D_hin_val" id="D_humidity_input" class="trans">Humidity Input</label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_hin" class="trans">hin</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_otb_val" type="checkbox" onclick="return false;">
<label for="D_otb_val" id="D_outdoor_temperature_below" class="trans">Outdoor Temperature</label><span> &lt; -22 ℃</span></label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_otb" class="trans">otb</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_win_val" type="checkbox" onclick="return false;">
<label for="D_win_val" id="D_water_insertion" class="trans">Water Insertion</label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_win" class="trans">win</span><span>)</span></span></p>
</div><!--values-details  -->
</div>
</div><!--info-row-details  -->
</div><!-- main-info -->
</div>
</div>
</div><!--details-tab  -->
</div><!-- nav2 --> <div role="tabpanel" class="tab-pane" id="nav4">
<div class="container minute-tab">
<div class="row">
<div class=" col-sm-6 col-md-5 col-md-offset-1 col-xs-12">
<table id="table" class="table">
<tr>
<th><span id="PL_TIM" class="trans">TIM</span></th>
<td><span id="PL_timestamp" class="trans">Timestamp</span></td>
<td><span id="PL_TIM_val"></span></td>
</tr>
<tr>
<th><span id="PL_OM" class="trans">OM</span></th>
<td><span id="PL_operating_mode" class="trans">Operating Mode</span></td>
<td><span id="PL_OM_val_de" class="de"></span><span id="PL_OM_val_en" class="en"></span></td>
</tr>
<tr>
<th><span id="PL_PRG">PRG</span></th>
<td><span id="PL_program" class="trans">Program</span></td>
<td><span class="de" id="PL_PRG_val_de"></span><span class="en" id="PL_PRG_val_en"></span></td>
</tr>
<tr>
<th><span id="PL_RED">RED</span></th>
<td><span id="PL_reduction" class="trans">Reduction</span><span> (mini)</span></td>
<td><span id="PL_RED_val_de" class="de"></span><span id="PL_RED_val_en" class="en"></span></td>
</tr>
<tr>
<th><span id="PL_HR" class="trans">HR</span></th>
<td><span id="PL_humidity_reduction" class="trans">Humidity Reduction Mode</span></td>
<td><span id="PL_HR_val_de" class="de"></span><span id="PL_HR_val_en" class="en"></span></td>
</tr>
<tr>
<th><span id="PL_SC" class="trans">SC</span></th>
<td><span id="PL_summer_cooling" class="trans">Summer Cooling</span></td>
<td><span id="PL_SC_val_de" class="de"></span><span id="PL_SC_val_en" class="en"></span></td>
</tr>
<tr>
<th><span>CL</span></th>
<td><span id="PL_comfort_level" class="trans">Comfort Level</span></td>
<td><span id="PL_CL_val"></span></td>
</tr>
<tr>
<th><span id="PL_RA" class="trans">RA</span><span> [m<sup>2</sup>]</span></th>
<td><span id="PL_room_area" class="trans">Room Area</span></td>
<td><span id="PL_RA_val"></span></td>
</tr>
<tr>
<th><span>2A [m<sup>3</sup>/h]</span></th>
<td><span id="PL_2nd_room_adapter" class="trans">2nd Room Adapter</span></td>
<td><span id="PL_2A_val"></span></td>
</tr>
<tr>
<th><span id="PL_FSS" class="trans">FSS</span><span> [1/min]</span></th>
<td><span id="PL_fan_speed_supply" class="trans">Fan Speed Supply</span></td>
<td><span id="PL_FSS_val"></span></td>
</tr>
<tr>
<th><span id="PL_FSE" class="trans">FSE</span><span> [1/min]</span></th>
<td><span id="PL_fan_speed_extract" class="trans">Filter Speed Extract</span></span></td>
<td><span id="PL_FSE_val"></span></td>
</tr>
<tr>
<th><span id="PL_AFL" class="trans">AFL</span><span> [m<sup>3</sup>/h]</span></th>
<td><span id="PL_air_flow" class="trans">Air Flow</span></td>
<td><span id="PL_AFL_val"></span></td>
</tr>
<tr>
<th><span id="PL_TET" class="trans">TET</span><span> [℃]</span></th>
<td><span id="PL_extract_temperature" class="trans">Extract Temperature</span></td>
<td><span id="PL_TET_val"></span></td>
</tr>
<tr>
<th><span id="PL_HET" class="trans">HET</span><span> [%]</span></th>
<td><span id="PL_extract_humidity" class="trans">Extract Humidity</span><span> (rel)</span></td>
<td><span id="PL_HET_val"></span></td>
</tr>
<tr>
<th><span id="PL_TOU" class="trans">TOU</span><span> [℃]</span></th>
<td><span id="PL_outdoor_temperature" class="trans">Outdoor Temperature</span></td>
<td><span id="PL_TOU_val"></span></td>
</tr>
<tr>
<th><span id="PL_HOU" class="trans">HOU</span><span> [%]</span></th>
<td><span id="PL_outdoor_humidity" class="trans">Outdoor Humidity</span><span> (rel)</span></td>
<td><span id="PL_HOU_val"></span></td>
</tr>
<tr>
<th><span>CO<sub>2</sub> [ppm]</span></th>
<td><span>CO<sub>2</sub></span></td>
<td><span id="PL_CO2_val"></span></td>
</tr>
<tr>
<th><span id="PL_TSU" class="trans">TSU</span><span> [℃]</span></th>
<td><span id="PL_supply_temperature_sens" class="trans">Supply Temperature</span><!-- span> (sens)</span--></td>
<td><span id="PL_TSU_val"></span></td>
</tr>
<tr>
<th><span id="PL_TSC" class="trans">TSC</span><span> [℃]</span></th>
<td><span id="PL_supply_temperature" class="trans">Supply Temperature</span></td>
<td><span id="PL_TSC_val"></span></td>
</tr>
<tr>
<th><span id="PL_TEH" class="trans">TEH</span><span> [℃]</span></th>
<td><span id="PL_exhaust_temperature" class="trans">Exhaust Temperature</span></td>
<td><span id="PL_TEH_val"></span></td>
</tr>
<tr>
<th><span id="PL_APR" class="trans">APR</span><span> [hPa]</span></th>
<td><span id="PL_air_pressure" class="trans">Air Pressure</span></td>
<td><span id="PL_APR_val"></span></td>
</tr>
<tr>
<th><span id="PL_ADY" class="trans">ADY</span><span> [kg/m<sup>3</sup>]</span></th>
<td><span id="PL_air_density" class="trans">Air Density</span></td>
<td><span id="PL_ADY_val"></span></td>
</tr>
<tr>
<th><span id="PL_HRP" class="trans">HRP</span><span> [%]</span></th>
<td><span id="PL_heat_recovery_rel" class="trans">Heat Recovery</span><span> (rel)</span></td>
<td><span id="PL_HRP_val"></span></td>
</tr>
<tr>
<th><span id="PL_HRW" class="trans">HRW</span><span> [W]</span></th>
<td><span id="PL_heat_recovery_abs" class="trans">Heat Recovery</span><span> (abs)</span></td>
<td><span id="PL_HRW_val"></span></td>
</tr>
<tr>
<th><span id="PL_OPH" class="trans">OPH</span><span> [h]</span></th>
<td><span id="PL_operating_hours" class="trans">Operating hours</span></td>
<td><span id="PL_OPH_val"></span></td>
</tr>
<tr>
<th><span id="PL_FIH" class="trans">FIH</span><span> [h]</span></th>
<td><span id="PL_filter_hours" class="trans">Filter Hours</span></td>
<td><span id="PL_FIH_val"></span></td>
</tr>
<tr>
<th><span id="PL_SNR">SNR</span></th>
<td><span id="PL_serial_number" class="trans">Serial Number</span></td>
<td><span id="PL_SNR_val"></span></td>
</tr>
<tr>
<th><span id="PL_RSSI">RSSI</span><span> [dBm]</span></th>
<td><span id="PL_RSSI_value" class="trans">RSSI-Value</span></td>
<td><span id="PL_RSSI_val"></span></td>
</tr>
<tr>
<th><span id="PL_ES" class="trans">ES</span></th>
<td><span id="PL_error_state" class="trans">Error State</span></td>
                                <td><span id="PL_ES_val_de" class="de"></span><span id="PL_ES_val_en" class="en"></span></td>
</tr>
<tr>
<th><span>EFN</span></th>
<td><span>--</span></td>
<td><span id="PL_EFN_val"></span></td>
</tr>
<tr>
<th><span>ELN</span></th>
<td><span>--</span></td>
<td><span id="PL_ELN_val"></span></td>
</tr>
<tr>
<th><span>ECO</span></th>
<td><span>--</span></td>
<td><span id="PL_ECO_val"></span></td>
</tr>
<tr>
<th><span>VPE</span></th>
<td><span>--</span></td>
<td><span id="PL_VPE_val"></span></td>
</tr>
<tr>
<th><span>VBY</span></th>
<td><span>--</span></td>
<td><span id="PL_VBY_val"></span></td>
</tr>
<tr>
<th><span>VBA</span></th>
<td><span>--</span></td>
<td><span id="PL_VBA_val"></span></td>
</tr>
<tr>
<th><span>VPS</span></th>
<td><span>--</span></td>
<td><span id="PL_VPS_val"></span></td>
</tr>
<tr>
<th><span>TPE</span></th>
<td><span>--</span></td>
<td><span id="PL_TPE_val"></span></td>
</tr>
<tr>
<th><span>TBY</span></th>
<td><span>--</span></td>
<td><span id="PL_TBY_val"></span></td>
</tr>
<tr>
<th><span>TBA</span></th>
<td><span>--</span></td>
<td><span id="PL_TBA_val"></span></td>
</tr>
<tr>
<th><span>TPS</span></th>
<td><span>--</span></td>
<td><span id="PL_TPS_val"></span></td>
</tr>
<tr>
<th><span>FSF</span></th>
<td><span>--</span></td>
<td><span id="PL_FSF_val"></span></td>
</tr>
<tr>
<th><span>FEF</span></th>
<td><span>--</span></td>
<td><span id="PL_FEF_val"></span></td>
</tr>
<tr>
<th><span>DIP</span></th>
<td><span>--</span></td>
<td><span id="PL_DIP_val"></span></td>
</tr>
<tr>
<th><span>ZKL</span></th>
<td><span>--</span></td>
<td><span id="PL_FSC_val"></span></td>
</tr>
<tr>
<th><span>AKL</span></th>
<td><span>--</span></td>
<td><span id="PL_FEC_val"></span></td>
</tr>
<tr>
<th><span>LKA</span></th>
<td><span>--</span></td>
<td><span id="PL_CSU_val"></span></td>
</tr>
<tr>
<th><span>LKF</span></th>
<td><span>--</span></td>
<td><span id="PL_CFA_val"></span></td>
</tr>
<tr>
<th><span>S1</span></th>
<td><span>--</span></td>
<td><span id="PL_S1_val"></span></td>
</tr>
<tr>
<th><span>S2</span></th>
<td><span>--</span></td>
<td><span id="PL_S2_val"></span></td>
</tr>
<tr>
<th><span>S3</span></th>
<td><span>--</span></td>
<td><span id="PL_S3_val"></span></td>
</tr>
<tr>
<th><span>S4</span></th>
<td><span>--</span></td>
<td><span id="PL_S4_val"></span></td>
</tr>
<tr>
<th><span>S5</span></th>
<td><span>--</span></td>
<td><span id="PL_S5_val"></span></td>
</tr>
<tr>
<th><span>S6</span></th>
<td><span>--</span></td>
<td><span id="PL_S6_val"></span></td>
</tr>
</table>
</div>
</div>
</div>
</div>

<div role="tabpanel" class="tab-pane" id="nav5">
<div class="container">
<div class="row">
<div class="col-md-12">
<div id="div_daily_values">
            <div id="no_daily_values">
                                                        <br>
                                                        <p class="no-values trans" id="no_daily_val_text"></p>
                                                        <p class="no-values trans" id="no_daily_plausi_logs_text"></p>
                                                        <p class="no-values trans" id="wrong_key_daily_text"></p>

                                                    </div>
                                                    <div id="daily_values" class="table-fixed-col table-scroll-horizontal">

amenomade

Der Quelltext der leeren Seite wenn nicht angemeldet hilft nicht viel...
Besser wäre die Log.

Ich vermute, die Seite ruft und füllt die Daten im Hintergrund per Javascript. Was natürlich die Sache schwieriger macht: man muss die "Unteraufrufe" finden und einsetzen. Dafür im Log des Browser schauen, bzw. mit Burp arbeiten.

Noch einfacher (für dich), wenn Du einverstanden bist: du schickst mir Seriennummer und Passwort und ich schaue, was ich machen kann. Das bleibt aber deine Entscheidung  :P Am Ende setzt Du natürlich das Passwort zurück ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

eldi0s

#92
Oh klasse, bin sonst eher der Tüftler, aber das hört sich echt komplex an und bestätigt
was ich schon vermutet hatte.

Das Log von Firefox sowie Burp habe ich schon durch, es gibt keine anständigen
POST oder GET übergaben, geschweige denn Cookies, Tokens oder ähnliches.

Wenns dir wirklich nichts ausmacht wäre es toll wenn du dir das mal anschaust.

Serial und PW kommen per PM.

Bin echt mal gespannt.

Grüße,
eldi

Anbei noch die List und der Log

List:
Internals:
   BUSY       0
   DEF        https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX 60
   FUUID      5ebdb6d5-f33f-f9c6-55da-205a998280f5ff6c
   Interval   60
   LASTSEND   1589491475.97159
   MainURL    https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX
   ModuleVersion 3.5.22 - 7.2.2020
   NAME       freeairXXXXX
   NOTIFYDEV  global
   NR         268
   NTFY_ORDER 50-freeairXXXXX
   STATE      ???
   TRIGGERTIME 1589491535.96995
   TRIGGERTIME_FMT 2020-05-14 23:25:35
   TYPE       HTTPMOD
   addr       https://www.freeair-connect.de:443
   auth       0
   code       200
   compress   1
   conn       
   data       
   displayurl https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX
   header     Cookie: $sid
   host       www.freeair-connect.de
   httpheader HTTP/1.1 200 OK
Date: Thu, 14 May 2020 21:24:36 GMT
Server: Apache
Upgrade: h2,h2c
Connection: Upgrade, close
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html
   httpversion 1.0
   hu_blocking 0
   hu_filecount 2
   hu_port    443
   hu_portSfx
   ignoreredirects 1
   loglevel   4
   path       /tabs.php?seriennumber=XXXXX
   protocol   https
   redirects  0
   timeout    2
   url        https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX
   value      0
   CompiledRegexes:
   Helper:
     DBLOG:
       Airflow:
         myDbLog:
           TIME       1589491476.84477
           VALUE      3
   QUEUE:
   READINGS:
     2020-05-14 23:24:36   Airflow         3
   REQUEST:
     data       
     header     Cookie: $sid
     ignoreredirects 0
     retryCount 0
     type       update
     url        https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX
     value      0
   defptr:
     readingBase:
       Airflow    reading
     readingNum:
       Airflow    01
     readingOutdated:
     requestReadings:
       update:
         Airflow    reading 01
   sslargs:
Attributes:
   clearSIdBeforeAuth 1
   disable    0
   reAuthRegex (class="login-item"|Bad Request)
   reading01Name Airflow
   reading01Regex air_flow_val".*?>([\d]+)
   requestHeader1 Cookie: $sid
   room       Lüftung
   sid01IdRegex (ASP.NET_SessionId[^;\n]+)
   sid02Data  password=XXXXXXXX&Remember=false
   sid02Header1 Cookie: $sid
   sid02IdRegex Cookie: ([^\n]+)
   sidURL     https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX
   userattr   reading01Name reading01Regex requestHeader1 requestHeader2 sid01Data sid01Header1 sid01IdRegex sid01IgnoreRedirects:0,1 sid01URL sid02Data sid02Header1 sid02IdRegex sid02URL sidURL
   verbose    5


Log: (in der Mitte fehlt ein Teil, wäre sonst zu lang)

2020.05.14 23:29:36 5: freeairXXXXX: GetUpdate called (update)
2020.05.14 23:29:36 5: freeairXXXXX: update timer modified: will call GetUpdate in 60.0 seconds at 2020-05-14 23:30:36
2020.05.14 23:29:36 5: freeairXXXXX: AddToQueue adds type update to URL https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX, no data, header Cookie: $sid, retry 0, initial queue len: 0
2020.05.14 23:29:36 5: freeairXXXXX: HandleSendQueue called, qlen = 1
2020.05.14 23:29:36 4: freeairXXXXX: HandleSendQueue sends update with timeout 2 to https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX, No Data,
header: Cookie: $sid
2020.05.14 23:29:36 5: HttpUtils url=https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX
2020.05.14 23:29:36 4: IP: www.freeair-connect.de -> 85.13.147.2
2020.05.14 23:29:36 5: HttpUtils request header:
GET /tabs.php?seriennumber=XXXXX HTTP/1.0
Host: www.freeair-connect.de
User-Agent: fhem
Accept-Encoding: gzip,deflate
Cookie: $sid

2020.05.14 23:29:36 4: https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX: HTTP response code 200
2020.05.14 23:29:36 5: HttpUtils https://www.freeair-connect.de/tabs.php?seriennumber=XXXXX: Got data, length: 57757
2020.05.14 23:29:36 5: HttpUtils response header:
HTTP/1.1 200 OK
Date: Thu, 14 May 2020 21:29:36 GMT
Server: Apache
Upgrade: h2,h2c
Connection: Upgrade, close
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html
2020.05.14 23:29:36 4: freeairXXXXX: Read callback: request type was update retry 0,
header: HTTP/1.1 200 OK
Date: Thu, 14 May 2020 21:29:36 GMT
Server: Apache
Upgrade: h2,h2c
Connection: Upgrade, close
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html, body length 57757
2020.05.14 23:29:36 5: freeairXXXXX: Read callback: body
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="images/BM.png">
<title>
freeAir - Remote Connect
</title>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" rel="stylesheet">
<link href="css_min/src/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="css_min/src/jquery.jscrollpane.css" rel="stylesheet" type="text/css" media="all" />
<link href="css_min/page.min.css" rel="stylesheet" type="text/css">
<link href="css_min/detail.min.css" rel="stylesheet" type="text/css">
<!--link href="css/diagram.css" rel="stylesheet" type="text/css"-->
<link href="css_min/button.min.css" rel="stylesheet" type="text/css">
<link href="css_min/table.min.css" rel="stylesheet" type="text/css" media="all">
<link href="css_min/popup.min.css" rel="stylesheet" type="text/css" media="all">
<link href="css_min/media.min.css" rel="stylesheet" type="text/css">
<!--link href="css/chart.css" rel="stylesheet" type="text/css" media="all"-->
<script type="text/javascript" src="js_min/jquery/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="js_min/src/bootstrap.min.js"></script>
<script type="text/javascript" src="js_min/src/jquery.mousewheel.js"></script>
<script type="text/javascript" src="js_min/src/jquery.jscrollpane.min.js"></script>
<script type="text/javascript" src="js_min/src/modernizr-custom.js"></script>
<script type="text/javascript" src="js_min/src/inde.min.js"></script>
        <script type="text/javascript" src="js_min/def.min.js"> </script>
<script type="text/javascript" src="js_min/faAES.min.js"> </script>
<!-- script type="text/javascript" src="js/createChart.js"> </script-->
<script type="text/javascript" src="js_min/helpCreatePrimBlobObject.min.js"> </script>
<script type="text/javascript" src="js_min/fillOverviewAndDetails.min.js"> </script>
<script type="text/javascript" src="js_min/helpCreateSecBlobObject.min.js"> </script>
<script type="text/javascript" src="js_min/helpParseBlob.min.js"> </script>
<script type="text/javascript" src="js_min/createPBO.min.js"> </script>
<script type="text/javascript" src="js_min/createSBO.min.js"> </script>
<script type="text/javascript" src="js_min/translation.min.js"> </script>
<script type="text/javascript" src="js_min/main.min.js"></script>
<script type="text/javascript" src="js_min/button.min.js"></script>
        <script type="text/javascript" src="js_min/getDataFce.min.js"></script>
        <script type="text/javascript" src="js_min/srn.min.js"></script>
        <script type="text/javascript" src="js_min/key.min.js"></script>
        <script type="text/javascript" src="js_min/scriptfce.min.js"></script>
<!--script type="text/javascript" src="js/diagram.js"></script-->
</head>

<body>
<noscript>
<p class="noscript en">This website needs JavaScript to be shown properly. See bluMartin Help. </p>
<p class="noscript de">Diese Seite benötigt JavaScript, um korrekt dargestellt zu werden. Anleitung in bluMartin Hilfe.</p>
</noscript>
<div class="page">
<header id="top" class="page-header navbar navbar-default">
<div id="logo_desktop" class="logo hidden-xs"><a href="#"><img src="images/logo.png" height="33" width="253" alt="freeAirConnect"></a></div>
<div id="logo_mobile" class="logo hidden-sm hidden-md hidden-lg"><a href="#"><img src="images/logoMobile.png" height="27" width="164" alt="freeAirConnect"></a></div>
<form action="tabs.php" class="form-search form-inline" method = "post">
<div class="form-group" id="input_popover">
<input type="text"
   name="seriennumber"
   id="seriennumber"
   class="form-control"
   placeholder=""
   data-toggle="popover"
   data-placement="bottom"
   data-trigger="manual"
>
<input id="SerNrLS" style="display: none">
<input id="po_on" style="display: none" value="off">
<button type="submit">Go</button>
</div>
</form>
<div id="key_icon" class="logo1" onclick="editKeyPopup()"><img src="images/key_icon.png" width="34" height="16"></div>
<div class="collapse navbar-collapse pull-right" id="main-nav">
<ul class="nav nav-tabs my-nav">
<li><a id="OV_overview" href="#nav1" data-toggle="tab" class="trans">Overview</a></li>
<li><a id="OV_details" href="#nav2" data-toggle="tab" class="trans">Details</a></li>
<!-- li><a id="OV_diagrams" href="#nav3" data-toggle="tab" class="trans">Diagrams</a></li-->
<li><a id="OV_minute_values" href="#nav4" data-toggle="tab" class="trans">Minute Values</a></li>
<li><a id="OV_daily_values" href="#nav5" data-toggle="tab" class="trans">Daily Values</a></li>
<li><a id="OV_monthly_values" href="#nav6" data-toggle="tab" class="trans">Monthly Values</a></li>
<li><a id="OV_help" href="#nav7" data-toggle="tab" class = "trans">Help</a></li>
</ul>
</div>
<div class="dropdown lang-dropdown">
<div class="dropdown-toggle" id="lang-menu-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="current"><img src="images/eng.png" width="34" height="16"></span>
<span class="caret"></span>
</div>
<ul id="lang-menu" class="dropdown-menu" aria-labelledby="lang-menu-toggle">
<li id="flag_en"><a href="javascript:getLang('en')"><img src="images/eng.png" width="34" height="16"></a></li>
<li id="flag_de"><a href="javascript:getLang('de')"><img src="images/de.png" width="34" height="16"></a></li>
</ul>
</div>
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-nav" aria-expanded="false">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
</header>
<div class="page-content tab-content">
<div role="tabpanel" class="tab-pane active" id="nav1">
                    <div id="error_div" style="display: none"></br><p id="red-error" align="left"><span id="err_msg" class="err trans">Error:</span><span>  </span><span id="error_msg_en" class="en err"></span>
                                                            <span id="error_msg_de" class="de err"></span><span></span><span id="switch-off" class= "err trans"></span></p> </div>
                            <div class="flex-column stretched">
                               
<div class="overview-list">
<div class="overview-item item-1">
<div class="overview-main">
<h3 id="OV_air_flow" class="name trans">Air Flow</h3>
<p class="value" id="air_flow"><span id="air_flow_val"></span><span class="units"> m<sup>3</sup>/h</span></p>
</div>
</div>
<div class="overview-item item-5">
<div class="overview-type">
<h3 id="OV_outdoor" class="name text-outdoor trans">Outdoor</h3>
<div class="values">
<p class="value"><span class="label trans" id="OV_temperature_outdoor">Temperature</span><span id="outdoor_temp_val"></span><span class="units"> ℃</span></p>
<p class="value"><span class="label"><span class="trans" id="OV_humidity_rel_outdoor">Humidity</span><span> (rel)</span></span><span id="outdoor_hum_rel_val"></span><span class="units"> %</span></p>
<p class="value"><span class="label"><span class="trans" id="OV_humidity_abs_outdoor">Humidity</span><span> (abs)</span></span><span id="outdoor_hum_abs_val"></span><span class="units"> g/m<sup>3</sup></span></p>
</div>
</div>
</div>
<div class="overview-item item-2">
<div class="overview-main">
<h3 id="OV_heat_recovery" class="name trans">Heat Recovery</h3>
<h3 id="OV_cooling_power" class="name trans power">Cooling Power</h3>
<p id="heat_recovery_p" class="value"><span id="heat_recovery_val"></span><span class="units"> %</span></p>
<p id="cooling_power_p" class="value power"><span id="cooling_power_val"></span><span class="units"> W</span></p>
</div>
</div>
<div class="overview-item item-6">
<div class="overview-type">
<h3 id="OV_supply" class="name text-supply trans">Supply</h3>
<div class="values">
<p class="value"><span class="label trans" id="OV_temperature_supply">Temperature</span><span id="supply_temp_val"></span><span class="units"> ℃</span></p>
</div>
</div>
</div>
<div class="overview-item item-3">
<div class="overview-main">
<h3 id="OV_power_recovery" class="name trans">Energy Recovery</h3>
<p id="power_recovery_p" class="value"><span id="power_recovery_val"></span><span class="units"> W</span></p>
</div>
<button class="btn-img" onclick="buttonAction()"></button>
</div>
<div class="overview-item item-7">
<div class="overview-type">
<h3 id="OV_extract" class="name text-extract trans">Extract</h3>
<div class="values">
<p class="value"><span class="label trans" id="OV_temperature_extract">Temperature</span><span id="extract_temp_val"></span><span class="units"> ℃</span></p>
<p class="value"><span class="label"><span class="trans" id="OV_humidity_rel_extract">Humidity</span><span> (rel)</span></span><span id="extract_hum_rel_val"></span><span class="units"> %</span></p>
<p class="value"><span class="label"><span class="trans" id="OV_humidity_abs_extract">Humidity</span><span> (abs)</span></span><span id="extract_hum_abs_val"></span><span class="units"> g/m<sup>3</sup></span>
</p>
<p class="value" id="extract_CO2"><span class="label">CO<sub>2</sub></span><span id="extract_CO2_val"></span><span class="units"> ppm</span>
</p>
</div>
</div>
</div>
<div class="overview-item item-4">
<div class="overview-grade">
<div class="grade-info">
<div class="grade-item">
<p id="OV_humidity_tl" class="label trans">Humidity</p>
<ul id="OV_traffic_lights_humidity" class="grade-type">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="grade-item">
<p class="label">CO<sub>2</sub></p>
<ul id="OV_traffic_lights_CO2" class="grade-type">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="grade-item">
<p id="OV_supply_filter_tl" class="label trans">Filter Supply</p>
<ul id="OV_tl_sf" class="grade-type">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="grade-item">
<p id="OV_extract_filter_tl" class="label trans">Filter Extract</p>
<ul id="OV_tl_ef" class="grade-type">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div><!--grade item  -->
</div>
</div>
</div>
<div class="overview-item item-8">
<div class="overview-type">
<h3 id="OV_exhaust" class="name text-exhaust trans">Exhaust</h3>
<div class="values">
<p class="value"><span class="label trans" id="OV_temperature_exhaust">Temperature</span><span id="exhaust_temp_val"></span><span class="units"> ℃</span></p>
</div>
</div>
</div>
</div>
</div><!--flex column stretched  -->
</div><!--nav1  -->
<div onload="alert('super');" role="tabpanel" class="tab-pane" id="nav2">
<div class="container details-tab">
<div class="row">
<div class=" col-sm-6 col-md-5 col-md-offset-1 col-lg-4 col-lg-ofset-1 col-xs-12">
<div class="main-info">
<div class="info-row-details">
<h3 class="text-outdoor heading-details">Parameter</h3>
<div class="details-info">
<div class="values-details">
<p class="value-details parameter-name"><span id="D_operation_mode" class="trans">Operation Mode</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_OM" class="trans">OM</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_OM_val_en" class="details-1 detail-input en"></span><span id="D_OM_val_de" class="details-1 detail-input de"></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_comfort_level" class="trans">Comfort Level</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1">(CL)</span></p>
<p class="value-details parameter-value"><span id="D_CL_val" class="details-1 detail-input"></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_operation_hours" class="trans">Operation Hours</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_OPH" class="trans">OPH</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_OPH_val" class="details-1 detail-input" ></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_filter_hours" class="trans">Filter Hours</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_FIH" class="trans">FIH</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_FIH_val" class="details-1 detail-input"></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_room_area" class="trans">Room Area</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_RA" class="trans">RA</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_RA_val" class="details-1 detail-input"></span><span class="span">m<sup>2</sup></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_defrosting_mode" class="trans">Deicing</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_dei" class="trans">dfr</span><span>)</span></span></p>
<div class="value-details parameter-value">
<div class="checkbox">
<input id="D_dei_val" type="checkbox" onclick="return false;">
<label for="D_dei_val" id="D_deeicing_label"> </label>
</div>
</div>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_2nd_room_adapter" class="trans">2nd Room Adapter</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1">(2A)</span></p>
<p class="value-details parameter-value"><span id="D_2A_val" class="details-1 detail-input"></span><span class="span">m<sup>3</sup>/h</span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_fan_speed_supply" class="trans">Fan Speed Supply</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_FSS" class="trans">FSS</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_FSS_val" class="details-1 detail-input"></span><span class="span">1/min</span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_fan_speed_extract" class="trans">Fan Speed Extract</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_FSE" class="trans">FSE</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_FSE_val" class="details-1 detail-input"></span><span class="span">1/min</span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_software_version" class="trans">Software Version</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1">(SWV)</span></p>
<p class="value-details parameter-value"><span id="D_SWV_val" class="details-1 detail-input"></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_circuit_board_version" class="trans">Circuit Board Version</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1"><span>(</span><span id="D_CBV" class="trans">CBV</span><span>)</span></span></p>
<p class="value-details parameter-value"><span id="D_CBV_val" class="details-1 detail-input"></span></p>
</div>
<div class="values-details">
<p class="value-details parameter-name"><span id="D_serial_number" class="trans">Serial Number</span></p>
<p class="value-details parameter-abrev"><span class="abbrev-details-1">(SNR)</span></p>
<p class="value-details parameter-value"><span id="D_SNR_val" class="details-1 detail-input"></span></p>
</div>
</div>
</div><!--info-row-details  -->
</div><!-- main-info -->
</div>
<div class="col-sm-5 col-sm-offset-1 col-md-4 col-md-offset-1 col-lg-3 col-lg-offset-3 col-xl-3 col-xl-offset-2 col-xs-12">
<div class="main-info">
<div class="info-row-details program-reduction col-details-2">
<h3 id="D_program_heading"class="text-outdoor heading-details-2-3 trans">Program</h3>
<div class="details-info">
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_mve_val" type="checkbox" onclick="return false;">
<label for="D_mve_val" id="D_minimum_ventilation" class="trans">Minimum Ventilation</label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_mve" class="trans">mve</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_hrr_val" type="checkbox" onclick="return false;">
<label for="D_hrr_val" id="D_humidity_reduction_rel" class="trans">Humidity Reduction</label><span> (rel)</span>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_hrr" class="trans">hrr</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_hra_val" type="checkbox" onclick="return false;">
<label for="D_hra_val" id="D_humidity_reduction_abs" class="trans">Humidity Reduction</label><span> (abs)</span>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_hra" class="trans">hra</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_col_val" type="checkbox" onclick="return false;">
<label for="D_col_val" id="D_active_cooling" class="trans">Active Cooling</label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_col" class="trans">col</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_co2_val" type="checkbox" onclick="return false;">
<label for="D_co2_val" id="D_reduction_co2" class="trans">Reduction CO<sub>2</sub></label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1">(co2)</span></p>
</div>
</div>
</div><!-- info-row-details  -->
</div><!-- main-info -->
<div class="main-info">
<div class="info-row-details-3 program-reduction col-details-3" id="info-row-reduction">
<h3> <span id="D_reduction_heading" class="text-outdoor heading-details-2-3 trans">Reduction</span><span class="text-outdoor heading-details-2-3 without"> (mini)</span></h3>
<div class="details-info">
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_dfr_val" type="checkbox" onclick="return false;">
<label for="D_dfr_val" id="D_defrosting" class="trans">Defrosting</label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_dfr" class="trans">dfr</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_hin_val" type="checkbox" onclick="return false;">
<label for="D_hin_val" id="D_humidity_input" class="trans">Humidity Input</label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_hin" class="trans">hin</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_otb_val" type="checkbox" onclick="return false;">
<label for="D_otb_val" id="D_outdoor_temperature_below" class="trans">Outdoor Temperature</label><span> < -22 ℃</span></label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_otb" class="trans">otb</span><span>)</span></span></p>
</div>
<div class="values-details det-2-3">
<div class="value-details">
<div class="checkbox">
<input id="D_win_val" type="checkbox" onclick="return false;">
<label for="D_win_val" id="D_water_insertion" class="trans">Water Insertion</label>
</div>
</div>
<p class="value-details parameter-value-2-3"><span class="abbrev-details-1"><span>(</span><span id="D_win" class="trans">win</span><span>)</span></span></p>
</div><!--values-details  -->
</div>
</div><!--info-row-details  -->
</div><!-- main-info -->
</div>
</div>
</div><!--details-tab  -->
</div><!-- nav2 --> <div role="tabpanel" class="tab-pane" id="nav4">
<div class="container minute-tab">
<div class="row">
<div class=" col-sm-6 col-md-5 col-md-offset-1 col-xs-12">
<table id="table" class="table">
<tr>
<th><span id="PL_TIM" class="trans">TIM</span></th>
<td><span id="PL_timestamp" class="trans">Timestamp</span></td>
<td><span id="PL_TIM_val"></span></td>
</tr>
<tr>
<th><span id="PL_OM" class="trans">OM</span></th>
<td><span id="PL_operating_mode" class="trans">Operating Mode</span></td>
<td><span id="PL_OM_val_de" class="de"></span><span id="PL_OM_val_en" class="en"></span></td>
</tr>
<tr>
<th><span id="PL_PRG">PRG</span></th>
<td><span id="PL_program" class="trans">Program</span></td>
<td><span class="de" id="PL_PRG_val_de"></span><span class="en" id="PL_PRG_val_en"></span></td>
</tr>
<tr>
<th><span id="PL_RED">RED</span></th>
<td><span id="PL_reduction" class="trans">Reduction</span><span> (mini)</span></td>
<td><span id="PL_RED_val_de" class="de"></span><span id="PL_RED_val_en" class="en"></span></td>
</tr>
<tr>
<th><span id="PL_HR" class="trans">HR</span></th>
<td><span id="PL_humidity_reduction" class="trans">Humidity Reduction Mode</span></td>
<td><span id="PL_HR_val_de" class="de"></span><span id="PL_HR_val_en" class="en"></span></td>
</tr>
<tr>
<th><span id="PL_SC" class="trans">SC</span></th>
<td><span id="PL_summer_cooling" class="trans">Summer Cooling</span></td>
<td><span id="PL_SC_val_de" class="de"></span><span id="PL_SC_val_en" class="en"></span></td>
</tr>
<tr>
<th><span>CL</span></th>
<td><span id="PL_comfort_level" class="trans">Comfort Level</span></td>
<td><span id="PL_CL_val"></span></td>
</tr>
<tr>
<th><span id="PL_RA" class="trans">RA</span><span> [m<sup>2</sup>]</span></th>
<td><span id="PL_room_area" class="trans">Room Area</span></td>
<td><span id="PL_RA_val"></span></td>
</tr>
<tr>
<th><span>2A [m<sup>3</sup>/h]</span></th>
<td><span id="PL_2nd_room_adapter" class="trans">2nd Room Adapter</span></td>
<td><span id="PL_2A_val"></span></td>
</tr>
<tr>
<th><span id="PL_FSS" class="trans">FSS</span><span> [1/min]</span></th>
<td><span id="PL_fan_speed_supply" class="trans">Fan Speed Supply</span></td>
<td><span id="PL_FSS_val"></span></td>
</tr>
<tr>
<th><span id="PL_FSE" class="trans">FSE</span><span> [1/min]</span></th>
<td><span id="PL_fan_speed_extract" class="trans">Filter Speed Extract</span></span></td>
<td><span id="PL_FSE_val"></span></td>
</tr>
<tr>
<th><span id="PL_AFL" class="trans">AFL</span><span> [m<sup>3</sup>/h]</span></th>
<td><span id="PL_air_flow" class="trans">Air Flow</span></td>
<td><span id="PL_AFL_val"></span></td>
</tr>
<tr>
<th><span id="PL_TET" class="trans">TET</span><span> [℃]</span></th>
<td><span id="PL_extract_temperature" class="trans">Extract Temperature</span></td>
<td><span id="PL_TET_val"></span></td>
</tr>
<tr>
<th><span id="PL_HET" class="trans">HET</span><span> [%]</span></th>
<td><span id="PL_extract_humidity" class="trans">Extract Humidity</span><span> (rel)</span></td>
<td><span id="PL_HET_val"></span></td>
</tr>
<tr>
<th><span id="PL_TOU" class="trans">TOU</span><span> [℃]</span></th>
<td><span id="PL_outdoor_temperature" class="trans">Outdoor Temperature</span></td>
<td><span id="PL_TOU_val"></span></td>
</tr>
<tr>
<th><span id="PL_HOU" class="trans">HOU</span><span> [%]</span></th>
<td><span id="PL_outdoor_humidity" class="trans">Outdoor Humidity</span><span> (rel)</span></td>
<td><span id="PL_HOU_val"></span></td>
</tr>
<tr>
<th><span>CO<sub>2</sub> [ppm]</span></th>
<td><span>CO<sub>2</sub></span></td>
<td><span id="PL_CO2_val"></span></td>
</tr>
<tr>
<th><span id="PL_TSU" class="trans">TSU</span><span> [℃]</span></th>
<td><span id="PL_supply_temperature_sens" class="trans">Supply Temperature</span><!-- span> (sens)</span--></td>
<td><span id="PL_TSU_val"></span></td>
</tr>
<tr>
<th><span id="PL_TSC" class="trans">TSC</span><span> [℃]</span></th>
<td><span id="PL_supply_temperature" class="trans">Supply Temperature</span></td>
<td><span id="PL_TSC_val"></span></td>
</tr>
<tr>
<th><span id="PL_TEH" class="trans">TEH</span><span> [℃]</span></th>
<td><span id="PL_exhaust_temperature" class="trans">Exhaust Temperature</span></td>
<td><span id="PL_TEH_val"></span></td>
</tr>
<tr>
<th><span id="PL_APR" class="trans">APR</span><span> [hPa]</span></th>
<td><span id="PL_air_pressure" class="trans">Air Pressure</span></td>
<td><span id="PL_APR_val"></span></td>
</tr>
<tr>
<th><span id="PL_ADY" class="trans">ADY</span><span> [kg/m<sup>3</sup>]</span></th>
<td><span id="PL_air_density" class="trans">Air Density</span></td>
<td><span id="PL_ADY_val"></span></td>
</tr>
<tr>
<th><span id="PL_HRP" class="trans">HRP</span><span> [%]</span></th>
<td><span id="PL_heat_recovery_rel" class="trans">Heat Recovery</span><span> (rel)</span></td>
<td><span id="PL_HRP_val"></span></td>
</tr>
<tr>
<th><span id="PL_HRW" class="trans">HRW</span><span> [W]</span></th>
<td><span id="PL_heat_recovery_abs" class="trans">Heat Recovery</span><span> (abs)</span></td>
<td><span id="PL_HRW_val"></span></td>
</tr>
<tr>
<th><span id="PL_OPH" class="trans">OPH</span><span> [h]</span></th>
<td><span id="PL_operating_hours" class="trans">Operating hours</span></td>
<td><span id="PL_OPH_val"></span></td>
</tr>
<tr>
<th><span id="PL_FIH" class="trans">FIH</span><span> [h]</span></th>
<td><span id="PL_filter_hours" class="trans">Filter Hours</span></td>
<td><span id="PL_FIH_val"></span></td>
</tr>
<tr>
<th><span id="PL_SNR">SNR</span></th>
<td><span id="PL_serial_number" class="trans">Serial Number</span></td>
<td><span id="PL_SNR_val"></span></td>
</tr>
<tr>
<th><span id="PL_RSSI">RSSI</span><span> [dBm]</span></th>
<td><span id="PL_RSSI_value" class="trans">RSSI-Value</span></td>
<td><span id="PL_RSSI_val"></span></td>
</tr>
<tr>
<th><span id="PL_ES" class="trans">ES</span></th>
<td><span id="PL_error_state" class="trans">Error State</span></td>
                                <td><span id="PL_ES_val_de" class="de"></span><span id="PL_ES_val_en" class="en"></span></td>
</tr>
<tr>
<th><span>EFN</span></th>
<td><span>--</span></td>
<td><span id="PL_EFN_val"></span></td>
</tr>
<tr>
<th><span>ELN</span></th>
<td><span>--</span></td>
<td><span id="PL_ELN_val"></span></td>
</tr>
<tr>
<th><span>ECO</span></th>
<td><span>--</span></td>
<td><span id="PL_ECO_val"></span></td>
</tr>
<tr>
<th><span>VPE</span></th>
<td><span>--</span></td>
<td><span id="PL_VPE_val"></span></td>
</tr>
<tr>
<th><span>VBY</span></th>
<td><span>--</span></td>
<td><span id="PL_VBY_val"></span></td>
</tr>
<tr>
<th><span>VBA</span></th>
<td><span>--</span></td>
<td><span id="PL_VBA_val"></span></td>
</tr>
<tr>
<th><span>VPS</span></th>
<td><span>--</span></td>
<td><span id="PL_VPS_val"></span></td>
</tr>
<tr>
<th><span>TPE</span></th>
<td><span>--</span></td>
<td><span id="PL_TPE_val"></span></td>
</tr>
<tr>
<th><span>TBY</span></th>
<td><span>--</span></td>
<td><span id="PL_TBY_val"></span></td>
</tr>
<tr>
<th><span>TBA</span></th>
<td><span>--</span></td>
<td><span id="PL_TBA_val"></span></td>
</tr>
<tr>
<th><span>TPS</span></th>
<td><span>--</span></td>
<td><span id="PL_TPS_val"></span></td>
</tr>
<tr>
<th><span>FSF</span></th>
<td><span>--</span></td>
<td><span id="PL_FSF_val"></span></td>
</tr>
<tr>
</div>
</div><!-- page -->
<input id = "seriennumberPHP" type = "hidden" name = "seriennumberPHP" value = XXXXX></input><input id = "seriennumberName" type = "hidden" name = "seriennumberName" value = XXXXXX></input><div style="display: none"><span id = "msg_wrong_key_prim" style="display: none" class = "trans"></span></div><script src = "js_min/hexHelp.min.js"></script>
<script src = "js_min/getData.min.js"></script>
<script src = "js_min/script.min.js">
 
</script>
</body>
</html>


2020.05.14 23:29:36 4: freeairXXXXX: Read found no charset header (bodyDecode was set to auto)
2020.05.14 23:29:36 5: freeairXXXXX: GetCookies is looking for Cookies
2020.05.14 23:29:36 5: freeairXXXXX: ExtractSid called, context reading, num
2020.05.14 23:29:36 4: freeairXXXXX: checking for redirects, code=200, ignore=0
2020.05.14 23:29:36 4: freeairXXXXX: no redirects to handle
2020.05.14 23:29:36 5: freeairXXXXX: GetRegex found precompiled reAuthRegex for  as (?^:(class="login-item"|Bad Request))
2020.05.14 23:29:36 5: freeairXXXXX: CheckAuth is checking buffer with ReAuthRegex (?^:(class="login-item"|Bad Request))
2020.05.14 23:29:36 5: freeairXXXXX: CheckAuth decided no authentication required
2020.05.14 23:29:36 5: freeairXXXXX: Read starts parsing response to update with defined readings: 01
2020.05.14 23:29:36 5: freeairXXXXX: GetRegex found precompiled Regex for reading01 as (?^:air_flow_val".*?>([\d]+))
2020.05.14 23:29:36 5: freeairXXXXX: ExtractReading Airflow with regex /(?^:air_flow_val".*?>([\d]+))/...
2020.05.14 23:29:36 5: freeairXXXXX: 1 matches, matchlist = 3
2020.05.14 23:29:36 5: freeairXXXXX: ExtractReading for reading01-1 sets Airflow to 3
2020.05.14 23:29:36 4: freeairXXXXX: Read response matched 1, unmatch 0 Reading(s)
2020.05.14 23:29:36 5: freeairXXXXX: Read response to update matched Airflow
2020.05.14 23:29:36 5: freeairXXXXX: HandleSendQueue called, qlen = 0

amenomade

#93
Hmmm... das wird schwierig. Das ist kein normales Login Verfahren.

Alles geht über Javascript: die Seite ruft die Daten ab über die URL
https://www.freeair-connect.de/getDataHexAjax.php

und dann dekodiert das Ergebnis
ZitatOEvobMe9abVA2ltVwu77l4swpFadV3jiMOyaHVsWxIbqpqTQ5HKPTA4F/ZBn1Ctbtimestamp2020-05-15 19:55:09timestamp2x5x0timestamp0x0x0timestamp0=sbay1CR11SlcJC1oBqg0URt51mGolTekWdSGeoSTn0CbicYKpBaYjZoPa7n2nmiR&1=O3vJkQQh9u4tiDby7trWG4Mqgw9uWr3ue9Q9xGX9QZRCCUoYCX83nc%2BQNkQpTM55&2=hCWPm6tOAsAy0onnv65byPgweLDct5Zm4g8qlqgx%2FMKLpl3yE360LCzsahX%2B7GPVtimestamp0=2020-05-15+20%3A13%3A09&1=2020-05-14+19%3A19%3A49&2=2019-11-21+22%3A03%3A45timestamp0=2x5x0&1=2x5x0&2=2x4x0timestamp0=0x0x0&1=0x0x0&2=0x0x0timestampNULLtimestampNULLtimestampNULLtimestampNULLtimestampPHRhYmxlIGlkPSJ0YWJsZV9kYWlseSIgY2xhc3M9InRhYmxlIHRhYmxlLXNlYyI+PHRyY2xhc3M9ImZpc3Qtcm93Ij48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9USU0iIGNsYXNzPSJzZWMtYWJicmV2Ij5USU08c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9USU1fMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX1RJTV8xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfVElNXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX1JFUyIgY2xhc3M9InNlYy1hYmJyZXYiPlJFUzxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX1JFU18wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfUkVTXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9SRVNfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfVEVUIiBjbGFzcz0ic2VjLWFiYnJldiI+VEVUPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfVEVUXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9URVRfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX1RFVF8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9IRVQiIGNsYXNzPSJzZWMtYWJicmV2Ij5IRVQ8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9IRVRfMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX0hFVF8xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfSEVUXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX1RPVSIgY2xhc3M9InNlYy1hYmJyZXYiPlRPVTxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX1RPVV8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfVE9VXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9UT1VfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfSE9VIiBjbGFzcz0ic2VjLWFiYnJldiI+SE9VPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfSE9VXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9IT1VfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0hPVV8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9DTzIiIGNsYXNzPSJzZWMtYWJicmV2Ij5DTzI8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9DTzJfMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX0NPMl8xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfQ08yXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX1RTVSIgY2xhc3M9InNlYy1hYmJyZXYiPlRTVTxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX1RTVV8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfVFNVXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9UU1VfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfVEVIIiBjbGFzcz0ic2VjLWFiYnJldiI+VEVIPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfVEVIXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9URUhfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX1RFSF8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9BUFIiIGNsYXNzPSJzZWMtYWJicmV2Ij5BUFI8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9BUFJfMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX0FQUl8xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfQVBSXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0FEWSIgY2xhc3M9InNlYy1hYmJyZXYiPkFEWTxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX0FEWV8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfQURZXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9BRFlfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfSFJQIiBjbGFzcz0ic2VjLWFiYnJldiI+SFJQPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfSFJQXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9IUlBfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0hSUF8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9TTlIiIGNsYXNzPSJzZWMtYWJicmV2Ij5TTlI8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9TTlJfMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX1NOUl8xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfU05SXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0RMMSIgY2xhc3M9InNlYy1hYmJyZXYiPkRMMTxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX0RMMV8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfREwxXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9ETDFfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfREwyIiBjbGFzcz0ic2VjLWFiYnJldiI+REwyPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfREwyXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9ETDJfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0RMMl8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9ETDMiIGNsYXNzPSJzZWMtYWJicmV2Ij5ETDM8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9ETDNfMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX0RMM18xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfREwzXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0RMNCIgY2xhc3M9InNlYy1hYmJyZXYiPkRMNDxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX0RMNF8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfREw0XzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9ETDRfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfREw1IiBjbGFzcz0ic2VjLWFiYnJldiI+REw1PHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfREw1XzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9ETDVfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0RMNV8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9EU00iIGNsYXNzPSJzZWMtYWJicmV2Ij5EU008c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9EU01fMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX0RTTV8xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfRFNNXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0RUTSIgY2xhc3M9InNlYy1hYmJyZXYiPkRUTTxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX0RUTV8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfRFRNXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9EVE1fMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfRDFSIiBjbGFzcz0ic2VjLWFiYnJldiI+RDFSPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfRDFSXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9EMVJfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0QxUl8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9EREYiIGNsYXNzPSJzZWMtYWJicmV2Ij5EREY8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9EREZfMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX0RERl8xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfRERGXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0RNViIgY2xhc3M9InNlYy1hYmJyZXYiPkRNVjxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX0RNVl8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfRE1WXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9ETVZfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfRFdJIiBjbGFzcz0ic2VjLWFiYnJldiI+RFdJPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfRFdJXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9EV0lfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0RXSV8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9ESEkiIGNsYXNzPSJzZWMtYWJicmV2Ij5ESEk8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9ESElfMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX0RISV8xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfREhJXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0RSQSIgY2xhc3M9InNlYy1hYmJyZXYiPkRSQTxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX0RSQV8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfRFJBXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9EUkFfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfRFJSIiBjbGFzcz0ic2VjLWFiYnJldiI+RFJSPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfRFJSXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9EUlJfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0RSUl8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9EQ08iIGNsYXNzPSJzZWMtYWJicmV2Ij5EQ088c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9EQ09fMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX0RDT18xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfRENPXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0RDMiIgY2xhc3M9InNlYy1hYmJyZXYiPkRDMjxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX0RDMl8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfREMyXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9EQzJfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfSFJVIiBjbGFzcz0ic2VjLWFiYnJldiI+SFJVPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfSFJVXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9IUlVfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0hSVV8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9IUk4iIGNsYXNzPSJzZWMtYWJicmV2Ij5IUk48c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9IUk5fMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX0hSTl8xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfSFJOXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0VYRSIgY2xhc3M9InNlYy1hYmJyZXYiPkVYRTxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX0VYRV8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfRVhFXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9FWEVfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfUkVFIiBjbGFzcz0ic2VjLWFiYnJldiI+UkVFPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfUkVFXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9SRUVfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX1JFRV8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9QQ08iIGNsYXNzPSJzZWMtYWJicmV2Ij5QQ088c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9QQ09fMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX1BDT18xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfUENPXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0NPRSIgY2xhc3M9InNlYy1hYmJyZXYiPkNPRTxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX0NPRV8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfQ09FXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9DT0VfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfQUVYIiBjbGFzcz0ic2VjLWFiYnJldiI+QUVYPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfQUVYXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9BRVhfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0FFWF8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9XQVIiIGNsYXNzPSJzZWMtYWJicmV2Ij5XQVI8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9XQVJfMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX1dBUl8xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfV0FSXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0VTIiBjbGFzcz0ic2VjLWFiYnJldiI+RVM8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9FU18wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfRVNfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0VTXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0VGTiIgY2xhc3M9InNlYy1hYmJyZXYiPkVGTjxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX0VGTl8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfRUZOXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9FRk5fMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfRUxOIiBjbGFzcz0ic2VjLWFiYnJldiI+RUxOPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfRUxOXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9FTE5fMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0VMTl8yIj48L3NwYW4+PC90ZD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJUVl9FQ08iIGNsYXNzPSJzZWMtYWJicmV2Ij5FQ088c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDAiPjxzcGFuIGlkPSJUVl9FQ09fMCI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMSI+PHNwYW4gaWQ9IlRWX0VDT18xIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQyIj48c3BhbiBpZD0iVFZfRUNPXzIiPjwvc3Bhbj48L3RkPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9IlRWX0ZTRiIgY2xhc3M9InNlYy1hYmJyZXYiPkZTRjxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMCI+PHNwYW4gaWQ9IlRWX0ZTRl8wIj48L3NwYW4+PC90ZD48dGQgY2xhc3M9InNlY0xvZ1RkIFQxIj48c3BhbiBpZD0iVFZfRlNGXzEiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDIiPjxzcGFuIGlkPSJUVl9GU0ZfMiI+PC9zcGFuPjwvdGQ+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iVFZfRkVGIiBjbGFzcz0ic2VjLWFiYnJldiI+RkVGPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48dGQgY2xhc3M9InNlY0xvZ1RkIFQwIj48c3BhbiBpZD0iVFZfRkVGXzAiPjwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0ic2VjTG9nVGQgVDEiPjxzcGFuIGlkPSJUVl9GRUZfMSI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSJzZWNMb2dUZCBUMiI+PHNwYW4gaWQ9IlRWX0ZFRl8yIj48L3NwYW4+PC90ZD48L3RyPjwvdHI+PC90YWJsZT4=timestampPHRhYmxlIGlkPSJ0YWJsZV9tb250aGx5IiBjbGFzcz0idGFibGUgdGFibGUtc2VjIj48dHJjbGFzcz0iZmlzdC1yb3ciPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX1RJTSIgY2xhc3M9InNlYy1hYmJyZXYiPlRJTTxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfUkVTIiBjbGFzcz0ic2VjLWFiYnJldiI+UkVTPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9URVQiIGNsYXNzPSJzZWMtYWJicmV2Ij5URVQ8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX0hFVCIgY2xhc3M9InNlYy1hYmJyZXYiPkhFVDxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfVE9VIiBjbGFzcz0ic2VjLWFiYnJldiI+VE9VPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9IT1UiIGNsYXNzPSJzZWMtYWJicmV2Ij5IT1U8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX0NPMiIgY2xhc3M9InNlYy1hYmJyZXYiPkNPMjxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfVFNVIiBjbGFzcz0ic2VjLWFiYnJldiI+VFNVPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9URUgiIGNsYXNzPSJzZWMtYWJicmV2Ij5URUg8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX0FQUiIgY2xhc3M9InNlYy1hYmJyZXYiPkFQUjxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfQURZIiBjbGFzcz0ic2VjLWFiYnJldiI+QURZPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9IUlAiIGNsYXNzPSJzZWMtYWJicmV2Ij5IUlA8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX1NOUiIgY2xhc3M9InNlYy1hYmJyZXYiPlNOUjxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfREwxIiBjbGFzcz0ic2VjLWFiYnJldiI+REwxPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9ETDIiIGNsYXNzPSJzZWMtYWJicmV2Ij5ETDI8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX0RMMyIgY2xhc3M9InNlYy1hYmJyZXYiPkRMMzxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfREw0IiBjbGFzcz0ic2VjLWFiYnJldiI+REw0PHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9ETDUiIGNsYXNzPSJzZWMtYWJicmV2Ij5ETDU8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX0RTTSIgY2xhc3M9InNlYy1hYmJyZXYiPkRTTTxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfRFRNIiBjbGFzcz0ic2VjLWFiYnJldiI+RFRNPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9EMVIiIGNsYXNzPSJzZWMtYWJicmV2Ij5EMVI8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX0RERiIgY2xhc3M9InNlYy1hYmJyZXYiPkRERjxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfRE1WIiBjbGFzcz0ic2VjLWFiYnJldiI+RE1WPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9EV0kiIGNsYXNzPSJzZWMtYWJicmV2Ij5EV0k8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX0RISSIgY2xhc3M9InNlYy1hYmJyZXYiPkRISTxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfRFJBIiBjbGFzcz0ic2VjLWFiYnJldiI+RFJBPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9EUlIiIGNsYXNzPSJzZWMtYWJicmV2Ij5EUlI8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX0RDTyIgY2xhc3M9InNlYy1hYmJyZXYiPkRDTzxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfREMyIiBjbGFzcz0ic2VjLWFiYnJldiI+REMyPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9IUlUiIGNsYXNzPSJzZWMtYWJicmV2Ij5IUlU8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX0hSTiIgY2xhc3M9InNlYy1hYmJyZXYiPkhSTjxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfRVhFIiBjbGFzcz0ic2VjLWFiYnJldiI+RVhFPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9SRUUiIGNsYXNzPSJzZWMtYWJicmV2Ij5SRUU8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX1BDTyIgY2xhc3M9InNlYy1hYmJyZXYiPlBDTzxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfQ09FIiBjbGFzcz0ic2VjLWFiYnJldiI+Q09FPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9BRVgiIGNsYXNzPSJzZWMtYWJicmV2Ij5BRVg8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX1dBUiIgY2xhc3M9InNlYy1hYmJyZXYiPldBUjxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfRVMiIGNsYXNzPSJzZWMtYWJicmV2Ij5FUzxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfRUZOIiBjbGFzcz0ic2VjLWFiYnJldiI+RUZOPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9FTE4iIGNsYXNzPSJzZWMtYWJicmV2Ij5FTE48c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PHRyPjx0aCBjbGFzcz0iaGVhZGNvbCI+PHNwYW4gaWQ9Ik1WX0VDTyIgY2xhc3M9InNlYy1hYmJyZXYiPkVDTzxzcGFuIGNsYXNzPSJ0dC10ZXh0Ij48L3NwYW4+PC9zcGFuPjwvdGg+PC90cj48dHI+PHRoIGNsYXNzPSJoZWFkY29sIj48c3BhbiBpZD0iTVZfRlNGIiBjbGFzcz0ic2VjLWFiYnJldiI+RlNGPHNwYW4gY2xhc3M9InR0LXRleHQiPjwvc3Bhbj48L3NwYW4+PC90aD48L3RyPjx0cj48dGggY2xhc3M9ImhlYWRjb2wiPjxzcGFuIGlkPSJNVl9GRUYiIGNsYXNzPSJzZWMtYWJicmV2Ij5GRUY8c3BhbiBjbGFzcz0idHQtdGV4dCI+PC9zcGFuPjwvc3Bhbj48L3RoPjwvdHI+PC90cj48L3RhYmxlPg==

anhand der Key (Passwort) durch eine JS Funktion  und füllt die Felder in der Seite aus. Man müsste alle Javascript Funktionen nachbauen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Ich bore weiter in den Code...

Erstmal ein split, um die Felder zu holen.
Dann ein base64decode. Sollte mit "use Encode" machbar sein.
Dann ein AESdecode (CBC) mit der Key (ergänzt mit Nullen bis Länge 16)und einem Initialisation Vector = [0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f]
Sollte mit "use Crypt::Mode::CBC" auch machbar sein.

Aber gut... viel Spaß ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

eldi0s

Oh weh. Leider nur Bahnhof für mich  :-\

Aber danke für deine Mühe, evtl. mach ich mich
im Sommerurlaub mal dran. Muss davor etwas
Javascript studieren.

Grüße,
eldi

amenomade

#96
 So jetzt...
Ich habe die Decodierung nachgebaut. Da es sehr spezifisch ist (mehr Code als HTTPMOD Sachen), habe ich ein neues Thread gemacht:
https://forum.fhem.de/index.php/topic,111294.0.html

   READINGS:
     2020-05-17 19:50:06   AbsHumExtract   8.3
     2020-05-17 19:50:06   AbsHumOutdoor   6.2
     2020-05-17 19:50:06   AirFlow         20
     2020-05-17 19:50:06   AirFlowAve      20
     2020-05-17 19:50:06   CFA             0
     2020-05-17 19:50:06   CO2             528
     2020-05-17 19:50:06   CSU             171
     2020-05-17 19:50:06   ComfortLevel    3
     2020-05-17 19:50:06   CtrlSet2ndVent  3
     2020-05-17 19:50:06   CtrlSetBypVent  3
     2020-05-17 19:50:06   CtrlSetExtVent  3
     2020-05-17 19:50:06   CtrlSetSupVent  3
     2020-05-17 19:50:06   Deicing         0
     2020-05-17 19:50:06   ErrorCode       0
     2020-05-17 19:50:06   ErrorState      0
     2020-05-17 19:50:06   FEC             26
     2020-05-17 19:50:06   FSC             26
     2020-05-17 19:50:06   FanExtractRPM   863
     2020-05-17 19:50:06   FanLim2ndRoom   0
     2020-05-17 19:50:06   FanSpeed        2
     2020-05-17 19:50:06   FanSupplyRPM    805
     2020-05-17 19:50:06   FilterExtractFul 0
     2020-05-17 19:50:06   FilterHours     2013
     2020-05-17 19:50:06   FilterSupplyFul 0
     2020-05-17 19:50:06   HumExtract      39
     2020-05-17 19:50:06   HumOutdoor      35
     2020-05-17 19:50:06   HumRedMode      0
     2020-05-17 19:50:06   OperatingHours  2733
     2020-05-17 19:50:06   Pressure        833
     2020-05-17 19:50:06   RSSI            -72
     2020-05-17 19:50:06   S1              0
     2020-05-17 19:50:06   S2              10
     2020-05-17 19:50:06   S3              0
     2020-05-17 19:50:06   S4              0
     2020-05-17 19:50:06   S5              1
     2020-05-17 19:50:06   S6              33
     2020-05-17 19:50:06   State           0
     2020-05-17 19:50:06   SumCooling      0
     2020-05-17 19:50:06   TempExhaust     21.5
     2020-05-17 19:50:06   TempExtract     23.5
     2020-05-17 19:50:06   TempOutdoor     20.875
     2020-05-17 19:50:06   TempSupply      23.25
     2020-05-17 19:50:06   TempVirtSupExit 23.25
     2020-05-17 19:50:06   VentPosBath     31
     2020-05-17 19:50:06   VentPosExtract  25
     2020-05-17 19:50:06   VentPosSupply   31
     2020-05-17 19:50:06   b2ndRoomOnly20  0
     2020-05-17 17:21:44   rawData         ...


Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

MadMax

Hallo,

ich stehe hier vor dem gleichen Problem...
Mit HTTMOD kann ich umgehen aber ein mehrstufiger Login überfordert mich schon...

ich habe eine Daikin Wärmepumpe die ihre Daten zum Daikin Control sendet.
https://www.daikin-control.com/login

Nach dem Login will ich mir dann hier die Daten holen.
https://www.daikin-control.com/#Logs/offset/0/filter/id//device//deviceType//parameter//installation/xxxxxxxx/dateFrom//dateTo//deviceId/
Da denke ich werde ich kein Problem haben die stehen dort in einer Tabelle.

defmod WP.Daten HTTPMOD https://www.daikin-control.com/#Logs/offset/0/filter/id//device//deviceType//parameter//installation/0479B7EBF841/dateFrom//dateTo//deviceId/ 6000000000
attr WP.Daten userattr reading01Name reading01Regex reading02Name reading02Regex requestHeader1 sid01Data sid01IdRegex sid02Data sid02Header1 sid02IdRegex sid1Header01 sid1IdJSON sid1IgnoreRedirects:0,1 sid1URL sidURL
attr WP.Daten enableCookies 1
attr WP.Daten reAuthRegex (class="login-item"|Bad Request)
attr WP.Daten reading01Name Volumenstrom
attr WP.Daten reading01Regex Volumenstrom\n(........)\n(........)\n(....)<\/td>\n(....)<td>([\d\.]+).([\d\.]+):([\d\.]+):([\d\.]+)<\/td>\n(....)\n(....)<td>([\d\.]+)
attr WP.Daten reading02Name VTest
attr WP.Daten reading02Regex <td>([\d\.]+)
attr WP.Daten requestHeader1 Cookie: $sid
attr WP.Daten room Heizung
attr WP.Daten sid01Header01 Content-Type: application/json
attr WP.Daten sid01IdJSON token
attr WP.Daten sid01IdRegex (ASP.NET_SessionId[^;;\n]+)
attr WP.Daten sid01IgnoreRedirects 1
attr WP.Daten sid02Data username=xxx&password=xxx&Remember=false
attr WP.Daten sid02Header1 Cookie: $sid
attr WP.Daten sid02IdRegex Cookie: ([^\n]+)
attr WP.Daten sid1Header01 Content-Type: application/json
attr WP.Daten sid1IdJSON token
attr WP.Daten sid1IgnoreRedirects 1
attr WP.Daten sid1URL https://www.daikin-control.com/login
attr WP.Daten sidURL https://www.daikin-control.com/login
attr WP.Daten verbose 0


Ich habe schon mal probiert komme aber zu keinem Ergebnis...

Vielen Dank.
Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

amenomade

verbose 5 und in Log schauen
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

MadMax

#99
Hallo,
der Log ist ziemlich lang.

2020.11.10 06:08:13 3: WP.Daten: Defined with URL https://www.daikin-control.com/#Logs/offset/0/filter/id//device//deviceType//parameter//installation/0479B7EBF841/dateFrom//dateTo//deviceId/ and interval 60 featurelevel 6
2020.11.10 06:08:13 4: WP.Daten: UpdateTimer called from HTTPMOD::DefineFn with cmd start sets timer to call update function in -132465.5 sec at 2020-11-08 17:20:27, interval 60
2020.11.10 06:08:13 5: WP.Daten: UpdateHintList called
2020.11.10 06:08:13 5: WP.Daten: UpdateHintList: setlist = interval reread:noArg stop:noArg start:noArg clearCookies:noArg upgradeAttributes:noArg storeKeyValue
2020.11.10 06:08:13 5: WP.Daten: UpdateHintList: getlist =
2020.11.10 06:08:13 4: WP.Daten: GetUpdate called (update)
2020.11.10 06:08:13 4: WP.Daten: UpdateTimer called from HTTPMOD::GetUpdate with cmd next sets timer to call update function in 60.0 sec at 2020-11-10 06:09:13, interval 60
2020.11.10 06:08:13 5: WP.Daten: AddToQueue adds type update to URL https://www.daikin-control.com/#Logs/offset/0/filter/id//device//deviceType//parameter//installation/0479B7EBF841/dateFrom//dateTo//deviceId/, no data, header Cookie: $sid, retry 0, initial queue len: 0
2020.11.10 06:08:13 5: WP.Daten: HandleSendQueue called from HTTPMOD::AddToSendQueue, qlen = 1
2020.11.10 06:08:13 4: WP.Daten: HandleSendQueue sends update with timeout 2 to https://www.daikin-control.com/#Logs/offset/0/filter/id//device//deviceType//parameter//installation/0479B7EBF841/dateFrom//dateTo//deviceId/, No Data,
header: Cookie: $sid
2020.11.10 06:08:13 5: WP.Daten: ReadCallback called from __ANON__
2020.11.10 06:08:13 4: WP.Daten: Read callback: request type was update retry 0,
header: HTTP/1.1 400 Bad Request
Server: nginx
Date: Tue, 10 Nov 2020 05:08:13 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 302
Connection: close, body length 302
2020.11.10 06:08:13 5: WP.Daten: Read callback: body
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.38 (Debian) Server at domain.tld Port 80</address>
</body></html>

2020.11.10 06:08:13 4: WP.Daten: BodyDecode found charset header and set decoding to iso-8859-1 (bodyDecode was set to auto)
2020.11.10 06:08:13 4: WP.Daten: BodyDecode is decoding the response body as iso-8859-1
2020.11.10 06:08:13 3: WP.Daten: error while parsing JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE HTML PUBLI...") at lib/FHEM/HTTPMOD/Utils.pm line 644.

2020.11.10 06:08:13 5: WP.Daten: GetCookies is looking for Cookies
2020.11.10 06:08:13 5: WP.Daten: ExtractSid called, context reading, num 0
2020.11.10 06:08:13 4: WP.Daten: checking for redirects, code=400, ignore=0
2020.11.10 06:08:13 4: WP.Daten: no redirects to handle
2020.11.10 06:08:13 5: WP.Daten: Read callback sets LAST_REQUEST to update
2020.11.10 06:08:13 5: WP.Daten: CheckAuth is checking buffer with ReAuthRegex (?^:(class="login-item"|Bad Request))
2020.11.10 06:08:13 4: WP.Daten: CheckAuth decided new authentication required
2020.11.10 06:08:13 4: WP.Daten: DoAuth called with Steps: 01 02 1
2020.11.10 06:08:13 5: WP.Daten: AddToQueue prepends type auth1 to URL https://www.daikin-control.com/login, no data, header Content-Type: application/json, retry 0, initial queue len: 0
2020.11.10 06:08:13 5: WP.Daten: AddToQueue prepends type auth02 to URL https://www.daikin-control.com/login, data username=Xxx&password=Xxx&Remember=false, header Cookie: $sid, retry 0, initial queue len: 1
2020.11.10 06:08:13 5: WP.Daten: AddToQueue prepends type auth01 to URL https://www.daikin-control.com/login, data {"_username":"Xxx","_password":"Xxx"}, header Content-Type: application/json, retry 0, initial queue len: 2
2020.11.10 06:08:13 5: WP.Daten: HandleSendQueue called from HTTPMOD::DoAuth, qlen = 3
2020.11.10 06:08:13 5: WP.Daten: StartQueueTimer called from HTTPMOD::ReadyForSending sets internal timer to process queue in 1.000 seconds, minSendDelay 0.2 not over
2020.11.10 06:08:13 5: WP.Daten: AddToQueue adds type update to URL https://www.daikin-control.com/#Logs/offset/0/filter/id//device//deviceType//parameter//installation/0479B7EBF841/dateFrom//dateTo//deviceId/, no data, header Cookie: $sid, retry 1, initial queue len: 3
2020.11.10 06:08:13 5: WP.Daten: HandleSendQueue called from HTTPMOD::AddToSendQueue, qlen = 4
2020.11.10 06:08:13 5: WP.Daten: StartQueueTimer called from HTTPMOD::ReadyForSending sets internal timer to process queue in 1.000 seconds, minSendDelay 0.2 not over
2020.11.10 06:08:13 4: WP.Daten: CheckAuth requeued request update after auth, retryCount 0 ...
2020.11.10 06:08:14 5: WP.Daten: HandleSendQueue called from HandleTimeout, qlen = 4
2020.11.10 06:08:14 4: WP.Daten: HandleSendQueue sends auth01 with timeout 2 to https://www.daikin-control.com/login,
data: {"_username":"Xxx","_password":"Xxx"},
header: Content-Type: application/json
2020.11.10 06:08:14 5: WP.Daten: StartQueueTimer called from HTTPMOD::HandleSendQueue sets internal timer to process queue in 1.000 seconds
2020.11.10 06:08:14 5: WP.Daten: ReadCallback called from __ANON__
2020.11.10 06:08:14 4: WP.Daten: Read callback: request type was auth01 retry 0,
header: HTTP/1.1 200 OK
Server: nginx
Date: Tue, 10 Nov 2020 05:08:14 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 2903
Connection: close
X-Powered-By: PHP/7.1.33
Cache-Control: max-age=0, must-revalidate, private
pragma: no-cache
Expires: Tue, 10 Nov 2020 05:08:14 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
Expect-CT: enforce; max-age=86400;
X-Frame-Options: DENY
Content-Security-Policy: default-src 'self' data: *.rotex-control.com *.daikin-control.com *.googleapis.com *.gstatic.com *.gravatar.com 'unsafe-inline' 'unsafe-eval'; object-src 'none'; upgrade-insecure-requests
X-Content-Security-Policy: default-src 'self' data: *.rotex-control.com *.daikin-control.com *.googleapis.com *.gstatic.com *.gravatar.com 'unsafe-inline' 'unsafe-eval'; object-src 'none'; upgrade-insecure-requests
X-WebKit-CSP: default-src 'self' data: *.rotex-control.com *.daikin-control.com *.googleapis.com *.gstatic.com *.gravatar.com 'unsafe-inline' 'unsafe-eval'; object-src 'none'; upgrade-insecure-requests, body length 11012
2020.11.10 06:08:14 5: WP.Daten: Read callback: body
<!DOCTYPE html>
<!--[if IE 7 ]><html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]><html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]><html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <title>DAIKIN Control Cloud Services</title>

                                        <link rel="stylesheet" href="/css/89b37ad.css" />
                   

            <link rel="stylesheet" type="text/css" media="screen" href="/css/07af806.css" />
   
                        <link rel="stylesheet" type="text/css" media="screen" href="/css/504f7ee.css" />
           
                    <link rel="shortcut icon" href="/faviconDaikin.ico" />
       
        <!-- Google WebFonts -->
        <link href='//fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic' rel='stylesheet' type='text/css'>

        <script src="/bundles/rotexsbpcore/js/modernizr-1.7.min.js"></script>
    </head>
    <body>
            <div id="navbar" class="navbar navbar-fixed-top">
    <div class="navbar-inner navbar-top">
        <div class="container">
                        <ul class="nav nav-language pull-right">
                                    <li>
                        <a href="/language/de"><img src="/bundles/rotexcontrolwebclient/images/flags/de.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/en"><img src="/bundles/rotexcontrolwebclient/images/flags/en.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/fr"><img src="/bundles/rotexcontrolwebclient/images/flags/fr.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/it"><img src="/bundles/rotexcontrolwebclient/images/flags/it.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/cs"><img src="/bundles/rotexcontrolwebclient/images/flags/cs.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/hr"><img src="/bundles/rotexcontrolwebclient/images/flags/hr.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/bg"><img src="/bundles/rotexcontrolwebclient/images/flags/bg.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/es"><img src="/bundles/rotexcontrolwebclient/images/flags/es.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/nl"><img src="/bundles/rotexcontrolwebclient/images/flags/nl.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/pt"><img src="/bundles/rotexcontrolwebclient/images/flags/pt.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/sl"><img src="/bundles/rotexcontrolwebclient/images/flags/sl.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/sv"><img src="/bundles/rotexcontrolwebclient/images/flags/sv.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/ja"><img src="/bundles/rotexcontrolwebclient/images/flags/ja.png" alt="" /></a>
                    <li>
                            </ul>
        </div>
    </div>
    <div class="navbar-inner navbar-bottom">
        <div class="container">
            <a class="brand" href="http://www.daikin-control.com/#Overview" title="Homepage"></a>

           
            <img class="roc-brand" src="/bundles/rotexcontrolwebclient/images/roc_logo.png" alt="" />
        </div>
    </div>
</div>

        <script type="text/template" id="loading-template">
<span class="loading-template"><img src="/bundles/rotexsbpcore/images/icons/ajax_loading.gif"></span></script>
            <div class="content login">
        <div class="container">
                    </div>

        <div class="hero-unit row">
            <div class="container">
                <div class="row-fluid">
                    <div class="span8 row">
                        <h1>Welcome to DAIKIN Control Cloud Services</h1>
                        <p>We are pleased that you have chosen a DAIKIN heating boiler or air-water heat pump with heating control via our app.<br />
The DAIKIN Control Cloud Services platform offers a variety of options: You can for example manage your heating systems, view and evaluate settings and set up alerts.<br />
</p>
                        <p><a class="btn btn-primary btn-large" href="https://www.daikin-control.com/registration/" class="forgot btn btn-link">Register</a></p>
                    </div>
                    <form class="form-signin span4" action="/login_check" method="post">
                        <h4 class="form-signin-heading">Please login with your user name / password</h4>

                                                    <div class="alert alert-info">
                                You can also use your existing ROTEX Control credentialsto log in.
                            </div>
                       
                        <input type="text" placeholder="User name" id="username" name="_username" value="" class="input-block-level">
                        <input autocomplete="off" type="password" placeholder="Password" id="password" name="_password" class="input-block-level">
                        <label class="checkbox">
                            <input type="checkbox" value="_remember_me"> Stay logged in
                        </label>
                        <input type="button" id="login-submit" class="btn btn-large btn-primary" value="Login" />
                                                    <a href="/password/reset" class="forgot btn btn-link">Forgot password?</a>
                                            </form>
                </div>
            </div>
        </div>
        <div class="container">
            <div class="row-fluid">
                <div class="span4 row">
                    <img class="img-rounded" src="/bundles/rotexcontrolwebclient/images/lp1.jpg" />
                    <h3>Heating  control via internet</h3>
                    <p>Control your DAIKIN heating system with your smart phone. You can set the desired heating temperature in a convenient and easy way. Time programs and operating modes can be modified via the smart phone app as well. As additional information, the app displays the ambient temperature and current weather with a forecast for the next three days.</p>
                </div>
                <div class="span4">
                    <img class="img-rounded" src="/bundles/rotexcontrolwebclient/images/lp2.jpg" />
                    <h3>Technical Requirements</h3>
                    <ul>- DAIKIN heating system with DAIKIN RoCon control unit (from March 2013)
  - DAIKIN RoCon G1 as a gateway connected to the DAIKIN RoCon control and the Internet
  - IOS version 5.0 or later version
  - Existing network router with a free ethernet (RJ45) connector
</ul>
                </div>
                <div class="span4">
                    <img class="img-rounded" src="/bundles/rotexcontrolwebclient/images/lp4.jpg" />
                                        <h3>January 2020: ROTEX becomes DAIKIN</h3>
                                        <p>As of January 2020 the DAIKIN group will present itself as ONE powerful heating brand. As a result, the ROTEX products will have a new brand name: DAIKIN.</p>
                </div>
            </div>
            <footer class="footer">
                <div class="pull-left">
                    <span>ROTEX Heating Systems GmbH, a member of DAIKIN group</span>
                </div>
                <div class="pull-right">
                    <a class="btn btn-link" href="/content/data-privacy-statement"> Data privacy statement</a>
                    <a class="btn btn-link" href="/imprint"> Imprint</a>
                </div>
            </footer>
        </div>
    </div>

                    <script src="/js/e2eca2f.js"></script>
       
                        <script type="text/javascript">
                document.documentElement.className = "js";

                Core.ns('App');

                window.parameters = {"sbp":{"collection":{"limit":20}},"defaultChart":{"device":"HC1","displayName":"cAUSSENTEMP","hash":"93137f07"},"highlightedParameterNames":["cAUSSENTEMP"],"exportLimit":10000,"restApi":{"url":"https:\/\/api.rotex-control.com\/"},"design":"daikin"};
                window.design = "daikin";

                            </script>

            <script type="text/javascript" src="/bundles/bazingajstranslation/js/translator.min.js"></script>
            <script type="text/javascript" src="/translations"></script>
            <script type="text/javascript" src="/translations?domain_name=daikin"></script>
            <script type="text/javascript" src="/bundles/fosjsrouting/js/router.js"></script>
            <script type="text/javascript" src="/js/routing?callback=fos.Router.setData"></script>
            <script src="/bundles/rotexsbpcore/js/init.js"></script>
       

            <script src="/js/4270b58.js"></script>
   
    <script type="text/javascript">
        var restApi = new RestApi(window.parameters.restApi);
        $('#login-submit').click(function() {
            var myNav = navigator.userAgent.toLowerCase();
            var ieVersion = (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;

            if(!ieVersion || ieVersion > 9) {
                restApi.login(
                    $('.form-signin input[name="_username"]').val(),
                    $('.form-signin input[name="_password"]').val(),
                    this,
                    function(jqXHR, response) {
                        $('.form-signin').submit();
                    }
                )
            }
            else {
                $('.form-signin').submit();
            }
        });

        $('#password, #username').keypress(function(e) {
            if(e.which == 13) {
                $('#login-submit').click();
            }
        });
    </script>

        <script type="text/javascript">
            $('body').on('touchstart.dropdown', '.dropdown-menu', function (e) { e.stopPropagation(); });
        </script>
    </body>
</html>

2020.11.10 06:08:14 4: WP.Daten: BodyDecode found charset header and set decoding to UTF-8 (bodyDecode was set to auto)
2020.11.10 06:08:14 4: WP.Daten: BodyDecode is decoding the response body as UTF-8
2020.11.10 06:08:14 3: WP.Daten: error while parsing JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE html>\n<!-...") at lib/FHEM/HTTPMOD/Utils.pm line 644.

2020.11.10 06:08:14 5: WP.Daten: GetCookies is looking for Cookies
2020.11.10 06:08:14 5: WP.Daten: ExtractSid called, context sid, num 01
2020.11.10 06:08:14 5: WP.Daten: Checking SID with JSON token
2020.11.10 06:08:14 5: WP.Daten: ExtractSid could not match buffer to IdRegex (?^:(ASP.NET_SessionId[^;\n]+))
2020.11.10 06:08:14 4: WP.Daten: checking for redirects, code=200, ignore=0
2020.11.10 06:08:14 4: WP.Daten: no redirects to handle
2020.11.10 06:08:14 5: WP.Daten: Read callback sets LAST_REQUEST to auth01
2020.11.10 06:08:15 5: WP.Daten: HandleSendQueue called from HandleTimeout, qlen = 3
2020.11.10 06:08:15 4: WP.Daten: HandleSendQueue sends auth02 with timeout 2 to https://www.daikin-control.com/login,
data: username=Xxx&password=Xxx&Remember=false,
header: Cookie: $sid
2020.11.10 06:08:15 5: WP.Daten: StartQueueTimer called from HTTPMOD::HandleSendQueue sets internal timer to process queue in 1.000 seconds
2020.11.10 06:08:15 5: WP.Daten: ReadCallback called from __ANON__
2020.11.10 06:08:15 4: WP.Daten: Read callback: request type was auth02 retry 0,
header: HTTP/1.1 200 OK
Server: nginx
Date: Tue, 10 Nov 2020 05:08:15 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 2903
Connection: close
X-Powered-By: PHP/7.1.33
Cache-Control: max-age=0, must-revalidate, private
pragma: no-cache
Expires: Tue, 10 Nov 2020 05:08:15 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
Expect-CT: enforce; max-age=86400;
X-Frame-Options: DENY
Content-Security-Policy: default-src 'self' data: *.rotex-control.com *.daikin-control.com *.googleapis.com *.gstatic.com *.gravatar.com 'unsafe-inline' 'unsafe-eval'; object-src 'none'; upgrade-insecure-requests
X-Content-Security-Policy: default-src 'self' data: *.rotex-control.com *.daikin-control.com *.googleapis.com *.gstatic.com *.gravatar.com 'unsafe-inline' 'unsafe-eval'; object-src 'none'; upgrade-insecure-requests
X-WebKit-CSP: default-src 'self' data: *.rotex-control.com *.daikin-control.com *.googleapis.com *.gstatic.com *.gravatar.com 'unsafe-inline' 'unsafe-eval'; object-src 'none'; upgrade-insecure-requests, body length 11012
2020.11.10 06:08:15 5: WP.Daten: Read callback: body
<!DOCTYPE html>
<!--[if IE 7 ]><html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]><html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]><html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <title>DAIKIN Control Cloud Services</title>

                                        <link rel="stylesheet" href="/css/89b37ad.css" />
                   

            <link rel="stylesheet" type="text/css" media="screen" href="/css/07af806.css" />
   
                        <link rel="stylesheet" type="text/css" media="screen" href="/css/504f7ee.css" />
           
                    <link rel="shortcut icon" href="/faviconDaikin.ico" />
       
        <!-- Google WebFonts -->
        <link href='//fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic' rel='stylesheet' type='text/css'>

        <script src="/bundles/rotexsbpcore/js/modernizr-1.7.min.js"></script>
    </head>
    <body>
            <div id="navbar" class="navbar navbar-fixed-top">
    <div class="navbar-inner navbar-top">
        <div class="container">
                        <ul class="nav nav-language pull-right">
                                    <li>
                        <a href="/language/de"><img src="/bundles/rotexcontrolwebclient/images/flags/de.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/en"><img src="/bundles/rotexcontrolwebclient/images/flags/en.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/fr"><img src="/bundles/rotexcontrolwebclient/images/flags/fr.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/it"><img src="/bundles/rotexcontrolwebclient/images/flags/it.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/cs"><img src="/bundles/rotexcontrolwebclient/images/flags/cs.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/hr"><img src="/bundles/rotexcontrolwebclient/images/flags/hr.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/bg"><img src="/bundles/rotexcontrolwebclient/images/flags/bg.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/es"><img src="/bundles/rotexcontrolwebclient/images/flags/es.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/nl"><img src="/bundles/rotexcontrolwebclient/images/flags/nl.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/pt"><img src="/bundles/rotexcontrolwebclient/images/flags/pt.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/sl"><img src="/bundles/rotexcontrolwebclient/images/flags/sl.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/sv"><img src="/bundles/rotexcontrolwebclient/images/flags/sv.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/ja"><img src="/bundles/rotexcontrolwebclient/images/flags/ja.png" alt="" /></a>
                    <li>
                            </ul>
        </div>
    </div>
    <div class="navbar-inner navbar-bottom">
        <div class="container">
            <a class="brand" href="http://www.daikin-control.com/#Overview" title="Homepage"></a>

           
            <img class="roc-brand" src="/bundles/rotexcontrolwebclient/images/roc_logo.png" alt="" />
        </div>
    </div>
</div>

        <script type="text/template" id="loading-template">
<span class="loading-template"><img src="/bundles/rotexsbpcore/images/icons/ajax_loading.gif"></span></script>
            <div class="content login">
        <div class="container">
                    </div>

        <div class="hero-unit row">
            <div class="container">
                <div class="row-fluid">
                    <div class="span8 row">
                        <h1>Welcome to DAIKIN Control Cloud Services</h1>
                        <p>We are pleased that you have chosen a DAIKIN heating boiler or air-water heat pump with heating control via our app.<br />
The DAIKIN Control Cloud Services platform offers a variety of options: You can for example manage your heating systems, view and evaluate settings and set up alerts.<br />
</p>
                        <p><a class="btn btn-primary btn-large" href="https://www.daikin-control.com/registration/" class="forgot btn btn-link">Register</a></p>
                    </div>
                    <form class="form-signin span4" action="/login_check" method="post">
                        <h4 class="form-signin-heading">Please login with your user name / password</h4>

                                                    <div class="alert alert-info">
                                You can also use your existing ROTEX Control credentialsto log in.
                            </div>
                       
                        <input type="text" placeholder="User name" id="username" name="_username" value="" class="input-block-level">
                        <input autocomplete="off" type="password" placeholder="Password" id="password" name="_password" class="input-block-level">
                        <label class="checkbox">
                            <input type="checkbox" value="_remember_me"> Stay logged in
                        </label>
                        <input type="button" id="login-submit" class="btn btn-large btn-primary" value="Login" />
                                                    <a href="/password/reset" class="forgot btn btn-link">Forgot password?</a>
                                            </form>
                </div>
            </div>
        </div>
        <div class="container">
            <div class="row-fluid">
                <div class="span4 row">
                    <img class="img-rounded" src="/bundles/rotexcontrolwebclient/images/lp1.jpg" />
                    <h3>Heating  control via internet</h3>
                    <p>Control your DAIKIN heating system with your smart phone. You can set the desired heating temperature in a convenient and easy way. Time programs and operating modes can be modified via the smart phone app as well. As additional information, the app displays the ambient temperature and current weather with a forecast for the next three days.</p>
                </div>
                <div class="span4">
                    <img class="img-rounded" src="/bundles/rotexcontrolwebclient/images/lp2.jpg" />
                    <h3>Technical Requirements</h3>
                    <ul>- DAIKIN heating system with DAIKIN RoCon control unit (from March 2013)
  - DAIKIN RoCon G1 as a gateway connected to the DAIKIN RoCon control and the Internet
  - IOS version 5.0 or later version
  - Existing network router with a free ethernet (RJ45) connector
</ul>
                </div>
                <div class="span4">
                    <img class="img-rounded" src="/bundles/rotexcontrolwebclient/images/lp4.jpg" />
                                        <h3>January 2020: ROTEX becomes DAIKIN</h3>
                                        <p>As of January 2020 the DAIKIN group will present itself as ONE powerful heating brand. As a result, the ROTEX products will have a new brand name: DAIKIN.</p>
                </div>
            </div>
            <footer class="footer">
                <div class="pull-left">
                    <span>ROTEX Heating Systems GmbH, a member of DAIKIN group</span>
                </div>
                <div class="pull-right">
                    <a class="btn btn-link" href="/content/data-privacy-statement"> Data privacy statement</a>
                    <a class="btn btn-link" href="/imprint"> Imprint</a>
                </div>
            </footer>
        </div>
    </div>

                    <script src="/js/e2eca2f.js"></script>
       
                        <script type="text/javascript">
                document.documentElement.className = "js";

                Core.ns('App');

                window.parameters = {"sbp":{"collection":{"limit":20}},"defaultChart":{"device":"HC1","displayName":"cAUSSENTEMP","hash":"93137f07"},"highlightedParameterNames":["cAUSSENTEMP"],"exportLimit":10000,"restApi":{"url":"https:\/\/api.rotex-control.com\/"},"design":"daikin"};
                window.design = "daikin";

                            </script>

            <script type="text/javascript" src="/bundles/bazingajstranslation/js/translator.min.js"></script>
            <script type="text/javascript" src="/translations"></script>
            <script type="text/javascript" src="/translations?domain_name=daikin"></script>
            <script type="text/javascript" src="/bundles/fosjsrouting/js/router.js"></script>
            <script type="text/javascript" src="/js/routing?callback=fos.Router.setData"></script>
            <script src="/bundles/rotexsbpcore/js/init.js"></script>
       

            <script src="/js/4270b58.js"></script>
   
    <script type="text/javascript">
        var restApi = new RestApi(window.parameters.restApi);
        $('#login-submit').click(function() {
            var myNav = navigator.userAgent.toLowerCase();
            var ieVersion = (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;

            if(!ieVersion || ieVersion > 9) {
                restApi.login(
                    $('.form-signin input[name="_username"]').val(),
                    $('.form-signin input[name="_password"]').val(),
                    this,
                    function(jqXHR, response) {
                        $('.form-signin').submit();
                    }
                )
            }
            else {
                $('.form-signin').submit();
            }
        });

        $('#password, #username').keypress(function(e) {
            if(e.which == 13) {
                $('#login-submit').click();
            }
        });
    </script>

        <script type="text/javascript">
            $('body').on('touchstart.dropdown', '.dropdown-menu', function (e) { e.stopPropagation(); });
        </script>
    </body>
</html>

2020.11.10 06:08:15 4: WP.Daten: BodyDecode found charset header and set decoding to UTF-8 (bodyDecode was set to auto)
2020.11.10 06:08:15 4: WP.Daten: BodyDecode is decoding the response body as UTF-8
2020.11.10 06:08:15 3: WP.Daten: error while parsing JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE html>\n<!-...") at lib/FHEM/HTTPMOD/Utils.pm line 644.

2020.11.10 06:08:15 5: WP.Daten: GetCookies is looking for Cookies
2020.11.10 06:08:15 5: WP.Daten: ExtractSid called, context sid, num 02
2020.11.10 06:08:15 5: WP.Daten: ExtractSid could not match buffer to IdRegex (?^:Cookie: ([^\n]+))
2020.11.10 06:08:15 4: WP.Daten: checking for redirects, code=200, ignore=0
2020.11.10 06:08:15 4: WP.Daten: no redirects to handle
2020.11.10 06:08:15 5: WP.Daten: Read callback sets LAST_REQUEST to auth02
2020.11.10 06:08:16 5: WP.Daten: HandleSendQueue called from HandleTimeout, qlen = 2
2020.11.10 06:08:16 4: WP.Daten: HandleSendQueue sends auth1 with timeout 2 to https://www.daikin-control.com/login, No Data,
header: Content-Type: application/json
2020.11.10 06:08:16 5: WP.Daten: StartQueueTimer called from HTTPMOD::HandleSendQueue sets internal timer to process queue in 1.000 seconds
2020.11.10 06:08:16 5: WP.Daten: ReadCallback called from __ANON__
2020.11.10 06:08:16 4: WP.Daten: Read callback: request type was auth1 retry 0,
header: HTTP/1.1 200 OK
Server: nginx
Date: Tue, 10 Nov 2020 05:08:16 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 2903
Connection: close
X-Powered-By: PHP/7.1.33
Cache-Control: max-age=0, must-revalidate, private
pragma: no-cache
Expires: Tue, 10 Nov 2020 05:08:16 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
Expect-CT: enforce; max-age=86400;
X-Frame-Options: DENY
Content-Security-Policy: default-src 'self' data: *.rotex-control.com *.daikin-control.com *.googleapis.com *.gstatic.com *.gravatar.com 'unsafe-inline' 'unsafe-eval'; object-src 'none'; upgrade-insecure-requests
X-Content-Security-Policy: default-src 'self' data: *.rotex-control.com *.daikin-control.com *.googleapis.com *.gstatic.com *.gravatar.com 'unsafe-inline' 'unsafe-eval'; object-src 'none'; upgrade-insecure-requests
X-WebKit-CSP: default-src 'self' data: *.rotex-control.com *.daikin-control.com *.googleapis.com *.gstatic.com *.gravatar.com 'unsafe-inline' 'unsafe-eval'; object-src 'none'; upgrade-insecure-requests, body length 11012
2020.11.10 06:08:16 5: WP.Daten: Read callback: body
<!DOCTYPE html>
<!--[if IE 7 ]><html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]><html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]><html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <title>DAIKIN Control Cloud Services</title>

                                        <link rel="stylesheet" href="/css/89b37ad.css" />
                   

            <link rel="stylesheet" type="text/css" media="screen" href="/css/07af806.css" />
   
                        <link rel="stylesheet" type="text/css" media="screen" href="/css/504f7ee.css" />
           
                    <link rel="shortcut icon" href="/faviconDaikin.ico" />
       
        <!-- Google WebFonts -->
        <link href='//fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic' rel='stylesheet' type='text/css'>

        <script src="/bundles/rotexsbpcore/js/modernizr-1.7.min.js"></script>
    </head>
    <body>
            <div id="navbar" class="navbar navbar-fixed-top">
    <div class="navbar-inner navbar-top">
        <div class="container">
                        <ul class="nav nav-language pull-right">
                                    <li>
                        <a href="/language/de"><img src="/bundles/rotexcontrolwebclient/images/flags/de.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/en"><img src="/bundles/rotexcontrolwebclient/images/flags/en.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/fr"><img src="/bundles/rotexcontrolwebclient/images/flags/fr.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/it"><img src="/bundles/rotexcontrolwebclient/images/flags/it.png" alt="" /></a>
                    <li>
                                    <li>
                        <a href="/language/cs"><img src="/bundles/rotexcontrolwebclient/images/flags/cs.png" alt="" /></a>


passt nicht alles in den post
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

amenomade

Ich verstehe die Logik nicht.

Du fragst nach:
attr WP.Daten sid01IdJSON token
attr WP.Daten sid01IdRegex (ASP.NET_SessionId[^;;\n]+)

- beide gleichzeitig geht nicht.
- keiner davon kann mit dem Ergebnis vom Aufruf matchen

Es geht hier um $sid aus der Antwort von sidURL zu extrahieren. Es muss schon matchen, damit $sid gefüllt wird. Erst dann kann es für sid02... benutzt werden.

Also:
- reAuthRegex, um festzustellen, dass ein Login nötig ist
- sid01.... erste Stufe des Logins. sid01IdRegex ODER sid01IdJSON, um die benötigte Daten in $sid zu kriegen
- sid02.... zweite Stufe des Logins, mit Benutzung vom vorherigen $sid. sid02IdRegex ODER sid02IsJSON, um neue benötigte Daten in $sid zu kriegen
- sid03.... dritte Stufe. usw

Am besten im Browser mit F12/Netzwerk Reiter, das Login Verfahren tracen, um zu gucken, was wieder benutzt wird und wie


Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Eigentlich reicht bei mir:

defmod WP.Daten HTTPMOD https://www.daikin-control.com/ 0
attr WP.Daten enableCookies 1
attr WP.Daten reAuthRegex /login
attr WP.Daten sid02Data _username=xxxxx&_password=xxxx
attr WP.Daten sid02URL https://www.daikin-control.com/login_check
attr WP.Daten verbose 5

Du kannst nicht direkt https://..../#etwas aufrufen, sonst kriegst Du "Bad Request"
Die Daten sind aber in Subseiten (auch im F12 Tool des Browser schauen) wie z.B.
https://www.daikin-control.com/installation?filter[user]=xxxx&offset=0&limit=20
oder
https://www.daikin-control.com/connectedDevice?filter[user]=xxxx&offset=0&limit=20

Kann aber nicht weiter testen, da ich kein Device habe, das mit meinem Testkonto verknüpft wäre.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

MadMax

Guten Morgen,

Danke für die Erklärung.

Ich habe hier im Forum gelesen und einfach mal probiert aber nicht verstanden wie es geht.

Ich werde das heute Abend mal probieren und mich dann nochmal melden.

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

MadMax

Guten Abend,

vielen Dank, es klappt.

Mit:
https://www.daikin-control.com/parameter?filter%5Bid%5D=&filter%5Bdevice%5D=&filter%5BdeviceType%5D=&filter%5Bparameter%5D=&filter%5Binstallation%5D=xxxxxxxxx&filter%5BdateFrom%5D=&filter%5BdateTo%5D=&filter%5BdeviceId%5D=&offset=0&limit=20

komme ich an folgende Auflistung:



{"models":[{"id":"5fac06e802628c001ffdf6dc","installationId":"0479B7EBF841","hash":"70fc15e5","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605109480,"value":"924"},{"id":"5fac06b402628c001ffdf1ad","installationId":"0479B7EBF841","hash":"b6959120","device":{"name":"HG1","type":"water","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605109428,"value":"930"},{"id":"5fac063402628c001ffde456","installationId":"0479B7EBF841","hash":"70fc15e5","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605109300,"value":"942"},{"id":"5fac060002628c001ffddfd4","installationId":"0479B7EBF841","hash":"70fc15e5","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605109248,"value":"942"},{"id":"5fac05c702628c001ffddadf","installationId":"0479B7EBF841","hash":"b6959120","device":{"name":"HG1","type":"water","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605109191,"value":"936"},{"id":"5fac055702628c001ffdd0cb","installationId":"0479B7EBF841","hash":"d77eaa4","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"eVORLAUFISTTEMP","date":1605109079,"value":"27"},{"id":"5fac054802628c001ffdcf60","installationId":"0479B7EBF841","hash":"70fc15e5","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605109064,"value":"930"},{"id":"5fac051302628c001ffdcb0e","installationId":"0479B7EBF841","hash":"70fc15e5","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605109011,"value":"948"},{"id":"5fac04de02628c001ffdc676","installationId":"0479B7EBF841","hash":"b6959120","device":{"name":"HG1","type":"water","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605108958,"value":"930"},{"id":"5fac043602628c001ffdb6f8","installationId":"0479B7EBF841","hash":"3979a3e","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cT_TVBHMIX","date":1605108790,"value":"27.5"},{"id":"5fac042902628c001ffdb592","installationId":"0479B7EBF841","hash":"70fc15e5","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605108777,"value":"936"},{"id":"5fac03f502628c001ffdb00d","installationId":"0479B7EBF841","hash":"b6959120","device":{"name":"HG1","type":"water","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605108725,"value":"942"},{"id":"5fac037702628c001ffda375","installationId":"0479B7EBF841","hash":"3979a3e","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cT_TVBHMIX","date":1605108599,"value":"26.8"},{"id":"5fac037602628c001ffda360","installationId":"0479B7EBF841","hash":"70fc15e5","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605108598,"value":"936"},{"id":"5fac034002628c001ffd9eed","installationId":"0479B7EBF841","hash":"70fc15e5","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605108544,"value":"942"},{"id":"5fac02af02628c001ffd9117","installationId":"0479B7EBF841","hash":"d77eaa4","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"eVORLAUFISTTEMP","date":1605108399,"value":"27.5"},{"id":"5fac028d02628c001ffd8e34","installationId":"0479B7EBF841","hash":"3979a3e","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cT_TVBHMIX","date":1605108365,"value":"27.3"},{"id":"5fac028c02628c001ffd8e19","installationId":"0479B7EBF841","hash":"70fc15e5","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605108364,"value":"930"},{"id":"5fac026e02628c001ffd8b77","installationId":"0479B7EBF841","hash":"d77eaa4","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"eVORLAUFISTTEMP","date":1605108334,"value":"26.6"},{"id":"5fac026e02628c001ffd8b76","installationId":"0479B7EBF841","hash":"70fc15e5","device":{"name":"HC1","type":"direct","displayName":null},"display":true,"name":"cVOLUMENSTROM","date":1605108334,"value":"942"}]}



Und Dort bekomme ich meine Daten dann raus.

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

mlobmaier

Hallo Zusammen,
ich hole diesen Thread nochmals hoch, ich versuche mittels httpmod von folgender Seite:

https://netport.lohberger.com/

mit meinen Zugangsdaten Info Werte von meinem Pelletofen zu bekommen.
Dazu muss ich mich einloggen hier:

https://netport.lohberger.com/Login

und die Daten stehen danach hier:

https://netport.lohberger.com/info/show?tag=Infos

mit diesen Werten:

buffer sensor    62 °C
T boiler    74 °C
SW Version    2.0.99
HW Version    4.0.0

buffer sensor und T boiler interessieren mich.

Ich hab mal mit Burp Suite mitgelauscht bei der Anmeldung und mir folgendes kopiert:

POST /LogIn/LogIn HTTP/2
Host: netport.lohberger.com
Content-Length: 31
Cache-Control: max-age=0
Sec-Ch-Ua: "Not A(Brand";v="24", "Chromium";v="110"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Upgrade-Insecure-Requests: 1
Origin: https://netport.lohberger.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.78 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://netport.lohberger.com/LogIn
Accept-Encoding: gzip, deflate
Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7

StoveNumber=111111%2F1&Pin=1111


GET /info/show?tag=Infos HTTP/2
Host: netport.lohberger.com
Cookie: ASP.NET_SessionId=525pkqps3qcqoiebnnxykttw
Cache-Control: max-age=0
Sec-Ch-Ua: "Not A(Brand";v="24", "Chromium";v="110"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.78 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://netport.lohberger.com/info
Accept-Encoding: gzip, deflate
Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7

aber wie bringe ich das als fhem httpmod zum laufen?
Danke schon mal vorab für eure Hilfe!

lg Michael