Script: Festlegen der zugehörigen Statusvariable zu einer Instanz

Hallo zusammen,

unser EIB im Gebäude ist so konzipiert, dass die Schaltaktoren ein Rückmeldeobjekt haben und entsprechend eine Gruppenadresse auf den BUS senden, um z.B. Lampenschaltungen über Zentralfunktionen zu verwalten.

Das funktioniert auch prima, solange ich die Instanzen von Hand anlege und dann die Statusvariable der Rückmeldeinstanz manuell setze.

Da ich ein Skript geschrieben habe, um unsere Gruppenadressen in IP-Symcon zu importieren (rund 200 Stück, davon rund 150 mit Rückmeldeobjekten), möchte ich das ganze natürlich automatisieren.

Es gibt aber nach viel Recherchen nur die Funktion IPS_SetStatusVariableUseAction, keine Funktion, um die Statusvariable per Script zu setzen.

Gibt es hier eine Möglichkeit oder habe ich die richtige Funktion einfach noch nicht gefunden ?

Viele Grüße

Stefan Tröndle

ich hab kein LCN, aber wenn ich das richtig verstanden habe, willst Du ne Statusvariable unter einem LCN Objekt haben (neu erstellen)?

Wenn das eine „Standard Variable“ ist, wird die automatisch mit angelegt, wenn Du eine Instanz anlegst (IPS_CreateInstance).

Sonst musst Du eine neue Variable anlegen (IPS_CreateVariable) und die „unter die Inszanz hängen“ (IPS_SetParent)

Wenn die Frage darauf abuielte, wie Du die Variable dann im Betrieb mit Werten beschicken kannst:

1.) Script schreiben, das dies Variable befüllt
2.) Event anlegen (Was ist der Trigger, der zueiner Befüllung führen soll?)
3.) Diesen Event unter das Script schieben (oder schon dort den Event erstellen)

Hoffe das hilft.

Hallo jwka,

danke für Deine Antwort.
Die Bedienung von IP-Symcon ist kein Problem, ebensowenig das Scripten.
Mir fehlt lediglich in der API eine Funktion, die in einer per Script erzeugten Instanz die zugehörige Statusvariable setzt, also die neue Instanz mit einer bestehenden anderen Variable verknüpft.

Bei EIB ist dies gängige Vorgehensweise, 2 Objekte für z.B. eine Lampe anzulegen.
Über das erste Objekt wird die Lampe selbst geschaltet, die 2. Gruppenadresse (= 2. Instanz in IP-Symcon) wird vom Aktor auf den Bus gesendet. Dies dient z.B. dazu bei Gruppenschaltvorgängen (z.B. in einer Schule: Alle Lampen zentral aus) auch die Rückmeldungen der einzelnen Lampen zu bekommen und nicht die Status der einzelnen Lampen per Script virtuell nochmal setzen zu müssen, da diese ja nun per Gruppenbefehl „aus sein müssten“.

Mit IP-SYMCON lässt sich das über die Variablen prima nachbilden, ich möchte aber die Rückmeldevariablen per Script setzen und das geht nicht. Das ist denke ich am ehesten ein Fall für ein einfaches ja, nimm diesen Befehl oder nein, geht nicht (-> paresy).

Grüße

Stefan

Da muss ich passen … bin aber sehr auf die Antwort der Profi’s gespannt.

Beim FS20 kann man die Statusvars nicht setzen, weil sie systembeding Read-only sind. Vielleicht ist das auch ein Problem bei Deinem Vorgehen.

jwka

Statusvariablen sind immer als ReadOnly-definiert und können nicht direkt per Script geändert werden.
Eine Alternative wäre, den Schaltvorgang über die Gruppenadresse per event zu erfassen und den Schalt-Befehl für die Einzeladresse in einem Eventscript zu wiederholen.
Eine andere Alternative ist sich zusätzliche eigene „echte“ Variablen für den Status anzulegen und diese entsprechend zu verändern.
Tommi

Hallo Tommi,

ich will den Wert der Statusvariable auch nicht ändern, ich möchte
die Zuordnung ändern.

Bitte zum Nachvollziehen folgendes machen:
Anlegen von 2 KNX-Instanzen.
Eine heisst z.B. Lampe
die andere heisst Lampe RM (Rückmeldung)
Beide bekommen automatisch eine Statusvariable vom Typ Boolean.

Auf die Instanz Lampe RM wird nun doppelgeklickt.
Im Register Statusvariablen kann ich nun die Variable auswählen, die aktualisiert werden soll, wenn auf der Gruppenadresse der Instanz ein Wert gesendet wird.
Bei Lampe RM wird hier also die Statusvariable von „Lampe“ ausgewählt.

Wenn nun also auf dem EIB die Rückmeldung von „Lampe RM“ kommt, wird der Status der „Lampe“ geändert.

Das funktioniert PRIMA !!!

Was ich nun möchte:
Ich möchte diese Zuordnung, die von Hand vorgenommen werden kann automatisieren, um alle Instanzen in einem Gebäude per Skript anzulegen.
Ich kann beide Instanzen per Import-Script anlegen, etc.
Aber die Zuordnung der Statusvariable kann ich nicht vornehmen bzw. finde das nicht.
Da das ganze bei rund 150 Instanzen mit einer hohen Fehlerquote bei manueller Arbeit verbunden ist und wir planen, IP-SYMCON bei mehreren Kunden einzusetzen, wäre das natürlich super, wenn wir das auch noch automatisieren könnten !

Die Funktion die du in der GUI siehst, ist eine Funktion, die zur Kompatibilität mit der V1 angeboten wird. Deswegen wird die Funktion auch nicht über PHP angeboten. (Ich werde sie zum nächsten Minor Release auch aus der Konsole entfernen, um nicht fälschlicherweise eine Funktion zu suggerieren die es nicht geben sollte)

Der normale Weg ist, dass eine StatusVariable immer unterhalb der Instanz liegt. Sobald du das „ummapping“ verwendest, kann es unter Umständen Probleme mit dem WebFront geben.

Der korrekte Weg wäre in IP-Symcon weitere Adressen angeben zu können, auf die „gelauscht“ wird. Ähnlich der FS20 Master/Gruppenadressen Problematik. Die behebe ich gerade und werde es bei KNX/EIB auch einbinden, sodass man diese Zentraladresse mit angeben kann.

paresy

Oha, das ist ja mal ne gute Nachricht:

Ähnlich der FS20 Master/Gruppenadressen Problematik. Die behebe ich gerade

In welcher Version wird’s drin sein? Das würde mir einiges an Kopfzerbrechen nehmen.

jwka