Licht aus Befehl

Ich hab bei mir öffter schon mal das Problem, dass wenn die KeyMatic angesprochen wird anscheinend sehr viel Funkverkehr herrscht und manchmal die anderen Komponenten nicht geschaltet werden können. Daher hab ich mir einige Funktionen geschrieben, die ich aus den anderen Skripten heraus aufrufe:

<?
   IPSUtils_Include ("IPSLogger.inc.php", "IPSLibrary::app::core::IPSLogger");

	function SetHMStatusOnTime($Name, $Unit, $Dauer)
	{
		$Parent = IPS_GetParent($Unit);
		$i = 10;
		while ($i > 0)
		{
		   if (GetValue($Unit) != true)
		   {
            HM_WriteValueFloat($Parent, "ON_TIME", $Dauer);
				@HM_WriteValueBoolean($Parent, "STATE" , true);
			}

			if (GetValue($Unit) == true)
			{
				$i = 0;
			}
			else
			{
			   $i = $i-1;
			   IPSLogger_Dbg (__file__, "Restversuche ".$Name.": ".$i);
			   IPS_Sleep(200);
			}
		}
	   if (GetValue($Unit) != true)
	   {
			IPSLogger_Err(__file__, $Name." konnte nicht geschaltet werden!");
	   }
	}

	function SetHMStatus($Name, $Unit, $Wert)
	{
		$Parent = IPS_GetParent($Unit);
		$i = 10;
		while ($i > 0)
		{
		   if (GetValue($Unit) != $Wert)
		   {
		      
				@HM_WriteValueBoolean($Parent, "STATE" , $Wert);
			}

			if (GetValue($Unit) == $Wert)
			{
				$i = 0;
			}
			else
			{
			  $i = $i-1;
			  IPSLogger_Dbg (__file__, "Restversuche ".$Name.": ".$i);
			  IPS_Sleep(200);
			}
		}
	   if (GetValue($Unit) != $Wert)
	   {
			IPSLogger_Err(__file__, $Name." konnte nicht geschaltet werden!");
	   }
	}

	function SetHMStatusOn($Name, $Unit)
	{
	   SetHMStatus($Name, $Unit, true);
	}

	function SetHMStatusOff($Name, $Unit)
	{
	   SetHMStatus($Name, $Unit, false);
	}
?>

Funktioniert seither recht zuverlässig.