Ich habe Module (z.B. GitHub - demel42/IPSymconWiffi: decode data from Wifi (stall.biz)), die auf der Konfigurationsseite
a) ein Auswahlfeld (‚Select‘), das ein ‚onChange‘-Aufruf haben, dem Felder der Maske übergeben werden, u.a. eine Variable ‚use_fields‘
b) ‚use_fields‘ ist Teil eines ‚ExpansionPanel‘, das am Anfang nicht geöffnet ist (‚expanded‘ ist nicht gesetzt)
Wenn ich die das ‚Select‘-Field ändere, also das ‚onChange‘ ausgelöst wird, gibt es diese Fehlermeldung
Der Fehler tritt nicht auf, wenn das ‚ExpansionPanel‘ am Anfang einmal geöffnet wird, egal ob manuell oder ‚expanded‘ = true
Es macht den Eindruck als würden Felder in einem nicht expandierten ExpasionPanel nur bei Bedarf erzeugt werden.
Ich bin mir ziemlich sicher, das es vor einigen Wochen noch nicht aufgetreten ist (sonst wäre das Dr. Niels beim Einreichen des Moduls bestimmt aufgefallen :D).
Fehler tritt auf mit IP-Symcon 5.4, Raspberry Pi, 31.01.2020, 011cf2caa315 und IP-Symcon 5.3, Ubuntu, 18.01.2020, 9f7a7907472e
das ist ein Bug. Wir müssten zum Fixen allerdings einiges ändern, daher wird der Fix wohl erst zur 5.4 kommen. Bis dahin hast du mehrere Möglichkeiten damit umzugehen:
Platziere das Element, welches die Variable nutzt in der gleichen Tiefe (oder tiefer) in deiner ExpansionPanel-Verschachtelung. Damit ist sichergestellt, dass die erforderlichen Werte vorhanden sind
Du kannst in der onChange-Methode per isset prüfen, ob die Variable existiert. Falls nicht, setzt du sie auf einen Standardwert. Je nachdem, wie deine Form aussieht, wird dies ja wahrscheinlich entweder die Property (im elements-Bereich) sein oder eine Konstante (im actions-Bereich)
Die beschriebenen Workarounds sollten weiterhin funktionieren. Ich muss zugeben, ich habe mich bisher nicht an diese Baustelle gesetzt. Zur 5.5 wird das wohl auch nichts mehr.