[Modul] DynamicVisuControl - Objekte verstecken / deaktivieren

Version Version License
Version Check Style Run Tests
Spenden

Symcon-Modul: DynamicVisuControl

Enthält verschiedene Module für die dynamische Visualisierung von Objekten im WebFront von IP-Symcon.

Dokumentation

Inhaltsverzeichnis

1. Funktionsumfang

Vorbemerkungen:

Die Visualisierung im WebFront von IPS sollte nicht direkt mit den Original-Hardware-Instanzen erfolgen.
Es empfiehlt sich eine eigene Struktur aus Kategorien, Instanzen des Typ Dummy-Modul und Links zu erzeugen.
Da die Eigenschaften ‚Sichtbarkeit‘ und ‚Bedienbarkeit‘ von Links nicht von ihrem Ziel vererbt werden, ist es nicht sinnvoll direkt Hardware-Instanzen zu verstecken oder zu deaktivieren.

HideControl

Versteckt/visualisiert ein vorhandenes Objekt oder dessen direkten Unterobjekte in Abhängigkeit einer Variable.
Dazu wird die Variable (1) mit den jeweiligen Wert aus (2) oder (5) verglichen.
Ist der Vergleich erfolgreich (= wahr) so wird das Ziel-Objekt (3) versteckt.
Optional kann der Parameter Invertieren genutzt werden um den Verleich umzudrehen.

Doku/HideControl_1.png
Doku/HideControl_2.png

  1. Die Variable welche zum Vergleich herangezogen wird.
  2. Sollte es sich bei 1 um eine Variable vom Typ ´boolean´ handeln, so ist hier der Vergleichswert einzutragen.
  3. Das Ziel welches versteckt werden soll.
  4. Hier kann festgelegt werden, ob nur das Ziel (3), oder dessen Unterobjekte versteckt werden sollen.
  5. Ist die Variable unter 1 nicht vom Typ ´boolean´ so ist hier der Vergleichswert einzutragen.
  6. Zeigt alle, beim Zustand aus, versteckten Unterobjekte.
    Es ist auch zu sehen, dass das erste Objekt nicht versteckt wurde, da es sich um einen Link zur Variable 1 handelt.

Achtung:
Befindet sich die Variable (1) auch unterhalb dem zu versteckenden Objekt, so ist diese im WebFront dann auch nicht mehr sichtbar.
Dies kann gewollt, aber auch hinderlich sein.
Darum kann alternativ unter 4 festgelegt werden, das nur Unterobjekte versteckt werden.
Bei dieser Einstellung wird beim verstecken geprüft, ob unter den Unterobjekten auch die Variable (oder ein Link zur Variable) enthalten ist.
Dieses Objekt wird dann nicht versteckt.

DisableControl

Deaktiviert/aktiviert ein vorhandenes Objekt oder dessen direkten Unterobjekte in Abhängigkeit einer Variable.
Dazu wird die Variable (1) mit den jeweiligen Wert aus (2) oder (5) verglichen.
Ist der Vergleich erfolgreich (= wahr) so wird das Ziel-Objekt (3) deaktiviert.
Optional kann der Parameter Invertieren genutzt werden um den Verleich umzudrehen.

Doku/DisableControl_2.png

  1. Die Variable welche zum Vergleich herangezogen wird.
  2. Sollte es sich bei 1 um eine Variable vom Typ ´boolean´ handeln, so ist hier der Vergleichswert einzutragen.
  3. Das Ziel welches deaktiviert werden soll.
  4. Hier kann festgelegt werden, ob nur das Ziel (3), oder dessen Unterobjekte deaktiviert werden sollen.
  5. Ist die Variable unter 1 nicht vom Typ ´boolean´ so ist hier der Vergleichswert einzutragen.
  6. Zeigt alle, beim Zustand aus, deaktivierten Unterobjekte im Objektbaum.
  7. Darstellung der deaktivierten Unterobjekte im WebFront.
    Es ist auch zu sehen, dass das erste Objekt nicht deaktiviert wurde, da es sich um einen Link zur Variable 1 handelt.

Achtung:
Befindet sich die Variable (1) auch unterhalb dem zu deaktivierenden Objekt, so ist diese im WebFront dann auch nicht mehr bedienbar.
Dies kann gewollt, aber auch hinderlich sein.
Darum kann alternativ unter 4 festgelegt werden, das nur Unterobjekte deaktiviert werden.
Bei dieser Einstellung wird beim deaktivieren geprüft, ob unter den Unterobjekten auch die Variable (oder ein Link zur Variable) enthalten ist.
Dieses Objekt wird dann nicht deaktiviert.

LinkHideControl

Erzeugt Links zu Unterobjekte eines ausgewählten Objektes und versteckt/visualisiert diese Links in Abhängigkeit einer Variable.
Die Links werden aus allen direkten Unterobjekten des Quell-Objektes (3) automatisch erzeugt.
Dabei werden versteckte Objekte im Quell-Objekt (3) ignoriert.
Zum Vergleich wird wieder die Variable (1) mit den jeweiligen Wert aus (2) oder (5) verglichen.
Ist der Vergleich erfolgreich (= wahr) so werden die vorher erzeugten Links versteckt.
Optional kann der Parameter Invertieren genutzt werden um den Verleich umzudrehen.

Doku/LinkHideControl_1
Doku/LinkHideControl_2

  1. Die Variable welche zum Vergleich herangezogen wird.
  2. Sollte es sich bei 1 um eine Variable vom Typ ´boolean´ handeln, so ist hier der Vergleichswert einzutragen.
  3. Das Quell-Objekt von dessen Unterobjekte Links erzeugt werden sollen.
  4. -entfällt-
  5. Ist die Variable unter 1 nicht vom Typ ´boolean´ so ist hier der Vergleichswert einzutragen.
  6. Zeigt die automatisch erstellen Links.

Achtung:
Diese Instanz ist für die direkte Visualisierung gedacht.

LinkDisableControl

Erzeugt Links zu Unterobjekte eines ausgewählten Objektes und deaktiviert/aktiviert diese Links in Abhängigkeit einer Variable.
Die Links werden aus allen direkten Unterobjekten des Quell-Objektes (3) automatisch erzeugt.
Dabei werden versteckte Objekte im Quell-Objekt (3) ignoriert.
Zum Vergleich wird wieder die Variable (1) mit den jeweiligen Wert aus (2) oder (5) verglichen.
Ist der Vergleich erfolgreich (= wahr) so werden die vorher erzeugten Links versteckt.
Optional kann der Parameter Invertieren genutzt werden um den Verleich umzudrehen.

Doku/LinkDisableControl_2.png

  1. Die Variable welche zum Vergleich herangezogen wird.
  2. Sollte es sich bei 1 um eine Variable vom Typ ´boolean´ handeln, so ist hier der Vergleichswert einzutragen.
  3. Das Quell-Objekt von dessen Unterobjekte Links erzeugt werden sollen.
  4. -entfällt-
  5. Ist die Variable unter 1 nicht vom Typ ´boolean´ so ist hier der Vergleichswert einzutragen.
  6. Zeigt die automatisch erstellen Links.

Achtung:
Diese Instanz ist für die direkte Visualisierung gedacht.

2. Voraussetzungen

  • IPS 5.1 oder neuer

3. Software-Installation

  • Über den Module Store das ‚Dynamic Visu Control‘-Modul installieren.

4. PHP-Befehlsreferenz

keine Funktionen verfügbar.

5. Parameter / Modul-Infos

GUID der Instanzen (z.B. wenn Instanz per PHP angelegt werden soll):

Instanz GUID
HideControl {A9347205-0889-4D01-BDD2-C377FC0E39D9}
DisableControl {61618A2B-D39D-4F1D-B27E-DEF2CF9452F9}
LinkHideControl {37BC47EE-E95A-4DAF-A408-129D778F7AB5}
LinkDisableControl {E94821F4-1647-440B-BB2A-76F8CF1CBB16}

Eigenschaften von HideControl:

Eigenschaft Typ Standardwert Funktion
Source integer 0 Quell-Variable welche zum Vergleich dient
ConditionBoolean integer 1 1 wenn bei Wert true von Source versteckt werden soll
ConditionValue string Vergleichswert für Wert von Source zum verstecken
Invert boolean false True wenn der Vergleich noch einmal invertiert werden soll
Target integer 0 IPS-Objekt-ID des Ziel-Objektes welche versteckt werden soll
TargetType integer 0 0 Wenn Target, 1 wenn dessen Unterobjekte versteckt werden sollen

Eigenschaften von DisableControl:

Eigenschaft Typ Standardwert Funktion
Source integer 0 Quell-Variable welche zum Vergleich dient
ConditionBoolean integer 1 1 wenn bei Wert true von Source deaktiviert werden soll
ConditionValue string Vergleichswert für Wert von Source zum deaktivieren
Invert boolean false True wenn der Vergleich noch einmal invertiert werden soll
Target integer 0 IPS-Objekt-ID des Ziel-Objektes welche deaktiviert werden soll
TargetType integer 0 0 Wenn Target, 1 wenn dessen Unterobjekte deaktiviert werden sollen

Eigenschaften von LinkHideControl:

Eigenschaft Typ Standardwert Funktion
Source integer 0 Quell-Variable welche zum Vergleich dient
ConditionBoolean integer 1 1 wenn bei Wert true von Source versteckt werden soll
ConditionValue string Vergleichswert für Wert von Source zum verstecken
Invert boolean false True wenn der Vergleich noch einmal invertiert werden soll
LinkSource integer 0 IPS-Objekt-ID welches verlinkt werden soll

Eigenschaften von LinkDisableControl:

Eigenschaft Typ Standardwert Funktion
Source integer 0 Quell-Variable welche zum Vergleich dient
ConditionBoolean integer 1 1 wenn bei Wert true von Source deaktiviert werden soll
ConditionValue string Vergleichswert für Wert von Source zum deaktivieren
Invert boolean false True wenn der Vergleich noch einmal invertiert werden soll
LinkSource integer 0 IPS-Objekt-ID welches verlinkt werden soll

6. Changelog

Version 3.00:

  • Release für IPS 5.1 und den Module-Store
  • IPS_SetProperty und IPS_Applychanges auf sich selbst entfernt

Version 2.02:

  • Fixes für IPS 5.0

Version 2.01:

  • Release für IPS 4.3

Version 2.0:

  • Release für IPS 4.1

Version 1.0:

  • Release für IPS 4.0

7. Spenden

Die Library ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert:

8. Lizenz

CC BY-NC-SA 4.0

Sehr geil… werd ich probieren sobald ich mir mal die 4.0 installiere.

Ich habe dann mal endlich die Screenshots und etwas Doku erstellt :rolleyes:

Und wem es dann auffällt: Man braucht nicht ein Stück PHP um diese Instanzen und die Funktionen zu nutzen :smiley:
‚Fast‘ nur noch zusammenklicken und fertig.

Michael

Da kann ich nur sagen Daumen hoch.

Ich finde es richtig cool das jetzt Elemente in IPS4 deaktivierbar sind.
So etwas gab es in 3.x nicht, wurde aber ja schon häufiger gewünscht.

Und da ich keinen Bock mehr hatte zig Scripte für mein WebFront zu pflegen, war es auch sehr Eigennützig; also eher ein ‚Abfallprodukt‘ :wink:
Michael

Hallo Nall chan,

seit dem ich die Version 4.1 installiert habe, kann ich keine neue Instanz mehr anlegen.
Ich bekomme immer folgende fehler Meldung.

DynamicVisuControl_Fehler.JPG

Gruß
Matzel

Hast du das Modul aktualisiert ?
Der Fehler wurde vor 4 Tagen behoben (hoffe ich).
Michael

Der Fehler kommt bei mir auch V4.0 v 18.07.

Das hat nichts mit der IPS Version zu tun.
Habt ihr die aktuellste Version vom Modul?
Michael

Hallo,

Beim „HideControl & DisableControl“ selber fehler. (Neuste Modul Version)
„LinkHideControl & LinkDisableControl“ Funktionieren.

PS. Danke für das Super Modul :loveips:

Gruß

OK danke für die Rückmeldung, schaue ich mir gleich mal an.
Testen kann ich selber aber gerade nicht :frowning:
Michael

So Bugfix ist online :slight_smile:
Freue mich auf Feedback, ob ich noch mehr kaputt gemacht habe :rolleyes:

Michael

Super Sache :smiley:
Seit dem Update keine Fehler mehr.

Gruß

geht wieder ohne Probleme :slight_smile:

Danke :slight_smile:

jep, danke !

Seit dem letzten Update funktioniert das Modul nicht mehr :frowning:

Unbenannt.JPG

Habe alles gelöscht und neu gemacht.

Leider ohne Erfolg :confused:

lg

Manuela

Welches Update? IPS oder das Modul?
Eigentlich habe ich den Fehler vor 4 Tagen gefixt.
Michael

Hey,
Habe noch nie erlebt dass in einem Forum so schnell reagiert :wink:

Habe nur dein Programm aktualisiert.

Nach dem erstellen kommt immer der Fehler.

Was kann ich von meiner Seite machen oder mache ich was falsch?

Gibts eine neue ips version?

Welche Instanz willst du genau erstellen? Dann schaue ich mir das an, habe da wohl dann doch noch einen Fehler drin.
Michael

Benutzen tue ich das disable control um Elemente auszublenden wenn man diese nicht benutzen darf.

Vor dem Update letzte Woche lief alles super…