SetValueBoolean geht nicht

Hallo,

ich änderte bisher (V1) mit SetValueBoolean

eine Variable von True auf False.

In V2.0 bekomme ich folgende Fehlermeldung

Warning: Variable wurde als „Nur-Lesen“ markiert und kann nicht verändert werden in [Wohnzimmer\Touch_Wohnen_Boden] on line 1

Lt. Doku gibt es SetValueBoolean aber noch.

Was muss ich ändern damit ich die Variable per Script ändern kann ?

Du versuchst eine Statusvariable zu ändern, das ist in der V2 nicht mehr möglich.

Hallo Thomas,

danke.

Habe meinen FS20 Lichter 2 Adressen verpasst. Einmal schalte ich getrennt und einmal alles aufeinmal. Nur wird wenn ich alles schalte dann der Status und Intensität meiner einzelnen Lichter falsch angezeigt. Gibts da nicht doch eine Möglichkeit? Oder wie löst ihr das?

Das Problem ist, dass IPS in der aktuellen Version keine Masteradressen unterstützt, das hatte paresy kurz mal eingebaut, hatte aber wegen der Komplexität nicht funktioniert und er hat das wieder entfernt. Bleibt nur eine Scriptlösung.

Hallo grossermanitu

Wie Thomas schon sagte, nativ geht das so im Moment nicht.

Du hast aber dennoch 2 Möglichkeiten, Deinen Wunsch zu realisieren:

  1. Du erzeugst in IPS eine Instanz mit Deiner Master/Gruppen-Adresse und schreibst Dir ein Script, das bei Änderung der zugehörigen Status-Variablen Deine 2 Lichter schaltet (bzw. den Status korrekt setzt).

  2. Du besorgst Dir den FS20 IRP als Bausatz oder Fertiggerät und „programmierst“ damit Deine Fernbedienungen, so dass diese nicht nur Einzelgeräte schalten, sondern auch mehrere Empfänger in Folge (Makro). So hast du bsw. auf der FB eine Taste für Lampe1, eine für Lampe2 und eine dritte, die beide Lampen schaltet oder dimmt. So bekommst du in IPS den Zustand Deiner Lampen korrekt angezeigt (falls Du die Lampen als Einzel-Instanzen angelegt hast). Die Gruppen/Master-Adressen brauchst Du dann nicht mehr.

Viel Erfolg. :slight_smile:

Gruss, Andreas

Hm weiß jetzt nicht ob ich dich richtig verstanden habe:
Also ich habe 3 Instanzen. Lampe1 Lampe2 und Lampe-Alles. Ich schalte per Lampe-Alles das Licht aus und der Status verändert sich auf „false“. Da bei Lampe1 und Lampe2 sich nix tut wollte ich das ganze per SetValueBoolean lösen. Das geht wie oben erwähnt nicht da man Statusvariable nicht ändern kann.

Wie sieht das Script aus an das du gedacht hast?

Du mußt Dir ein Script schreiben, welches über den Lampe-Alles-Aus Status auf false getriggert wird und einfach ein FS20SwitchMode der beiden Lampen 1+2 auf false macht.

Hallo grossermanitu

Die LampeAll-Instanz ist in IPS dann nur virtuell, d.h. die schaltet nicht direkt.

Das Script sollte dann in etwa so aussehen:


<?
// Trigger: Statusvariable von LampeAll

$idLampe1   = 12345;
$idLampe2   = 23456;
$idLampeAllSV = 34567; // hier nicht die ID der Instanz, sondern der StatusVariable nehmen

$lichtAll = GetValue($idLampeAllSV);

if ($lichtAll == FALSE)
   {
   FS20_SwitchMode($idLampe1, FALSE);
   FS20_SwitchMode($idLampe2, FALSE);
   }
else
   {
   FS20_SwitchMode($idLampe1, TRUE);
   FS20_SwitchMode($idLampe2, TRUE);
   }
?>

Ich würde aber auf Dauer die Variante 2 vorziehen, der FS20 IRP kostet als Bausatz 20Euronen und Du kannst sehr schön und übersichtlich ganze Szenarien auf Deine Fernbedienungen legen.

Gruss, Andreas

Ok mit Switchmode klappt alles. Das erhöht natürlich den Funkverkehr. Aber gut.

Zu deinem 2. Vorschlag: Ich habe eine Harmony die ich per IRTrans mit IPS verbunden habe. Ich habe auch schon für beide Lampen + Alles eine Fernbedienung angelernt. Ich denk wenn ich dich richtig verstanden habe, dann kann ich dein Vorhaben bei mir so umsetzten: Ich Sende bspw. einen „alle-Befehl“ an IPS, das sendet hintereinander langsames hochdimmen meiner beider Lampen. Das Makro kommt quasi von IPS und nicht von der FS20-Fernbedienung

Ich habe es mal ausprobiert. Ich will jetzt nicht kleinlich sein, aber meine eine kleine Diskrepanz feststellen zu müssen. Wenn ich noch Ausbaue mit 3 weiteren Lampen, könnte ich mir vorstellen, das zwischen ersten und letzten einschalten keine Synchronität mehr gewehrleistet ist.