HowTo: Node Red - Controle van de koelkastdeur op basis van energieverbruik

De afgelopen weken heb ik vaak het probleem gehad dat de deur van mijn vriezer niet goed sloot. Dit had tot gevolg dat minstens één nacht de koelkastdeur bijna zeven uur lang niet goed gesloten was.

Toen mij dit een paar dagen later opnieuw overkwam, besloot ik dat ik er iets aan wilde doen. Voor mij zou het voldoende zijn als ik geïnformeerd zou worden als ik de koelkastdeur weer te lang open liet staan.

Na wat experimenteren ontstond de hieronder beschreven NodeRed-code. Hiermee (en een wifi-compatibel stopcontact dat ook de verbruikte energie kan meten) kun je op basis van het energieverbruik van de koelkast zien of de koelkastdeur dicht of open is.

Hiervoor meet de NodeCode continu het stroomverbruik (via het stopcontact) en detecteert wanneer dit te hoog is. Dit is meestal het geval wanneer de deur van de koelkast te lang open blijft staan, waardoor de temperatuur binnenin stijgt en dit zorgt er op zijn beurt voor dat de koelcompressor van de koelkast vaker opstart of helemaal niet wordt uitgeschakeld.

Meer details en waar u rekening mee moet houden bij het opzetten van uw eigen koelkastmonitoring vindt u in het volgende artikel.


Veiligheidsinstructies

Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links / reclame links

De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂 


Eisen

Handige artikelen:
Om nieuwe nodes te kunnen installeren, moet NodeRed natuurlijk al geïnstalleerd zijn.
Hoe je een RaspberryPi voorbereidt en vervolgens NodeRed erop installeert, wordt beschreven in de volgende artikelen.

In de volgende drie artikelen wordt beschreven wat er moet gebeuren om de RaspberryPi voor te bereiden:
RaspberryPi – setup voor nerds!
RaspberryPi – De eerste configuratie!
RaspberryPi – Bedien de RaspberryPi via SSH

NodeRed – NodeRed installeren op de RaspberryPi
NodeRed – Installeer nieuwe knooppunten
NodeRed - importeer en exporteer knooppuntcode

Vereist gereedschap:
-Nee-

Benodigd materiaal:

In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.


Installeer de vereiste knooppunten

Voor deze stroom zijn eigenlijk geen speciale knooppunten nodig. De meeste behoren tot de standaardknooppunten van NodeRed. Alleen het dashboardknooppunt is vereist om de verzamelde gegevens te visualiseren. Meer informatie hierover vindt u in het artikel NodeRed – Creëer een gebruikersinterface met dashboardknooppunten.


De functie

Allereerst: deze NodeCode is nog niet perfect, maar hij werkt al een paar weken behoorlijk betrouwbaar voor mijn koelkast.

De werking laat zich het beste uitleggen aan de hand van onderstaande afbeeldingen en een stukje uitleg over hoe een koelkast werkt.

Een koelkast koelt de lucht binnenin met behulp van een koelcompressor. Deze koelcompressor wordt via een thermostaat automatisch in- en uitgeschakeld wanneer de lucht in de koelkast te warm wordt. Dit betekent (bijvoorbeeld in mijn koelkast) dat de koelcompressor daadwerkelijk maar ongeveer 30 minuten per uur aanstaat. De rest van de tijd blijft de temperatuur binnen behouden dankzij de goede thermische isolatie van een koelkast. Uiteraard kunnen deze waarden er bij andere koelkasten anders uitzien. Als een koelkast bijvoorbeeld beter geïsoleerd is, hoeft de koelcompressor minder vaak te starten.

In ieder geval kunt u profiteren van de looptijd van de koelcompressor. Als het in de koelkast permanent te warm is (bijvoorbeeld door een open deur), blijft de koelcompressor langer ingeschakeld. Als de temperatuur in de koelkast niet daalt, kan dit er zelfs voor zorgen dat de koelcompressor permanent ingeschakeld blijft.

Een ingeschakelde koelcompressor is te herkennen aan het elektriciteitsverbruik van de koelkast. Mijn koelkast verbruikt (bijvoorbeeld) ongeveer 80 tot 100 W met de koelcompressor aan. Omdat hij slechts ongeveer 30 minuten per uur ingeschakeld is, komt dit overeen met een verbruik van 40 tot 50 W per uur.

Het is u wellicht al opgevallen: Als u weet welk verbruik u normaal gesproken per uur verwacht en plotseling beseft dat het huidige verbruik van de koelkast hoger is, kunt u er vrij zeker van zijn dat dit komt doordat een koelcompressor te lang draait en dus een openstaande is. De koelkastdeur liegt.

Het probleem:

Het detecteren van het gemiddelde verbruik in het verleden gaat erg langzaam.

In het rood gemarkeerde gebied en gemarkeerd met een 1 zie je het verbruik van mijn koelkast met de deur open. Je ziet dat het verbruik vrijwel constant rond de 80 tot 100W ligt.

In hetzelfde gebied is ook een iets donkerder blauwe lijn uitgezet, die het gemiddelde energieverbruik in deze periode weergeeft.

Zoals je daar ook ziet, stijgt het gemiddelde energieverbruik. Helaas heel langzaam. Betrouwbare detectie zou daarom óf pas heel laat óf niet erg betrouwbaar mogelijk zijn.

De oplossing

Na nog een paar experimenten vond ik een betere manier om de werkcyclus van de koelcompressor te detecteren. Als je het energieverbruik scant op mogelijke randen, kun je vrij betrouwbaar achterhalen wanneer de koelcompressor in- en uitgeschakeld wordt. Zodra u deze twee tijdstippen heeft, weet u ook de looptijd van de koelcompressor.

U kunt nu de inschakeltijd bewaken volgens een soortgelijk principe als hoe u voorheen het energieverbruik bewaakte: Als de koelcompressor aanzienlijk langer ingeschakeld is dan de gemiddelde inschakeltijd, kunt u ervan uitgaan dat dit te wijten is aan een open koelkast deur.

Deze methode detecteert een open koelkastdeur niet “direct”, maar (in het geval van mijn koelkast) tenminste binnen 30 tot 45 minuten. Dit is voldoende om in ieder geval een paar levensmiddelen te beschermen tegen ontdooien.


Het stopcontact

Om het energieverbruik van je koelkast te kunnen meten, heb je een stopcontact of een verloopstekker nodig die het actuele energieverbruik van je koelkast naar je smartHome stuurt. Ik heb een WiFi-adapter met energiemeting gebruikt, die ik ook heb geflashed met de Tasmota-firmware. De NodeRed-code ontvangt zijn gegevens vervolgens later via MQTT.

Hoe je een adapterstekker met de Tasmota-firmware kunt flashen en iets beter kunt configureren, wordt deels uitgelegd in het artikel Tasmota – Flash-firmware met TuyaConvert beschreven.


Wordt weergegeven in het dashboard

Als u onderstaande NodeCode importeert in uw NodeRed-configuratie, worden de volgende weergaven ook aan uw dashboard toegevoegd.

In deze weergave ziet u bovenaan een tekstveld waarin wordt aangegeven of er al voldoende meetwaarden zijn om op basis van het gemiddelde verbruik een afwijkende verbruikswaarde te herkennen.

In het midden wordt het verleden en het gemiddelde energieverbruik van uw koelkast weergegeven.

In het onderste gedeelte zijn de inschakelfasen van de koelcompressor, bepaald op basis van het energieverbruik, te zien. De duur wordt in seconden ingevoerd. De huidige, vorige en gemiddelde inschakelduur worden ingevoerd.

Naast de historische gegevens hierboven ziet u links ook de gegevens.

Bovenaan ziet u het afgelopen gemiddelde verbruik van uw koelkast

In het midden staat het huidige verbruik van uw koelkast

Onderaan wordt de laatst bepaalde inschakelduur van uw koelcompressor weergegeven.


Knooppuntcode invoegen

Onderstaande NodeCode bevat alles wat u nodig heeft om het energieverbruik van uw koelkast te evalueren volgens het hierboven beschreven schema en u indien nodig een melding te sturen via Pushbullet. Hoe u NodeCode in uw NodeRed-configuratie kunt invoegen, vindt u in het artikel NodeRed - importeer en exporteer knooppuntcode beschreven.

Om ervoor te zorgen dat de melding naar u wordt doorgestuurd met behulp van Pushbullet, moet u uiteraard het Pushbullet-knooppunt dienovereenkomstig configureren. Tips hierover vind je in het artikel NodeRed - Stuur pushbullet-berichten op gebeurtenissen

Nog wat informatie:
Het Pushbullet-bericht wordt geactiveerd wanneer de huidige inschakelduur 1,8 keer de gemiddelde inschakelduur is. Dit betekent dat de abnormale inschakelduur pas wordt gedetecteerd nadat 1,8 keer de gemiddelde inschakelduur van de koelcompressor van uw koelkast is verstreken. Bij een gemiddelde inschakeltijd van 30 minuten krijgt u pas na 54 minuten een indicatie van een afwijkende inschakeltijd.

Uiteraard kunt u deze waarde ook verlagen. Het enige nadeel is dat er een “vals alarm” kan optreden. Als je wilt, probeer dan gewoon verschillende waarden uit. Deze detectie is geïmplementeerd in het functieknooppunt “checkForAbnormalValues”.

Je vindt de NodeCode in de Nerdiy-Git onder de volgende link:

https://github.com/Nerdiyde/NodeRedSnippets/blob/master/snippets/fridge_door_monitoring_by_energy_consumption.json


Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂

PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂

Koop Me a Coffee op ko-fi.com       

4 comments

  1. Zou een magnetisch contact op de deur niet de truc hebben gedaan, die vervolgens Pushbullet activeert?

    Maar toch een mooie flow….

    1. Ja, je hebt helemaal gelijk. Het geheel is ontstaan uit “noodzaak” omdat ik het stopcontact al in huis had en dus geen nieuwe hardware hoefde te kopen. 🙂
      Bedankt 🙂

  2. Hallo!
    Ik ben net begonnen met NodeRed. Dus waarschijnlijk een paar simpele domme vragen. Ik denk dat Smooth binnenkomt via het node-red-node-smooth-palet. Dan komen alle waarden achter elkaar binnen als een string via de Tasmota-sensor:
    ——————-
    “{“Tijd”:”2021-01-25T11:44:20″,”ENERGIE”:{“TotaalStartTijd”:”2020-12-11T17:29:39″,”Totaal”:15,316,”Gisteren”:0,288 ,"Vandaag":0,103,"Periode":0,"Vermogen":0,"SchijnbaarVermogen":0,"ReactiefVermogen":0,"Factor":0,00,"Spanning":0,"Stroom":0,000}} ”
    —————————-
    Waar haal je de string uit elkaar? Daar ben ik helaas nog niet achter.

    Stefan

    1. Hé Stefan,
      oh dat is geen domme vraag. Ik denk dat dit vrij typisch is wanneer je moet/wil begrijpen wat iemand anders heeft geschreven/gebouwd. Hetzelfde geldt voor programmeren 🙂
      Ik hoop dat ik je goed heb begrepen. Enerzijds converteer ik de berichten in het knooppunt dat in de afbeelding “Wijziging: 2regels” heet. De informatie uit het bericht msg.payload.ENERGY.Today wordt gekopieerd naar het bericht msg.Energy. Bovendien wordt de inhoud van msg.payload.ENERGY.Power gekopieerd naar msg.payload. Een groot deel van de verwerking wordt vervolgens geïmplementeerd in het knooppunt “checkValue”. Ik hoop dat dit je verder helpt. Vraag het anders gerust. 🙂
      Hartelijke groeten
      Fabian

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.