De keteltemperatuur verhogen met de Raspberry PI

Ik wilde ons energieverbruik verder verlagen of gelijk houden met meer comfort. Met de zoneregeling had ik al voor elkaar om de ruimtes beter te kunnen regelen. Maar om een goede respons in het systeem te hebben is een hogere keteltemperatuur nodig. Ik kan natuurlijk in principe gewoon een hogere stooklijnen kiezen. Het nadeel van deze eenvoudige oplossing is dat dit meer energie kost omdat de warmtepomp minder efficiënt is bij hogere temperaturen. De oplossing is om de keteltemperatuur alleen te verhogen als de warmtevraag hoog is. Onze Nibe Fighter 1240 biedt die mogelijkheid door een potentiaalvrij contact op poort X1.3 en X1.4 aan te sluiten, blauw en rood op onderstaand plaatje. Via het service menu (optie 2.5) kun je de offset dan aanpassen. Voorlopig heb ik die op +2 gezet. Dat komt overeen met ongeveer 5 graden.

Printplaat Warmtepomp

Relais op Raspberry PI

Ik heb GPIO poort 4 gebruikt om een relais te schakelen. Het relais heb ik op het breadboard geplaatst. Ik heb gekozen voor een Panasonic DS1EM5 Printrelais 5 V/DC 2 A 1x wisselaar. Deze past direct op het breadboard. Het is alleen van belang om 1 van de schakelpootjes om te buigen, omdat hij anders altijd aan staat. Het is immers een wisselschakelaar, en beide wisselpootjes waren via het breadboard verbonden. De GPIO-poorten van de Raspberry zijn maar 3.3V en het relais vraagt 5V. Daarom heb ik nog een klein schakelingetje gebouwd op het breadboard.  Ik heb achter het Relais een 3M Miniclamp stekkertje gemaakt voor de verbinding met de warmtepomp.

Relais toevoegen aan Domoticz

Om het relais te kunnen besturen vanuit Domoticz kun je deze handleiding volgen. Dit werkt ook weer in een paar minuten. Testen en draaien maar!

Script

Het was mij er om begonnen om de keteltemperatuur te beïnvloeden. Daarom heb ik een eenvoudige event script gemaakt. Door een bug in de Netatmo software kan je vanuit LUA niet bij de temperaturen en de thermostaatinstellingen komen. Dat heb ik opgelost door Blockly dummy-variabelen te vullen die ik LUA wel kan benaderen. Niet netjes, maar het werkt wel.

--
-- Stooklijn tijdelijk omhoog als in een van de cruciale ruimtes (kamer, eetkamer, badkamer) de temperatuur relatief veel afwijkt van de gevraagde temperatuur
--
commandArray = {}
 
-- Stooklijn omhoog
if (uservariables['kamer_set_dummy']-uservariables['kamer_temp_dummy']>1.2) or (uservariables['badkamer_set_dummy']-uservariables['badkamer_temp_dummy']>2.0) or (uservariables['eetkamer_set_dummy']-uservariables['eetkamer_temp_dummy']>1.2) then
    -- als hij niet al omhoog was
    if otherdevices['Warmtepomp offset'] == "Off" then
        commandArray['Warmtepomp offset'] = "On"
    end
 
-- Stooklijn weer terug als verschil klein genoeg is geworden
elseif otherdevices['Warmtepomp offset'] == "On" then
    commandArray['Warmtepomp offset'] = "Off"
end
 
return commandArray

De dummy variabelen stel ik dan elke minuut in met het volgende Blockly schema. De onderste 2 heb ik nodig voor het in- en uitschakelen van de CV-pomp.

dummy-blockly

Geef een reactie