Homematic: HM_RequestStatus -> Funk Tür-/Fensterkontakt HM-Sec-SC-2

Guten Morgen,

auch auf die Gefahr hin mich hier ob meiner Unerfahrenheit in der freien Programmierung zu machen, möchte ich mein Problem schilder da ich (noch?) davon ausgehe, dass es Systemseitig hakt.
Ich möchte nach Auswertung des Fensterkontaktes die Luftfeuchigkeit überwachen. Dazu frage ich zunächst die Zustände der Kontakte ab und schreibe sie in eine Variable:

<?php

$a = 2; 
$b = 1;

$c=HM_RequestStatus(39239 /*[OG\Bad\OG BD FN R]*/, "STATE");
$d=HM_RequestStatus(23982 /*[EG\Bad\EG BD FN R]*/, "STATE");

if ($a > $b)
  //echo HM_RequestStatus(23982 /*[EG\Bad\EG BD FN R]*/, "STATE");
  echo "Stat OG: ",$c," - Stat EG: ",$d;
?>

Dann wollte ich testen:

  • ein Fenster geöffnet (das andere war zu) - Kontakt sendet
  • im Webfront Status überprüft -> 1 Fenster offen, 1 Fenster zu
  • Skript im Editor ausgeführt -> Ergebnis: „Stat OG: 1 - Stat EG: 1“ ??? ich hätte 0 und 1 erwartet
  • Im Webfront Status überprüft -> Beide Fenster geschlossen, obwohl eines physikalisch immer noch geöffnet war.

Habe ich eine falsche Erwartung beim Fensterkontakt an HM_RequestStatus (ID, „STATE“) oder hakt es in in der Software.
Getestet unter SymBox mit letztem Update

Kann dieses Verhalten jemand Bestätigen / Nachvollziehen bzw. mir einen Korrekturvorschlag geben?

Beste Grüße, Frank

So funktioniert das nicht :smiley: Ist ein kleiner Anfängerfehler, den wir schnell beheben :slight_smile:

HM_RequestStatus fragt den Status vom Gerät ab. Er gibt ihn dir aber nicht zurück. Und eigentlich musst du ihn nicht abfragen, da die CCU uns den immer frisch und aktuell schickt.

Du möchtest über GetValue($id) direkt die Variable STATE abfragen, die unterhalb der Instanz liegt. Dort ist nämlich der echt Wert versteckt. Wenn du das damit machst, funktioniert es auch genau so, wie du gerade probierst :slight_smile:

paresy

:smiley: vielen Dank!

Moin Frank!

Bei der Gelegenheit möchte ich dir noch diesen Thread ans Herz legen:
IP-Symcon - Wie kann ich… 2.0

…dort gibt es viele praktische Code-Beispiele, die jeder mal brauchen kann und auch gut zum Einsteigen/Lernen geeignet sind :slight_smile:

Grüße,
Chris

Ahhh, Danke, da ist das schweizer Taschenmesser für mich!
Genau so etwas habe ich vor ein paar Wochen schon gesucht und leider nicht gefunden.

Besten Dank und Grüße,

Frank