Konsolenfehler bei fehlendem Attribut einer Darstellung

Wenn ich eine Darstellung „Aufzählung“ aus einem Modul heraus setzen möchte, dann bekomme ich beim Versuch, die Variable anschließend zu bearbeiten den Fehler:

Erst wenn ich die Eigenschaft „IconActive“ explizit setze, klappt es:

 [
                    'PRESENTATION' => VARIABLE_PRESENTATION_ENUMERATION,
                    'OPTIONS'      => [
                        [
                            'Value'       => 'off',
                            'Caption'     => 'Off',
                            'IconActive'  => false,
                        ],
                        [
                            'Value'       => 'pv',
                            'Caption'     => 'Only PV',
                            'IconActive'  => false,
                        ],
                        [
                            'Value'       => 'minpv',
                            'Caption'     => 'Min+PV',
                            'IconActive'  => false,
                        ],
                        [
                            'Value'       => 'now',
                            'Caption'     => 'Now',
                            'IconActive'  => false,
                        ]
                    ]
                ]
]

Andere Eigenschaften wie „IconValue“ und „Color“ sind dagegen optional. Sollte „IconActive“ nicht auch optional sein?

Zudem fände ich es nicht schlecht, wenn in der Doku die optionalen Parameter benannt würden.

Imho sind die Options nie Optional.
Und es ist ein JSON String. Was du vermutlich irgendwo im Code durch das Array erzeugen lässt :laughing:
Michael

Das sehe ich anders :slight_smile: Die Parameter sind ja auch optional, dann sollten die Optionen auch - dort wo sinnvoll - optional sein.

Momentan tue ich mich da etwas schwer.

Beispiel Schieberegler

Dort sind meiner Erfahrung nach alle Parameter optional. Bei den Intervallen bin ich mir nicht sicher, vermute aber, dass dort auch nicht wenige optional sind.

Hier würde ich mir wirklich wünschen, dass die optionalen Attribute gekennzeichnet sind. Momentan kann ich mich nur langsam herantasten, welche Attribute übergeben werden müssen und welche nicht. Das ist recht mühsam.

Auch da würde ich eher vermuten daß nix der direkten Parameter optional ist.
Und wenn INTERVALS_ACTIVE gesetzt auch kein Feld in INTERVALS optional ist.
Michael

Das habe ich ausprobiert. Um zum Beispiel nur das Suffix auf ’ %’ zu setzen, reicht es, nur den SUFFIX zu setzen. So ist es auch gut.

Aktuell sind in verschachtelten Strukturen wie Optionen oder Intervallen keine Parameter optional. Auf der Hauptebene sieht es anders aus, da hat jeder Parameter einen Standardwert auf den bei Bedarf zurückgefallen wird.

Es ist bestimmt nochmal sinnvoll auch die verschachtelten Strukturen anzupassen, sodass auch dort auch Standardwerte zurückgefallen wird, das ist aber bisher einfach nicht geschehen. Wenn also dort das Auslassen einzelner Felder trotzdem funktioniert ist das einfach Glück, nicht bewusst so gebaut.

Danke für die Klarstellung. Das hilft mir schon mal weiter. Schön wäre es, wenn es auch dokumentiert wird. Zumindest habe ich nichts gefunden.

Bei den verschachtelten Strukturen halte ich es auch für sinnvoll, sie optional zu machen. Das erleichtert die Programmierung sehr und macht es für den Modulentwickler übersichtlicher.
Auch für zukünftige Erweiterungen ist es eigentlich zwingend.

Schön, wenn ihr das im Auge behaltet.