Skip to content

Verbesserung der Behandlung von Leerzeichen mit MQTT #185

@martinrieder

Description

@martinrieder

Wie in #173 (comment) bereits gezeigt kann es im Zusammenhang mit den Funktionen parseJSON und ParseFloat zu unerwünschtem Verhalten kommen. Folgende Verbesserungen schlage ich daher vor:

  1. Die Typsicherheit von parseJSON muss gewährleistet sein, insbesondere bei Verwendung in Benutzereingaben als TEMPLATE (vgl. MQTT-Dimmer und -Analogwertempfänger: Mehr Möglichkeiten um den Wert zu extrahieren #70).
  2. Der an ParseFloat übergebenen String darf keine vorangestellten oder nachfolgenden Leerzeichen enthalten (sog. Trim Whitespace), um weitere ähnliche Probleme mit anderen Extraktoren zu vermeiden.
  3. Die irreführende Fehlermeldung im Debug Log ("Template returned invalid number literal") sollte berichtigt werden, da fval nicht berücksichtigt wird.
  4. Wenn Fehlermeldungen einen String referenzieren, sollte dieser generell in Anführungszeichen gesetzt sein.

Zu 1. möchte ich hinzufügen, dass ich mit der etwas ungewöhnlichen Syntax nicht vertraut bin, aber ich denke, dass die doppelt geschweiften Klammern um den Ausdruck (z.B. {{(parseJSON .).a_act_power}}) herum erzwungen werden müssen. Sofern sie nicht vom Benutzer eingegeben wurden, sollten sie einfach programmatisch hinzugefügt werden, um die "Typsicherheit" zu erhalten. Ich verstehe aber nicht genügend Golang, um diese Vermutung bewerten zu können.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions