FAQ & Troubleshooting
Ein Wert wird nicht oder falsch gesetzt, obwohl die Formel richtig aussieht.
Meist fehlt ein ;. Jede einzelne Formel muss mit ; abgeschlossen sein. Der Interpreter trennt Anweisungen nur am ;, Zeilenumbrüche werden beim Laden zu Leerzeichen. Aus
ITEM.POWER:=R.0.FLOAT
ITEM.ENERGY:=R.2.FLOAT/1000;
wird so die eine ungültige Anweisung ITEM.POWER:=R.0.FLOAT ITEM.ENERGY:=R.2.FLOAT/1000;. Typische Folgen: Das erste Item bleibt leer oder hat einen falschen Wert, die folgende Anweisung wird nicht ausgeführt, und bei Bedingungen greift der falsche Zweig.
So prüfen Sie:
- Jede Zuweisung und jeder Funktionsaufruf endet mit
;. ENDIF;,ENDSWITCH;,ENDFOR;haben ein;.- Die letzte Anweisung einer einzeiligen Zelle hat ebenfalls ein
;("""SUBSCRIBE.F:=1;"""). - Mit
DEBUG(…);direkt hinter der verdächtigen Stelle sehen Sie, ob sie erreicht wird.
Auch in Original-DDF kommt der Fehler vor. In der LEDSTRIP-DDF steht z. B. in einem Effektzweig CF1 := STP+ 2 ohne ;.
Das Gerät liefert keine Werte (.Q bleibt 0).
- MODBUS: IP/Port, Unit-ID (
SLAVE), Funktionscode (FC3 vs. FC4) und Adressoffset prüfen. - Seriell: Baudrate, Parität, Stoppbits. Bei SERCOM zusätzlich die Delimiter.
- REST:
DEBUG(R.HTTP_CODE, R.URL);. IstDOMAINmithttp://angegeben? - MQTT:
.MQTT_CONNECTION, Broker-URLtcp://…:1883, Topic-Schreibweise.
FLOAT-Werte sind unsinnig groß oder klein.
Die Wortreihenfolge ist falsch. WORDORDER umstellen (und ggf. BYTEORDER).
Mein Schreibwert kommt nicht am Gerät an.
Die WFORMULA muss die Sendedaten setzen und <ALIAS>.F := 1;. Die Schreibfunktion braucht einen gültigen Funktionscode (FC6/FC16) bzw. eine Methode.
Der *INIT-Block wird ignoriert.
Der Loader kennt *INIT nicht. Verwenden Sie DEFAULT in *ITEM oder eine Formel mit Merker (IF init == 0 THEN … init := 1; ENDIF;).
Meine SVG-Vorlage wird nicht gezeichnet.
aliassteht nicht im<svg>-Tag oder ist anders geschrieben als impaintSVG-Aufruf.paintSVGhat weniger als 7 Parameter.- Im SVG steht ein
", das das CSV-Feld beendet. GUI.setWindowfehlt oder passt nicht zur Kachel.
Ein Element wird nicht angezeigt.
Prüfen Sie visibility (Ausdruck = 0?), nicht unterstützte Elemente (<image>, <tspan>, <use>), Transformationen außer rotate und Platzhalter in d/points (werden nicht ersetzt).
fillEllipse zeichnet nichts.
Mit weniger als 7 Parametern wird nicht gefüllt. Verwenden Sie GUI.fillEllipse(x,y,w,h,farbe,0,farbe);.
fillSvgPathD füllt nicht.
Die Füllfarbe braucht ein Alpha-Byte > 1, z. B. 0xFF2DB42D.
Texte sind zu groß oder zu klein.
font-size aus CSS-Klassen wird durch 1,4 geteilt, als Attribut nicht. In GUI.text wird die Höhe mit der Skalierung gedämpft. Verwenden Sie relative Größen über $.GUI.FONTLABEL * Faktor.
Klicks öffnen trotzdem die Detailseite.
In SVGEVENT muss $.MOUSE.HANDLED := 1; gesetzt werden.
OCPP-Station bleibt bei der RFID-Autorisierung hängen.
Die Formel AUTHORIZE muss CP.AUTHORIZE_STATE auf 1 oder -1 setzen.
Signatur ungültig.
Nach dem Signieren wurde die Datei verändert (auch Leerzeichen/Zeilenenden), oder *SIGNATURE ist nicht die erste Sektion.
SAVE_JSON speichert nicht.
Der Aufruf ist auf 2× pro Stunde begrenzt.
GUI.showInputDialog öffnet nichts oder kennt das Format nicht.
Der Parameter muss ein bereits geladener varmap-Alias sein (wie bei $.VAL.<alias>), relativ ('roomtemp') oder absolut ('systems.demo.roomtemp'). Vorher z. B. mit $.ISVAL.… prüfen bzw. den Alias lesen.
Wie blende ich Bedienelemente je nach Anmeldeberechtigung aus?
Nutzen Sie $.GUI.LOGINLEVEL: 0 nicht angemeldet, 1 User, 2 Techniker (Parameterebene), 3 Installateur. Beispiel – Edit-Symbol ab Techniker:
IF $.GUI.LOGINLEVEL >= 2 THEN
GUI.paintSVG('Edit',0,0,40,40,0,'X','');
ENDIF;
Die Kachel zeigt einen roten Text statt der Grafik.
Die SVGANIMATE-Formel ist ungültig. Das Widget zeigt bis zu drei Zeilen der Parser-Fehlermeldung. Prüfen Sie fehlende ;, ungeschlossene IF/ENDIF und Tippfehler in Funktionsnamen. Ein ungültiges SVGEVENT erzeugt keine solche Anzeige.