… probiers mal hiermit …
<?
include "HM_Heizung_Konfig.ips.php";
include "HM_Heizung_Funktionen.ips.php";
//------------------------------------------------
//Einmal manuell ausführen zur Installation und bei änderungen der Zimmer
$Intervall = 5; // Zeit in Sek. zwischen dem Setzen der änderungen pro Zimmer.
$WFE_Uebersicht = 57470 /*[Visualization\WebFront\Heizung / Lüftung\WF_Räume\Übericht\Global_test]*/; //Kategorie, in der die Links zum Globalen ändern des erstellt werden.
//------------------------------------------------
If ($_IPS['SENDER'] == "Execute") // Instalation
{
$VarIdZaehler = CreateVariableByIdent($_IPS['SELF'], "Zaehler", 1, "", "Zaehler", 0);
$VarIdAuswahl = CreateVariableByIdent($_IPS['SELF'], "Auswahl", 1, "", "Auswahl", 2);
$VarIdMode = CreateVariableByIdent($_IPS['SELF'], "Mode", 1, "", "Mode", 3);
$VarIdSender = CreateVariableByIdent($_IPS['SELF'], "Sender", 1, "", "Sender", 1);
IPS_SetVariableCustomAction ( $VarIdAuswahl, $_IPS['SELF'] );
IPS_SetVariableCustomProfile ( $VarIdAuswahl , "Praesenz" );
SetLinkByIdent($WFE_Uebersicht, "Globale Profil-Auswahl", $VarIdAuswahl, "GlobaleProfilAuswahl",0);
IPS_SetVariableCustomAction ( $VarIdMode, $_IPS['SELF'] );
IPS_SetVariableCustomProfile ( $VarIdMode , "HM_Heizung_Steuerung_RT-DN" );
SetLinkByIdent($WFE_Uebersicht, "Globale Modus-Auswahl", $VarIdMode, "GlobaleModusAuswahl", 1);
Foreach ($Zimmer as $key=> $Raum)
{
$PraesenzId = IPS_GetObjectIDByIdent( "HMPraesenzProfilAuswahl", IPS_GetObjectIDByIdent($Raum, IPS_GetParent(IPS_GetParent($_IPS['SELF']))));
SetTiggerByName(@IPS_GetScriptIDByName("HM_Heizung_Raumsteuerung", (IPS_GetParent($_IPS['SELF']))), ("Tigger_Global_Praesenz".$Raum), $PraesenzId);
}
}
$VarIdSender = @IPS_GetObjectIDByIdent("Sender", $_IPS['SELF']);
$VarIdZaehler = @IPS_GetObjectIDByIdent("Zaehler", $_IPS['SELF']);
$VarIdMode = @IPS_GetObjectIDByIdent("Mode", $_IPS['SELF']);
$VarIdAuswahl = @IPS_GetObjectIDByIdent("Auswahl", $_IPS['SELF']);
$VarValZaehler = GetValueInteger ($VarIdZaehler);
$VarValSender = GetValueInteger ($VarIdSender);
if($_IPS['SENDER'] == "TimerEvent" && $VarValSender == $VarIdAuswahl)
{
$VarValAuswahl = GetValueInteger ($VarIdAuswahl);
SetValueInteger ( IPS_GetObjectIDByIdent( "HMPraesenzProfilAuswahl", IPS_GetObjectIDByIdent($Zimmer[($VarValZaehler+1)], IPS_GetParent(IPS_GetParent($_IPS['SELF'])))) , $VarValAuswahl);
SetValueInteger ($VarIdZaehler, ($VarValZaehler+1));
if(count ($IPS_HM_DeviceID) == ($VarValZaehler+1))
{
IPS_SetScriptTimer($_IPS['SELF'], 0);
SetValueInteger ($VarIdSender, 0);
}
}
if($_IPS['SENDER'] == "TimerEvent" && $VarValSender == $VarIdMode)
{
$VarValMode = GetValueInteger ($VarIdMode);
SetValueInteger ($VarIdZaehler, ($VarValZaehler+1));
Switch ($VarValMode)
{
case -1:
@HM_WriteValueFloat($IPS_HM_DeviceID[($VarValZaehler+1)],"MANU_MODE", 100);
//SetValueInteger (IPS_GetObjectIDByIdent( "HMPraesenzProfilAuswahl", IPS_GetObjectIDByIdent($Zimmer[($VarValZaehler+1)], IPS_GetParent(IPS_GetParent($_IPS['SELF'])))) ,-1);
break;
case 0:
@HM_WriteValueBoolean($IPS_HM_DeviceID[($VarValZaehler+1)],"AUTO_MODE", true);
//SetValueInteger (IPS_GetObjectIDByIdent( "HMPraesenzProfilAuswahl", IPS_GetObjectIDByIdent($Zimmer[($VarValZaehler+1)], IPS_GetParent(IPS_GetParent($_IPS['SELF'])))) ,0);
break;
case 1:
@HM_WriteValueFloat($IPS_HM_DeviceID[($VarValZaehler+1)],"MANU_MODE", GetValue(IPS_GetObjectIDByIdent ("SET_TEMPERATURE", $IPS_HM_DeviceID[($VarValZaehler+1)])));
//SetValueInteger (IPS_GetObjectIDByIdent( "HMPraesenzProfilAuswahl", IPS_GetObjectIDByIdent($Zimmer[($VarValZaehler+1)], IPS_GetParent(IPS_GetParent($_IPS['SELF'])))) ,1);
break;
case 3:
@HM_WriteValueBoolean($IPS_HM_DeviceID[($VarValZaehler+1)],"BOOST_MODE", true);
//SetValueInteger (IPS_GetObjectIDByIdent( "HMPraesenzProfilAuswahl", IPS_GetObjectIDByIdent($Zimmer[($VarValZaehler+1)], IPS_GetParent(IPS_GetParent($_IPS['SELF'])))) ,3);
break;
}
if(count ($IPS_HM_DeviceID) == ($VarValZaehler+1))
{
IPS_SetScriptTimer($_IPS['SELF'], 0);
SetValueInteger ($VarIdSender, 0);
}
}
if ((@$_IPS['VARIABLE'] == $VarIdMode || @$_IPS['VARIABLE'] == $VarIdAuswahl) && $VarValSender == 0)
{
SetValueInteger ($VarIdSender, $_IPS['VARIABLE']);
SetValueInteger ($VarIdZaehler, 0);
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
IPS_SetScriptTimer($_IPS['SELF'], $Intervall);
}
?>
Gruß
Swifty