Alle Lampen gleichzeitig aus

Hallo zusammen,

ich habe mir hier ein Script gebaut, welches alle Lampen gleichzeitig ausschaltet. Bis gestern waren die Lampen ausschließlich über FS20 Aktoren angebunden, nun gibt es eine HM-Steckdose.

So sieht mein Script aus:


$arr = array(	                35110 /* Wohnzimmer\Deckenfluter */ ,
 					15700 /* Wohnzimmer\LEDs Schrank */,
					24986 /* Schlafzimmer\LEDs Bett\ */ ,
					31675 /* Schlafzimmer\Lampe Schreibtisch */,
					35083 /*Schlafzimmer\HM Steckdose*/
				  );
 $arraylength = count($arr);

 for ($i = 0; $i < $arraylength; $i++) {
	$device = $arr[$i];
	$instance = IPS_GetInstance($arr[$i]);
	$module = $instance['ModuleInfo'];
   $moduleID = $module['ModuleID'];

	switch($moduleID){
	// FS 20
	case "{48FCFDC1-11A5-4309-BB0B-A0DB8042A969}":
	  $statusID = IPS_GetStatusVariableID($device, "StatusVariable");
	  $status = GetValueBoolean($statusID);
  	  if ($status){
         FS20_SwitchMode($device, FALSE);
	  }
	break;
	
	// HM
	case "{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}":
	  $statusID = IPS_GetStatusVariableID($device, "STATE");
	  $status = GetValueBoolean($statusID);
	  if ($status){
		 HM_WriteValueBoolean($device,"STATE",FALSE);
	  }
	break;
	
	} // end switch moduleID
 } // end for

?>

Wenn ich das Script laufen lasse, gehen alle Lampen korrekt aus, der Status der HM-Steckdose bleibt jedoch „an“. Und es erscheint die Fehlermeldung:

Warning:  Failure in [Allgemein\alle Lampen aus] on line 35

Zeile 35 ist in diesem Fall:

	HM_WriteValueBoolean($device,"STATE",FALSE);

.

Im Webfront bleibt die HM-Steckdose grün. Wenn ich draufklicke wechselt der Status auf „AUS“ und es passiert logischerweise nichts. Danach läuft alles normal, bis ich das Script starte.

Kann mir jemand weiterhelfen, wo da der Fehler ist? Hatte bisher nur HM-Fensterkontakte und Drehgriffe im Einsatz und bin auf derm Gebiet der Aktoren leider etwas unerfahren. Oder liegts am Script?

Edit:
Ich habe festgestellt, dass alles wunderbar läuft, so lange nur ein FS20 Aktor und der HM Aktor an sind. Dann wird sauber geschaltet und der Status auf allen Geräten ist danach auch OK. Habe ich mehr als einen FS20 Aktor aktiv und den HM Aktor, so ist der Fehler wie beschrieben, d.h. es wird alles geschaltet, vom HM Aktor bleibt der Status jedoch auf TRUE.

Danke und Gruß,
Christoph

Baue das Skript etwas um, sodass du zuerst ALLE HM Geräte ausschaltest, und danach alle FS20 Geräte ausschaltest. So vermeidest du Kollisionen.

paresy

Funktioniert wunderbar, wenn ich das HM-Gerät an erste Stelle setze!

Vielen Dank!

Gruß,
Christoph