Nicht auf die Variablen anwenden sondern auf den Aktor selbst.
Gruß
Werner
Das war die Lösung ![:slight_smile: :slight_smile:](https://community.symcon.de/images/emoji/win10/slight_smile.png?v=9)
Jetzt nochmal mein ganzes Skript :
Einziger Fehler jetzt ist, nichts von der Stereoanlage wird ausgeschaltet…also nichts, was in der IF Abfrage steht…
(Aber da nur teilweise kopiert, fehlt mir wohl etwas für die IF Abfrage ![:frowning: :frowning:](https://community.symcon.de/images/emoji/win10/frowning.png?v=9)
<?
$max = 180;
$step = 1; //Schrittgröße
function on() {
IPS_LogMessage("Eieruhr", "Aktiviert!");
}
function off() {
IPS_LogMessage("Eieruhr", "Abgelaufen...");
PJ_DimRGBW(41853 /*[Mein Haus\Wohnzimmer\Licht\LED Flatscreen]*/,0,2,0,2,0,2,0,2);
HM_WriteValueFloat(58363 /*[Mein Haus\Wohnzimmer\Licht\Wandlampen]*/, "LEVEL", 0); // Wandlampen aus
//HM_WriteValueBoolean(43788 /*[Mein Haus\Wohnzimmer\Licht\Wandlampen\Dimmer]*/, "STATE", false);
if (GetValueBoolean(27858 /*[Mein Haus\Multimedia\Geräte\HTPC\HTPC Rechts\Power HTPC]*/) == TRUE)
{
IRT_SendOnce ($irtID,"htpc","poweroff");
IPS_Sleep (500);
IRT_SendOnce ($irtID,"htpc","poweroff");
SetValue(27858 /*[Mein Haus\Multimedia\Geräte\HTPC\HTPC Rechts\Power HTPC]*/,FALSE); // HTPC AUS
IPS_Sleep (3500);
}
if (GetValueBoolean(32565 /*[Mein Haus\Multimedia\Geräte\Topfield\Topfield 2\Power Topfield]*/) == TRUE)
{
IRT_SendOnce ($irtID,"topfield","on/off Toggle");
SetValue(32565 /*[Mein Haus\Multimedia\Geräte\Topfield\Topfield 2\Power Topfield]*/,FALSE); //Topfield AUS
}
if (GetValueBoolean(12908 /*[Mein Haus\Multimedia\Geräte\Samsung TV\TV Rechts\Power TV]*/) == TRUE)
{
IRT_SendOnce ($irtID,"samsungtv","on/off toggle");
SetValue(12908 /*[Mein Haus\Multimedia\Geräte\Samsung TV\TV Rechts\Power TV]*/,FALSE); // TV AUS
}
if (GetValueBoolean(22791 /*[Mein Haus\Multimedia\Geräte\Verstärker\AmpR\Power Verstärker]*/) == TRUE)
{
IRT_SendOnce ($irtID,"onkyo","on/off toggle");
SetValue(22791 /*[Mein Haus\Multimedia\Geräte\Verstärker\AmpR\Power Verstärker]*/,FALSE); // Verstärker AUS
}
}
//Ab hier nichts mehr verändern
$min = 0;
$suffix = "min";
$vpn = "EggTimer.".$max.".".$step;
if($IPS_SENDER == "Execute")
{
if(IPS_VariableProfileExists($vpn))
IPS_DeleteVariableProfile($vpn);
IPS_CreateVariableProfile($vpn, 1);
IPS_SetVariableProfileValues($vpn, $min, $max, 0);
IPS_SetVariableProfileIcon($vpn, "Clock");
IPS_SetVariableProfileAssociationEx($vpn, $min-2, "Aus", "", 0xFF0000);
IPS_SetVariableProfileAssociationEx($vpn, $min-1, "-", "", -1);
IPS_SetVariableProfileAssociationEx($vpn, $min, "%d ".$suffix, "", 0x00FF00);
IPS_SetVariableProfileAssociationEx($vpn, $max+1, "+", "", -1);
$vid = CreateParentVariable($IPS_SELF, "Timer", 1);
IPS_SetVariableCustomProfile($vid, $vpn);
IPS_SetVariableCustomAction($vid, $IPS_SELF);
SetValue($vid, $min-2);
}
else if($IPS_SENDER == "WebFront")
{
switch($IPS_VALUE)
{
case $min-2:
doOff();
break;
case $min-1:
$IPS_VALUE = GetValue($IPS_VARIABLE) - $step;
if($IPS_VALUE <= 0)
{
$IPS_VALUE = -2;
doOff();
}
break;
case $max+1:
$IPS_VALUE = min($max, max(0, GetValue($IPS_VARIABLE)) + $step);
doOn();
break;
default:
return;
}
SetValue($IPS_VARIABLE, $IPS_VALUE);
}
else if($IPS_SENDER == "TimerEvent")
{
$vid = CreateParentVariable($IPS_SELF, "Timer", 1);
$v = GetValue($vid);
$v--;
if($v <= 0)
{
doOff();
IPS_SetScriptTimer($IPS_SELF, 0);
$v = $min-2;
}
SetValue($vid, $v);
}
function doOn()
{
global $IPS_SELF;
if(IPS_GetScriptTimer($IPS_SELF) == 0)
{
IPS_SetScriptTimer($IPS_SELF, 60);
on();
}
}
function doOff()
{
global $IPS_SELF;
IPS_SetScriptTimer($IPS_SELF, 0);
off();
}
function CreateParentVariable($id, $name, $type)
{
global $IPS_SELF;
$vid = IPS_GetParent($IPS_SELF);
if(!IPS_VariableExists($vid))
{
$vid = false;
}
else
{
$v = IPS_GetVariable($vid);
if($v['VariableValue']['ValueType'] != $type)
$vid = false;
}
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, IPS_GetParent($IPS_SELF));
IPS_SetParent($id, $vid);
IPS_SetName($vid, $name);
IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
IPS_SetHidden($id, true);
}
return $vid;
}
function IPS_SetVariableProfileAssociationEx($vpn, $av, $an, $ai, $ac)
{
if(floatval(IPS_GetKernelVersion()) <= 2.3)
{
IPS_SetVariableProfileAssociation($vpn, $av, $an, $ai);
} else {
IPS_SetVariableProfileAssociation($vpn, $av, $an, $ai, $ac);
}
}
?>