Hallo,
ich bin bei IPS relativer Anfänger. Versuche gerade in der Visualisierung eine Solltemperatur zu ändern. Das Gerät ist ein KNX Heizungsaktor. Die ID ist da, auch der Wert der Solltemperatur vom KNX-Bus. Ich habe jetzt ein Aktionsscript
angelegt, dieses bringt aber Fehler.
In der Visu: „Variable is marked as read only“,
im Script: "
Notice: Undefined index: VARIABLE in C:\IP-Symcon\scripts\17096.ips.php on line 4
Notice: Undefined index: VALUE in C:\IP-Symcon\scripts\17096.ips.php on line 4
Warning: Variable #0 existiert nicht in C:\IP-Symcon\scripts\17096.ips.php on line 4
Hier habe ich offensichtlich ein Verständnisproblem. Im Forum habe ich von „Fonzo“ ein Statement gefunden, daß ich allerdings nicht verstehe …
Variablen dienen in IP-Symcon der Anzeige eines Zustands wie der Tacho die Geschwindigkeit im Auto anzeigt. Weiterhin speichern Variablen den Status ab. Geschaltet wird in IP-Symcon eine Instanz über den Webfront oder eine Funktion, nicht über das Verändern einer Variable. Wenn Du schneller fahren willst würdest Du auch auf das Gaspedal drücken (Funktion) und nicht versuchen am Tacho zu drehen (Anzeige), daher auch der Hinweis (Read Only).
Vielleicht kann mir jemand mal auf die Sprünge helfen …
Danke
Gruß Wolfgang
Das Statement von Fonzo sagt, dass Variablen unterhalb von Instanzen nicht direkt mit einem Befehl aus einem Skript heraus verändert werden dürfen. Wenn Du die Solltemperatur verändern möchtest, musst Du diese direkt mit dem entsprechenden Befehl an die Instanz senden.
Dein Actionskript müsste also die übergeordnete Instanz der Statusvariable herausfinden und an diese dann mit dem korrekten Befehl den Wert übermitteln.
Miti IPS_GetParent und vermutlich EIB_Value solltest Du im Actionskript ans Ziel kommen.
Hallo paresy,
schon, demnach müßte ja auch funktionieren -> EIB_Value(30004 , 30); wobei 30004 die übergeordnete „Instanz“ (s.o.) ist. Oder verstehe ich das komplett falsch…
Es kommt aber dann der Fehler: „Warning: Gruppe ist nicht für diese Funktion konfiguriert in C:\IP-Symcon\scripts\22563.ips.php on line 4“
Edit: Vertan, muss ja die InstanzID sein, sorry!
Hast du folgendes beachtet?
Auszug aus der Doku:
Für jedes gewünschte Gerät, dass veränderbar sein soll, muss die entsprechende Variable mit diesem Aktionsskript verknüpft werden. Dies muss in der Konfiguration der jeweiligen Variable geschehen. Dazu muss die Variable doppelt angeklickt werden. Im Bereich „Profileinstellungen“ befindet sich die Auswahl des Aktionsskripts. Hier muss das eben erstelle Skript ausgewählt werden. Über „Eigenes Profil“ sollte zusätzlich ein passendes Profil (z.B. ~Temperature) ausgewählt werden.
Der Fehler ist nicht aus dem Actionscript zur Instanze 30004 , das hat laut deinem Screenshot die ID 49516 und dein Fehler kommt aus dem Script mit der ID 22563
Wenn ich das richtig verstehe wird sie übergeordnete ObjektId mit „IPS_GetParent($_IPS[‚VARIABLE‘)“ ermittelt und dann der Wert in „$_IPS['VALUE“ an das Gerät mit der Id 30004 gesendet.
Ihr hattet ja alle recht. Aber ein Hinweis darauf, daß man ein KNX-Device als neue Instanz anlegen muß und hier das Aktionsscript eingehangen wird hätte mir das Leben wesentlich erleichtert…
Trotzdem Danke an alle die sich bemüht haben mir zu helfen!!
In #4 existierte die Instanz doch schon in Deinem Screenshot?
Und, kleiner Tipp: positioniere das Skript nicht direkt unter der Instanz, sondern irgendwo anders. Du kannst es für die anderen Instanzen dieser Art auch verwenden.