--- /dev/null
+urlbase="/meteo/cgi?"
+
+currentState=""
+
+function RefreshPageState() {
+
+ var req = new XMLHttpRequest();
+
+ req.onreadystatechange = function () {
+
+ if (this.readyState != 4) return;
+ if (this.status == 200) {
+
+ var returnedData = JSON.parse(this.responseText);
+
+ var template = document.getElementById("template").innerHTML;
+ var value_color = document.getElementById("value").style.color;
+
+ var html = "";
+
+ for (var sensor_id in returnedData) {
+ var timestamp = returnedData[sensor_id]["timestamp"];
+ for (var sensor in returnedData[sensor_id]) {
+ if (sensor != "timestamp") {
+ for (var param in returnedData[sensor_id][sensor]) {
+ sensor_path = sensor_id+"."+sensor+"."+param;
+ value = returnedData[sensor_id][sensor][param];
+ name = properties["names"][sensor_path];
+ if (! name) { name = sensor_path; }
+ units = properties["units"][sensor_path];
+ scale = properties["scale"][sensor_path];
+ color = properties["colors"][sensor_path];
+ if (scale) {
+ value = (scale[0] * value).toFixed(scale[1]);
+ }
+ if (! color) {
+ color = value_color;
+ }
+ var section = template.replace(/\$SENSOR_ID/g,sensor_id);
+ section = section.replace(/\$SENSOR/g,sensor);
+ section = section.replace(/\$PARAM/g,param);
+ section = section.replace(/\$NAME/g,name);
+ section = section.replace(/\$UNITS/g,units);
+ section = section.replace(/\$VALUE/g,value);
+ section = section.replace(/\$COLOR/g,color);
+ section = section.replace(/\$TIMESTAMP/g,timestamp);
+ html = html + section;
+ }
+ }
+ }
+ }
+
+ document.getElementById("meteo").innerHTML = html;
+
+ setTimeout(RefreshPageState,5000)
+ } else {
+ setTimeout(RefreshPageState,15000)
+ }
+ };
+
+ req.open("GET", urlbase+"state", true);
+ req.send();
+
+}
+
+function GetProperties() {
+ var req = new XMLHttpRequest();
+
+ req.onreadystatechange = function () {
+ if (this.readyState != 4) return;
+ if (this.status != 200) {
+ setTimeout(GetProperties,30000);
+ return;
+ }
+ properties = JSON.parse(this.responseText);
+ RefreshPageState();
+ };
+
+ req.open("GET", urlbase+"props", true);
+ req.send();
+
+}
+
+
+setTimeout(GetProperties,100)