Gasmeterstand uploaden naar Mindergas.nl
Domoticz kan de meterstand van het gas bijhouden en grafieken weergeven, maar op Mindergas.nl is dat net iets mooier. Met een paar simpele stappen wordt er voor gezorgd dat we de meterstand van het gas iedere dag automatisch kunnen uploaden naar MinderGas.nl
Benodigdheden
- Raspberry Pi
- Domoticz software
- Slimme gasmeter of koppeling met slimme thermostaat
Account aanmaken
Allereerst gaan we een account aanmaken op Mindergas.nl, hiervoor heb je alleen een email adres en een wachtwoord nodig. Nadat je ingelogd bent ga je op Mindergas.nl naar Meterstand API en klik je vervolgens op Genereren onder Authenticatietoken. Je krijgt nu een token toegewezen, zoals bv. ewSJnX7BA8r9nLDPjrV8
. Deze token hebben we dadelijk nodig.
Script
Download hier het python-script en pak het uit met een extracter, bv. Winrar. Plaats het python-script in de folder /home/pi/domoticz/scripts/
. Uiteraard kun je het script ook in een andere folder plaatsen, maar dan moet je verder de cronjob ook aanpassen.
Om ervoor te zorgen dat het script iedere dag automatisch uitgevoerd wordt gaan we een cron job instellen. Open de tabel van de cron jobs met commando:
1 |
sudo crontab -e |
En voeg onderstaande regel toe:
1 |
<0..59> 0 * * * python /home/pi/domoticz/scripts/mindergas.py -a <MINDERGASTOKEN> -d <IDXgasmeter> |
Vervang onderstaande een getal tussen de 0 en 59. Het getal geeft aan op de hoeveelste minuut van het uur het script wordt uitgevoerd.
1 |
<0..59> |
Vervang onderstaande door de authenticatietoken die we eerder op Mindergas.nl opgevraagd hebben.
1 |
<MINDERGASTOKEN> |
Vervang onderstaande door het idx dat correspondeert met jouw gasmeter in Domoticz.
1 |
<IDXgasmeter> |
Ga naar Setup -> Devices en je ziet het Idx voor aan de regel staan:
Tot slot nog een paar opmerkingen:
- Indien je in Domoticz authentication aan het staan zorg er dan voor dat je
127.0.0.*
hebt toegevoegd bij Local networks (no username/password) onder Settings. - Als je token op Mindergas.nl begin met een minus-teken of underscore (bijv. -qTGD……..) dan zal deze token niet werken. Je kunt de token dan intrekken en een nieuwe aanmaken.
Als alles goed gegaan is en de cronjob heeft voor het eerst gedraaid, is het uploaden naar MinderGas.nl begonnen! De eerste meterstand van het gas vind je terug onder Meterstanden op de website:
Erg interessant!
Kun je aangeven wat ik moet doen om het op een synology te doen? Mijn domoticz haalt gasmeterstanden binnen via P1 kabel.
Dank voor geboden info!
Bovenstaand script met kleine portwijziging in file geplaatst in een map in Domoticz op mijn Synology 718+ met DSM 6.2 en Python-package.
Python werkt in principe goed en wordt ook gebruikt om elke 5 minuten mijn opbrengst naar PVoutput te uploaden.
Taak aangemaakt welke bovenstaand script uitvoert.
Dit is de taakopdracht in Synology:
python /volume1/@appstore/domoticz/var/scripts/mindergas.py -a xxxxxxxxxxxxxxxxxxxx -d 734
Script wordt kennelijk wel aangeroepen maar genereert de volgende fouten:
Taakplanner heeft een geplande taak voltooid.
Taak: Upload MinderGas.nl
Starttijd: Wed, 16 Jan 2019 18:48:50 GMT
Stoptijd: Wed, 16 Jan 2019 18:48:50 GMT
Huidige status: 1 (Onderbroken)
Standaard uitvoer/fout:
Traceback (most recent call last):
File “/volume1/@appstore/domoticz/var/scripts/mindergas.py”, line 54, in
sys.exit(main())
File “/volume1/@appstore/domoticz/var/scripts/mindergas.py”, line 27, in main
device_data = json.load(urllib2.urlopen(“%s/json.htm?type=devices&rid=%s” % (args.url, args.device), timeout=5))
File “/usr/lib/python2.7/urllib2.py”, line 154, in urlopen
return opener.open(url, data, timeout)
File “/usr/lib/python2.7/urllib2.py”, line 429, in open
response = self._open(req, data)
File “/usr/lib/python2.7/urllib2.py”, line 447, in _open
‘_open’, req)
File “/usr/lib/python2.7/urllib2.py”, line 407, in _call_chain
result = func(*args)
File “/usr/lib/python2.7/urllib2.py”, line 1228, in http_open
return self.do_open(httplib.HTTPConnection, req)
File “/usr/lib/python2.7/urllib2.py”, line 1198, in do_open
raise URLError(err)
urllib2.URLError:
Wat zou oorzaak kunnen zijn?
Verkeerde aanroep in taakopdracht?
Verkeerde versie van Python?
Met belangstelling,
Pieter
In het script moet https://www.mindergas.nl/api/gas_meter_readings vervangen worden door https://www.mindergas.nl/api/meter_readings. De oude url zal binnenkort nl. niet meer werken.