Slimme meter draadloos uitlezen in Domoticz

Gepubliceerd door Robot One op

Slimme meter

Maak het leven makkelijk (en veiliger)

Voor het eind van 2020 moet ieder huishouden in Nederland een slimme meter krijgen. Of op zijn minst weten wanneer die wordt geïnstalleerd. Zo’n meter is vooral handig voor energiebedrijven, die daarmee je stroom- en gasverbruik op afstand kunnen uitlezen. Dat kun je echter ook zelf, draadloos.

Gegevens over je energieverbruik bijhouden in je smarthome-systeem is niet alleen leuk; door in grafieken te zien hoeveel energie je gebruikt en op welke tijdstippen. Zo kun je bijvoorbeeld notificaties laten sturen als het stroom- of gasverbruik de spuigaten uitloopt. Als er meer stroom wordt verbruikt dan je zonnepanelen opwekken. Als je vergeet het gasfornuis uit te draaien. Je kunt zelfs, met wat rekenen en wat giswerk, erachter komen dat er één of meerdere personen in huis zijn, als je er zelf niet bent!

Zendertje

Alle slimme meters hebben tegenwoordig een zogeheten P1 poort, waar een RJ11-stekker in past (het soort stekkertjes dat we nog kennen van de vaste telefoon). Wil je die aansluiten op de Raspberry Pi (of een andere computer) heb je een RJ11-naar-USB kabel nodig. Voor hetzelfde geld kan het ook draadloos.

Met ‘voor hetzelfde geld’ bedoel ik niet dat je een kant-en-klaar apparaat van Youless of Plugwise moet aanschaffen, want die kosten tussen de € 80 en € 100. En die dwingen je ook nog eens een app op je telefoon te installeren. Wij hangen gewoon een zendertje aan de slimme meter en sturen onze data over WiFi naar Domoticz.

Oké, ‘zendertje’ is een simplificatie. Het gaat om een Wemos D1 mini: een variant op de ESP-8266 32-bits microcontroller met WiFi transceiver en volledige TCP-IP stack, met een ingebouwde micro-USB aansluiting voor de 5V-voeding en het programmeren. Klinkt indrukwekkend, maar is niet groter dan een lucifersdoosje en kost maar een paar euro. Ideaal voor Internet-of-Things toepassingen dus.

Zelf maken is niet al te moeilijk als je weet aan welke kant je een soldeerbout moet vasthouden. Toch heb ik er in dit geval voor gekozen een kant-en-klare module te kopen die is gebouwd door ‘Esp8266 Thingies’ .

Voor maar € 22 krijg je het apparaatje thuisgestuurd: twee printjes op elkaar, in shrinkwrap verpakt, met een stekkertje eraan en voorgeprogrammeerd. Nee, ik heb geen aandelen in esp8266thingies, maar als ik het zelf had moeten maken, was het waarschijnlijk een stukje experimenteerprint geworden, wat er lang niet zo netjes had uitgezien.

Dit ‘thingy’ is er in twee uitvoeringen. De ‘parasitaire’ versie heeft geen externe voeding nodig, want moderne slimme meters (ESMR5) leveren ook 5V via de P1 poort. Als je een wat ouder model hebt, dan is een externe voeding nodig, namelijk een eenvoudige 5V telefoonlader (dit hoeft beslist geen snellader te zijn).

Het enige wat je moet doen om dit aan de praat te krijgen, is het maken van nieuwe hardware-instelling in Domoticz en het instellen van je IP en inloggegevens op de Wemos D1. Hoe je een Wemos D1 aan de praat krijgt, heb ik al eens beschreven in het artikel Watermeter draadloos uitlezen in Domoticz. Op de website van ESP Thingies staat bovendien een specifieke handleiding voor de P1 module (PDF bestand, 12MB).

Het is een heldere en uitgebreide stap-voor-stap handleiding, die ik hier dus niet ga herhalen. Van daaruit wordt herhaaldelijk verwezen naar weer een andere website, met gegevens van de diverse P1 meters die tegenwoordig op de markt zijn. De link staat er een keer verkeerd in, dus voor het geval je tegen een 404 Page not Found aanloopt: het is http://domoticx.com/p1-poort-slimme-meter-hardware/

Staat het gas aan?

Het is wel aardig dat je nu kunt bijhouden (en visualiseren) hoeveel gas en stroom je verbruikt, maar we kunnen deze gegevens ook gebruiken om het leven een beetje makkelijker te maken. En veiliger. Want wie maakt het bijvoorbeeld niet mee dat het gasfornuis na het koken wel eens blijft branden? Zeker voor ouderen die een beetje vergeetachtig worden, is het een uitkomst om daar even aan te worden herinnerd via Domoticz.

Dat is wat onderstaande script doet. Het is erop gebaseerd dat je zowel de status van de verwarming (‘Verwarming brandt’) als het gasverbruik (‘Gas’) kunt uitlezen in Domoticz. Als de verwarming brandt, wordt er namelijk ook gas verbruikt. Dat kunnen we melden, maar hoeft niet in de vorm van een waarschuwing met hoge prioriteit.

-- Domotica voor ouderen
-- Waarschuw als het gas aan staat
--

return {
    on = {
        devices = {
            'Gas'
        }
    },
    
    execute = function(domoticz, trigger)

        local gasnu = domoticz.devices('Gas').counterToday
        local gaswas = domoticz.variables('gasdata').value

       if (gasnu > gaswas) then
           bericht1 = 'Gasverbruik: ' .. (gasnu - gaswas)*1000 .. 'l in 5 min = ' .. (gasnu-gaswas)*200 .. 'l/min' 
            -- check hoe lang geleden cv-ketel heeft aangestaan
            verwarming = domoticz.devices('Verwarming brandt').lastUpdate.minutesAgo
            if (verwarming > 15) then 
                bericht2 = 'Is het fornuis uit?'
                domoticz.notify(bericht1,bericht2,PRIORITY_HIGH, nil, nil, domoticz.NSS_PUSHOVER)
            else 
                bericht2 = 'Verwarmingsketel: ' .. verwarming .. ' min geleden laatste activiteit. Is het fornuis uit?'
                domoticz.notify(bericht1,bericht2,PRIORITY_LOW, nil, nil, domoticz.NSS_PUSHOVER)
            end
        end
        domoticz.variables('gasdata').set(gasnu)

    end
}

Als je dit script wilt gebruiken, heb je allereerst een Gebruikersvariabele nodig. Maar die aan in Domotica met Instellingen > Meer opties > Gebruikersvariabelen. Geef hem het type Float en de naam gasdata. Vul als beginwaarde 0.0 in.

Maak nu in Domoticz een nieuwe dzVents gebeurtenis aan: Instellingen > Meer opties > Gebeurtenissen > + > dzVents. Kopieer bovenstaande script en plak het in je scriptvenster. Kijk nog even naar de volgende zaken:

  • Regel 8: vul de naam van je gasmeter in Domoticz in. Bij mij heet die simpelweg ‘Gas’.
  • Regel 18: deze berekening is erop gebaseerd dat mijn gasmeterstand eens in de 5 minuten wordt weergegeven, in kuubs. Dat is de standaard instelling van de P1 module.
  • Regel 20: hier wordt gekeken hoe lang het is geleden dat het Apparaat ‘Verwarming brandt’ een melding naar Domoticz heeft gestuurd. Dit apparaat geeft aan dat de brander van de CV-ketel aan staat. Pas deze regel eventueel aan jouw situatie aan.
  • Regel 21: als het langer dan 15 minuten is geleden dat de CV-ketel heeft gebrand, dan gaan we ervan uit dat er een andere gasverbruiker is, bijvoorbeeld het fornuis. Stuur een waarschuwing met hoge prioriteit. De termijn van 15 minuten is vrij willekeurig. Je kunt er ook iets anders van maken.
  • Regel 23 (en 26): ik stuur de notificatie via Pushover. Gebruik je een ander notificatiesysteem, pas dan de instelling domoticz.NSS_PUSHOVER aan.

Het script is zeker voor verbetering vatbaar. Zo is het maken van onderscheid tussen gasverbruik voor de verwarming of voor het fornuis niet echt nauwkeurig, zeker niet in de winter. Daarom krijg je ook een waarschuwing (zij het met lage prioriteit) als de cv-ketel brandt.

Een Push notificatie kan bovendien te subtiel zijn als er daadwerkelijk iets aan de hand is. Je kunt ook bijvoorbeeld een sirene laten afgaan of een slimme lamp laten knipperen. Knutsel er gewoon eens mee, dat is precies wat smart home automatisering Domoticz zo leuk maakt!

Deel je eventuele tips of aanpassingen om dit script beter/slimmer te maken met andere bezoekers in de reacties hieronder.

Zie ook:

Wemos D1 mini

Een complete microcontroller met WiFi server ter grootte van een postzegel, speciaal voor IoT, met een analoge en meerdere digitale in- en uitgangen, eenvoudig te programmeren dankzij ingebouwde micro-USB poort.

Koop op Amazon Koop op Bol.com

0 reacties

Geef een reactie

Avatar plaatshouder

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *