FW 1.514 Bedingungsauswertung im HM-Skript

Fehler in Firmware und WebUI & Workarounds

Moderator: Co-Administratoren

Antworten
cartman
Beiträge: 1
Registriert: 27.04.2014, 10:22

FW 1.514 Bedingungsauswertung im HM-Skript

Beitrag von cartman » 27.04.2014, 10:33

Hallo,
ich habe seit dem Update ein verändertes Verhalten bei der Ausdrucksauswertung festgestellt. Zur Veranschaulichung habe ich folgenden Auszug aus meinem Skript. Dabei wird die Auswertung für "action1" erwartungsgemäß nicht ausgeführt. Jedoch wird seit der neuen Firmware die Auswertung für "action2" als Erfüllt angesehen, also ausgeführt. Durch eine zusätzliche Klammerung der beiden Statements funktioniert das ganze dann wieder erwartungsgemäß ( if ((x1 == 1.00) && (x == 1.00)). Ist auch sauberer aber anders sollte es nach der üblichen operator precedence auch funktionieren und hat es früher auch.

var x1 = 0.0;
var x = 0.9;

if (x1 == 1.00)
{
if (x == 1.00)
{
WriteLine("action1");
}
}

if (x1 == 1.00 && x == 1.00)
{
WriteLine("action2");
}

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: FW 1.514 Bedingungsauswertung im HM-Skript

Beitrag von paul53 » 13.07.2014, 17:54

cartman hat geschrieben:...aber anders sollte es nach der üblichen operator precedence auch funktionieren und hat es früher auch.
Ich kann mich nicht erinnern, dass

Code: Alles auswählen

if (x1 == 1.00 && x == 1.00)
schon einmal funktioniert hat. HM Script hat keine Priorisierung von Operatoren, sondern arbeitet jeden Ausdruck von rechts nach links ab.
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)

Antworten

Zurück zu „HomeMatic - bekannte Bugs“