Viele ein/ausschalten

Hallo, ich poste mal mein kleines Script, das ich verwende, um am abend alle Verbraucher auszuschalten.
Da Script geht fabei folgend vor, es schaltet zuerst mal nur diejenigen aus, die im moment eingeschaltet sind (damit man schnell den status sieht, das alles aus ist) und geht dann nochmal durch um alle anderen, oder bei denen ein fehler aufgetreten ist noch mal auszuschalten. (Ein Aktor bei mir hat manchmal Kommunikationsprobleme)

<?
	function Homematic_Ex($deviceCommands, $showDebug) {
	   $result = '';
	   foreach($deviceCommands as $deviceID => $sollState) {
		   // zuerst mal schaun, ob sich der status geändert hat, die anderen erst später ...
		   $stateID = IPS_GetObjectIDByName("STATE", $deviceID);
		   if (GetValue($stateID) <> $sollState) {
		      if ($showDebug)
					$result	= $result."Setting $deviceID ($stateID) to $sollState <br>";
		      // Hier ein try drüber legen
		      if (@HM_WriteValueBoolean($deviceID, "STATE", $sollState)) {
					$deviceCommands[$deviceID] = 2;
				}
		   }
	   }

	   // und jetzt nochmal alle zur Sicherheit
		foreach($deviceCommands as $deviceID => $sollState) {
		   // zuerst mal schaun, ob sich der status geändert hat, die anderen erst später ...
		   $stateID = IPS_GetObjectIDByName("STATE", $deviceID);

		   if ($sollState !== 2) {
		      if ($showDebug)
		         $result  = $result."Check> Setting $deviceID ($stateID) to $sollState";
		      // Hier ein try drüber legen
		      if (!@HM_WriteValueBoolean($deviceID, "STATE", $sollState)) {
		         $result = $result."FAILED Check> Setting $deviceID ($stateID) to $sollState<br>";
				}
		      if ($showDebug)
					$result = $result.'<br>';
		   }
	   }
		return($result);
	}
?>
<?
	include('Homematic.ips.php');

	$devCommands   = array(
		  	  17936 => true
			, 54978 => false
	      , 25805 => false
			, 54955 => false
			, 51692 => false
// .....
	   );

	echo Homematic_Ex($devCommands, true);
?>

vielleicht kanns wer brauchen, wenns wer verbessert, dann bitte mal hier kurz posten :wink: