Seite 1 von 1

#1 Threshold in Domiq dynamisch setzen

Verfasst: Do 8. Jan 2015, 22:08
von Beleuchtfix
ich versuche gerade verzweifelt, die Threshold in Logic zu setzen.
[code=c++]function t_soll_set(temp)
-- Setzt die Threshold Werte für Tag und Nacht
print(temp .." Uebergabe")
start = t_soll_threshold.value
print(start)
diff = temp-start
print(diff.." Aenderung")

command('C.LCN.threshold.0.40.4.2=current;change:'..diff)
-- command('C.LCN.threshold.0.40.4.2=current;change:-200')
print ('C.LCN.threshold.0.40.4.2=current;change:'..diff)
end[/code]
Ich habe jetzt den Wert ausgerechnet, um wie viel ich die Thresholds ändern möchte (die Variable diff) Die auskommentierte Zeile geht, wenn ich aber diff einsetze, dann erscheint im Busprotokol: M040 Schiebe Schwellwerte rel:Reg=4, Schwelle=2 +0.
Das Lua Print Statement gibt C.LCN.threshold.0.40.4.2=current;change:256 aus.:confused:
Was mache ich falsch?
Gruß
Florian, bei dem es langsam kühl wird.

#2 RE: Threshold in Domiq dynamisch setzen

Verfasst: Do 8. Jan 2015, 22:20
von mr_claus
Nach meiner Erfahrung bedeutet das Kommando C.LCN.threshold.0.40.4.2=current;change:256 eine Erhöhung des aktuellen Wertes um 25,6. Das verhält sich mit den Registern wohl etwas anders. Um welchen Wert möchtest Du denn erhöhen?

#3 RE: Threshold in Domiq dynamisch setzen

Verfasst: Do 8. Jan 2015, 23:40
von Beleuchtfix
Das ist auch genau das, was ich will. Mit der Erhöhung um 20° per direkter Zahl ging das, aber nicht, wenn ich die Variable verwenden wollte.
Gruß
Florian

#4 RE: Threshold in Domiq dynamisch setzen

Verfasst: Fr 9. Jan 2015, 00:22
von mr_claus
Woher kommt denn der Wert aus t_soll_threshold.value?
Hast Du es mal mit einer einfachen Rechnung probiert?

Code: Alles auswählen

diff = 200
command('C.LCN.threshold.0.40.4.2=current;change:'..diff)
print ('C.LCN.threshold.0.40.4.2=current;change:'..diff)

#5 RE: Threshold in Domiq dynamisch setzen

Verfasst: Fr 9. Jan 2015, 17:40
von Beleuchtfix
Ich habe heute einiges über den Domiq Support geklärt. Im Base ist ein kleiner Fehler, das Offset wird nur bis 1 Byte (254) ausgewertet. Beim Test von Hand war 200, der errechnete Wert aber 256 (also zu groß).
Beim Verrechnen muss man darauf achten, das Base zur Zeit keine schnelle Rückmeldung des neuen Wertes bekommt.

Gruß
Florian