Ankündigung

Einklappen
Keine Ankündigung bisher.

Webseite mit Login auslesen (aber kein htaccess)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Webseite mit Login auslesen (aber kein htaccess)

    Moin.... ich möchte gerne die Webseite von meiner Wärmepumpe auslesen. Diese wird bei dem Hersteller gehostet und ich muss mich dort mit meiner Emailadresse und einem Passwort einloggen. Allerdings sind das zwei Felder auf der Webseite und keine htaccess Passwortabfrage....
    Bisher hatte ich das über einen extra Webserver gelöst und mit dem folgenden Code ausgelesen:

    PHP-Code:
        <?php
        function get_string_between($string, $start, $end){
        $string = " ".$string;
        $ini = strpos($string,$start);
        if ($ini == 0) return "";
        $ini += strlen($start);
        $len = strpos($string,$end,$ini) - $ini;
        return substr($string,$ini,$len);
        }
        function doPostRequest($item, $data) {
        $url = "http://user:passwort@192.168.178.7:8081/rest/items/" . $item;
        
        $options = array(
        'http' => array(
        'header' => "Content-type: text/plain\r\n",
        'method' => 'POST',
        'content' => $data //http_build_query($data),
        ),
        );
        
        $context = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
        
        return $result;
        }
        
        $ch = curl_init();
        $timeout = 5; // set to zero for no timeout
        
        $ch = curl_init();
        
        // SET URL FOR THE POST FORM LOGIN
        curl_setopt($ch, CURLOPT_URL, 'https://www.warmepump.com/LogIn?');
        
        // ENABLE HTTP POST
        curl_setopt ($ch, CURLOPT_POST, 1);
        
        // SET POST PARAMETERS : FORM VALUES FOR EACH FIELD
        curl_setopt ($ch, CURLOPT_POSTFIELDS, 'Email=ich@meinemail.de&Password=meinpasswort');
        
        // IMITATE CLASSIC BROWSER'S BEHAVIOUR : HANDLE COOKIES
        curl_setopt ($ch, CURLOPT_COOKIEJAR, 'ich@meinemail.txt');
        
        # Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL
        # not to print out the results of its query.
        # Instead, it will return the results as a string return value
        # from curl_exec() instead of the usual true/false.
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
        
        // EXECUTE 1st REQUEST (FORM LOGIN)
        $store = curl_exec ($ch);
        
        // SET FILE TO DOWNLOAD
        curl_setopt($ch, CURLOPT_URL, "https://www.warmepumpe.com/Status/Info");
        
        ob_start();
        $content = curl_exec ($ch);
        curl_close($ch);
        $parsed = get_string_between($content, "<span class="AutoUpdateValue ID1234">", "°C</span>");
          
        doPostRequest("heiz_t_aussen", $parsed);
        print "$content";
        
        ?>
    Jetzt wollte ich den extra Webserver aber nicht mehr dafür benutzen, sondern das ganze lieber in Openhab machen....
    Jemand eine Idee wie das gehen könnte ?
    Das Hauptproblem ist ja anscheinend das einloggen, das Auslesen sollte dann ja funktionieren wie bei https://code.google.com/p/openhab-sa...a_HTTP_binding
    Gruß
    Jörg
    Zuletzt geändert von koboldo; 02.04.2015, 08:52.
    OpenHAB 1.6.2 auf AsRock Q1900 NAS mit Openmediavault, Java8 Version 1.8.0_33-0031

    #2
    Habe das nun doch per php auf dem NAS mit einem Cron laufen....
    OpenHAB 1.6.2 auf AsRock Q1900 NAS mit Openmediavault, Java8 Version 1.8.0_33-0031

    Kommentar

    Lädt...
    X