Javascript-Variablen aus Webseite auslesen


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Elmo_

Grünschnabel
Hallo zusammen,

ich habe folgende Frage: Meine Heizung stellt über ein Teil namens BL-Net eine Webseite zur Verfügung auf der ich die aktuellen Temperaturen der diversen Fühler sowie die Schaltzustände der Pumpen und Ventile sehe. Wenn ich mir aber im Browser den Quellcode der Seite ansehe, dann sehe ich keine Werte sondern ein Javascript:

Javascript:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
        <meta http-equiv="expires" content="0">
        <style type="text/css">
            body {font-size: 14px; font-family: Verdana, Arial, Helvetica, sans-serif;
            background-repeat: no-repeat;} #g
            {position: relative;}#pa {top: 0px; left: 0px;
            position: absolute;}#p {top: 0px; left: 0px; position: absolute;}
        </style>
        <script type="text/javascript">
            function sd (){
                document.title = this.data.Title;
                document.getElementById("g").style.width = this.data.Width;
                document.getElementById("g").style.height = this.data.Height;
                document.getElementById("pa").style.width = this.data.Width;
                document.getElementById("pa").style.height = this.data.Height;
                document.getElementById("p").src = this.data.GraphicFile; var rT = this.data.AutoRefreshTime;
                if(rT>29)window.setInterval("javascript:this.data.location.reload()", rT*1000);
                var rlt = this.data.RefreshLink;if(rlt!=""){
                    var rL = document.createElement('a');rL.href="javascript:this.data.location.reload()";
                    rL.appendChild(document.createTextNode(rlt));
                    document.getElementById("rld").appendChild(rL);
                    }
                }
        </script>
    </head>
    <body onload="sd ()">
        <div align="center">
            <div id="g"> <img src="" border="0" id="p">
                <iframe id="pa" src="GRAFIK1.htm" name="data" frameborder="0" scrolling="no" allowtransparency="yes"></iframe>
            </div>
        </div>
        <div align="center" id="rld">
        </div>
    </body>
</html>
Nun meine Frage: Wie komme ich an die Werte heran, um sie z.B. auf einer eigenen Webseite als Diagramm darzustellen?
Hat jemand eine Idee?
Danke im Voraus für Eure Hilfe!
Elmo
 

Sempervivum

Erfahrenes Mitglied
Einfacher als die Daten aus einer HTML-Seite herauszuziehen, ist wahrscheinlich, eine API zu verwenden, vorausgesetzt es gibt sie. Vor allem in diesem Fall, wo die Werte nicht so offensichtlich sind. Frag doch den Hersteller mal, ob es eine API gibt.
Ist dies der Hersteller?:
 

basti1012

Erfahrenes Mitglied
Hast du mal die Console geöffnet wenn du die Seite Betretten tust ?,
Da sollte dann ein Link auftauchen der sowas in der art ausspuckt ?
JSON:
{
{
"sessionId": "",
"STDOUT": "T1.Kollektor-Sued = 70,1 = 70.100000\nT2.SP.oben",
"url": "http:\/\/192.168.2.200\/GRAFIK1.htm",
"stmp": "AUS",
"srueck": "",
"ikomma": "-1",
"posValueEnd": "",
"slist": "",
"posValue": "6750",
"liste": "T1.Kollektor-Sued|T2.SP.oben|T3.SP.unten",
"i": "A11.Vent.HzRL",
"zaus": "0.000000",
"saus1": "AUS",
"posValueStart": "A11.Vent.HzRL",
"saus2": "AUS.A",
"httpUserAgent": ""
}
Ausgabe ist verkürzt.
Kommt das in etwa hin oder hast du ein anderes System ?
Eine vorhandene Api konnte ich leider auch nicht finden , das wäre natürlich der einfachste Weg
 

Elmo_

Grünschnabel
Einfacher als die Daten aus einer HTML-Seite herauszuziehen, ist wahrscheinlich, eine API zu verwenden, vorausgesetzt es gibt sie. Vor allem in diesem Fall, wo die Werte nicht so offensichtlich sind. Frag doch den Hersteller mal, ob es eine API gibt.
Ist dies der Hersteller?:
Eine API gibt es meines wissens, aber nur für Geräte die via CAN-Bus angebunden sind. Meine Steuerung ist noch via DL-Bus (was immer das sein möge) angeschlossen.
Ja, der Hersteller ist die Technische Alternative. Dieser bietet ein grafisches Programm namens Winsol an (auch für Linux), welches zwar einwandfrei funktioniert, aber proprietär ist. Ich möchte hingegen die Daten in meine Hausautomation auf meiner Webseite integrieren.
 

Elmo_

Grünschnabel
Hast du mal die Console geöffnet wenn du die Seite Betretten tust ?,
Da sollte dann ein Link auftauchen der sowas in der art ausspuckt ?
JSON:
{
{
"sessionId": "",
"STDOUT": "T1.Kollektor-Sued = 70,1 = 70.100000\nT2.SP.oben",
"url": "http:\/\/192.168.2.200\/GRAFIK1.htm",
"stmp": "AUS",
"srueck": "",
"ikomma": "-1",
"posValueEnd": "",
"slist": "",
"posValue": "6750",
"liste": "T1.Kollektor-Sued|T2.SP.oben|T3.SP.unten",
"i": "A11.Vent.HzRL",
"zaus": "0.000000",
"saus1": "AUS",
"posValueStart": "A11.Vent.HzRL",
"saus2": "AUS.A",
"httpUserAgent": ""
}
Ausgabe ist verkürzt.
Kommt das in etwa hin oder hast du ein anderes System ?
Eine vorhandene Api konnte ich leider auch nicht finden , das wäre natürlich der einfachste Weg
Genial! Danke! Funktioniert!
Manchmal übersieht man die einfachsten Dinge, jetzt kann ich wieder fröhlich weitermachen:D
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge