Hallo,
hat jemand ein script oder eine Anwendung um das RGWB 868 an/abzuschalten aber mit der vorher abgeschalteten Farbe.
Leider hat das RGBW ja keine Statusvariable oder täusche ich mich da?
Viele Grüße und danke
Hallo,
hat jemand ein script oder eine Anwendung um das RGWB 868 an/abzuschalten aber mit der vorher abgeschalteten Farbe.
Leider hat das RGBW ja keine Statusvariable oder täusche ich mich da?
Viele Grüße und danke
…
„$rgb_alt“ > als Integer-Variable neu anlegen z.B. „RGB Alt“
$id = 12345; // RGBW Modul
$rgb_ist = GetValue(67890; // Color Status Variable vom RGBW
$rgb_alt = GetValue(11223); // Merker
if($rgb_ist > 0){
PJ_DimRGBW($id,0,0,0,0,0,0,0,0); // alles Aus
SetValue(22166, $rgb_ist);
}else{ // alte Farbe Ein
// in RGB zerlegen
$bl = ($rgb_alt & 255);
$gr = (($rgb_alt >> 8) & 255);
$rot = (($rgb_alt >> 16) & 255);
PJ_SetRGBW($id, $rot, $gr, $bl, 0);
}
MST
Ich hatte mir schon fast gedacht, dass es nur über die Möglichkeit geht „Schwarz“ zu setzten.
Mir hat nurnoch die Möglichkeit gefehlt die Farbe aus der Integerer Variable neu zu setzten.
Vielen Dank für die Lösung!
… na ja An/Aus geht schon:
PJ_RunProgram: IP-Symcon :: Automatisierungssoftware
Nur die Status-Variable muss man sich selber anlegen.
Der Vorteil das o.g. Skript besteht darin, dass nach Spannungsunterbrechung die alte Farbe wieder hergestellt wird.
MST
Oh über die Programme…das ist allerdings richtig…Übersehen…
Ein riesen Vorteil deines Scripts sind allerdings natürlich die einstellbaren Dimzeiten beim ein Ausschalten wenn man DimRGBW statt SetRGBW verwendet…
muchas gracias
Und wie wird das Script angetriggert?
Kann alles sein, was sich in IPS auswerten lässt, bloß Stecker ziehen klappt nicht.
Gruß
Bruno
:mad: Naja, ich frag nur … ich hab so etwas ähnliches schon mit einem Kanal meiner Wago verknüpft, nur scheint es manchmal etwas länger zu dauern bis die Funkverbindung nach Stromwiederkehr da ist und dadurch kommt der Befehl nicht an!?
Vielleicht gibts da ja noch andere Möglichkeiten auf die ich nicht gekommen bin …
Hi zusammen,
an dieser Stelle wollte ich auch mal mein Script zum steuern des RGBW-Stripes kund tun.
Es speichert die letzte Farbe und aktiviert dieses wieder beim Einschalten.
Ein Set an eigenen Farben kann definiert werden.
Je nach dem durch welches Ereigniss das Scirpt getriggered wird werden folgende Funtkionen ausgelöst:
Installation:
Bei Fragen wendet euch gerne an mich.
<?
// Define your colors here
$values[] = "FF0000"; // Red
$values[] = "FFFF00"; // Yellow
$values[] = "00FF00"; // Green
$values[] = "00FFFF"; // Cyan
$values[] = "0000FF"; // Blue
$values[] = "FF00FF"; // Purple
// Define your buttons which will trigger this script here
$buttons['power'] = 54804 /*[EG\Remote Control\RC01-Key05\PRESS_SHORT]*/;
$buttons['nextColor'] = 28701 /*[EG\Remote Control\RC01-Key06\PRESS_SHORT]*/;
$buttons['white'] = 47661 /*[EG\Remote Control\RC01-Key06\PRESS_LONG]*/;
// -----------------------------------------------------------------------------------------------------------------
// DON'T CHANGE ANYTHING BELOW THIS LINE !!!
// -----------------------------------------------------------------------------------------------------------------
function CreateVariableByName($id, $name, $type, $profile = "", $hidden = false)
{
global $IPS_SELF;
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
IPS_SetHidden($vid, $hidden);
if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
}
return $vid;
}
// -----------------------------------------------------------------------------------------------------------------
function SetRGB($device_id, $color, $time = 3)
{
$colorRGB = str_split($color,2);
PJ_DimRGBW($device_id,hexdec($colorRGB[0]),$time,hexdec($colorRGB[1]),$time,hexdec($colorRGB[2]),$time,0,0);
}
// -----------------------------------------------------------------------------------------------------------------
// check if Stripe is on or off
if (GetValueFormatted(IPS_GetVariableIDByName("Color",IPS_GetParent($IPS_SELF))) == "000000")
{
// OFF -> turning ON
SetRGB(IPS_GetParent($IPS_SELF),GetValueString(IPS_GetVariableID("LastColor")));
}
else
{
switch ($IPS_VARIABLE) {
case $buttons['nextColor']:
// Change Color
// Look for index of current color in array
$key = array_search(GetValueFormatted(IPS_GetVariableIDByName("Color",IPS_GetParent($IPS_SELF))), $values);
if (($key < sizeof($values)-1)
and (isset($key)))
{
$nextValue = $key+1;
}
else
{
$nextValue = 0;
}
// set Color
SetRGB(IPS_GetParent($IPS_SELF),$values[$nextValue]);
break;
case $buttons['white']:
SetRGB(IPS_GetParent($IPS_SELF),"FFFFFF");
break;
default:
// ON -> turning OFF
//save old color value
SetValueString(CreateVariableByName($IPS_SELF, "LastColor", 3, "", true), GetValueFormatted(IPS_GetVariableIDByName("Color",IPS_GetParent($IPS_SELF))));
// turn RGB-Stripe off
SetRGB(IPS_GetParent($IPS_SELF),"000000");
}
}
?>
Sieht gut aus, vielen Dank. Werde ich mal testen…