Übersicht über alle angeschalteten Lichter/Kontakte

Hi,

ich habe mir ein kleines Konstrukt gebaut, dass mir im Webfront/in der App alle momentan angeschalteten Lichter anzeigt. Sollte kein Licht den Status „an“ haben, wird die Kategorie ausgeblendet.

Vielleicht kann es jemand gebrauchen. Änderungsideen/Verbesserungsvorschläge erwünscht.

Funktionsweise:

  1. Eine Kategorie mit allen Lichtern o.ä., die „überwacht“ werden sollen anlegen. Dort die gewünschten Variablen verknüpfen
  2. Pro angelegter Verlinkung bei der eigentlichen Variable ein Ereignis „bei Variablenänderung“ anlegen und die Funktion aufrufen
<?php
function check_status_lights () {
//$alle_lichter => ID der Kategorie, die sämtliche Verlinkungen enthält
$alle_lichter = IPS_GetChildrenIDs(32659 /*[aktive Beleuchtung]*/ );
$count_alle_lichter = count($alle_lichter);
$any_active=0;
//echo $count_alle_lichter;
for ($i=0; $i < $count_alle_lichter; $i++) {
	$current_link = IPS_GetLink($alle_lichter[$i]);
	$current_link_value = GetValueBoolean($current_link["TargetID"]) . "
";
	if ($current_link_value == 0) {
	   IPS_SetHidden($alle_lichter[$i], true);
	   }
	else
		{
			IPS_SetHidden($alle_lichter[$i], false);
			
		}
	}


for ($i=0; $i < $count_alle_lichter; $i++) {
	$current_link = IPS_GetLink($alle_lichter[$i]);
	$current_link_value = GetValueBoolean($current_link["TargetID"]) . "
";
	if ($current_link_value == 1) {
	   $any_active=1;
		break;
		}
	}
	
if ($any_active <> 1) {
		IPS_SetHidden(32659 /*[aktive Beleuchtung]*/, true);
	}
	else
	{
      IPS_SetHidden(32659 /*[aktive Beleuchtung]*/, false);
	}
?>

Gruß dharma

Ereignis.PNGereignis2.PNG

Abend dharma!

Danke für die Veröffentlichung deines Skriptes! :slight_smile:

Noch zur Ergänzung und zur Ideen-Anregung, hier noch die mir bekannten Skripte zu dem Thema:
Überprüfen, ob ein Fenster geöffnet ist (via Links)
Fensterstatus abfragen und in String schachteln

Grüße,
Chris