Beschattungsproblem (IpsView)

Ich habe die Position der Beschattungen in eine Skizze der Grundrisse meines Wohnzimmers eingezeichnet. Jedes Beschattungselement ist als Button eingefügt und ruft eine Popup-Seite auf, welche ein Customcontrol zum Steuern beinhaltet (Hoch, Runter, Stopp, Schlitz). Ich weiß nicht aber nicht wie ich die Knöpfe so parametrisieren kann, dass sie Variablen an den Customcontrol weitergeben, so dass ich in Abhängigkeit des abrufenden Button den Befehl an die korrekten Relays weiterschicke. Könnt ihr mich helfen?


Hier mal ein einfaches Beispiel mit einem ColorPicker, analog dann für eine Beschattung oder ähnliches:

Zuerst mal das Popup, das beinhaltet mehrere Steuerelemente und diese referenzieren alle auf die fiktive ID 10000:

Möglichkeit a.)

Mit einem PopupButton und den AliasIDs kannst Du nun diese IDs ersetzen:

image

image

Möglichkeit b.)

Du baust Dir ein eigenes Steuerelement und definiert die ID des Popups als Public Property:

In dem Fall hast Du es direkt als Property zur Verfügung

1 „Gefällt mir“

also, ich bin sehr ungeschickt, und habe die Philosophie von IpsView noch nicht genau begriffen. Ich habe mir folgendes CustomControl gebastelt „ShadesControl new“ ensprechend Deinem Plan B. Diesen habe ich dann in die Popup-Seite „popup shade control“ eingebaut. Die neuen Eigenschaften sind tatsächlich verfügbar (allerdings unter „Common“ und nicht unter „Symcom“ wie in deinem Bild).

Was mir unklar ist: wie kann ich nun die Werte dieser neuen Eigenschaften mit dem aufrufenden Popup Button manipulieren? Das Feld „AliasIDs“ im Button ist leer und lässt sich nicht bearbeiten…

OK, ich komme langsam der Sache näher. Ich habe aufgegeben, ein CustomControl zu bauen. Stattdessen habe ich ein Button in ein Popup reingetan. Und jetzt kann ich die ID des Button mittels AliasID manipulieren.

Das hilft aber nur bedingt. Buttons können anscheinend nur Skripte referenzieren; eine fiktive ID wird nicht angenommen. Somit kann die AliasID nur zur Ansteuerung unterschiedlicher Skripten dienen, korrekt? Dies führt zu einer unerwünschten Proliferation von vielen kleinen Skripten. Gibt es andere Möglichkeiten, Parameter an die Popups weiterzugeben?

ja, fiktive IDs werden nur in CustomControls akzeptiert, das sollte aber keinen Unterschied machen - kannst ja eine normale IDs in den AliasIDs ersetzen.
Wenn Du im Popup einen ToggleButton oder ähnliches hast, dann kannst Du auch diese IDs ersetzen.

CustomControl IDs werden bei den AliasIDs noch nicht unterstützt, mein Vorschlag b.) hat auch für den PopupButton ein CustomControl verwendet und dort kannst Du die Popup IDs public machen (Du hast da eher a und b gemsicht).

Die Gruppe der Properties (Symcon statt Common) findest bei den „Öffentlichen Eigenschaften“:

1 „Gefällt mir“

ahhh, nicht nur das Ziel-Popup muss ein CustomControl sein, sondern auch der aufrufende Button muss als CustomControl gebaut werden? Das probiere ich mal.

ja genau, das CustomControl im Popup macht ja in Deinem Fall nur begrenzt Sinn, da es ja nur dort verwendet wird und Du es nicht an mehreren Stellen verwendest :wink:

1 „Gefällt mir“

Einverstanden, CustomControls sind nicht unbedingt nötig - aber mir geht es auch darum, die Software zu lernen!

Das nächste Problem ist aber: wie kann ich die veränderten Parameter (PublicIdents) an ein Skript weitergeben? Nach meiner Vorstellung sollte der CustomControl einen Skript auslösen, der dann die jeweiligen Parameter (z.B. welche Rollos, ob hoch oder runter etc.) auswertet. Ich nehme an, dass unter der Motorhaube GET und POST-Befehle versteckt sind?

Vielleicht das Einfachste ist, Variablen im IPS zu setzen, die von den PublicIdents gesteuert werden, und dann vom Skript abgelesen werden?

Der normale Button unterstützt die IP-Symcon Skript Variablen VALUE, VARIABLE und SENDER, ein durchreichen von einem Steuerelement zu einem Popup ist aber leider nicht möglich.

Sehe das auch nicht als primären Anwendungsfall von IPSView, mach Dir doch da besser eine eigene Variable, wo Du dann die Aktionen per Wert (Assoziationen) setzen kannst.
Dann kannst Du in IPSView zB ValueButtons verwenden und benötigst für das Popup nur mehr eine ID :thinking:

1 „Gefällt mir“