In Domoticz is het simpel mogelijk om het stroomverbruik bij te houden als je een ‘slimme’ meter hebt. Je ziet dan het huidige verbruik in kW en de historie per dag, maand en jaar. Het zou handig of wenselijk zijn als je het verbruik in € ‘EURO’s’ zou kunnen zien. Hier gaan we uitleggen hoe je eenvoudig het verbruik in geld = € kunt tonen met een Python-script.
Je hebt je ‘Slimme Meter‘ of ‘Sonoff POW‘ al werkend in Domoticz gaan we even vanuit.
In Domoticz bij: Instellingen > Apparaten
Bij mij is deze IDX 6 ‘Stroom’, dit zal bij iedere installatie afwijken, dus neem deze goed over.
We gaan nu een stukje dummy hardware aanmaken: Instellingen > Hardware, maak de nieuwe hardware ‘Stroomkosten’:
Klik nu op ‘Maak virtuele sensoren’, bij naam geef je in Stroomkosten, bij Sensor Type kies je voor ‘Custom Sensor’, en als Aslabel voer je in ‘EUR’, klik nu op oke, de sensor is dan bij je apparaten zichtbaar. (Bij mij is dat IDX 6288 geworden)
Nu kunnen we het python-script gaan aanpassen, dit doen we als volgt:
regel 14: Vaste kosten per dag in Eurocenten (vastrecht en/of transportkosten per dag)
regel 15: kosten per kW in Eurocenten (hier heb ik het gemiddelde genomen van de dag en nachtstroom)
regel 16: IDX van de energiemeter (bij mij is dit 6)
regel 17: IDX van de virtuele custom sensor (bij mij is dit 6288)
regel 18: wijzig hier het IP en de poort van jouw Domoticz-installatie (bij mij is dat: IP 10.0.0.1 – poort 8080)
regel 19: wijzig hier het IP en de poort van jouw Domoticz-installatie (bij mij is dat: IP 10.0.0.1 – poort 8080)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#!/usr/bin/env python # -*- coding: UTF-8 -*- """ stroomkosten.py https://colandino.nl Dit script leest de 'CounterToday' (IDX 6) van de slimme meter in Domoticz uit en schrijft de berekende kosten in € (EURO's) naar een custom sensor (IDX6288). Het script draaid elke 10 minuten via crontab. """ import requests import json # Begin Domoticz variabelen - wijzig naar je eigen wens vast = 0.26 # vaste kosten in eurocenten eenheid = 22.00 # kosten per kW in eurocenten EnergiemeterIDX = '6' CustomSensorIDX = '6288' DomoBaseURL = 'http://10.0.0.1:8080/json.htm?type=devices&rid=' DomoWriteURL = 'http://10.0.0.1:8080/json.htm?type=command&param=udevice&nvalue=0&idx=' # Einde van Domoticz variabelen def domoticzread(idx, var): url = DomoBaseURL + idx response = requests.get(url) jsonData = json.loads(response.text) result = jsonData['result'][0][var] return result; kW = domoticzread(EnergiemeterIDX, 'CounterToday') kWh = kW.split()[0] kosten = round((float(kWh) * eenheid + vast) / 100 ,2) kosten = str(kosten) + " Euro" #print kW, kosten url = DomoWriteURL + CustomSensorIDX + '&svalue=' + kosten r = requests.get(url) |
Nadat je de wijziging aangebracht hebt plaats je het python-script in de folder /home/pi/domoticz/scripts/
met de naam stroomkosten.py
We maken het nu uitvoerbaar met de volgende opdracht, voer uit:
chmod +x /home/pi/domoticz/scripts/stroomkosten.sh
Je kan het nu testen door uit te voeren op je PI:
cd /home/pi/domoticz/scripts/
./stroomkosten.py
Om ervoor te zorgen dat het script iedere 10 minuten uitgevoerd wordt moeten we een cron job aanmaken. Open de cron jobs met het commando:
sudo crontab -e
En hier voegen we onderstaande regel toe:
*/10 * * * * python /home/pi/domoticz/scripts/stroomkosten.py
Update: Crontab afsluiten geeft voor sommige gebruikers problemen, de oplossing:
-
In VI, druk op escape ‘esc’ en type dan :wq (w is opslaan, en q is afsluiten)
-
In NANO, druk op control+x ‘ctrl+x’ en geef dan y voor yes.
Nu worden de stroomkosten elke 10 minuten bijgewerkt, dat lijkt weinig als je de eerste keren zit te wachten, maar na een paar dagen is dat prima en geeft een goed resultaat.
Pingback:Rob Gipman
Pingback:colani