Wenn du möchtest kann ich dir ein wenig weiterhelfen :).
Ich hoffe dem Threadopener ist das Recht, das wir uns hier einbringen - gerne kann aber auch von den Moderaten das hier ausgelagert werden. Das überlassen ich den Moderaten und dem Threadopener ;).
Zuerst eine PHP Seite erstellen, die denn Status eines Geräte holt, z.B. getValue.php:
<?php
getvalueBoolean($ID);
?>
Ich habe z.B. den Bildern, die InstanzenID gegeben, dadurch sind die dann nachher eindeutig und können schnell zugeordnet werden. Vor dem laden habe ich ein ladenicon - dadurch sehe ich das das Script läuft und habe keinen falschen Status.
z.B.
Nun habe ich vor dem Head eine Funktion, die den Wert eines Geräte aktualisiert.
z.B. Function SetStatus(ID):
function SetStatus(ID)
{
xmlDoc = new XMLHttpRequest();
var url = "GetValue.php?id=" + ID;
xmlDoc.open("GET", url , false);
xmlDoc.send( null );
if(xmlDoc.responseText.indexOf("1") != -1) {
document.getElementById(ID).src='on.png';
return true;
} else {
document.getElementById(ID).src='off.png';
return false;
}
}
Danach habe ich quasi eine Funktion die alle Werte mithilfe der vorherigen Funktion aktualisiert (die IDs und die Zeile vom SetStatus lasse ich aus PHP schleifen erstellen - ich hole die Werte aus meiner MySQL DB, aber man kann sich hier auch direkt IPS Funktion bedienen, die Alle Geräte aus einer Kategorie holen).
z.B. Function RefreshStatus(ID) {
SetStatus(11111);
SetStatus(22222);
SetStatus(33333);
};
Diese wird dann per Bodyonload in bestimmten Intervallen aufgerufen.
z.B. onload=„setintervall(RefreshStatus(),1000);“
Wenn du Bandbreite sparen möchtest, dann kannst du größere Intervalle verwenden und rufst einfach nach einem Schaltvorgang die Funktion RefreshStatus aufrufen.
Wenn du mehr wissen möchtest, melde dich einfach wieder :).
Ich hoffe das hilft dir ein wenig weiter ;).