Hallo @Dr. Niels,
wenn ich das auf einer Boolean Variable-Versuche, bekomme ich folgende Fehlermeldung:
Warning: Cannot delete association for boolean types in /var/lib/symcon/scripts/32232.ips.php on line 51
Kann es sein, dass die Methode bei boolschen Werten nicht geht, da es hierbei immer TRUE und FALSE
geben muss?
Hier der Code:
<?
/**********************************************************
*
* Toggle-Button für Lampen
* 1. Boolean-Variable anlegen unterhalb des Devices (z.B. Lampe)
* 2. Variablen-Profil anlegen (TRUE, FALSE schon mal vorbelegen, Icon Power)
* 3. Skript an Integer-Variable verknüpfen (Eigene Aktion)
*
**********************************************************/
// Variablen-ID der Boolean-Variable aus 1.
$myBooleanValID = 38086;
// Names des Variablen-Profils aus 2.
$myVariableProfile = "ToggleSwitch";
// ID eines Homematic-Devices, falls dies gleich geschalten werden soll
$myHomeMaticDevice = 14286;
if($_IPS['SENDER'] == "Execute")
{
$value = IPS_GetVariableProfile($myVariableProfile);
switch(GetValueBoolean($myBooleanValID))
{
case FALSE:
toggleOn($myBooleanValID, $myVariableProfile, $myHomeMaticDevice);
break;
case true:
toggleOff($myBooleanValID, $myVariableProfile, $myHomeMaticDevice);
break;
}
}
if($_IPS['SENDER'] == "WebFront")
{
switch($_IPS['VALUE'])
{
case false:
toggleOn($myBooleanValID, $myVariableProfile, $myHomeMaticDevice);
break;
case true:
toggleOff($myBooleanValID, $myVariableProfile, $myHomeMaticDevice);
break;
}
}
function toggleOn($myBooleanValID, $myVariableProfile, $myHomeMaticDevice)
{
// Delete VariableProfileAssociation
IPS_SetVariableProfileAssociation($myVariableProfile, FALSE, "", "", -1);
// Set new VariableProfileAssociation
IPS_SetVariableProfileAssociation($myVariableProfile, TRUE, " An ", "", 0x00FF00);
// Switch Bulb
HM_WriteValueBoolean($myHomeMaticDevice, "STATE", true);
// Set Value Boolean
SetValue($myBooleanValID , TRUE);
}
function toggleOff($myBooleanValID, $myVariableProfile, $myHomeMaticDevice)
{
// Delete VariableProfileAssociation
IPS_SetVariableProfileAssociation($myVariableProfile, TRUE, "", "", -1);
// Set new VariableProfileAssociation
IPS_SetVariableProfileAssociation($myVariableProfile, FALSE, " Aus ", "", 0xFF0040);
// Switch Bulb
HM_WriteValueBoolean($myHomeMaticDevice, "STATE", false);
// Set Value Boolean
SetValue($myBooleanValID , FALSE);
}
?>
Irgendwelche Ideen?
Danke und Grüsse,
Mike