Direktes Setzen von Variable verhindern

Hallo zusammen,

gegeben sei folgende Float-Variable, die ein systemseitiges Profil sowie ein eigenes Skript verwendet:

2016-10-02_Variablenprofil.jpg

Obwohl das Skript leer ist, kann ich den Variablenwert über das Webfront verändern. Das möchte ich nicht, denn der Wert soll über I/O Rückmeldung geschrieben werden, und nicht durch direktes manuelles Setzen.

Mein Verdacht: da ist irgendeine Standardaktion zusätzlich beteiligt?

Wie kann ich das direkte Setzen verhindern?

Danke und Gruß
micheljarre

Öffne die Instanz dieser Statusvariable und wähle den Reiter Statusvariablen.
Dort dann den Haken bei Standardaktion entfernen.
Michael

Danke für den Hinweis.

Es handelt sich nicht um eine Statusvariable.

Sie hängt zwar unterhalb einer Homematic Instanz (Variable „Wert“), hat aber keinen Ident und übt keine Standardfunktion aus.


2016-10-02_Statusvariablen.jpg

Ich kann zwar die Standardaktion bei „Helligkeitswert“ (LEVEL) entfernen, aber „Wert“ kann ich dann nach wie vor setzen.

(Idee soll es sein, den 0-100% Helligkeitswert des Dimmers (LEVEL) nicht-linear mittels „Wert“ setzen zu können, aber die I/O Schleife immer über LEVEL abzuwickeln, um eine Rückmeldung vom Gerät zu haben.)

Danke und Gruß
micheljarre

Du hast eine eigene Aktion gesetzt? Ob das Skript leer ist oder nicht ist egal. Du hast eine Aktion gesetzt. Das ist der Indikator dafür, dass du auch Veränderung erlaubst. Nimm die eigene Aktion raus und dann darf man auch nichts verändern :slight_smile:

Oder meinst du, dass du ein leeres Skript drin hast, aber der Aktor trotzdem schaltet!? Das dürfte nicht der Fall sein, da die eigene Aktion immer über der Standardaktion liegt.

paresy

Ich habe ein leeres Skript als Aktion für die Variable registriert, das auch korrekt die Umgebung $_IPS übergeben bekommt. Da aber kein Statement der Form

SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

vorkommt, würde ich erwarten, dass ich das Skript zwar per Webfront auslösen kann, aber nicht einfach die Variable gesetzt wird.

Ziel ist es, mit Hilfe des Skripts eine andere Variable (Ident VALUE) per HM Befehl zu setzen, und erst durch die Rückmeldung von LEVEL dann den Wert selbst zu verändern (klassische I/O Schleife).

Danke und Gruß
micheljarre

Schau mal in die Konsole. Der Wert wird auch nicht geändert. Das ist nur ein optisches Problem im WebFront. Dieses geht nämlich erstmal davon aus, dass alles geklappt hat und wartet auf die Änderung der Variable um den neuen Wert anzuzeigen.

paresy

Tatsächlich! Danke für den Hinweis, da hätte ich auch selber drauf kommen können.