Durch Bildung von Nachkommastellen "weit hinten" bei der Verwendung von Meßwerten funktionieren Vergleichsoperationen in HM Script manchmal nicht wie erwartet.
Code: Alles auswählen
string raum = "Wohnen";
var x;
x = dom.GetObject(raum#".Sensor").DPByHssDP("TEMPERATURE").Value();
WriteLine(x);
x = x - 12.1;
WriteLine(x);
if (x == 0.0) {WriteLine("Vergleich o.k.");}
else {WriteLine("Vergleich falsch");}
WriteLine(x * 100000);
Ausgabe:
Workaround: Verwendung von Systemvariablen als Zwischenspeicher für Meßwerte. Bei Verwendung von Systemvariablen als Zwischenspeicher habe ich das fehlerhafte Verhalten noch nicht beobachtet. Das Zwischenspeichern in SV ist aufgrund der Reboot-Problematik (Initialisierung der Meßwerte auf 0 bei Reboot) ohnehin zu empfehlen.
Oder in String und wieder zurück wandeln:
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)