Danfoss Wandthermostat mit Danfoss Modul Syncronisieren

Hallo ich habe hier ein kleines Script was eure Wandthermostate von Danfoss mit dem Radiator von danfoss syncronisiert.

--[[
%% autostart
%% properties
243 value
%% globals
--]]

                ----Heizung Regeln----- 

local Thermostat = 243; ---Wandthermostat
local Radiator = 167;   ---Heizmodul
local Variable = "HeizungBad" --Globale Variable

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(Thermostat, "targetLevel")))
or
startSource["type"] == "other"
)
then
    fibaro:debug('Temperatur geändert, syncronisiere Radiator');
    fibaro:sleep(2000);
    local TempWertS = fibaro:getValue(Thermostat, "value");
    fibaro:setGlobal(Variable, TempWertS);
    fibaro:sleep(200);
    local TempWertL = fibaro:getGlobal(Variable);
	fibaro:call(Radiator, "setTargetLevel", TempWertL);
	fibaro:call(Radiator, "setTime", tonumber(os.time(t)) + 120*60);
    fibaro:debug('Temperatur Syncronisiert');
	
end

Es ist noch nicht ganz so wie ich es haben möchte, aber es erfüllt erstmal seinen zweck.
In dem Script müsst Ihr eine Variable anlegen, ich habe es noch nicht geschafft den Wert so ohne Variable zu übernehmen.

Achso ich habe ein paar Werte aus dem “Fenster auf Temperatur runter” Script übernommen.

Die Szene wird nur gestartet wenn ihr am Wandthermostat einen anderen Wert einstellt.
Das heißt wenn über ein Heizplan eine andere Temperatur im Radiator eingestellt wird, wird die Temperatur vom Wandthermostat dann nicht mehr beachtet.

Hi,

danke für deinen Code. :slight_smile:

Kleiner Hinweis: Nimm mal %autostart aus dem Header, die Szene muss nur bei Änderung von ID 243 getriggert werden.

Gruß

Ja hast recht

--[[
%% properties
243 value
%% globals
--]]
 
                ----Heizung Regeln----- 
 
local Thermostat = 243; ---Wandthermostat
local Radiator = 167;   ---Heizmodul
local Variable = "HeizungBad" --Globale Variable
 
local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(Thermostat, "targetLevel")))
or
startSource["type"] == "other"
)
then
    fibaro:debug('Temperatur geändert, syncronisiere Radiator');
    fibaro:sleep(2000);
    local TempWertS = fibaro:getValue(Thermostat, "value");
    fibaro:setGlobal(Variable, TempWertS);
    fibaro:sleep(2000);
    local TempWertL = fibaro:getGlobal(Variable);
	fibaro:call(Radiator, "setTargetLevel", TempWertL);
	fibaro:call(Radiator, "setTime", tonumber(os.time(t)) + 120*60);
    fibaro:debug('Temperatur Syncronisiert');
	
end

Danke schon mal für das Skript! Wie würde das Skript denn mit zwei/drei Modulen aussehen?

Hab in Zeile 10 folgende Änderung gemacht. Jedoch leider ohne erfolg.

local Radiator = 167, 123;

Gruß

Ich habe eine zweite Variable definiert z.B. Radiator2 und die Zeilen 26 und 27 kopiert und hinter Zeile 27 wieder eingefügt und die Variable entsprechend abgeändert.

Nachdem ich ein wenig mit dem Script gespielt habe, muss ich feststellen das es so nicht läuft. bei mir wird der nicht übertragen. wenn ich allerdings in Zeile 26 dem TempWertL durch TempWertS ersetze geht es. Allerdings geht es nur wenn der Raum nicht in den Heizplan eingebunden ist. Wenn er eingebunden ist wird die Temperatur innerhalb kurzer Zeit wieder auf die Temperatur aus dem Heizplan zurückgestellt. Wie kann dieses Problem gelöst werden?

In der Zwischenzeit habe ich das obige Problem selbst gelöst in dem ich meinen eigenen Heizplan erstellt habe und nicht mehr den HC2 Heizplan benutze. Jetzt kann ich die modifizierte Änderung des obigen Scripts verwenden und die am Raumthermostat manuell eingestellte Temperatur bleibt bis zum nächsten regulären Schaltzeitpunkt in den Thermostaten. Da ganze funktioniert mit unterschiedlichen Mischungen aus Danfoss und den Baugleichen Devolo Raum- und Heizkörperthermostaten. Nachfolgend das modifizierte Script, so wie ich es verwende um auch mehrere Heizungen zu Steuern.
Und, ja ich steuere meine Fussbodenheizung damit. Bisher hatte ich ein RWE System im Einsatz. Die Thermostaten ließen sich jedoch nur schlecht in der Verteilung unterbringen. Es waren viele Winkel und Verlängerungen nötig. Die Devolo/Danfoss passen prima nebeneinander auf die Ventile. Das einzige Problem ist die eigenständige Temperatursteuerung. Bei den RWE Stellgliedern wurde die Temperatursteuerung nur über die Raumthermostaten erledigt. Dies geht beim jetzigen System leider nicht. Abhilfe habe ich mir dadurch geschafft:

  1. Ich die internen Temperaturfühler entfernt habe und diese über die noch vorhandenen alten Leitungen zu den Bi-Metallstellern in den einzelnen Räumen, direkt angeschlossen
  2. Die neuen Raumthermostaten darüber montiert und die Thermoelemente unten ein wenig herausschauen lassen.

Somit sind zwar die Raumthermostaten überflüssig, aber Sie zeigen die aktuelle Temperatur an und ich kann manuell die Temperatur verstellen ohne Einstellungen im System machen zu müssen.

–[[
%% properties
388 value
%% globals
–]]

            ----Heizung Regeln----- 

local Thermostat = 388; --Wandthermostat
local HTT = 327; --Handtuchtrockner
local FBH = 402; --Fussbodenheizung

local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getValue(Thermostat, “targetLevel”)))
or
startSource[“type”] == “other”
)
then
fibaro:debug(‘Temperatur geändert, syncronisiere Heizungen’);
fibaro:sleep(2000);
local TempWertS = fibaro:getValue(Thermostat, “value”);
fibaro:debug(“Solltemperatur " …TempWertS… " Grad”);
fibaro:sleep(2000);
fibaro:call(HTT, “setTargetLevel”, TempWertS);
fibaro:call(HTT, “setTime”, tonumber(os.time(t)) + 120*60);

fibaro:call(FBH, “setTargetLevel”, TempWertS);
fibaro:call(FBH, “setTime”, tonumber(os.time(t)) + 120*60);

end

Hi,

Cooles Script, ich bastele auch schon ewig ohne echten Erfolg genau daran!
2 Fragen habe ich dazu:
_ bei dem Thermostat kann man durch Drücken des Knopfes oben Stunden einstellen. Hast Du herausgefunden, wie man das übernehmen könnte?
_ wie sieht denn Dein Script für den Heizplan aus?

Vielen Dank und Grüße
TT