Systemvariablen ändern ihren Typ je nach Inhalt (float <-> int))


#1

Die Systemvariablen ändern ihren Typ je nach Inhalt. Die folgende Systemvariable ist als float definiert, sobald aber ein ganzahliger Wert drin steckt, wird sie zu int.


#2

Hallo,

das habe ich auch schon beobachtet. Anscheinend haben Homegear-Variablen keinen direkt festgelegten Typ, sondern sind eine Art “Variant”.

Um dieses Issue zu vermeiden, setze ich im PHP Code mit “settype” immer explizit den Typ von Variablen z.B. auf float, bevor ich diese dann mit setSystemVariable in eine Homegear Variable schreibe.

Das funktioniert bis jetzt bei mir zuverlässig und ist besonders wichtig, wenn man dann den Inhalt der Homegear Variablen in einer influxdb-Datenbank historisieren möchte.

Ich hoffe, das hilft Dir schon weiter.

Viele Grüße

FiveEights


#3

Leider nein, da ich beim Testen von node-blue darauf gestossen bin.

Mir ist das halt aufgefallen, dass die switch-node manchmal zickig ist. Ein Wert ==(boolean)true funktionierte nicht, erst als ich “is true” als Operation angegeben habe ging es.

Da ich einen weiteren switch habe, der nicht zuverlässig funktioniert ist mir das aufgefallen. Der vergleicht halt mal int mit float und mal float mit float.