Warmtepomp

Mijn huis wordt verwarmd met een NIBE warmtepomp. En daarmee is dit ook meteen de grootste gebruiker in huis. Voldoende reden om die goed in de gaten te houden. openHAB ondersteunt deze middels maar liefst 3 bindings waarvan 1 speciale hardware vereist. Ik heb de basic variant gepakt die gebruik maakt van de website van NIBE als je een nibe-uplink account hebt (gratis variant is voldoende). Installatie is eenvoudig, je hoeft alleen je account op te geven en daarna wordt een things met de beschikbare channels aangemaakt. Op de pagina met de channels heb je de keuze om equipment te genereren (add equipment to model) en dan heb je ook meteen de juiste items.

action="off";
heatpumpMode=0;
if (brinePumpSpeed==0 && supplyPumpSpeed==0){
  //both pumps off, so for sure doing nothing
  action="off";
  heatpumpMode=0;
} else if (supplyOutTemp>=50){
  //50 degrees, so for sure heating water
  action="boiler";
  heatpumpMode=3;
} else if (hwHeat && brinePumpSpeed!=0){
  //brine running and hot water too cold. Probably startup for heating it
  action="boiler";
  heatpumpMode=3;
} else if ((degreeMinValue>0 || degreeMinOldValue>0) && brinePumpSpeed!=0){
  //brine running but degree minutes still positive. Probably startup for heating it
  action="boiler";
  heatpumpMode=3;
} else if ((degreeMinValue!=0 || degreeMinOldValue!=0) && brinePumpSpeed!=0){
  //degreeMinutes in use, brine running, active heating
  action="heating active";
  heatpumpMode=1;
} else if (( degreeMinValue!=0 || degreeMinOldValue!=0) && brinePumpSpeed==0){
  //degreeMinutes in use, brine not running, passive heating
  action="heating passive";
  heatpumpMode=2;
}else if (brineInTemp-brineOutTemp>=2){
  //2 degrees difference so active working. Probably heating up for water
  action="boiler";
  heatpumpMode=3;
}else {
  //no degree minutes, small difference in brine temps. Cooling
  action="cooling";
  heatpumpMode=4;
}

Aanvullend heb ik een rule gemaakt die allerlei afgeleide data maakt. Belangrijkste is de afleiding van wat de warmtepomp eigenlijk doet. Dit doet hij door de losse items te combineren. Staan beide pompen uit, is het makkelijk. Hij doet niks. Draait alleen de supply pomp is hij warmte aan het verspreiden (ik noem dat maar passief verwarmen). Draaien beide pompen hebt je ook de temperaturen van brine en supply nodig om af te leiden of hij je huis verwarmt, heet water maken of juist aan het koelen is. Zo doe ik meer, hoeveel minuten zit hij in elke modus in afgelopen 24 uur, op welke duty cycle draait hij (verhouding aan/uit), een schatting van de grondtemperatuur. Etc. Etc. Als de rule de eerste keer draait, maakt hij zelf de extra/nieuwe items aan zodat je ze meteen kan gebruiken.

Statistieken zijn leuk, maar het oog wil ook wat. Daarom als laatste een widget in de geest van de standaard thermostaat (het NIBE huisje) die de verschillende onderdelen van de warmtepomp toont. Of via popups meer info kan laten zien.

De rule en de widget (en een uitgebreider verhaal) zijn te vinden op mijn github en openHAB marketplace pagina. Let erop dat je ook een aantal plaatjes moet downloaden en in de openHAB installatiemap moet zetten.

1