Hallo Gemeinde,
ich hab mir ein Skript geschrieben, dass dafür sorgt, dass meine HM Geräte mit 5 Versuchen angesteuert werden weil ich immer mal wieder Probleme mit dem sauberen Schalten hatte, wenn viel Funkverkehr herrscht.
Das Ganze sieht so aus:
<?
IPSUtils_Include ("IPSLogger.inc.php", "IPSLibrary::app::core::IPSLogger");
function SetMHStatusOn($Name, $Unit)
{
SetHMStatus($Name, $Unit, true);
}
function SetMHStatusOff($Name, $Unit)
{
SetHMStatus($Name, $Unit, false);
}
function SetHMStatus($Name, $Unit, $Wert)
{
$Parent = IPS_GetParent($Unit);
$i = 5;
while ($i > 0)
{
if (GetValue($Unit) != $Wert)
{
IPSLogger_Dbg (__file__, "Restversuche ".$Name.": ".$i);
@HM_WriteValueBoolean($Parent, "STATE" , $Wert);
}
if (GetValue($Unit) == $Wert)
{
$i = 0;
}
else
{
$i = $i-1;
}
}
if (GetValue($Unit) != $Wert)
{
IPSLogger_Err(__file__, $Name." konnte nicht geschaltet werden!");
}
}
?>
Das Problem ist, dass ich zwar die Funktion ‚SetHMStatus($Name, $Unit, $Wert)‘ aus den Skripten wo ich das verwende aufrufen kann, nicht aber die Funktionen ‚SetMHStatusOn($Name, $Unit)‘ und ‚SetMHStatusOff($Name, $Unit)‘. Und zwar endet das Ganze in einem „Call to undefined function SetMHStatusOff() in…“
Mache ich das grundsätzlich falsch? Muss ich die Funktionen irgendwo registrieren?