Stroomkosten zichtbaar maken in Domoticz

Het draaien van een paar servers kost iets meer energie dan een Raspberry PI zoals je ziet!

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

Slimme meter = IDX 6 en de Virtule Stroomkostensensor = IDX 6288

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)

#!/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

Meting van 14 uur verbruik, oeps…..

 

 

 

 


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:

  1. In VI, druk op escape ‘esc’ en type dan :wq (w is opslaan, en q is afsluiten)

  2. 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.