Heizung über Raumthermostat steuern (Danfoss/HC2)

Hallo,
irdendwie finde ich nirgendwo etwas zu einer Raumheizungssteurung, nur zur Fußbodenheizung oder zum Heizplan.
Situation: Danfoss/Devolo Raumthermostat und 3 Heizkörper mit Danfoss LC13-Ventilen.
Im Heizplan kann ich die zu einer Zone zusammenfassen, aber dann gelten die dort eingegebenen Werte und nicht die am Thermostat eingestellten. Der misst dann scheinbar nur, steuert aber nichts.
Über Verknüpfungen – Heizung kann ich den Raumthermostat als Hauptsensor auswählen, bei den zu steuernden Modulen bekomme ich dann aber nur elektrische Schalter zu sehen, nicht die LC 13.
Ich möchte halt eine bestimmte Regelung nach Heizplan, aber auch bei Gelegenheit (z.B. wenn es Abends mal später wird) die Temperatur auch manuell über den Raumthermostaten anpassen können.
Bei Devolo geht das einfach über die „Gruppierung“ der Module. Müsste mit Fibaro HC2 doch auch hinzukriegen sein?
Freue mich über jeden Tipp oder Link!
Gruß TT

Hi,

das kannst du mit LUA auf jeden Fall umsetzen. Dazu musst du dir “nur” eine Szene schreiben, welche durch die Änderung der Wunsch-Themperatur am Raumthermostat getriggert wird. Diese setzt dann den Heizplan außer Kraft und stellt die gewünschte Temperatur an den Heizkörpern ein.

Gruß

Hi,

cool, hätte nicht gedacht, dass die Lösung so einfach ist! Vielen Dank!

Aber im Ernst: hatte gehofft, nicht der einzige zu sein, der einen Thermostat zur Steuerung einsetzen möchte?
Außerdem wäre es ja schön, wenn der Heizplan spätestens bei der nächsten Umschaltung wieder greifen würde, die Erhöhung eben nur temporär läuft.
Leider sind meine LUA-Kenntnisse mikroskopisch klein im Vergleich zu denen vieler Autoren hier, so dass ich ein bisschen auf ein anzupassendes Script gehofft hatte, das schon mal jemand für sich entwickelt hat…
In einem Post von Crisxcross zu einem anderen Thema hatte ich nebenbei gesehen, dass er offenbar Temperaturen in Variable schreibt?

Gruß
TT

Sorry,

das ist ein Einzeiler :wink:

Nach 2 Stunden wird automatsich der Heizplan wieder aktiv, wenn du Werte an dem Thermostat manuell gesetzt hast :wink:

Gruß

Ööööhhhh,

so richtig verstehe ich nicht, was Du mir sagen willst???
Ist meine Frage so doof?
Gruß TT

Szene durch das Raumthermostat triggern und die eingestellten Werte an die Thermostate senden. Ohne jegliche weitere Prüfung. Nach 2 Stunden greift dann wieder der Heizplan.

Das wollte ich damit sagen…

Gruß

Ok, vielen Dank.
Wahrscheinlich bin ich zu blöde für dieses Forum.
Melde mich wieder, wenn ich LUA gelernt habe, mit graphischen Szenen bekomme ich das nicht hin.
Gruß TT

Wenn ich dir jetzt die Lösung posten würde, dann wärst du auch nicht schlauer :wink:

Schau dir mal die folgenden Befehle an (eigentlich ist das schon die Lösung oO), damit setzt du die Werte “Temperatur Raumthermostat” und 2 Stunden…

fibaro:call(ID_thermostat, "setTargetLevel", fibaro:getValue(ID_raumthermostat, "value"))
fibaro:call(ID_thermostat, "setTime", "2")

Gruß

Hi boomx,

vielen Dank für Deinen Tipp! Ich habe es mal so versucht, klappt aber nicht wirklich.
Wie gesagt, Lua fällt mir noch nicht so leicht, besonders bei der Syntax tue ich mich schwer. Die meisten meiner Szenen holpern deshalb noch, aber ich bleibe dran.
Dabei hilft dieses Forum wirklich ungemein, zu fast allem habt Ihr Tipps, großartig!

So habe ich es mir gebastelt:

--[[
%% properties
102 targetLevel
%% events
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(102, "targetLevel")) > 0 )
or
startSource["type"] == "other"
)
then
	fibaro:call(99,170,210, "setTargetLevel", , fibaro:getValue(102 ,"value"))
	fibaro:call(210, "setTime", "2");
	
end

Zum Starten der Szene wäre es vielleicht schlauer, Ist uns Sollwert zu vergleichen?


if (
 ( tonumber(fibaro:getValue(102, "targetLevel")) ~= fibaro:getValue(102 ,"value") )

Leider verstehe ich nicht, warum meine Szene nicht läuft…

Gruß
TT

Gruß TT

Hi,

du kannst nicht mehrere IDs in einen Befehl schreiben.

Wenn dann muss das so aussehen:

fibaro:call(99, "setTargetLevel", fibaro:getValue(102 ,"value"))
fibaro:call(170, "setTargetLevel", fibaro:getValue(102 ,"value"))
fibaro:call(210, "setTargetLevel", fibaro:getValue(102 ,"value"))

Gruß

Hi,

vielen Dank für den Tipp! Hab´s jetzt so gemacht.

--[[
%% properties
102 targetLevel
%% events
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(102, "targetLevel")) ~= fibaro:getValue(99 ,"value" )

then
	fibaro:call(99, "setTargetLevel", fibaro:getValue(102 ,"value"))
	fibaro:call(99, "setTime", "2");
  fibaro:call(170, "setTargetLevel", fibaro:getValue(102 ,"value"))
	fibaro:call(170, "setTime", "2");
  fibaro:call(210, "setTargetLevel", fibaro:getValue(102 ,"value"))
	fibaro:call(210, "setTime", "2");
  
	end

Blöderweise ist seit 4.081 mein Thermostat verriegelt! Der hat eine Kindersicherung, läuft über Command_Class_Protection, keine Ahnung, warum das jetzt so ist oder wie ich das Zurückstelle…Gerätevorlage von Fibaro?
Gruß + Danke, dass Du auch um diese Uhrzeit noch online bist!
TT

Ach ja: an dem Thermostat kann ich außer der Temperatur auch Stunden einstellen. Das ist dann wohl die Zeit, die wir oben mit 2 Stunden angegeben haben.
Würde das also auch über eine Assoziation gehen? Die übermittelte Zeit kann ich ja mit Lua nicht auslesen, zumindest ist dazu bei Danfoss nichts dokumentiert…

Aber erst mal muß ich das Ding entriegelt bekommen.

LG TT

Jo, kein Problem :slight_smile:

Seit einer bestimmten Version gibt es in den erweiterten Einstellungen des Gerätes eine “Control Protection”. Damit ist das Gerät sozusagen gesichert und kann nur mit einer bestimmten Tastenkombination entsichert werden. Schau mal nach auf was das Thermostat eingestellt ist. Vielleicht ist das der Grund.

Gruß

Hi,

da gibt es eine Einstellung “ungeschützt/Vorgang nicht möglich”, hat nicht geholfen. Letztendlich ging es über includieren / excludieren des Thermostaten.
Wenn ich jetzt aber eine Temperatur einstelle, passiert an den Heizkörperthermostaten leider gar nichts. IDs habe ich überprüft, Script im Debug ohne Fehler (oben war noch eine Klammer zu viel in Zeile 9).
Hast Du noch eine Idee?
Liebe Grüße
TT

Die Temperatur wird erst übertragen, wenn das Modul aufgewacht ist. Also innerhalb von 15 min.

Gruß

Hallo zusammen,

bin ja auch ganz neu hier und habe 17 Heizkörper, die ich programmieren möchte, so ca. 4 - 5 verschiedene Temperaturen zu verschiedene Uhrzeiten am Tag (z.B. 5.00 Uhr morgens 28 °C, 8 Uhr 18 °C, 15.30 Uhr 24 °C und 22.00 Uhr 16.00 °C), Und das nochmals abgeändert für das Wochenende.

Jetzt habe ich das erste Thermostat über Blockszenen “programmiert”. Das wird aber sehr schnell unübersichtlich, kann man sowas auch in einer Szene über Lua machen? Wenn ja wie? Hatte “TT” mikroskopisch wenig Erfahrung mit LUA, sind meine in etwas so groß wie ein Atommolekül. Kann ich die erste Blockszene die ich habe einfach in LUA umwandeln und dann ergänzen?

Sorry, wenn ich mich da etwas kompliziert ausdrücke, ich hoffe Ihr wisst was ich meine.

Hi Dirk68,

das geht wirklich einfach über den Heizplan (unter Steuerungen), wichtig ist halt, dass Du jeden Heizkörper dem entsprechenden Raum zuordnest.
Ansonsten ist das für den Einstieg super, Blockszenen anzulegen und die in LUA umzuwandeln, wenn sie funktionieren. Mache ich genauso.

Wenn Du einen Thermostaten hast hier mein mittlerweile aus irgendwelchen Gründen funktionierendes Script:

--[[
%% properties
269 TargetLevel
%% events
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(269, "TargetLevel")) ~= fibaro:getValue(99 ,"value")))

then
      fibaro:debug(" Solltemperatur geaendert" );
	fibaro:call(99, "setTargetLevel", fibaro:getValue(269 ,"value"))
	fibaro:call(99, "setTime", "2");
  fibaro:call(170, "setTargetLevel", fibaro:getValue(269 ,"value"))
	fibaro:call(170, "setTime", "2");
  fibaro:call(210, "setTargetLevel", fibaro:getValue(269 ,"value"))
	fibaro:call(210, "setTime", "2");
      fibaro:debug("Temperatur im Thermostat geaendert" );
  
	end

boomx was bringt es wenn die Temperatur trotzdem von den Ventilen an der Heizung gemessen wird, und nicht von separaten angebrachten Thermostat an den ich z.B. die Temperatur messen will ( in einer anderen Ecke), so könnte ich meinen Raum den ich beheizen will besser einstellen. :slight_smile:
Das Skript von TT geht so nicht. :frowning:
Auch dein 2 Zeiler hat keine Wirkung auf das, du setzt nur den Heitz plan außer Kraft.
Doch die Temperatur wird von den Heizkörper Thermostaten gemessen Danfoss, diese geben die Temperatur weiter und senden die Temperatur an den Thermostat an der Wand.
Kann man es nicht anders machen, so das der Thermostat an der Wand misst.

Habe mir ein heat it und ein Danfoss Steuerelement besorgt.
Ich habe heute schon mal :
Das heat it war schön zu inkludieren alles übernommen. :slight_smile:
Sobald ich es in einen Raum verschoben habe hat es nach ca.20Sek. die Werte des Heitz planes komplett übernommen und das ohne Scene, und ohne Zuordnung das es Haupt Thermostat für diesen Raum sein sollte.
Aber was bringt es wenn es nicht selber messen kann nur Werte empfangen.:frowning:

Hi,

sorry. Ich versteh deine Frage jetzt nicht wirklich. Die Danfoss Thermostate haben einen eingebauten Temperatursensor, welcher die eingestellte Temperatur hält. Dieser kann auch nicht umgangen werden.

Gruß

Ok dann bin ich jetzt belehrt.
Jetzt sind beide Thermostate im rennen.
Frage warum geht die Scene nicht.
Schaltet zwar die eingestellte Temperatur um aber dann gleich wieder ab und geht in den Heitzplan über.
Habe die 2 für 2 Stunden,gedacht auch schon mal mit 7200sek laufen lassen das selbe,geht wieder in den Heitzplan über das ist mit den heat it.
Aber das sollte keine Rolle spielen.
Mit was für einen Thermostaten das laufen sollte.