Steuerung meiner Zirkulationspumpe für Brauchwasser

Hallo Zusammen,

ich möchte die Pumpe an meiner Wasserzirkulationsleitung smart machen. Bisher hatte ich eine simple Zeitschaltuhr dran.

Folgende Dinge soll es berücksichtigen
• Unterschiedliche Startzeiten frühmorgens (selbst unterhalb der Woche) --> Zeiten sind im Heizplan abgebildet
• Einbeziehung von Feiertagen => Sonntagszeit (Feiertagsvariable ist im Einsatz)
• Einbeziehung des Abwesenheitsstatus (Abwesenheitsvariable ist im Einsatz)

Wie bekomme ich das jetzt alles am besten zusammen?

Grüße
Carsten

Hi,

Die Zeitschaltuhr kann ich direkt an der Pumpe deaktivieren und habe dann einen WallPlug genutzt.
Mittels LUA (oder auch Block-)Szenen lässt sich individuell vorgeben, wann die Pumpe laufen soll.

Viele Grüße Hoggle

Hi, also ein Wallplug o.ä. war schon klar.

Aber wie bekomme ich die Zeiten und Abhängigkeiten am besten rein? Blockszene wird wahnsinnig komplex. Lua wäre besser lesbar etc. aber da wären ja alle Zeiten hart gecodet. Hmmm…

Grüße
Carsten

Ja, in LUA legst du die Zruten je Tag bzw. Feiertag fest.

Auch in Block sind die Zeiten hart gecodet

Hi,

wir hatten zuerst auch versucht das über Zeiten zu lösen, was aber nicht wirklich funktionierte da doch jeder Tag anders ist und entweder war es oft kalt oder die Pumpte lief einfach so obwohl alle schon weg waren.

Funktioniert haben Bewegungsmelder vor den “Verbraucher-Zimmern (bad, wc, küche)” - wenn Bewegung dann “kurz” anspringen.
Das “kurz” musste ausgetüftelt werden - bei uns reicht 1minute.
Ergebnis: Pumpe läuft eigentlich nie und wir haben immer sofort warmes Wasser wenn nötig.

Gruß.

Aktuell habe ich 2 Blockszenen, die ganz rudimentär jetzt zeitgesteuert die Pumpe an und aus schalten.

Wir haben daheim aber auch diskutiert, ob wir diese nur im Bedarfsfall (manuell oder zum Beispiel per Bewegungsmelder) anschalten. Dazu müssten wir aber eben auch austüfteln, wie lang das Wasser brauch bis es warm ist.

Oder, ob ich eine Variable (“Zirkulationspumpe an”) anlege, die ich in diverse LUAs verbaue, um dann entsprechend reagieren zu können.

Hi,

falls es Dir was bringt, hier meine Scene


--[[
%% properties

< hier kommen deine IDs der Bewegungsmelder rein >

%% events
%% globals
--]]

function Debug( color, message )
  fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")); 
end

Debug("gray", "reset wait...");
fibaro:setGlobal("LastMvmtWarmWatter", os.time());

--Making sure that only one instance of the scene is running.
fibaro:sleep(fibaro:countScenes()); --sleep to prevent all instances being killed.
if (fibaro:countScenes() > 1) then
  if (showExtraDebugInfo) then
    Debug( "grey", "Abort, Scene count = " .. fibaro:countScenes());
  end
  fibaro:abort();
end

Debug("green", "TurnOn Pump");
local umlaufPumpe = 252;
fibaro:call(umlaufPumpe, "turnOn");

function checkLastMovement()
	local lastMvmtWarmWatter = tonumber(fibaro:getGlobalValue("LastMvmtWarmWatter"));
  	local curDiff = os.time() - lastMvmtWarmWatter;
    
  	if(curDiff > 30 * 2) then
    	Debug("green", "TurnOff Pump - " .. curDiff);
    	 fibaro:call(umlaufPumpe, "turnOff");
    else
   	    Debug("gray", "wait..." .. curDiff);
    	setTimeout(checkLastMovement, 10*1000);
    end    
end

checkLastMovement();