Frage zu Darstellung: VARIABLE PRESENTATION ENUMERATION

Guten Abend,
ich erstelle gerade ein neues Modul.

Hier möchte ich einer IntegerVariable die Darestellung:
„'VARIABLE_PRESENTATION_ENUMERATION“ zuweisen, das funktioniert soweit auch mit: ‚PRESENTATION‘ => VARIABLE_PRESENTATION_ENUMERATION

Was ich aktuell noch nicht geschaft habe: Wie kann ich die Werte in den Darstellungsparametern (roter Bereich) mit Angeben, das diese dort hinterlegt werden? z.B. andere Beschriftungen?

Mein Befehl bisher lautet:

$this->RegisterVariableInteger("select_modus","Modus",['PRESENTATION' => VARIABLE_PRESENTATION_ENUMERATION, 'USAGE_TYPE' => 5, ],9);
$this->EnableAction("select_modus");

Im Thread / Post von KaiS habe ich dann einen Hinweis gefunden:
https://community.symcon.de/t/testing-modul-shelly-v2/140756/53?u=daste

Mithilfe der Info habe ich getestet, auch wenn die PRESENTATION eine andere war in dem Beispiel.
Letztendlich konnte ich den richtigen Dokueintrag dann unter nachfolgendem Link finden:

Beispiel:

  $this->RegisterVariableInteger('select_modus', "Modus", [
            'PRESENTATION'    => VARIABLE_PRESENTATION_ENUMERATION,
            'OPTIONS'         => json_encode([
                [
                    'Value'            => 0,
                    'Caption'          => 'Manuell',
                    'IconActive'       => true,
                    'IconValue'        => 'hand',
                    'Color'            => 52651,
                ],
                [
                    'Value'            => 1,
                    'Caption'          => 'Automatik',
                    'IconActive'       => true,
                    'IconValue'        => 'arrows-rotate',
                    'Color'            => 52651,
                ],
                [
                    'Value'            => 2,
                    'Caption'          => 'Wochenplan',
                    'IconActive'       => true,
                    'IconValue'        => 'calendar-week',
                    'Color'            => 52651,
                ],
            ]
                )
        ], 9);

Die Doku stimmt aber nicht ganz mit den Optionen überein die ich habe.
z.B. funktioniert die Option "Icon nicht, hier muss man „IconValue“ nutzen bzw. setzen damit es funktioniert

2 „Gefällt mir“

Passen wir in der Doku entsprechend an.
Hier ist übrigens der Eintrag, der für Entwickler gedacht ist.

1 „Gefällt mir“

Also irgendwie ist da noch der Wurm drin.
Die Doku vermittelt den Eindruck, dass die Felder bei den OPTIONS für Wertanzeige (VARIABLE_PRESENTATION_VALUE_PRESENTATION) und Aufzählung (VARIABLE_PRESENTATION_ENUMERATION) nicht übereinstimmen.

Mal ist es IconValue, dann Icon, dann Color oder doch ColorValue?

Folgende Fehlermeldung der Konsole bei öffnen einer Variable mit der Darstellung Wertanzeige, wenn man sich an die Doku hält:

Warning: Undefined array key "IconValue" in C:\IP-Symcon\presentations\valuePresentationForm.php on line 908

Warning: Undefined array key "ColorValue" in C:\IP-Symcon\presentations\valuePresentationForm.php on line 909

Laut Doku gibt es aber das hier:
Links Wertanzeige und rechts Aufzählung
imageimage

IconValue gibt es bei Wertanzeige laut Doku nicht, will Symcon aber haben → Doku falsch
Color muss bei Wertanzeige ColorValue sein → Doku falsch
Man beachte auch das Leerzeichen bei Color Active → Doku falsch

Guter Fund. Bin Doku und Funktionalität durchgegangen. Passe die Doku entsprechend an. Bei den Optionen der Aufzählung bleibt es bei nur „Color“.

Anstatt alles neu zu erfinden, konvertieren ich gerne alte Profile und lasse mir das Ergebnis mit IPS_GetVariable ausgeben.
Ich habe es jetzt nicht noch mal geprüft, glaube aber auch das beim konvertieren von legacy Profil in eine Wertanzeige das Feld Color und ColorActive gesetzt wurde.
Michael

1 „Gefällt mir“

Habe Gerade eine Bool Variable mit ~Door Profil und ohne Aktion in eine Darstellung konvertiert. Das sind die Options:
[{„Value“:false,„Caption“:„Geschlossen“,„IconActive“:false,„IconValue“:„“,„ColorActive“:true,„ColorValue“:-1},{„Value“:true,„Caption“:„Geöffnet“,„IconActive“:false,„IconValue“:„“,„ColorActive“:true,„ColorValue“:255}]

Für mich sieht das richtig aus.

1 „Gefällt mir“