für mein Dashboard möchte ich eine Statusabfrage für meine Splitter, bzw. I/O Module machen. Ich möchte anzeigen, wenn eines der Module keine Verbindung mehr zu IPS hat.
Im Objektbaum wird ja bei einem Problem mit diesen Modulen ein rotes Ausrufezeichen dargestellt. Gibt es eine Möglichkeit das irgendwie in eine Boolesche variable zu schreiben oder gibt es einen anderen Weg?
Danke, bin auf der 2.1 aber was das Thema SDK und wirkliche Programmierung angeht eher weniger bewandert. Insofern würde auch ein nachsehen im SDK wenig bringen :rolleyes:
Aber ich versuchs mal. Lerne ja gerne mit Hilfestellung dazu.
Hmm…komme natürlich nicht klar.
Ich verstehe was das skript macht, aber ich kapiere die Syntax nicht, wie der einzelne Status zu der jeweiligen Instanz ausgewertet wird.
Ich verstehe: Die foreach schleife durchläuft alle Module aus IPS_GetInstanceList. Das muss ich bei mir ersetzen durch statische Variablen IDs:
$codes = array(100 => "basic status",
101 => "module is being created",
102 => "module created and running",
103 => "module is being deleted",
104 => "module is not beeing used",
200 => "default errorcode",
201 => "instance could not be created");
$instanceID = 12345; //Client Socket von FHZ1300 LAN
$inst = IPS_GetInstance($instanceID);
if ($inst['InstanceStatus'] == 102)
{
//alles ok
return;
}
//was anderes...
Das mit dem SDK war ja für normale User auch nicht ernst gemeint. Daher der Smiley. Fakt ist immer: Alles, was die Konsole machen kann, kann man auch per PHP machen.
Mal zur Wegfindung: Mit Funktionen wie IPS_GetObject, IPS_GetInstance oder IPS_GetVariable bekommt man immer eine ganze Menge an Informationen, die man sich mit print_r() ausgeben lassen kann. Da nur Instanzen fehlerhaft sein können habe ich mit IPS_GetInstance mal nachgesehen und unter InstanceStatus einen Zahlenwert ohne Beschreibung gefunden. Wenn man sowas sieht deutet es für einen erfahrenen Programmierer auf Konstanten hin. Die findet man bei IPS im SDK. Da habe ich dann die Zahlen und Beschreibungen aus dem codes-Array her genommen.