Hallo Leute… vielleicht kann ein Webseiteprogrammierer oder so mir hierbei helfen. Ich habe eine Heizung mit Siemensregler… hierzu habe ich mir ein Controlerinterface zugelegt… eigentlich nichts anderes als ein gerätchen mit einem Webinterface das mir Werte von der Heizung auf Webseiten anzeigt welche das Gerät im Hintergrund über den BSB/LPB Bus ausliest. Das Gerätchen war echt teuer… und ich dacht mir super… so krieg ich die heizugn endlich ohne gebastel in mein IPS. Was bisher klappt ist das gerätchen so zu konfigurieren, dass ich eine email erhalte wenn was mit der heizung nicht tut völlig ips unabhängig und die werte meiner heizung werden schön angezeigt über den webbrowser und ich kann diese auch ändern.
Schritt zwei und das wie ich jedem anderen raten würde nun die entsprechenden Infos in ips einzulesen. über ips script webseite aufrufen, ergebnis auslesen oder über einen www reader. heute mit freude mal gemacht damit die daten endlich reinkommen und die heizung integriert ist. zu meinem erstaunen bei beiden varianten ist der Wert wenn ich zbsp die Vorlauftemp einlese immer gleich: —
Also auf die Webseite mit dem Browser, check… anstatt — sehe ich da 22C. nun musste ich feststellen, dass beim aufbau der seite — drinn steht und nach einer zeit (1-2 sekunden) der WErt 22C nachgeladen wird. Etwas recherche… und ich kam zu begriffen wie AJAX, die Werte werden dynamisch nach dem auslesen auf die webseite „geladen“. OK hier mal unter Ajax gesucht… nicht so wirklich schlau geworden aus den ergebnissen, kam zu Sajax… dies scheint aber eher den umgekehrten Weg zu beschreiben von dem was ich brauche… das heisst Werte aus IPS oder Geräten auf eine Webseite dynamisch zu platzieren…
Ich habe mir dann den Quellcode mal angeschaut wo die e-mail angezeigt angezeigt wird. Die folgende URL wird mit angezeigt im Browser:
http://IP/main.app?user=xy&pwd=1234§ion=popcard&id=630&idtype=4
Dann fand ich heraus, dass über JAvascript eine funktion updateDataPoint() aus der common.js aufgerufen wird, welche das email-label mit dem entsprechenden inhalt fuellt. Die funktion ist:
function updateDataPoint()
{
/* // JQuery ajax: Options and Defaults
- $.ajax({
-
url: ,
-
cache: true,
-
type:"GET",
-
data: ,
-
dataType:XML,
-
timeout: ,
-
global:true,
-
contentType: ,
-
success:function (data,textStatus){},
-
error:function (XMLHttpRequest,textStatus){},
-
complete:function (XMLHttpRequest,textStatus){},
-
beforeSend:function (XMLHttpRequest){},
-
async:true;
-
processData:true,
-
ifModified:false,
-
password: ,
-
username:
-
});
*/
if (DataPoints.length > 0) {
if (parseInt(DataPoints[ID].substr(2), 10) == 0) {
$(’.’ + DataPoints[ID]).html("? ? ?");
updateNextDataPoint();
}
else {
var URL = ‚/ajax.app?SessionId=‘ + getSessionId() + ‚&service=getDp&plantItemId=‘ + DataPoints[ID].substr(2);
$.ajax({
url: URL,
cache: false,
type: "GET",
dataType: "json",
global: true,
success: function(data, textStatus){
convertAjaxRspToHtml(data);
},
error: function(XMLHttpRequest, textStatus){
$('.' + DataPoints[ID]).html("---");
$('.' + DataPointUnits[ID]).html("");
$('#' + DataPoints[ID]).html("---");
$('#' + DataPointUnits[ID]).html("");
},
complete: function(XMLHttpRequest, textStatus){
updateNextDataPoint();
},
async: true,
processData: true,
ifModified: false
});
}
}
}
Hier ist mal was mit Ajax, jquery und xml in den kommentaren drinn… der code brachte mich dazu mal folgende url zu probieren:
http://IP/ajax.app?user=xy&pwd=1234&service=getDp&plantItemId=661
Das Ergebnis war erstaunlich… rufe ich dies auf kommt als Antwort eine App.Datei mit dem folgenden Inhalt ueber Notepad geoeffnet:
{„service":„getDp“,„plantItemId“:„661“,„value“:"plz@xy.com“,„unit“:""}
wobei plz@xy.com der richtige E-Mail Wert ist der auf der Webseite schlussendlich angezeigt wird. Leider habe ich auch noch herausgefunden dass die ajax.app sich nur mit einer aktuellen session id aufrufen laesst. nicht mit den Getparametern alleine mit pwd und user wiebei der main.app sonst kommt access denied.
Ganz ehrlich… ich bin kein Webseite programmierer und AJAX wie JQuery und dergleichen ist mir fern. Ich bin gerne gewillt mir eins davon anzueignen wenn auch nur in der Basic… aber ich wuerde zuerst gerne wissen, womit ich es hier zu tun habe. Was ich will ist, die angezeigten Werte in IPS in Variablen zu schreiben und ganz super waere es natuerlich auch, wenn ich ueber ips entsprechende Werte wie ueber das Webinterface aendern koennte. Das moechte ich so sauber wie moeglich halten. Ich werde das gefuehl nicht los, dass hier ueber einen STandart wie JQuery, XML oder AJAX sich dies einfach loesen laesst… ich brauche nur den richtigen Wink oder einen Ansatzpunkt. Kann mir damit jemand helfen? Ein beispiel… oder ein Wink??