Unter den PHP-Befehlsreferenz bzw. den Variablen unter der Instanz habe ich keine Information gefunden, das man im Script den Status einer area mit abfragen kann, um somit Abhängigkeiten schalten zu können.
doch, das ist möglich. Die Variablen direkt unter der OpenHomeAlarm-Instanz zeigen den Gesamtzustand der Anlage. Für den Status eines einzelnen Alarmbereichs rufst du in einem Script OHA_GetControlState() auf.
Beispiel für einen Bereich mit der ID garage:
$state = json_decode(OHA_GetControlState(12345), true);
$garage = $state['Partitions']['garage'] ?? null;
$status = $garage['State']['Name'] ?? 'disarmed';
if (in_array($status, ['exit_delay', 'armed', 'entry_delay', 'alarm'], true)) {
// Garage ist überwacht – hier eigene Abhängigkeit schalten
}
12345 ersetzt du durch die Objekt-ID deiner OpenHomeAlarm-Instanz, garage durch die ID deines Bereichs.
Der Status kann sein:
disarmed – unscharf
exit_delay – Ausgangsverzögerung läuft
armed – scharf
entry_delay – Eingangsverzögerung läuft
alarm – Alarm aktiv
Den Scharfmodus erhältst du zusätzlich über:
$modus = $garage['Mode']['Name']; // home, away oder night
Guten Morgen, habe vielleicht nur ich dieses Problem ?, nach dem Update von heute sehe ich den “Sicherheitsstatus” nur noch abgeschnitten auf dem iPhone … Das scrollen funktioniert nun aber
kannst mir bitte noch mal auf die Sprünge helfen… Ich teste gerade mit meinem Hotel-Schalter rum. Folgendes funktioniert irgendwie nicht. Welche ID muss ich eingeben, die der “ganzen” Instanz oder von Mode?
Ja, genau das. Die Screenshots zeigen deine Instanz und den php der Ereignisses.
Ich kriege es nicht hin… Der Key-Schalter ist keine Bool, sondern Integer. 0=es steckt keine Karte drin, 16= karte steckt. Insofern das folge Ereignis:. Du meinst mit “$alarmInstanzID” die 38352.
Du hast es nicht richtig korrigiert. Er braucht einen zweiten Wert, wie vorher geschrieben null, 0, oder die Ziet der Verzögerung z.B. 30 für 30 Sekunden).
Zeile 5 ist der Befehl immer noch nicht mit dem zweiten Wert belegt.