[Modul] OpenHomeAlarm – Flexibles Alarmsystem für Symcon

Moin Hainer,

Alle meine Module werden immer Kachel- und IPSView-Konfigurationen haben.

Die Areas bestimmst Du selbst in der Konfiguration und ordnest den Sensoren der entsprechenden Area zu.

Schaue ich mir an, ist im Rahmen der Entwicklung (ist ja immer noch Beta) sicherlich möglich.

Doch, nur wenn zum Beispiel ein BWM aktiv ist, wird der Bereich nicht scharf geschaltet, auch wenn es der Zeitplan eigentlich vorsehen würde.

Richtig, da regelt das die ID, aber Du kannst es nach Abhängigkeiten schalten. Wenn nicht gebe Bescheid, dann gucke ich mir das noch mal an.

LG
Burkhard

Danke für die schnellen Antworten.

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.

Gruß Hainer

Hallo Hainer,

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

LG
Burkhard

Guten Morgen, habe vielleicht nur ich dieses Problem ?, nach dem Update von heute sehe ich den “Sicherheitsstatus” nur noch abgeschnitten auf dem iPhone … :roll_eyes: Das scrollen funktioniert nun aber

Moin,

Nicht ganz so massiv, wie bei Dir, aber nachvollziehbar. Wird korrigiert. Danke, hatte ich bisher nicht so drauf geachtet.

LG
Burkhard

1 „Gefällt mir“

Neues Update oben.

Sollte jetzt in der mobile-APP so aussehen:

LG
Burkhard

Das sieht jetzt gut aus. Leider ist der coole Countdown nicht mehr zu sehen (sie Bild).

Ups, das sollte eine Kleinigkeit sein, den wieder rein zu kriegen.

Edit: Countdown ist wieder da.

LG
Burkhard

1 „Gefällt mir“

Danke - funktioniert sehr gut.

1 „Gefällt mir“

Moin Burkhard,

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?

Danke und Gruß Michael

Kurze Frage:

Was sollen mir die Screenshots zeigen?

Was willst Du genau mit Deinem Hotelschalter machen?
Ich denke mal die Alarmanlage einschalten, richtig?

Probiere es mal direkt mit einem Aktionsscript am Hotelschalter:

$alarmInstanzID = 12345;
$schalterID = 67890;

if (GetValueBoolean($schalterID)) {
    OHA_ArmAway($alarmInstanzID);
} else {
    OHA_Disarm($alarmInstanzID);
}

LG
Burkhard

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.

Danke für die Unterstützung und Gruß

Michael

Zeige mir mal bitte die Variablen des Kartenschalters.

LG
Burkhard

Wie gesagt:

Karte steckt, Alarm inaktiv, Wert=16

Karte fehlt, Alarm aktiv, Wert=0

Gruß Michael

Wie wäre es dann mit:

$alarmInstanzID = 38352;

if ((int) $_IPS['VALUE'] === 16) {
    OHA_ArmAway($alarmInstanzID);
} elseif ((int) $_IPS['VALUE'] === 0) {
    OHA_Disarm($alarmInstanzID);
}

Das ist das Aktionsskript des Hotelschalters.

Das ausgelöste Ereignis muss:

  • die Integer-Variable des Hotelschalters überwachen,
  • auf „Bei Änderung“ reagieren,
  • und dieses PHP-Aktionsskript ausführen.

Dann gilt automatisch:

  • Wert 16 → Alarmanlage im Modus „Abwesend“ scharfschalten
  • Wert 0 → Alarmanlage unscharf schalten

38352 ist dabei die ID der gesamten OpenHomeAlarm-Instanz.

LG
Burkhard

Danke Dir!!

Habe es nun genauso gemacht, Das Ereignis (36095)wird auch ausgeführt, funktioniert aber leider auch nicht….

Gruß Michael

Folgende Fehlermeldung:

$alarmInstanzID = 38352;

if ((int) $_IPS['VALUE'] === 16) {
    OHA_ArmAway($alarmInstanzID, null);
} elseif ((int) $_IPS['VALUE'] === 0) {
    OHA_Disarm($alarmInstanzID);
}

Für OHA_ArmAway gilt:

  • null = konfigurierte Ausgangsverzögerung verwenden
    OHA_ArmAway($alarmInstanzID, null);
  • 0 = sofort scharfschalten
    OHA_ArmAway($alarmInstanzID, 0);
  • positive Zahl, z. B. 30 = 30 Sekunden Verzögerung
    OHA_ArmAway($alarmInstanzID, 30);

Auch das geht leider nicht…

Folgende Fehlermeldung:

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.

Supi! Nun klappts und ich habe es verstanden…

Daaanke! und Gruß Michael

1 „Gefällt mir“