nachdem ich einige Jahre ohne Hilfe ausgekommen bin und mir vieles selbst aneignen konnte, hört es hier jetzt doch auf und ich brauche euere Hilfe.
Ich habe folgendes Problem:
Eine Systemvariable (Waermepumpe_Freigabe), ist als bool definiert (true/ false).
Nun soll folgende Logik in einem Script ablaufen:
Wenn "Ventilposition" = State(n) > 150, dann waermepumpeFreigabe.State(true)
Wenn Wenn "Ventilposition" = State(n) < 140, dann waermepumpeFreigabe.State(false)
Wenn "Ventilposition" = State(n) zwischen 140 und 150 dann belasse den vorher aktiven Zustandan (z.B war vorher >150 dann bleib bei "true" oder wenn er vorher <140 war dann belasse ihn auf "false" aber ändere ihn dementsprechen wenn er die Grenzwerte 150 bzw. 140 über/ unterschreitet)
Das ganze soll an den folgenden Code angehängt werden:
Code: Alles auswählen
!a: Flur
!b: Gaeste WC
!c: Keller_Flur
!d: Kueche
!e: OG_Bad
!f: Waschkueche
!g: OG_Rechts
!h: Schlafzimmer
!i: OG_Links
!j: Wohnzimmer_Links
!k: Wohnzimmer_Rechts
var a = dom.GetObject("HmIP-RF.XXXXXXX:1.LEVEL").Value();
var b = dom.GetObject("HmIP-RF.XXXXXXX:1.LEVEL").Value();
var c = dom.GetObject("HmIP-RF.XXXXXXX:1.LEVEL").Value();
var d = dom.GetObject("HmIP-RF.XXXXXXX:1.LEVEL").Value();
var e = dom.GetObject("HmIP-RF.XXXXXXX:1.LEVEL").Value();
var f = dom.GetObject("HmIP-RF.XXXXXXX:1.LEVEL").Value();
var g = dom.GetObject("HmIP-RF.XXXXXXX:1.LEVEL").Value();
var h = dom.GetObject("HmIP-RF.XXXXXXX:1.LEVEL").Value();
var i = dom.GetObject("HmIP-RF.XXXXXXX:1.LEVEL").Value();
var j = dom.GetObject("HmIP-RF.XXXXXXX:1.LEVEL").Value();
var k = dom.GetObject("HmIP-RF.XXXXXXX:1.LEVEL").Value();
var l = a+b+c+d+e+f+g+h+i+j+k;
var m = l*100;
var n = m.ToInteger();
dom.GetObject("Ventilposition").State(n);
Mein bisheriger Ansatz, welcher aber nicht funktionier:
Code: Alles auswählen
var waermepumpeFreigabe = dom.GetObject("Waermepumpe_Freigabe");
if (n > 150) {
waermepumpeFreigabe.State(true);
} else if (n < 140 || (waermepumpeFreigabe.State() && n >= 140)) {
waermepumpeFreigabe.State(false);
} else if (waermepumpeFreigabe.State() && n < 140) {
waermepumpeFreigabe.State(false);
}
Vielen Dank im Voraus