FIBARO RGBW-Controller

Hi,

habe den FIB_FGRGB-101 mit LED Stripes im Einsatz. Kann es sein das Rot und Grün auf der neuen Farbauswahlscheibe vertauscht worden sind?

Lg Izack

RPI mit IPS 4.1

Kabel waren vertauscht, sorry…

Weiß hier jemand Rat? Die Meldung nervt mittlerweile :banghead:

setz ein „@“ vor ZW_DimSet -> @ZW_DimSet unterdrückt die Meldung, da ja der Befehl offensichtlich funktioniert…
Ich frage grundsätzlich mit
$result = @ZW_DimSet
ab und führe den Befehl nocheinmal aus, falls $result false ist…
Mittelschön, aber wirkt…

Gruß
hoep

Hallo,
ich habe das Script aus Post #78 an meinen DMX Controller angepasst. Das Problem ist folgendes:
Beim Starten des Scripts wird case 0 übersprungen und gleich in case 1 gesprungen, wo es dann irgendwie hängenbleit und nicht weiter geht.

<?
if($_IPS['SENDER'] == "WebFront");

$AN_AUS = GetValue(24522 /*[TerasseLED\Dummy Module\Farbwechsel 2]*/);

if ($AN_AUS === FALSE) {
if($_IPS['SENDER'] == "TimerEvent");
IPS_SetScriptTimer($_IPS['SELF'], 0);
		DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 0, 1.5); //Masterdimmer auf Wert setzen
        DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 0, 2.0); //Rot auf Wert setzen 
        DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 0, 2.0); //Grün auf Wert setzen 
        DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 0, 2.0); //Blau auf Wert setzen 
		
 }
if ($AN_AUS === TRUE) {
if($_IPS['SENDER'] == "TimerEvent");
IPS_SetScriptTimer($_IPS['SELF'], 6);
	

switch($AN_AUS === TRUE)
{
 case 0: //Rot
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 1: //Grün
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 2: //Blau
  DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 3: //Magenta
  DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 4: //Yellow
  DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 5: //Orange
  DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 69, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 6: //Lila
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 138, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 43, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 226, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 7: //Cyan
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 10: //Fade
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 224, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 40, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 //Hier mehrere case xx Blöcke!
}
}


echo   $AN_AUS ? print 'TRUE': print 'FALSE';


?>

Das kann so auch nicht funktionieren… Im Switch hast du ein === , welches 0 oder 1 wird… alle anderen Fälle können nicht auftreten.

paresy

Hallo,
das

switch($AN_AUS === TRUE)

habe ich jetzt entfernt und durch

switch($AN_AUS == TRUE)

ersetzt. Alle anderen === habe ich auch durch == ersetzt.
Es ist aber immer noch das selbe Problem.

Deine Variable

$AN_AUS = GetValue(24522)

ist das eine Integer oder Bool?
Es scheint als ob es eine Bool ist, weswegen er 0 überspringt (da nicht zutrifft) und bei 1 Anfängt, da anscheinend „True“.

Wie Parsey in Post #86 angermerkt hat, kann die Bool-Variable entweder den Wert 0 oder 1 haben, dadurch wirst du nie in einen der anderen Cases kommen, sondern nur in die Anweisungen unter 0 oder 1.

Wenn ich das richtig sehe, wird im Orginalscript in #78 ein Wert durch das Webfront zurückgegeben ,durch z.B. das drücken einer Taste. --> Hier kann z.B. durch eine Integervariable ein Wert von 0-10 ans Script übergeben werden, je nach gedrückter Taste.

Bei dir, wird quasi nur zwischen An- und Aus quasi 0 und 1 gewechselt, weshalb du nie in die anderen Cases kommen wirst.
Bei dir ist die Variable AN_AUS auf 1, daher springt er bei Auswertung und Weitergabe des Wertes im Switch direkt zu 1.

Ich hoffe ich habe alles richtig gesehen.

Hallo,

ja das ist richtig, ich schalte über das WF eine Integer Variable (wegen der einen Schaltfläche),und damit wird eine Dummy Variable als BOOL Variable geschaltet. Diese wird in dem Script dann abgefragt.

Ich wüste jetzt auch nicht, wie ich das machen sollte:

Wenn ich das richtig sehe, wird im Orginalscript in #78 ein Wert durch das Webfront zurückgegeben ,durch z.B. das drücken einer Taste. --> Hier kann z.B. durch eine Integervariable ein Wert von 0-10 ans Script übergeben werden, je nach gedrückter Taste.

Hallo,
ich habe es jetzt geändert, das ich beim einschalten eine 9 in eine andere Integer Variable schreibe. Diese wird dann von dem Script eingelesen. Es springt aber immer noch nur in Case 1, aber nicht weiter. :confused:
Der Timer läuft aber.

if($_IPS['SENDER'] == "TimerEvent");{
if($_IPS['SENDER'] == "WebFront");

IPS_SetScriptTimer($_IPS['SELF'], 6);
$AN_AUS = GetValueInteger(12183 /*[TerasseLED\Dummy Module\Farbwechsel_1\10]*/);

if ($AN_AUS == 0) {
if($_IPS['SENDER'] == "TimerEvent");
		DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 0, 1.5); //Masterdimmer auf Wert setzen
        DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 0, 2.0); //Rot auf Wert setzen 
        DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 0, 2.0); //Grün auf Wert setzen 
        DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 0, 2.0); //Blau auf Wert setzen 
		IPS_SetScriptTimer($_IPS['SELF'], 0);
}

switch($AN_AUS == 9)
{
 case 1: //Rot
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 2: //Grün
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 3: //Blau
  DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 4: //Magenta
  DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 5: //Yellow
  DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 6: //Orange
  DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 69, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 7: //Lila
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 138, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 43, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 226, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 8: //Cyan
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 255, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   break;
 case 9: //Fade
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 2, 224, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 3, 0, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 4, 40, 2.0);
   DMX_FadeChannel(11652 /*[TerasseLED\DMX OutputRGB]*/, 1, 254, 2.0);
   IPS_SetScriptTimer($_IPS['SELF'], 6);
   break;
 //Hier mehrere case xx Blöcke!
}
}
?>

Ich weis nicht mehr weiter, das probieren und ändern geht jetzt schon seit mehreren Tagen so…ohne Erfolg.

Hallo,

ich habe jetzt für den Switch ein array angelegt. Das Script soll alle 8s ausgeführt werden per TimerEvent.
Es bleibt aber im case 1 stehen, obwohl der ScriptTimer läuft.
Drücke ich „Ausführen“ wird case 2 ausgeführt, beim erneuten „Ausführen“ wird case 3 ausgeführt usw.
Was muss ich machen das IPS von selbst das nächste case ausführt bzw die Bedingungen von Switch erneut überprüft?

Deine if und Switch Anweisungen und die zugehörigen Blöcke sind sehr ungewöhnlich. Schick mir dein aktuelles Skript mal per PN.

Es gibt es ein neues Modul, womit man die RGB Ansteuerung vereinfachen kann: SymconMisc/RGBMultiplexer at master · symcon/SymconMisc · GitHub

paresy

Das jetzt noch für RGBW wäre echt dufte :slight_smile:
(Habe den Fibaro RGBW Controler und der nervt echt in der Ansteuerung…)

Bin doof :slight_smile:
Das geht ja jetzt mit nativen Befehlen.

boolean ZW_ColorRGBWW ( integer $InstanzID, integer $Rot, integer $Grün, integer $Blau, integer $WarmWeiß, integer $KaltWeiß )

Eigentlich kann dann ja hier zu gemacht werden, oder?

Mittlerweile können die Geräte das… Früher als es die COLOR CC noch nicht gab, war alles komplizierter :slight_smile:

paresy

Bei mir klappt das super mit dem RGBW von Fibaro.

Jedoch würde ich gerne die Alarm Funktion nutzen. (schnelles blinken in rot und blau)

Ich würde die LEDS gerne blinken lassen wenn mein Alarmbit auslöst.

Ich habe aber leider keine Variable im Fibaro RGBW gefunden…

Weiß jemand wie ich den Alarm ansteueren kann?

hi,

hat sich eigentlich schon jemand die fibaro intercom angesehen?
die sieht ja schick aus. könnte man die als doorstation einbinden?

lg
Christian

Polizei-Blinken einschalten geht so:

ZW_ConfigurationSetValue(GeräteID[int], 72, 10);

10 ist für Polizei, die anderen Sachen stehe in der Anleitung des Fibaro.

Danke, jetzt hab ich das kappiert…:smiley:
Klappt super.