Mindergas, upload automatiseren ???

Pagina: 1 2 Laatste
Acties:

Acties:
  • 0 Henk 'm!

  • Freemann
  • Registratie: Januari 2002
  • Niet online

Freemann

CO2 Warmtepomp + VentilatieWTW

hansdegit schreef op maandag 11 februari 2013 @ 11:03:
Ik ren nog steeds niet zo snel, dus doe maar rustig an.
Maarre wat wil/ga je precies doen?
Volgens mij kunnen bovengenoemde scripts niet op een Netduino draaien?

Altijd benieuwd wat andere doen en of ik daar ook iets mee kan :D

[ Voor 11% gewijzigd door Freemann op 11-02-2013 11:18 ]

https://www.taltion.nl, https://www.trekhaakkoffer-huren.nl, https://www.fietsendrager-huren.nl, https://www.fietskar-huren.nl


Acties:
  • 0 Henk 'm!

  • hansdegit
  • Registratie: Februari 2005
  • Laatst online: 03-09 17:53
Sorry, ik ben weer eens onduidelijk. Jij hebt een slimme meter, ik ook. Ik laat die php scripts op mijn Synology draaien. De Syno kan ik wel instrueren om de gegevens bij de Netduino op te halen.

Het zou "handiger" zijn als we dat in de Netduino programmeren, maar ik verwacht dat JoopC dat -zéker in de Netduino V1- niet in gaat bouwen.

Gitje's Stroomfabriek: 6095 Wp Yingli Panda, 2520 Wp Suntech, Tigo Monitoring & Schaduwmanagement, Kostal Piko 10.1


Acties:
  • 0 Henk 'm!

  • Freemann
  • Registratie: Januari 2002
  • Niet online

Freemann

CO2 Warmtepomp + VentilatieWTW

oke, 2 device combineren om tot 1 geheel te komen.

Klinkt goed en ben zeer benieuwd naar de resultaten.

Ben zelf teruggekomen van naar MinderGas loggen, daar ik liever niet de data bij een externe partij neerzet.
Niet dat de data op mijn Rpi veiliger staat, maar heb de data liever in mijn eigen servertje staan.
Binnenkort kijken of ik KNMI data naar binnen kan trekken en dan met Wind en Temperatuur data het gasverbruik begrijpelijk inzichtelijk kan maken.

https://www.taltion.nl, https://www.trekhaakkoffer-huren.nl, https://www.fietsendrager-huren.nl, https://www.fietskar-huren.nl


Acties:
  • 0 Henk 'm!

  • VROEM!
  • Registratie: Februari 2000
  • Laatst online: 18-05 16:41

VROEM!

broembroem!

KNMI data is gewoon elke dag als zipje op te halen.

http://www.knmi.nl/klimatologie/daggegevens/download.html

Ik heb op mijn servertje een script dat de voor mij relevante zip ophaalt en uitpakt.

ieeeepppppp :P


Acties:
  • 0 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
Freemann schreef op maandag 11 februari 2013 @ 12:18:

Ben zelf teruggekomen van naar MinderGas loggen, daar ik liever niet de data bij een externe partij neerzet.
Niet dat de data op mijn Rpi veiliger staat, maar heb de data liever in mijn eigen servertje staan.
Binnenkort kijken of ik KNMI data naar binnen kan trekken en dan met Wind en Temperatuur data het gasverbruik begrijpelijk inzichtelijk kan maken.
Je kan ook allebei doen. Zorg je in ieder geval voor vergelijkingsmateriaal :)

A'dam PVOutput


Acties:
  • 0 Henk 'm!

  • Freemann
  • Registratie: Januari 2002
  • Niet online

Freemann

CO2 Warmtepomp + VentilatieWTW

VROEM! schreef op maandag 11 februari 2013 @ 12:33:
KNMI data is gewoon elke dag als zipje op te halen.

http://www.knmi.nl/klimatologie/daggegevens/download.html

Ik heb op mijn servertje een script dat de voor mij relevante zip ophaalt en uitpakt.
Waarom zo "omslachtig"?
KNMI heeft een "api" die gewoon op jouw antwoord kan reageren.
Curl naar de Api en de data opvangen, uitelkaar trekken en opslaan :)

https://www.taltion.nl, https://www.trekhaakkoffer-huren.nl, https://www.fietsendrager-huren.nl, https://www.fietskar-huren.nl


Acties:
  • 0 Henk 'm!

  • jvanderkroon
  • Registratie: Juni 2006
  • Laatst online: 21:08
Het lijkt er op dat mindergas.nl de pagina https://www.mindergas.nl/mobile_app/gas_meter_readings uit de lucht heeft gehaald. Ik krijg in ieder geval 404 te zien. Of is deze pagina alleen via een curl met juiste token beschikbaar?

Heb een .sh file aangemaakt en via cronjob ingepland maar ik zie mijn meterstanden niet verschijnen bij mindergas.nl vandaar mijn vraag.

LG-HM051MR-U44 | Daalderop DUO 50l | 1500 WP Zuid | gasloos '23


Acties:
  • 0 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
jvanderkroon schreef op vrijdag 27 september 2013 @ 12:25:
Het lijkt er op dat mindergas.nl de pagina https://www.mindergas.nl/mobile_app/gas_meter_readings uit de lucht heeft gehaald. Ik krijg in ieder geval 404 te zien. Of is deze pagina alleen via een curl met juiste token beschikbaar?

Heb een .sh file aangemaakt en via cronjob ingepland maar ik zie mijn meterstanden niet verschijnen bij mindergas.nl vandaar mijn vraag.
Bij mij werkt het gewoon, cronjob probleem? Die pagina is inderdaad niet bereikbaar.

A'dam PVOutput


Acties:
  • 0 Henk 'm!

  • jvanderkroon
  • Registratie: Juni 2006
  • Laatst online: 21:08
ericplan schreef op vrijdag 27 september 2013 @ 12:33:
[...]
Bij mij werkt het gewoon, cronjob probleem? Die pagina is inderdaad niet bereikbaar.
Even de curl aangepast zodat deze de output toont en daar ie ik dezelfde melding als die VR_Bosch kreeg.

* Connection #0 to host www.mindergas.nl left intact
ä"error":"Ongeldig authenticiteit token."¨* Closing connection #0
* SSLv3, TLS alert, Client hello (1):

Mailjte naar mindergas.nl gestuurd. Misschien is mijn token niet goed.

---------

Reactie terug van mindergas (super snel)

Dit komt omdat je op de mobile_app URL zit. Zou je onderstaande URL kunnen gebruiken:

curl -v -H "Content-Type:application/json" -d '{"date":"<YYYY-MM-DD>","reading_l":"<meterstand in liters>"}' http://mindergas.nl/you_l...adings?auth_token=<token>

--------

Gelijk even geprobeerd en dan werkt het prima met onderstaande code. (bedankt ericplan voor grootste deel code)

code:
1
2
3
4
5
6
7
8
9
#!/bin/bash
#putting the token in a variable 
token='hier de token'
#set the date for mindergas.nl
fullDate=$(date +"%Y-%m-%d")
#get todays gasCounter by curl-ing the Youless
gasCounter=`curl -s http://192.168.1.8/a |grep m3|sed s/\ m3//|sed s/\,/\./|sed s/^\ // | cut -c 1-9 | tr , .`
#send gasCounter to mindergas with the current date and token
curl -k -H "Content-Type:application/json" -d '{"date":"'$fullDate'","reading_l":"'$gasCounter'"}' http://mindergas.nl/you_less/gas_meter_readings?auth_token=$token > /dev/null 2>&1

[ Voor 47% gewijzigd door jvanderkroon op 27-09-2013 13:30 ]

LG-HM051MR-U44 | Daalderop DUO 50l | 1500 WP Zuid | gasloos '23


  • aritmeester
  • Registratie: Juni 2008
  • Laatst online: 19:25
Ik heb op basis van deze thread een script gemaakt om dagelijks mijn meterstanden uit mijn Toon van Eneco naar mindergas.nl te sturen.

Voor de liefhebbers hieronder mijn script. Dit script draai ik elke avond op mijn OpenWRT gebaseerde router.
De gebruikte json parser is eventueel o.a. hier te vinden.

code:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/sh
. /usr/share/libubox/jshn.sh

WGET='/usr/bin/wget --no-check-certificate -q -O /tmp/toon.out '
LOGGER='logger -t TOON'

TOON_REFERER='https://toonopafstand.eneco.nl/index.html'
TOON_USERAGENT='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36'

TOONURL_LOGIN='https://toonopafstand.eneco.nl/toonMobileBackendWeb/client/login'
TOONURL_START='https://toonopafstand.eneco.nl/toonMobileBackendWeb/client/auth/start'
TOONURL_STATE='https://toonopafstand.eneco.nl/toonMobileBackendWeb/client/auth/retrieveToonState'
TOONURL_LOGOUT='https://toonopafstand.eneco.nl/toonMobileBackendWeb/client/auth/logout'

TOONLOGIN_USERNAME='JE-TOON-MAIL-ADRES' #url encoded voorbeeld: mail%40example.com
TOONLOGIN_PASSWORD='JE-TOON-WACHTWOORD'

MINDERGAS_TOKEN='JE-MINDERGAS-TOKEN'

#login
loginResponse=`$WGET "$TOONURL_LOGIN" --post-data="username=$TOONLOGIN_USERNAME&password=$TOONLOGIN_PASSWORD" --referer="$TOON_REFERER" --user-agent="$TOON_USERAGENT"`
json_load "`cat /tmp/toon.out`"
json_get_var clientId clientId
json_get_var clientIdChecksum clientIdChecksum
json_select agreements
json_select 1
json_get_var agreementId agreementId
json_get_var agreementIdChecksum agreementIdChecksum

#start
random="`cat /proc/sys/kernel/random/uuid`"
underscore="`date +%s`"
startResponse=`$WGET "$TOONURL_START?clientId=$clientId&clientIdChecksum=$clientIdChecksum&agreementId=$agreementId&agreementIdChecksum=$agreementIdChecksum&random=$random&_=$underscore" --referer="$TOON_REFERER" --user-agent="$TOON_USERAGENT"`

#state
er=1;
while [[ $er != 0 ]]
do
        json_cleanup
        random="`cat /proc/sys/kernel/random/uuid`"
        underscore="`date +%s`"
        stateResponse=`$WGET "$TOONURL_STATE?clientId=$clientId&clientIdChecksum=$clientIdChecksum&random=$random&_=$underscore" --referer="$TOON_REFERER" --user-agent="$TOON_USERAGENT"`
        json_load "`sed -e 's/\.//g' /tmp/toon.out`"

        json_select gasUsage > /dev/null

        er=$?
        if [[ $er != 0 ]]
        then
                sleep 3
        fi
done
json_get_var meterReading meterReading
$LOGGER GAS: $meterReading

json_init
json_add_string "date" "`date +"%Y-%m-%d"`"
json_add_string "reading_l" "$meterReading"
$WGET --header="Content-Type: application/json" --post-data="`json_dump`" http://mindergas.nl/you_less/gas_meter_readings?auth_token=$MINDERGAS_TOKEN

#logout
random="`cat /proc/sys/kernel/random/uuid`"
underscore="`date +%s`"
logoutResponse=`$WGET "$TOONURL_LOGOUT?clientId=$clientId&clientIdChecksum=$clientIdChecksum&random=$random&_=$underscore" --referer="$TOON_REFERER" --user-agent="$TOON_USERAGENT"`

rm /tmp/toon.out
json_cleanup

[ Voor 0% gewijzigd door aritmeester op 25-11-2013 12:57 . Reden: bugfix in script ]


Acties:
  • 0 Henk 'm!

  • Hangover_ohoo
  • Registratie: Mei 2012
  • Laatst online: 17:57
Heb sinds kort de gas firmware op de youless draaien (en op de gasmeter geplot). Had ook een dagelijkse auto-upload naar mindergas.nl via crontab draaien. Laatste dagen werkte dit niet meer (script gaf geen error maar waarden kwamen niet terug in overzicht meterstanden bij mindergas.nl.)

Heb even contact gehad met de maker van de site mindergas en die gaf het volgende aan:
Er is eind vorig jaar een storing geweest met de API door een software upgrade.
Dit is opgelost, maar de API is iets stricter geworden.
De variabele reading_l staat voor "meterstand in liters", dus niet "meterstand in m3"
Je kan het op 2 manieren oplossen:
de waarde meegeven aan reading_l (zonder punt), of je kan de parameter "reading" ipv "reading_l" gebruiken als parameter. Dan is een waarde met een punt wel ok (met punt, geen komma).
Nieuwe code die ik gebruik (met parameter reading ipv readling_l):

code:
1
2
3
4
5
6
7
8
9
#!/bin/bash
#putting the token in a variable 
token='hier de token'
#set the date for mindergas.nl
fullDate=$(date +"%Y-%m-%d")
#get todays gasCounter by curl-ing the Youless
gasCounter=`curl -s http://192.168.1.8/a |grep m3|sed s/\ m3//|sed s/\,/\./|sed s/^\ // | cut -c 1-9 | tr , .`
#send gasCounter to mindergas with the current date and token
curl -k -H "Content-Type:application/json" -d '{"date":"'$fullDate'","reading":"'$gasCounter'"}' http://mindergas.nl/you_less/gas_meter_readings?auth_token=$token > /dev/null 2>&1

PV 4.8 kWp Zuid 48°| 2 kWp Oost 25° | Batt 10 kWh (2x MT FW153 CT003 FW117, 2 fases, NOM | ModBus/NodeRed (optie) | 42 kWh i3 BEV | 7 kWh Outlander PHEV | Proxmox + HASS | Alfen Eve Single Pro | WPB 270l v4 AquaMQTT ESP | MHI (2x) + ME L/L airco's


Acties:
  • 0 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
Het werkte bij mij inderdaad ook niet meer, maar ondertussen is ook m'n router overleden, heb ik problemen met m'n website en met m'n logging. En eigenlijk geen tijd. Maar bedankt voor de tip. Dat gaan we aanpassen.

A'dam PVOutput


Acties:
  • 0 Henk 'm!

  • Dylantje2
  • Registratie: April 2007
  • Laatst online: 06-09 15:25

Dylantje2

sorry Bricklayere here :-)

Voor de liefhebbers van simpel.
Een token bij mindergas, account bij pvoutput.org
Een arduino met shield
Solarmeter erin.
En je kunt je gas en enz enz
Automatisch uploaden....naar mindergas en naar pvo output..
Log zo al mijn data.
Water, gas, verbruik stroom opbrengst stroom, winddelen, temperatuur.
Eea zichtbaar via exosite en verschillende apps...

http://pvoutput.org/intraday.jsp?id=15321&sid=19520

https://portals.exosite.com/views/3097788885/3965427468

zonneboiler, pelletkachel, 36 panels, Atlantic Wpb, pana 5 Kw H, Heishamon, Domoticz, Grafana, Solarmeters, PVO: https://pvoutput.org/list.jsp?id=15321&sid=19520


Acties:
  • 0 Henk 'm!

  • Rol-Co
  • Registratie: Maart 2004
  • Laatst online: 04-09 00:55

Rol-Co

3,8kWpZ 4,98kWpO-Z-W 2,86kWpN

Pittig verbruik..... E kachel of wietplantage?

Noord-Oost-Zuid-West 11640Wp Totaal Live, Netduino advanced pv logging


Acties:
  • 0 Henk 'm!

  • Dylantje2
  • Registratie: April 2007
  • Laatst online: 06-09 15:25

Dylantje2

sorry Bricklayere here :-)

Of teveel digitale wereld met Kids

zonneboiler, pelletkachel, 36 panels, Atlantic Wpb, pana 5 Kw H, Heishamon, Domoticz, Grafana, Solarmeters, PVO: https://pvoutput.org/list.jsp?id=15321&sid=19520


Acties:
  • 0 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
Wat zijn de opties voor automatische upload:

Je hebt altijd een key nodig. Die moet je aanvragen bij Mindergas. Je moet op je device of op je website een cronjob kunnen aanmaken, zodat het script eens per dag wordt uitgevoerd.

Optie 1
Youless <- bashscript -> router -> Mindergas
Zou uitgevoerd kunnen worden door NAS of router met linuxfirmware (bv Fritz!box met Freetz) Voordeel is dat de Youless niet van buitenaf bereikbaar hoeft te zijn.

Optie 2
Youless <- router <- PHP-script op eigen website -> Mindergas
Je moet dan een open poort op je router instellen, zodat het script bij je Youless kan komen.

Wie heeft een werkend PHP-script beschikbaar voor deze laatste optie?

[ Voor 7% gewijzigd door ericplan op 22-01-2014 20:41 ]

A'dam PVOutput


Acties:
  • 0 Henk 'm!

  • s441558
  • Registratie: Mei 2002
  • Laatst online: 13-09 16:53
Ik ben een tijdje aan het puzzelen geweest om de gasmeterstanden via een python script automatisch up te loaden naar mindergas.nl. Python had mijn voorkeur omdat ik de rest van mijn scripts om meterstanden uit te lezen van de slimme meter ook al in python had gemaakt. Voor de liefhebbers, de code (alleen het deel waar de upload plaats vindt. In werkelijkheid worden de datum en de gasstand uit een csv file gehaald en als variabele ingelezen). Edit nav reactie hieronder, de datum wordt met een dag verlaagd, zodat het overeenkomt met de eindstand van gisteren.

Via crontab draait dit script elke nacht net na middernacht. .


Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import json
import urllib2
import urllib

# Specify the url
url = 'https://www.mindergas.nl/api/gas_meter_readings'

# Prepare the data
query_args = { 'date':'2014-06-28', 'reading':'4017.012' }

# Prepare the request
request = urllib2.Request(url)

# Add your headers
request.add_header('Content-Type', 'application/json')
request.add_header('AUTH-TOKEN', 'hier je authorisatie code van mindergas')

# Prepare the data in JSON format
data = json.dumps(query_args)

# send the HTML Post request
response = urllib2.urlopen(request,data)

[ Voor 5% gewijzigd door s441558 op 30-06-2014 22:28 ]

Nefit EnviLine IDU Monoblock E 7 E-S, Boiler 200 L, Buffervat 50L. BQQKees


Acties:
  • 0 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
Moet het script niet voor middernacht draaien? Meen me iets daarover te herinneren. Inderdaad voor middernacht, zie de veelgestelde vragen.
http://mindergas.nl/faq

[ Voor 32% gewijzigd door ericplan op 29-06-2014 22:32 . Reden: Faq ]

A'dam PVOutput


Acties:
  • 0 Henk 'm!

  • s441558
  • Registratie: Mei 2002
  • Laatst online: 13-09 16:53
Klopt, ik lees de stand van 00.05 uur uit.ik heb namelijk gaststanden van 5 minuten over het hele uur. In het script (niet weergegeven) trek ik een dag van de datum af, zodat de stand overeenkomt met de eindstand van "gisteren".

[ Voor 15% gewijzigd door s441558 op 30-06-2014 22:29 ]

Nefit EnviLine IDU Monoblock E 7 E-S, Boiler 200 L, Buffervat 50L. BQQKees


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Freemann schreef op donderdag 24 januari 2013 @ 16:07:
[...]

Dit zal zo goed als zeker wel werken:
PHP:
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
<?php 

// Gasmeterstand uploaden naar mindergas.nl 

$gas="3151"; 
$datum="2013-01-22"; 

$data = array("date" => "$datum", "reading" => "$gas"); 
$data_string = json_encode($data); 
//
// plaats hieronder de token van Mindergas tussen 'quotes';
$minderGasToken = 'TokenVanMinderGasNL';
//
// php con. string en var.
$curlAuthToken = 'AUTH-TOKEN:'.$minderGasToken;

$ch = curl_init('https://www.mindergas.nl/mobile_app/gas_meter_readings'); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Accept:application/json',$curlAuthToken)); 
$result = curl_exec($ch); 
curl_close($ch); 

echo $result; 
?>

De HTTPHEADER verwacht een array en denk dat die moeilijk doet met concatenation van string en var.
Als je dat buiten de array doet, dan zal hij dat zo goed als zeker slikken.
Werkt dit script nog steeds? Lijkt me wel handig om te combineren met de Arduino setting die ik gemaakt heb (zie signature).

Edit (1sept2014): Volgens Mr-Leo werkt het nog :Y

Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Ben er zelf even mee aan de gang geweest, kreeg het eerst niet werkend. Kreeg als respons terug dat je ingelogd moest zijn. Blijkbaar is de URL veranderd (van /mobile_app/ naar /api/).

Onderstaand script werkt:
mindergas.php
PHP:
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
38
39
40
41
<?php
error_reporting(E_ALL);
$MyUsername = "p1logger";  // enter your username for mysql
$MyPassword = "p1logger";  // enter your password for mysql
$MyHostname = "localhost";      // this is usually "localhost" unless your database resides on a different server

$dbh = mysql_pconnect($MyHostname , $MyUsername, $MyPassword);
$selected = mysql_select_db("p1",$dbh);

$result = mysql_query("SELECT `gas` FROM `readings` WHERE DATE(time) = CURRENT_DATE ORDER BY `readings`.`gas`  DESC LIMIT 1");          //query
$array = mysql_fetch_row($result);   
echo $array[0];  

// Execute SQL statement
mysql_query($SQL);
mysql_close($dbh) ; 

// Gasmeterstand uploaden naar mindergas.nl 

$gas = $array[0]; 
$datum = date("Y-m-d");

$data = array("date" => "$datum", "reading" => "$gas"); 
$data_string = json_encode($data); 
//
// plaats hieronder de token van Mindergas tussen 'quotes';
$minderGasToken = 'HIER_JOUW_TOKEN';
//
// php con. string en var.
$curlAuthToken = 'AUTH-TOKEN:'.$minderGasToken;

$ch = curl_init('https://www.mindergas.nl/api/gas_meter_readings'); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Accept:application/json',$curlAuthToken)); 
$result = curl_exec($ch); 
curl_close($ch); 

echo $result; 
?>


Het haalt de data uit een MySQL tabel die ik met een Arduino vul vanuit de P1 poort van m'n slimme meter :)

Op m'n Synology laat ik dit bestand elke avond om 23:59 draaien via een cronjob die
code:
1
curl "http://192.168.1.123/www/mindergas.php"
aanroept :)

Het is belangrijk dat je het 's avonds doet, Mindergas ziet de standen die je stuurt als de eindstand van die dag.

De API token kun je genereren via https://www.mindergas.nl/member/api (als je bent ingelogd).

[ Voor 5% gewijzigd door ThinkPad op 02-09-2014 07:19 ]


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Domoticz + Mindergas.nl

Ik heb een hele tijd m'n slimme meter uitgelezen met een Arduino: ThinkPad's TweakBlog: Uitlezen van de slimme meter P1-poort met een Arduino en waarden opslaan in MySQL-database

Maar ik gebruik ook al weer een tijdje een Raspberry Pi met Domoticz erop. Daarmee lees ik ook de slimme meter uit (via RJ11 splitter zowel Arduino als Raspberry aan de meter hangen). Nu heeft [Verwijderde gebruiker] een Python scriptje gemaakt zodat je de meterstand uit Domoticz kunt halen en kunt uploaden naar Mindergas.nl. De Arduino is in mijn situatie dus niet meer nodig. De meterstand wordt nu automatisch elke nacht naar www.mindergas.nl geupload _O_

Je vind het script en uitleg hier: http://tweaken.blogspot.n...den-naar-mindergasnl.html en hier: https://www.domoticz.com/wiki/Mindergas.nl

[ Voor 206% gewijzigd door ThinkPad op 18-08-2017 15:13 ]


Acties:
  • 0 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
Ik ben ook bezig geweest met stoeien om de meterstand uitgelezen via mijn youless te uploaden via mijn Synology NAS te versturen naar mindergas.nl.

ik heb de gegevens van Hangover_ohoo overgenomen en het e.e.a. ivm bug-reports toegevoegd met een log-file.
onderstaande werkt 1-op-1, waarbij <TOKEN> wel even vervangen moet worden door de TOKEN die op te vragen is via de website van mindergas.nl

Maak ook even een log-file aan, zodat het loggen ook werkt.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
#set the date for mindergas.nl
fullDate=$(date +"%Y-%m-%d")
#log start
LOGFILE=/volume1/public/log_mindergas.log
echo "$(date "+%d-%m-%Y : %T") - Start cURL" >> $LOGFILE 2>&1
#get todays gasCounter by curl-ing the Youless
gasCounter=`curl -s http://192.168.2.14/a |grep m3|sed s/\ m3//|sed s/\,/\./|sed s/^\ // | cut -c 1-9 | tr , .`
#send gasCounter to mindergas with the current date and token
echo "Meterstand: $gasCounter" >> $LOGFILE 2>&1
STATUS=$(curl --write-out %{http_code} -v -H "Content-Type:application/json" -H "AUTH-TOKEN:<TOKEN>" -d '{"date":"'$fullDate'", "reading": "'$gasCounter'" }' https://www.mindergas.nl/api/gas_meter_readings)

if [ "$STATUS" = " 201" ] 
then
    echo "Meterstand geupload naar mindergas.nl" >> $LOGFILE  2>&1
elif  [ "$STATUS" = " 422" ] 
then
    echo "ERROR: Meterstand vandaag reeds ingevoerd, HTTP-status: $STATUS " >> $LOGFILE  2>&1
else 
    echo "ERROR: HTTP-code: $STATUS" >> $LOGFILE  2>&1
fi
echo "---------------------------------------------" >> $LOGFILE  2>&1


output in log-file is dan bij dubbele invoer:
code:
1
2
3
4
27-01-2015 : 09:47:04 - Start cURL
Meterstand: 2853.260
ERROR: Meterstand vandaag reeds ingevoerd, HTTP-status:  422 
---------------------------------------------


als er vragen zijn, hoor ik het wel!

[ Voor 7% gewijzigd door Heinemancp op 27-01-2015 10:49 . Reden: log-file toegevoegd ]


Acties:
  • 0 Henk 'm!

  • ligflits
  • Registratie: Maart 2015
  • Laatst online: 13-09 20:18
Bedankt Heinemancp voor je script, het werkt hier prima!
Zou het mogelijk zijn om een mail functie toe te voegen die een mailtje stuurt als het niet goed gegaan is?
Ik kom er nog niet uit hoe ik dit toe kan voegen? Heb je een idee?
Alvast bedankt.

Acties:
  • 0 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
Het mooie van het script is juist de eenvoud. Met een mailfunctie introduceer je weer een foutbron.

A'dam PVOutput


Acties:
  • +1 Henk 'm!

  • Thedr
  • Registratie: Mei 2006
  • Laatst online: 13-09 21:32
Dank voor deze scripts, ik heb zojuist met een licht aangepaste versie mijn eerste meterstand doorgestuurd vanaf mijn BananaPi. Hierop draait pimatic welke bij mij van een ESP8266 die de P1 poort uitleest ieder uur een nieuwe gasmeterstand krijgt. Ik heb een regel ingesteld die iedere dag om 23.55 de huidige gasmeterstand als argument meegeeft aan het volgende script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
#set the date for mindergas.nl
fullDate=$(date +"%Y-%m-%d")
#log start
LOGFILE=/home/pi/mindergas.log
echo "$(date "+%d-%m-%Y : %T") - Start cURL" >> $LOGFILE 2>&1
#get todays gasCounter from first argument
gasCounter=$1
#send gasCounter to mindergas with the current date and token
echo "Meterstand: $gasCounter" >> $LOGFILE 2>&1
STATUS=$(curl --write-out %{http_code} -v -H "Content-Type:application/json" -H "AUTH-TOKEN:<TOKEN>" -d '{"$

if [ "$STATUS" = " 201" ] 
then
    echo "Meterstand geupload naar mindergas.nl" >> $LOGFILE  2>&1
elif  [ "$STATUS" = " 422" ] 
then
    echo "ERROR: Meterstand vandaag reeds ingevoerd, HTTP-status: $STATUS " >> $LOGFILE  2>&1
else 
    echo "ERROR: HTTP-code: $STATUS" >> $LOGFILE  2>&1
fi
echo "---------------------------------------------" >> $LOGFILE  2>&1


en even voor de volledigheid mijn pimatic-rule:
code:
1
execute "/home/pi/uploadgas.sh $tellergas.meterstand > /dev/null 2>&1"

[ Voor 6% gewijzigd door Thedr op 22-11-2015 00:20 ]


Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
Bedankt voor het script en de aanpassingen daarop voor een Synology NAS.

Ik wil de gasmeter loggen naar mindergas mbv een LS110 (heb al een token van mindergas.nl), ik kan echter op de youless site geen firmware vinden hiervoor.
Als ik echter de linkjes volg in het Youless topic kom ik daar de volgende tegen:
youless-flash-1.2.0-G4.exe

Is dit de juiste (en laatste beschikbare) versie om de LS110 om te zetten dat deze de gasmeter kan loggen?

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Vraag het @YouLess welke firmware je voor Mindergas moet hebben ;)

Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
@YouLess welke versie om MinderGas te loggen heb ik nodig voor de LS110 ?

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
Chris12 schreef op woensdag 16 augustus 2017 @ 09:46:
@YouLess welke versie om MinderGas te loggen heb ik nodig voor de LS110 ?
1.20-G4 is de juiste.

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
Ok, thanks!

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • Speedfightserv
  • Registratie: September 2004
  • Laatst online: 14:05
ThinkPadd schreef op dinsdag 20 januari 2015 @ 15:14:
Domoticz + Mindergas.nl

Ik heb een hele tijd m'n slimme meter uitgelezen met een Arduino: ThinkPad's TweakBlog: Uitlezen van de slimme meter P1-poort met een Arduino en waarden opslaan in MySQL-database

Maar ik gebruik ook al weer een tijdje een Raspberry Pi met Domoticz erop. Daarmee lees ik ook de slimme meter uit (via RJ11 splitter zowel Arduino als Raspberry aan de meter hangen). Nu heeft [Verwijderde gebruiker] een Python scriptje gemaakt zodat je de meterstand uit Domoticz kunt halen en kunt uploaden naar Mindergas.nl. De Arduino is in mijn situatie dus niet meer nodig. De meterstand wordt nu automatisch elke nacht naar www.mindergas.nl geupload _O_

Je vind het script en uitleg hier: http://tweaken.blogspot.n...den-naar-mindergasnl.html
Heb jij dit script nog? :) (die van domoticz naar mindergas)

helaas werkt de link naar blogspot niet meer


edit: hmm, volgens mij heb ik hem al via google... |:(

[ Voor 3% gewijzigd door Speedfightserv op 18-08-2017 15:05 ]

30 x Trina 390wp Op SE en Solis. | MHI 3,5kw


Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Speedfightserv schreef op vrijdag 18 augustus 2017 @ 15:01:
[...]


Heb jij dit script nog? :) (die van domoticz naar mindergas)

helaas werkt de link naar blogspot niet meer


edit: hmm, volgens mij heb ik hem al via google... |:(
Zou deze moeten zijn: https://www.domoticz.com/wiki/Mindergas.nl

Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
Heb het script van @Heinemancp op mn Synology draaien.
Uiteraard aangepast met mn eigen youless IP adres en eigen Token.

Ik zie in de log file deze melding: (na handmatig runnen script, deze loopt normaliter om 23:55 dagelijks)

18-08-2017 : 21:48:31 - Start cURL
Meterstand:
ERROR: HTTP-code: 422


Wat inhoud dat er al voor deze dag een meterstand zou zijn ingevoerd.
Check bij mindergas geeft nog geen meterstand voor deze dag.

Wanneer ik het volgende uitvoer: http://<ip adres youless>/a

52635,446 m3
0 l/u
32% (±0%)
*


Deze meterstand is hoger dan de (handmatig ingevoerde) meterstand van gisteren (52 635,416 )
dus die zou ik wel verwachten dan voor deze dag.

het script resultaat via de email:

Taak: MinderGas Upload
Starttijd: Fri, 18 Aug 2017 21:48:31 GMT
Stoptijd: Fri, 18 Aug 2017 21:48:31 GMT
Huidige status: 0
Standaard uitvoer/fout:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* TLSv1.2 (OUT), TLS header, Certificate Status (22):
} [5 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.2 (IN), TLS handshake, Server hello (2):
{ [98 bytes data]
* TLSv1.2 (IN), TLS handshake, Certificate (11):
{ [5662 bytes data]
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
{ [589 bytes data]
* TLSv1.2 (IN), TLS handshake, Server finished (14):
{ [4 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
} [70 bytes data]
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
} [1 bytes data]
* TLSv1.2 (OUT), TLS handshake, Finished (20):
} [16 bytes data]
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
{ [1 bytes data]
* TLSv1.2 (IN), TLS handshake, Finished (20):
{ [16 bytes data]
> POST /api/gas_meter_readings HTTP/1.1
> Host: www.mindergas.nl
> User-Agent: curl/7.51.0
> Accept: */*
> Content-Type:application/json
> AUTH-TOKEN:BhA5xxxxxxxxxx27VEzT
> Content-Length: 37
>
} [37 bytes data]
< HTTP/1.1 422 Unprocessable Entity
< Date: Fri, 18 Aug 2017 19:48:31 GMT
< Server: Apache
< X-Frame-Options: SAMEORIGIN
< X-XSS-Protection: 1; mode=block
< X-Content-Type-Options: nosniff
< Cache-Control: no-cache
< X-Request-Id: 6c2a2c87-ff40-4f03-ade1-3a544edacb0f
< X-Runtime: 0.028790
< X-Powered-By: Phusion Passenger 4.0.60
< Status: 422 Unprocessable Entity
< X-Powered-By: PleskLin
< Vary: Accept-Encoding
< Content-Length: 0
< Content-Type: text/html
<

100 37 0 0 100 37 0 286 --:--:-- --:--:-- --:--:-- 289



Meet gegevens van de youless (30min)

Verbruik (l/u)
21:29 0
21:30 0
21:31 0
21:32 0
21:33 0
21:34 0
21:35 0
21:36 0
21:37 0
21:38 0
21:39 0
21:40 0
21:41 0
21:42 0
21:43 0
21:44 0
21:45 0
21:46 6
21:47 0
21:48 0
21:49 0
21:50 0
21:51 0
21:52 0
21:53 0
21:54 0
21:55 0
21:56 0
21:57 0
21:58 0


Wat gaat hier mis?

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
als aanvulling op bovenstaande.

Wanneer de CV aanstaat, dan doet de Youless het prima.
De puls (glimmende 0 ) wordt gedetecteerd (99% met een zwart bolletje erachter) en ook in de meetgegevens komen meetwaarden te staan.

Om iets over 8:00 de CV aan laten slaan:

Verbruik (l/u)
08:00 0
08:01 0
08:02 306
08:03 312
08:04 306
08:05 300
08:06 300
08:07 312
08:08 312
08:09 300
08:10 306

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
Ok, weer een stapje verder.

als ik een fixed waarde (52635.600) invul voor de gascounter, en deze waarde met een 'punt' notatie zet dan gaat de upload Ok. (Status: 201 Created)

STATUS=$(curl --write-out %{http_code} -v -H "Content-Type:application/json" -H "AUTH-TOKEN:BhA5q5xxxxxxxxxxVEzT" -d '{"date":"'$fullDate'", "reading":52635.600 }' https://www.mindergas.nl/api/gas_meter_readings)

wat dus betekend dat het hier ergens verkeerd gaat:
gasCounter=`curl -s http://192.168.1.21/a |grep m3|sed s/\ m3//|sed s/\,/\./|sed s/^\ // | cut -c 1-9 | tr , .`

Echter bovenstaande syntax is abracadabra voor mij.
tr dit doet de , door een . vervangen
Maar de rest kan ik niet volgen.

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
Op wat voor systeem werk je? Op een Mac is curl gewoon beschikbaar in de Terminal-app.

A'dam PVOutput


Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
Windows machine.
Maar het script werkt op mn Synology NAS (linux)

Wanneer ik in putty:
gasCounter=`curl -s http://192.168.1.21/a |grep m3|sed s/\ m3//|sed s/\,/\./|sed s/^\ // | cut -c 1-9 | tr , .`

wordt er niks getoond (ook geen error).

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
Wanneer ik onderstaande uitvoer:

curl -v http://192.168.1.21/a |grep m3|sed s/\ m3//|sed s/\,/\./|sed s/^\ // | cut -c 1-9 | tr , .

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0> GET /a HTTP/1.1
> Host: 192.168.1.21
> User-Agent: curl/7.51.0
> Accept: */*
>
< HTTP/1.0 403 Forbidden
< Content-Type: text/html
<
{ [264 bytes data]


Zo het daar iets mee te maken kunnen hebben?

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
Even snel uit m'n hoofd: De Youless wil ergens een session cookie wegschrijven. Die file zou ergens moeten staan en aangepast kunnen worden. En was er niet iets met een wachtwoord?

(edit, even nagezocht)
Mijn script draait op een Friz.box
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
# Linux versie
#20130126 Aanpassing decimalen voor Mindergas, Youless met password
#putting the token in a variable 
token='abcdefgh12345678'
#set the date for mindergas.nl
fullDate=$(date +"%Y-%m-%d")
#get a session cookie from the Youless and store it as cookie.txt
curl -c /var/mediapath/script/cookie.txt http://192.168.178.175/L?w=12345abcde
#get todays gasCounter by curl-ing the Youless
gasCounter=`curl -b /var/mediapath/script/cookie.txt http://192.168.178.175/a |grep m3 | cut -c 1-9 | tr , .`
#send gasCounter to mindergas with the current date and token
#echo $gasCounter
curl -k -H "Content-Type:application/json" -H "Accept:application/json" -H "AUTH-TOKEN:$token" -d '{"date":"'$fullDate'","reading":"'$gasCounter'"}' https://www.mindergas.nl/mobile_app/gas_meter_readings > /dev/null 2>&1


Merk op dat de curl-opdracht wel iets simpeler kan.

[ Voor 85% gewijzigd door ericplan op 19-08-2017 14:00 . Reden: script ]

A'dam PVOutput


Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
in het script van @Heinemancp wordt er niks met een cookie gedaan in jouw script (@ericplan ) weer wel.
Ik gebruik nu het script van @Heinemancp

Maar zal het cookie deel van jouw script er eens tussen zetten.

Cookie wordt aangemaakt op de NAS in /volume1/public folder

# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

192.168.1.21 FALSE / FALSE 0 tk waarocjd


als ik onderstaande uitvoer in putty:
curl -v /volume1/public/cookie.txt http://192.168.1.21/a |grep m3|sed s/\ m3//|sed s/\,/\./|sed s/^\ // | cut -c 1-9 | tr , .

* <url> malformed
curl: (3) <url> malformed
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0> GET /a HTTP/1.1
> Host: 192.168.1.21
> User-Agent: curl/7.51.0
> Accept: */*
>
< HTTP/1.0 403 Forbidden
< Content-Type: text/html
<
{ [264 bytes data]
100 264 0 264 0 0 32101 0 --:--:-- --:--:-- --:--:-- 37714

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
Chris12 schreef op zaterdag 19 augustus 2017 @ 14:11:
in het script van @Heinemancp wordt er niks met een cookie gedaan in jouw script (@ericplan ) weer wel.
Ik gebruik nu het script van @Heinemancp

Maar zal het cookie deel van jouw script er eens tussen zetten.

Cookie wordt aangemaakt op de NAS in /volume1/public folder

# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

192.168.1.21 FALSE / FALSE 0 tk waarocjd


als ik onderstaande uitvoer in putty:
curl -v /volume1/public/cookie.txt http://192.168.1.21/a |grep m3|sed s/\ m3//|sed s/\,/\./|sed s/^\ // | cut -c 1-9 | tr , .

* <url> malformed
curl: (3) <url> malformed
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0> GET /a HTTP/1.1
> Host: 192.168.1.21
> User-Agent: curl/7.51.0
> Accept: */*
>
< HTTP/1.0 403 Forbidden
< Content-Type: text/html
<
{ \[264 bytes data]
100 264 0 264 0 0 32101 0 --:--:-- --:--:-- --:--:-- 37714
Zojuist even getest, en gecontroleerd. de curl functies met toebehoren werken bij mij wel. ik was even aan het zoeken wat al die toevoegen ook al weer deden... paar jaar geleden helaas. Maar goed, bij mij werkt het wel...

Wel zijn de HTML codes kennelijk eindelijk zonder spatie, dus ik heb die nu uit de code gehaald. wordt de log ook beter leesbaar.

Wat de Curl doet is alleen het getal uit de IP/a halen, en niet de rest. Hier zitten een paar gekke dingen in, zo staat er een wisselend aantal getallen (bij jou al meer cijfers voor de komma dan bij mij, maar ook erna). dus hij gaat op zoek naar m3. dan haalt hij wat voor / erachter eraf, maar het kan ook nog gebeuren dat er . en , in staat, die mindergas niet meer snapt. Anyway, dat allemaal zit in de curl. het kan vast ook minder moeilijk ;) had jij die Curl van @Erik al geprobeerd?

Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
die curl geeft dezelfde error:

> GET /a HTTP/1.1
> Host: 192.168.1.21
> User-Agent: curl/7.51.0
> Accept: */*
>
< HTTP/1.0 403 Forbidden
< Content-Type: text/html

kan het te maken hebben met HTTP/1.0 en HTTP/1.1 ?

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
^^
Heb je wel of geen wachtwoord op je Youless?

A'dam PVOutput


Acties:
  • 0 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
Dat weet ik niet, als je de $gascounter logt, heb je dan wel een getal, of zit hier een spatie / punt / anders in?

heb jij een token al gecontroleerd? Wellicht hier een typefout/ spatie etc?

[ Voor 25% gewijzigd door Heinemancp op 19-08-2017 14:30 ]


Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
geen password op de Youless.

@Heinemancp wat bedoel je precies met als ik $gasCounter log ? Hoe kan ik dat doen?

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
Chris12 schreef op zaterdag 19 augustus 2017 @ 14:31:
geen password op de Youless.

@Heinemancp wat bedoel je precies met als ik $gasCounter log ? Hoe kan ik dat doen?
even de code uitzetten na:
echo "Meterstand: $gasCounter" >> $LOGFILE 2>&1

dan krijg je in je logfile alleen de meterstand, gaat dat wel goed? dan weten we dat het niet in het voorgaande stuk zit, en dan zit het dus in het in deze regel:

STATUS=$(curl --write-out %{http_code} -v -H "Content-Type:application/json" -H "AUTH-TOKEN:xxx" -d '{"date":"'$fullDate'", "reading": "'$gasCounter'" }' https://www.mindergas.nl/api/gas_meter_readings)

Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
Ja in de logfile komt dan onderstaande te staan:

19-08-2017 : 14:38:10 - Start cURL
Meterstand: 52635.671

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
aan de zijde van mindergas.nl zien zij in de logging:

ActionDispatch::ParamsParser::ParseError (765: unexpected token at '{"date":2017-08-19, "reading": }'):
actionpack (4.2.8) lib/action_dispatch/middleware/params_parser.rb:53:in `rescue in parse_formatted_parameters'
actionpack (4.2.8) lib/action_dispatch/middleware/params_parser.rb:32:in `parse_formatted_parameters'
actionpack (4.2.8) lib/action_dispatch/middleware/params_parser.rb:23:in `call'
actionpack (4.2.8) lib/action_dispatch/middleware/flash.rb:260:in `call'
rack (1.6.5) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.6.5) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.2.8) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.2.8) lib/active_record/query_cache.rb:36:in `call'

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
Mooi, als je dit nu invult (handmatig) op mindergas.nl, gaat dat dan goed?
ligt misschien aan die decimalen denk ik, twee is wellicht maximaal?

EDIT: nee zelf gecontroleerd, dat gaat wel.

ik zie in je post twee opvallende dingen:
1) unexpected TOKEN. heb jij die al opnieuw aangevraagd/ gecontroleerd met je ingevulde waarde?
2) na "reading: "is het leeg. staat hier wellicht een typefout in $gasCounter zodat hij geen waarde heeft?

[ Voor 50% gewijzigd door Heinemancp op 19-08-2017 14:48 ]


Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
@Heinemancp ik had al vanmorgen met een fixed waarde erin getest, dit gaat OK. (ook met 3 decimalen, gaat handmatige invoer OK.)
Chris12 schreef op zaterdag 19 augustus 2017 @ 11:51:

Als ik een fixed waarde (52635.600) invul voor de gascounter, en deze waarde met een 'punt' notatie zet dan gaat de upload Ok. (Status: 201 Created)

STATUS=$(curl --write-out %{http_code} -v -H "Content-Type:application/json" -H "AUTH-TOKEN:BhA5q5xxxxxxxxxxVEzT" -d '{"date":"'$fullDate'", "reading":52635.600 }' https://www.mindergas.nl/api/gas_meter_readings)

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
Chris12 schreef op zaterdag 19 augustus 2017 @ 14:50:
@Heinemancp ik had al vanmorgen met een fixed waarde erin getest, dit gaat OK. (ook met 3 decimalen, gaat handmatige invoer OK.)


[...]
ok, dus de gascounter komt niet goed door. heb je daar al naar gekeken? dus de overeenkomst tussen $gascounter bij de curl en de $gascounter bij de upload-functie? dat ze dus exact hetzelfde zijn?

en moet tussen extra ' staan. dus:

"reading": " '$gasCounter' " (met extra spaties)

wellicht dat niet aanwezig?

[ Voor 12% gewijzigd door Heinemancp op 19-08-2017 15:31 ]


Acties:
  • +1 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
Nee dat staat inderdaad niet zo:
(ook niet in jouw org. script in dit topic, wellicht even editten... en dan ook meteen de HTTP code goed zetten?)

STATUS=$(curl --write-out %{http_code} -v -H "Content-Type:application/json" -H "AUTH-TOKEN:BhA5qxxxxxxxxxxVEzT" -d '{"date":"'$fullDate'", "reading": "'$gasCounter'" }' https://www.mindergas.nl/api/gas_meter_readings)

dit nu aangepast, en script unhashed. Daarna handmatig gestart.
In de logfile staat nu:

19-08-2017 : 15:42:43 - Start cURL
Meterstand: 52635.671
ERROR: HTTP-code: 422


Maar dit kan komen doordat er al voor vandaag een meterstand is (test van eerder vandaag met de vast ingevulde waarde).
Dus heb ik die waarde gewist op de mindergas.nl site, daarna nog een keer script gestart:

19-08-2017 : 15:45:13 - Start cURL
Meterstand: 52635.671
ERROR: HTTP-code: 201


en de waarde verschijnt nu wel op de mindergas.nl site !!

Nog even de spaties voor de HTTP codes weggehaald zoals je al eerder aangaf.
zodat er nu mooi in de logging een leesbare resultaat staat:

19-08-2017 : 15:47:49 - Start cURL
Meterstand: 52635.671
Meterstand uploaded naar mindergas.nl


Dank voor jullie hulp en meedenken.... _/-\o_

Mijn PVOutput


Acties:
  • +1 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
code:
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
#!/bin/sh

#set the date for mindergas.nl
fullDate=$(date +"%Y-%m-%d")

#log start
LOGFILE=/volume1/public/log_mindergas.log
echo "$(date "+%d-%m-%Y : %T") - Start cURL" >> $LOGFILE 2>&1

#get todays gasCounter by curl-ing the Youless

gasCounter=`curl -s http://IP/a |grep m3|sed s/\ m3//|sed s/\,/\./|sed s/^\ // | cut -c 1-9 | tr , .`

#send gasCounter to mindergas with the current date and token
echo "Meterstand: $gasCounter" >> $LOGFILE 2>&1

STATUS=$(curl --write-out %{http_code} -v -H "Content-Type:application/json" -H "AUTH-TOKEN:XXXX" -d '{"date":"'$fullDate'", "reading": "'$gasCounter'" }' https://www.mindergas.nl/api/gas_meter_readings)


if [ "$STATUS" = "201" ] 
then
    echo "Meterstand geupload naar mindergas.nl" >> $LOGFILE  2>&1
elif  [ "$STATUS" = "422" ] 
then
    echo "ERROR: Meterstand vandaag reeds ingevoerd, HTTP-status: $STATUS " >> $LOGFILE  2>&1
else 
    echo "ERROR: HTTP-code: $STATUS" >> $LOGFILE  2>&1
fi

echo "---------------------------------------------" >> $LOGFILE  2>&1


aanpassen voor eigen gebruikt:
- IP
- Token

Acties:
  • 0 Henk 'm!

  • Chris12
  • Registratie: Augustus 2006
  • Laatst online: 14-09 21:50
ik heb gasCounter als volgt in het script nu staan:
(met extra spatie tussen de dubbel en single quote)

{"date":"'$fullDate'", "reading": " '$gasCounter' " }'

Dit was uiteindelijk de oplossing.

Mijn PVOutput


Acties:
  • 0 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
Heinemancp schreef op zaterdag 19 augustus 2017 @ 16:24:
code:
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
#!/bin/sh

#set the date for mindergas.nl
fullDate=$(date +"%Y-%m-%d")

#log start
LOGFILE=/volume1/public/log_mindergas.log
echo "$(date "+%d-%m-%Y : %T") - Start cURL" >> $LOGFILE 2>&1

#get todays gasCounter by curl-ing the Youless

gasCounter=`curl -s http://IP/a |grep m3|sed s/\ m3//|sed s/\,/\./|sed s/^\ // | cut -c 1-9 | tr , .`

#send gasCounter to mindergas with the current date and token
echo "Meterstand: $gasCounter" >> $LOGFILE 2>&1

STATUS=$(curl --write-out %{http_code} -v -H "Content-Type:application/json" -H "AUTH-TOKEN:XXXX" -d '{"date":"'$fullDate'", "reading": "'$gasCounter'" }' https://www.mindergas.nl/api/gas_meter_readings)


if [ "$STATUS" = "201" ] 
then
    echo "Meterstand geupload naar mindergas.nl" >> $LOGFILE  2>&1
elif  [ "$STATUS" = "422" ] 
then
    echo "ERROR: Meterstand vandaag reeds ingevoerd, HTTP-status: $STATUS " >> $LOGFILE  2>&1
else 
    echo "ERROR: HTTP-code: $STATUS" >> $LOGFILE  2>&1
fi

echo "---------------------------------------------" >> $LOGFILE  2>&1


aanpassen voor eigen gebruikt:
- IP
- Token
Mist er niet een $ aan het begin van regel 12? (Edit, hoeft blijkbaar niet in bash)

Verder is het nut van het sed-command me hier niet helemaal duidelijk. In mijn (linux)omgeving kan ik het gewoon weglaten. Meer over sed: http://www.grymoire.com/Unix/Sed.html

A'dam PVOutput


Acties:
  • 0 Henk 'm!

  • MisteRMeesteR
  • Registratie: December 2001
  • Nu online

MisteRMeesteR

Moderator Internet & Netwerken

Is Gek op... :)

Heb jij deze firmware nog beschikbaar? Op de site van Youless is hij niet meer te downloaden.

www.google.nl


Acties:
  • 0 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
MisteRMeesteR schreef op dinsdag 5 september 2017 @ 12:43:
[...]

Heb jij deze firmware nog beschikbaar? Op de site van Youless is hij niet meer te downloaden.
Zie TS
http://got.td-er.nl/Youless/youless-flash-1.2.0-G4.exe

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Python scriptje voor het uitlezen + uploaden naar Mindergas van de gasmeterstand die een YouLess LS120 ophaalt bij je slimme meter:


Python:
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
#!/usr/bin/python3
#This script reads the field 'gas' from a YouLess LS120 that reads a P1 smart meter
#It then uploads the reading for the gas meter to Mindergas.nl through their API
#The script is meant to run after midnight, run it for example at 0:20
import requests
import json
import datetime

mindergas = "http://www.mindergas.nl/api/gas_meter_readings"
mindergas_token = 'yourtokenhere'
youless_ip = "http://192.168.6.28/e"
response = requests.get(youless_ip)
gas_usage = response.json()[0]['gas']
print (gas_usage)

def post():
    yesterday = datetime.date.today () - datetime.timedelta (days=1)
    data = {'date': yesterday.strftime ("%Y%m%d"), 'reading':gas_usage}
    headers = {'Content-Type': 'application/json', 'AUTH-TOKEN': mindergas_token}
    r = requests.post(mindergas, data=json.dumps(data), headers=headers)
    print (yesterday.strftime ("%Y%m%d"))
    print (data)
    print (r)
    print ('Ready')
post()

Acties:
  • +1 Henk 'm!

  • pkleingu2
  • Registratie: September 2009
  • Laatst online: 29-07 10:56
Voor wie interesse heeft heb ik hier een powershell script om de YouLess(pvoutput firmware) gaswaarden te uploaden naar Mindergas.nl
Dit script check welke gaswaarden ontbreken en haalt deze van de Youless p1 met pvoutput firmware en upload deze tot aan datum van gisteren.
Met dank aan David La Hei van MinderGas.nl voor het toevoegen van de functie voor het uitvragen van de laatste toegevoegd datum en gasverbruik waarde.

PowerShell:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
$AUTHTokenMindergas = "AUTH-TOKEN:<Tokenwachtwoord>"
$WachtwoordYouLess = "<YouLessWachtwoord>"
$ipadres =  "<xxx.xxx.xxx.xxx>"

Function Get-DateRange {
    [CmdletBinding()]
    Param (
        [datetime]$Start = (Get-Date),
        [datetime]$End = (Get-Date)
    )
    
    ForEach ($Num in (0..((New-TimeSpan -Start $Start -End $End).Days))) {
        $Start.AddDays($Num).ToString("dd-MM-yy")
    }
}

write-host "De upload datums worden bepaald"
#haal de laaste meterstand en datum op bij mindergas
$argHeaderMindergas = @('-H', 'Content-Type:application/json', '-H', $AUTHTokenMindergas)
$LaatsteMindergas = & C:\Windows\System32\curl -s $argHeaderMindergas https://mindergas.nl/api/gas_meter_readings/latest
Start-Sleep 2
$LaatstestandMindergas = $(ConvertFrom-Json($LaatsteMindergas)).reading
$LaatstedatumMindergas = $(ConvertFrom-Json($LaatsteMindergas)).date
#bepaal de datums die nog verwerkt moeten worden.
$Gisteren = $((get-date).AddDays(-1))
$NieuwedatumMindergas = $(Get-date($LaatstedatumMindergas)).AddDays(1)
$AlleOntbrekendeDagen = Get-DateRange -Start $NieuwedatumMindergas -End $Gisteren
#Maak verbinding met de youless met pvoutout firmware
$AllArgsYouless = @('-s', '-c', 'cookie.txt', "http://$ipadres/L?w=$WachtwoordYouLess")
& C:\Windows\System32\curl $AllArgsYouless

Start-Sleep 2
#haal de gasstanden op van alle maanden(youless) van de ontbrekende datums op mindergas.
ForEach($datumMindergas in $AlleOntbrekendeDagen){
    $maand = $datumMindergas.split("-")[1]
    $AllArgsyouless = @('-s', '-b', 'cookie.txt', "http://$ipadres/W?m=$($maand)")
    $DagenVanMaandYouless = & C:\Windows\System32\curl $AllArgsyouless
    Start-Sleep 2
    #Voor alle dagen van die maand in de youless kijk of er een dag ontbreekt op mindergas
    foreach($regelYouless in $DagenVanMaandYouless){
        If ($regelYouless -match $datumMindergas){
            $Youlesswaarde = $($regelYouless.Split(" ")[-1].Replace(',','.'))
            [string]$LaatstestandMindergas = [Double]$LaatstestandMindergas + [Double]$Youlesswaarde
            [string]$LaatstestandMindergas = $LaatstestandMindergas.Replace(',','.')
            $Youlessdatum = $regelYouless.Split(" ")[0]
            $Youlessdatum = $(get-date($youlessdatum)).ToString("yyyy-MM-dd")
            Write-host "Van de datum :"$Youlessdatum "word de gaswaarde Youlesswaarde" $LaatstestandMindergas "geupload"
            $uploadMindergas = @{date=$Youlessdatum;reading=$LaatstestandMindergas} | ConvertTo-Json -Compress
            $uploadMindergas = $uploadMindergas.Replace('"','\"')
            $output = @()
            $output = & C:\Windows\System32\curl -v $argHeaderMindergas -d $uploadMindergas https://www.mindergas.nl/api/gas_meter_readings 2>&1
            if ($output -like "*Status: 201 Created*") {
                Write-host "Van de datum :"$Youlessdatum "is de gaswaarde Youlesswaarde " $LaatstestandMindergas " succesvol Toegevoegd"
            }
            else{
                write-host "Er lijkt iets mis te gaan."
            }
            Start-Sleep 2
        }
    }
}
if (([DateTime]::Today).AddDays(-1).ToString("yyyyMMdd") -eq $([DateTime]$LaatstedatumMindergas).ToString("yyyyMMdd")) { Write-Host "er is niets te uploaden"}
 Write-host "klaar met het uploaden"

[ Voor 107% gewijzigd door pkleingu2 op 15-02-2019 22:05 ]


Acties:
  • 0 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
Zojuist mijn account bij Mindergas opgeheven. Na een verbouwing zijn we gasloos. Verwacht dus geen bijdragen meer van mij in dit topic.

A'dam PVOutput


Acties:
  • 0 Henk 'm!

  • Highfive95
  • Registratie: April 2014
  • Laatst online: 20:35
Ik ben ook bezig met het automatiseren van mijn gasmeter naar Mindergas.nl echter loop ik tegen roblemen aan. De meterstanden worden ingelezen in Domoticz op mijn Synology nas. Echter het python script krijg ik niet aan de praat.

Ik gebruik het script van Mindergas Domoticz.

Ik krijg de volgende foutmelding:

code:
1
2
3
Standaard uitvoer/fout:
sh: -c: line 0: syntax error near unexpected token `10'
sh: -c: line 0: `python /volume1/homes/admin/mindergas.py -a <mindergastoken> -d <10>'


Ik heb het script aangepast maar weet niet of dat goed is. Ik heb de url van Domoticz aangepast naar 192.168.2.13:8084. Dit is de url van Domoticz op de Synology.

code:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# encoding: utf-8
'''
mindergas -- Upload meterstand van Domoticz naar MinderGas.nl

Instructies:

An P1 Smart Meter krijgt elk uur een update van de Gas meter. Voer 
dit script daarom in het eerste uur na middennacht uit. Bijvoorbeeld om
00:14. Hierdoor wordt de laatste meterstand van de vorige dag correct
geregistreerd onder de datum van de vorige dag.

'''

import sys, json, urllib2
from datetime import datetime, timedelta
from argparse import ArgumentParser

def main(argv=None):
    
    parser = ArgumentParser(description='Upload meterstand van Domoticz naar MinderGas.nl')
    parser.add_argument("-a", "--apikey", dest="apikey", help="MinderGas.nl API Key", required=True)
    parser.add_argument("-u", "--url", dest="url", help="URL naar Domoticz, eg: http://localhost:8080", default='http://192.168.2.13:8084')
    parser.add_argument("-d", "--device-id", dest="device", help="Device id voor de P1 Gas Smart Meter", type=int, required=True)

    args = parser.parse_args()
    
    device_data = json.load(urllib2.urlopen("%s/json.htm?type=devices&rid=%s" % (args.url, args.device), timeout=5))
    meterstand = device_data['result'][0]['Counter']

    code = upload_meterstand(meterstand, args.apikey)

    if code == 201:
        return 0
    else:
        return code


def upload_meterstand(meterstand, apikey):
    """
    Upload meterstand naar mindergas.nl
    """
    data = {
            'date': (datetime.now().date() - timedelta(days=1)).strftime("%Y-%m-%d"),
            'reading': meterstand
    }
    
    req = urllib2.Request('http://www.mindergas.nl/api/gas_meter_readings')
    req.add_header('Content-Type', 'application/json')
    req.add_header('AUTH-TOKEN', apikey)
    
    return urllib2.urlopen(req, json.dumps(data)).getcode()
    
if __name__ == "__main__":
    sys.exit(main())


Bij de taakplanner van Synology heb ik de volgende cronjob aangemaakt.

code:
1
python /volume1/homes/admin/mindergas.py -a <mindergastoken> -d <10>


Ergens gaat er iets niet goed, maar ik heb geen idee waar. Ben echt een noob in python :X

Acties:
  • 0 Henk 'm!

  • rvk
  • Registratie: Mei 2011
  • Laatst online: 20:55

rvk

Highfive95 schreef op zondag 3 januari 2021 @ 16:59:
Ik krijg de volgende foutmelding:

code:
1
2
3
Standaard uitvoer/fout:
sh: -c: line 0: syntax error near unexpected token `10'
sh: -c: line 0: `python /volume1/homes/admin/mindergas.py -a <mindergastoken> -d <10>'
Je moet dit <mindergastoken> vervangen door je token die je van mindergas hebt (zonder < en >).

Ook de <10> moet je gasmeter-idx (uit domoticz) zijn zonder < en >.

Dus bv
/volume1/homes/admin/mindergas.py -a xxx -d 10
(Waar je xxx moet opzoeken in je account bij mindergas)

Overigens staat dit toch duidelijk uitgelegd op
https://ehoco.nl/gasmeterstand-uploaden-naar-mindergas-nl/

[ Voor 15% gewijzigd door rvk op 03-01-2021 17:14 ]


Acties:
  • 0 Henk 'm!

  • Highfive95
  • Registratie: April 2014
  • Laatst online: 20:35
rvk schreef op zondag 3 januari 2021 @ 17:09:
Dus bv
/volume1/homes/admin/mindergas.py -a xxx -d 10
(Waar je xxx moet opzoeken in je account bij mindergas)
Ik heb het aangepast en nu krijg ik de volgende foutmelding:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Traceback (most recent call last):
  File "/volume1/homes/admin/mindergas.py", line 54, in <module>
    sys.exit(main())
  File "/volume1/homes/admin/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 452, in _open
    'unknown_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 1266, in unknown_open
    raise URLError('unknown url type: %s' % type)
urllib2.URLError: <urlopen error unknown url type: 192.168.2.13>


Echt abracadabra voor mij. :X

Acties:
  • 0 Henk 'm!

  • rvk
  • Registratie: Mei 2011
  • Laatst online: 20:55

rvk

Highfive95 schreef op zondag 3 januari 2021 @ 17:13:
[...]
code:
1
2
...
urllib2.URLError: <urlopen error unknown url type: 192.168.2.13>

Echt abracadabra voor mij. :X
Lees alleen de laatste regel.
Je hebt zelf http://localhost:8080 gewijzigd in http://192.168.2.13:8084.
Is dat ook het ip en poort waar domoticz op draait?
Als die gewoon draait op dezelfde machine als domoticz (en port 8080) dan had je localhost gewoon kunnen laten staan.

In ieder geval gaat het mis met de communicatie met http://192.168.2.13:8084.

Acties:
  • 0 Henk 'm!

  • Highfive95
  • Registratie: April 2014
  • Laatst online: 20:35
rvk schreef op zondag 3 januari 2021 @ 17:24:
[...]

Lees alleen de laatste regel.
Je hebt zelf http://localhost:8080 gewijzigd in http://192.168.2.13:8084.
Is dat ook het ip en poort waar domoticz op draait?
Als die gewoon draait op dezelfde machine als domoticz (en port 8080) dan had je localhost gewoon kunnen laten staan.

In ieder geval gaat het mis met de communicatie met http://192.168.2.13:8084.
Domoticz draait op dit ip adres met deze poort. Moet ik dan localhost laten staan?

Acties:
  • 0 Henk 'm!

  • rvk
  • Registratie: Mei 2011
  • Laatst online: 20:55

rvk

Highfive95 schreef op zondag 3 januari 2021 @ 17:32:
[...]
Domoticz draait op dit ip adres met deze poort. Moet ik dan localhost laten staan?
Als domoticz bereikbaar is op http://192.168.2.13:8084 dan zou het gewoon moeten werken.

Wat geeft dit als resultaat in een browser op een andere pc?
http://192.168.2.13:8084/json.htm?type=devices&rid=10

Acties:
  • 0 Henk 'm!

  • Highfive95
  • Registratie: April 2014
  • Laatst online: 20:35
@rvk
Het is gelukt. Thanks (y)

Het probleem was dat ik aangepaste bestand niet had geupload. :F :$

Heb het script getest en data wordt netjes geupload.

Acties:
  • +2 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
LET OP: Wijziging van de API
Wijzigingen per 1 januari 2021

In verband met het toevoegen van ondersteuning voor meterstanden in kWh en GJ zijn de volgende wijzigingen aan de API doorgevoerd:
  • De URL is veranderd van http(s)://www.mindergas.nl/api/gas_meter_readings naar http(s)://www.mindergas.nl/api/meter_readings
  • De meterstand in liters (reading_l) wordt niet meer ondersteund.
De oude API blijft voorlopig nog wel werken (zeker enkele maanden), maar update ajb jouw software.
@Toppe (Domoticz) @Hmmbob (HASS) @GENETX (OpenHAB): Wellicht ook even posten in jullie topics?

[ Voor 8% gewijzigd door ThinkPad op 07-01-2021 13:18 ]


Acties:
  • 0 Henk 'm!

  • pkrpkr
  • Registratie: Augustus 2022
  • Laatst online: 10-09 14:34
Heeft iemand al eens succes gehad met het tijdstip van upload van een meterstand via de API ook in Mindergas geregistreerd te krijgen?
Nu krijg je bijvoorbeeld 17-01-2023 23:59:59 te zien in Mindergas en die tijd is altijd hetzelfde.

Ik heb geprobeerd met :

fullDate=$(date +"%Y-%m-%dT%H:%M:%S")

en even verderop :

curl -k -H "Content-Type:application/json" -H "Accept:application/json" -H "AUTH-TOKEN:$token" -d '{"date":"'$fullDate'","reading":"'$gasCounter'"}' https://www.mindergas.nl/api/meter_readings > /dev/null 2>&1

Maar dat werkt niet. De geregistreerde tijd blijft nog steeds 23:59:59.

Acties:
  • +1 Henk 'm!

  • Bravo
  • Registratie: Augustus 2005
  • Laatst online: 19:35

Bravo

Second Best

De basis van de berekeningen bij Mindergas.nl zijn de graaddagen, die worden per dag berekend. De API geeft de mogelijkheid om dagelijks je meterstand door te geven, standaard wordt dat als dageindstand gezien, maar je kunt ook dagbeginstand kiezen (Indien je liever de beginstand van de dag wilt doorgeven, voeg dan 'T00:00:00' toe aan de datum.).
Tijdstippen daartussen voegen niet zoveel toe en worden blijkbaar ook niet geaccepteerd.

Ioniq 6 LR Lounge 20"
2700Wp SSW 30° @ SE2200 | 1720Wp SSW 5° @ HM-1500
Flickr | Canon 6D | 17-40mm f/4 + 50mm f/1.8 II + 70-200mm f/4 | 2x 430EX II | Sirui T005 + C10


Acties:
  • 0 Henk 'm!

  • pkrpkr
  • Registratie: Augustus 2022
  • Laatst online: 10-09 14:34
Thnx, klinkt logisch.

  • AOC
  • Registratie: September 2001
  • Niet online

AOC

Nu beschik is over een wemos d1 met espeasy die data uit een slimme meter haalt. Maar wat is nu een van de makkelijkste/veiligste manieren om de gasstand naar mindergas.nl te krijgen? Ik zie variaties data sturen naar domoticz of home assistent en vervolgens naar node-red. Maar ook variaties direct naar node-red. Ik vind het zelf lastig te bepalen wat handig is :)

Zelf heb ik geen thuisserver of iets dergelijks. Wel een vps waar ik node-red, domoticz of iets anders kan installeren. Dus de Wemos D1 zou dan zijn data via mqtt of domoticz http een kant heen moeten sturen.

weet iemand een korte route om de data van Wemos naar mindergas te krijgen?

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Nog een algemene tip: laat de upload naar Mindergas niet exact om 0:00 plaatsvinden, maar doe dat een paar (4-15 min. ofzo) later. Ik zie bij mijn DSMR4 meter namelijk dat de gasmeter zijn data niet exact op het hele uur aanlevert, maar dat er een paar minuten vertraging in zit. Bij een DSMR5 meter is de interval elke 5 min. i.p.v. elk uur dus dat scheelt al een stuk, maar kun je dus alsnog wat data missen.

Als je om 0:00 de data al opstuurt naar Mindergas dan mis je met een < DSMR5 meter in het slechtste geval dus het verbruik van een heel uur (23:00 - 0:00). Geen ramp natuurlijk, dat telt wel op bij de volgende dag, maar even ter info. Daarnaast scheelt het nog weer wat serverbelasting aan de kant van Mindergas om het niet op exact 0:00 te posten :)

Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
@AOC Thuisserver is een groot woord, heb je ook geen NAS of OpenWRT-router o.i.d. waar je een cronjob op kan laten draaien? Ik weet niet of Mindergas het gebruik van HTTPS afdwingt, anders kun je de ESP mogelijk zover krijgen dat hij het direct naar Mindergas.nl upload (ik doe hetzelfde om data van een klein setje zonnepanelen naar PVOutput te krijgen, rechtstreeks vanaf de ESP). Blijft natuurlijk HTTP en dus plaintext wat er over internet gaat, maar risico lijkt mij vrij beperkt (je account of meterstanden verwijderen kan niet als iemand je API-token in z'n bezit krijgt voor zover ik weet).
Daarom ook suggestie van NAS/router, die praat wel gewoon HTTPS en kun je dan een scriptje voor maken om de P1 ESP uit te laten lezen.

[ Voor 27% gewijzigd door ThinkPad op 01-01-2024 14:29 ]


  • MdO82
  • Registratie: Maart 2007
  • Laatst online: 13-09 10:57
Ik weet niet of er nog mensen gebruik maken van het mindergas-script.

Ik ben nu op een punt gekomen dat ik afscheid moet gaan nemen van mijn rpi 1b+

Goed 12 jaar na uitkomst wordt het ook wel eens een keer tijd.

Wellicht moet ik toch ooit eens naar HA gaan kijken ;)

Maar is het iemand al gelukt om het huidige script om te bouwen naar python 3 ?

* MdO82 loopt inderdaad nog wat achter :+

Maar het gezegde is toch isn't broken ... ;) (until now :p )

2250 WP Zuid PVoutput


Acties:
  • 0 Henk 'm!

  • MdO82
  • Registratie: Maart 2007
  • Laatst online: 13-09 10:57
Helaas sinds Februari geen reactie mogen ontvangen zie ik :)

Maar ik heb er zelf nu weer eens tijd voor om ernaar te kijken.

Het volgende script gebruik(te) ik om mijn upload te uploaden naar minergas.

Python:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# encoding: utf-8
'''
mindergas -- Upload meterstand van Domoticz naar MinderGas.nl

Instructies:

An P1 Smart Meter krijgt elk uur een update van de Gas meter. Voer 
dit script daarom in het eerste uur na middennacht uit. Bijvoorbeeld om
00:14. Hierdoor wordt de laatste meterstand van de vorige dag correct
geregistreerd onder de datum van de vorige dag.

'''

import sys, json, urllib.request, urllib.error, urllib.parse
from datetime import datetime, timedelta
from argparse import ArgumentParser

def main(argv=None):
    
    parser = ArgumentParser(description='Upload meterstand van Domoticz naar MinderGas.nl')
    parser.add_argument("-a", "--apikey", dest="apikey", help="MinderGas.nl API Key", required=True)
    parser.add_argument("-u", "--url", dest="url", help="URL naar Domoticz, eg: http://localhost:8080", default='http://192.168.1.120:8080')
    parser.add_argument("-d", "--device-id", dest="device", help="Device id voor de P1 Gas Smart Meter", type=int, required=True)

    args = parser.parse_args()
    
    device_data = json.load(urllib.request.urlopen("%s/json.htm?type=devices&rid=%s" % (args.url, args.device), timeout=5))
    meterstand = device_data['result'][0]['Counter']

    code = upload_meterstand(meterstand, args.apikey)

    if code == 201:
        return 0
    else:
        return code


def upload_meterstand(meterstand, apikey):
    """
    Upload meterstand naar mindergas.nl
    """
    data = {
            'date': (datetime.now().date() - timedelta(days=1)).strftime("%Y-%m-%d"),
            'reading': meterstand
    }
    
    req = urllib.request.Request('http://www.mindergas.nl/api/meter_readings')
    req.add_header('Content-Type', 'application/json')
    req.add_header('AUTH-TOKEN', apikey)
    
    return urllib.request.urlopen(req, json.dumps(data)).getcode()
    
if __name__ == "__main__":
    sys.exit(main())


Ik krijg de volgende error's als ik hem aftrap als Python2 of Python3

python2:
Traceback (most recent call last):
  File "mindergas.py", line 14, in <module>
    import sys, json, urllib.request, urllib.error, urllib.parse
ImportError: No module named request


python3:
Traceback (most recent call last):
  File "mindergas.py", line 54, in <module>
    sys.exit(main())
  File "mindergas.py", line 30, in main
    code = upload_meterstand(meterstand, args.apikey)
  File "mindergas.py", line 51, in upload_meterstand
    return urllib.request.urlopen(req, json.dumps(data)).getcode()
  File "/usr/lib/python3.9/urllib/request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.9/urllib/request.py", line 514, in open
    req = meth(req)
  File "/usr/lib/python3.9/urllib/request.py", line 1277, in do_request_
    raise TypeError(msg)
TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.


Deze laatste foutmeldingen kan ik nog wel begrijpen, omdat het een python2-script is en geen python3-script.
Problemen zijn gekomen nadat ik mijn raspberry Pi1b+ heb moeten inruilen voor een Raspberry Pi3

Hopelijk weet iemand wat ik niet zie en kan mij op weg helpen om het script weer aan de gang te krijgen.

2250 WP Zuid PVoutput


Acties:
  • 0 Henk 'm!

  • Kristofferson
  • Registratie: Maart 2012
  • Niet online
De API wordt betalend in de toekomst (€3/jaar). Volgende e-mail ontvangen:
Beste,

Je maakt gebruik van de Meterstand API voor het uploaden van de meterstanden naar jouw MinderGas account. Omdat onze kosten voor het in de lucht houden van MinderGas zijn gestegen en de advertentie-inkomsten wat zijn gedaald, hebben we besloten om een kleine bijdrage te vragen voor het gebruik van de API.

De jaarlijkse bijdrage bedraagt EUR 2,99 (nog geen 25 cent per maand) en gaat in per 1 februari 2025. Betaling van de bijdrage gaat via iDEAL op website. Je zal te zijner tijd hiervoor een geautomatiseerde herinneringse-mail ontvangen. Tegen het einde van het jaar waarvoor je hebt betaald, ontvang je opnieuw een herinneringse-mail. Er wordt niet automatisch verlengd.

Indien je dit niet wenst te betalen dan zal het per 1 februari niet meer mogelijk zijn om via de API meterstanden te uploaden naar jouw account. Je account blijft wel gewoon toegankelijk.

Hopende op je begrip, met vriendelijke groet,
MinderGas.nl

.BE | 12 kWh Victron ESS | 4,86 kWp ZP


Acties:
  • 0 Henk 'm!

  • Pino112
  • Registratie: November 2007
  • Laatst online: 17:46
MdO82 schreef op woensdag 23 oktober 2024 @ 15:59:
Helaas sinds Februari geen reactie mogen ontvangen zie ik :)

Maar ik heb er zelf nu weer eens tijd voor om ernaar te kijken.

Het volgende script gebruik(te) ik om mijn upload te uploaden naar minergas.

Python:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# encoding: utf-8
'''
mindergas -- Upload meterstand van Domoticz naar MinderGas.nl

Instructies:

An P1 Smart Meter krijgt elk uur een update van de Gas meter. Voer 
dit script daarom in het eerste uur na middennacht uit. Bijvoorbeeld om
00:14. Hierdoor wordt de laatste meterstand van de vorige dag correct
geregistreerd onder de datum van de vorige dag.

'''

import sys, json, urllib.request, urllib.error, urllib.parse
from datetime import datetime, timedelta
from argparse import ArgumentParser

def main(argv=None):
    
    parser = ArgumentParser(description='Upload meterstand van Domoticz naar MinderGas.nl')
    parser.add_argument("-a", "--apikey", dest="apikey", help="MinderGas.nl API Key", required=True)
    parser.add_argument("-u", "--url", dest="url", help="URL naar Domoticz, eg: http://localhost:8080", default='http://192.168.1.120:8080')
    parser.add_argument("-d", "--device-id", dest="device", help="Device id voor de P1 Gas Smart Meter", type=int, required=True)

    args = parser.parse_args()
    
    device_data = json.load(urllib.request.urlopen("%s/json.htm?type=devices&rid=%s" % (args.url, args.device), timeout=5))
    meterstand = device_data['result'][0]['Counter']

    code = upload_meterstand(meterstand, args.apikey)

    if code == 201:
        return 0
    else:
        return code


def upload_meterstand(meterstand, apikey):
    """
    Upload meterstand naar mindergas.nl
    """
    data = {
            'date': (datetime.now().date() - timedelta(days=1)).strftime("%Y-%m-%d"),
            'reading': meterstand
    }
    
    req = urllib.request.Request('http://www.mindergas.nl/api/meter_readings')
    req.add_header('Content-Type', 'application/json')
    req.add_header('AUTH-TOKEN', apikey)
    
    return urllib.request.urlopen(req, json.dumps(data)).getcode()
    
if __name__ == "__main__":
    sys.exit(main())


Ik krijg de volgende error's als ik hem aftrap als Python2 of Python3

python2:
Traceback (most recent call last):
  File "mindergas.py", line 14, in <module>
    import sys, json, urllib.request, urllib.error, urllib.parse
ImportError: No module named request


python3:
Traceback (most recent call last):
  File "mindergas.py", line 54, in <module>
    sys.exit(main())
  File "mindergas.py", line 30, in main
    code = upload_meterstand(meterstand, args.apikey)
  File "mindergas.py", line 51, in upload_meterstand
    return urllib.request.urlopen(req, json.dumps(data)).getcode()
  File "/usr/lib/python3.9/urllib/request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.9/urllib/request.py", line 514, in open
    req = meth(req)
  File "/usr/lib/python3.9/urllib/request.py", line 1277, in do_request_
    raise TypeError(msg)
TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.


Deze laatste foutmeldingen kan ik nog wel begrijpen, omdat het een python2-script is en geen python3-script.
Problemen zijn gekomen nadat ik mijn raspberry Pi1b+ heb moeten inruilen voor een Raspberry Pi3

Hopelijk weet iemand wat ik niet zie en kan mij op weg helpen om het script weer aan de gang te krijgen.
Moet het perse python zijn? Ik gebruik dit al jaren op mijn RPI (ook ergens gevonden)

mindergas.sh
#!/bin/bash

#Token to authenicate with mindergas.nl
TOKEN=xxx

 #fetch meterstand (use jq to parse JSON object correctly)
 METERSTAND=`curl -s "http://192.168.X.X:xxxx/json.htm?type=devices&rid=12"  | jq '.result[0].Counter'| tr -d '"'`
  
 #Get OS date, and format it corectly.
 NOW=$(date +"%Y-%m-%d")
 
 #Build JSON by hand ;-)
 JSON='{ "date":"'$NOW'", "reading":"'$METERSTAND'"  }'
 
 #post using curl to API
curl -v -H "Content-Type:application/json" -H "AUTH-TOKEN:$TOKEN" -d "$JSON"  https://www.mindergas.nl/api/meter_readings
 

En dan gewoon elke nacht uitvoeren via crontab

Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Kristofferson schreef op vrijdag 1 november 2024 @ 17:11:
De API wordt betalend in de toekomst (€3/jaar). Volgende e-mail ontvangen:


[...]
Niet meer dan logisch denk ik.
Ik twijfel zelf nog of ik m’n account in stand houd, of hem opzeg. Doe eigenlijk weinig nog met Mindergas. Toen ik net verhuisd was en nog druk bezig was met CV-tuning was het handig. Maar dat is allemaal geoptimaliseerd en gasverbruik is ondertussen al jaren vrijwel gelijk.

Aan de andere kant: ik kan ook elke maand even handmatig de stand invoeren.

Acties:
  • 0 Henk 'm!

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 21:20
Ik doe het ook nog handmatig maar ga het automatiseren. Sponsor het project al elk jaar door de advertenties af te kopen, maar omdat het niet automatisch verlengd wordt en je daar geen melding van krijgt is dat niet heel consistent (ik zie de banners sowieso niet ivm pihole).

Acties:
  • 0 Henk 'm!

  • MdO82
  • Registratie: Maart 2007
  • Laatst online: 13-09 10:57
Pino112 schreef op vrijdag 1 november 2024 @ 17:22:
[...]


Moet het perse python zijn? Ik gebruik dit al jaren op mijn RPI (ook ergens gevonden)

mindergas.sh
#!/bin/bash

#Token to authenicate with mindergas.nl
TOKEN=xxx

 #fetch meterstand (use jq to parse JSON object correctly)
 METERSTAND=`curl -s "http://192.168.X.X:xxxx/json.htm?type=devices&rid=12"  | jq '.result[0].Counter'| tr -d '"'`
  
 #Get OS date, and format it corectly.
 NOW=$(date +"%Y-%m-%d")
 
 #Build JSON by hand ;-)
 JSON='{ "date":"'$NOW'", "reading":"'$METERSTAND'"  }'
 
 #post using curl to API
curl -v -H "Content-Type:application/json" -H "AUTH-TOKEN:$TOKEN" -d "$JSON"  https://www.mindergas.nl/api/meter_readings
 

En dan gewoon elke nacht uitvoeren via crontab
Bedankt voor het delen van jouw script.
Had het ooit als python-script gevonden van iemand, maar had er verder nooit meer naar gekeken omdat de boel draaide totdat ik mijn raspberry Pi 1b+ niet meer kon gebruiken :X

Ik had het script in de map geplaatst en via crontab een opdracht ingevoerd voor elke nacht zodat de laatste stand doorgegeven wordt.

Helaas worden de waarden niet doorgegeven.

Zojuist het script handmatig gestart, maar krijg dan een 422 error.
Volgens mij was dat iets van dat de waarde reeds bekend was ?

Als ik een curl-opdracht stuur naar mijn meter dan krijg ik het volgende terug.
Python:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
{
        "ActTime" : 1730549962,
        "AstrTwilightEnd" : "19:07",
        "AstrTwilightStart" : "05:45",
        "CivTwilightEnd" : "17:48",
        "CivTwilightStart" : "07:04",
        "DayLength" : "09:34",
        "NautTwilightEnd" : "18:28",
        "NautTwilightStart" : "06:24",
        "ServerTime" : "2024-11-02 13:19:22",
        "SunAtSouth" : "12:26",
        "Sunrise" : "07:39",
        "Sunset" : "17:13",
        "app_version" : "2024.7",
        "result" :
        [
                {
                        "AddjMulti" : 1.0,
                        "AddjMulti2" : 1.0,
                        "AddjValue" : 0.0,
                        "AddjValue2" : 0.0,
                        "BatteryLevel" : 255,
                        "Counter" : "4634.939",
                        "CounterToday" : "0.052 m3",
                        "CustomImage" : 0,
                        "Data" : "4634.939",
                        "Description" : "",
                        "Favorite" : 1,
                        "HardwareDisabled" : false,
                        "HardwareID" : 2,
                        "HardwareName" : "Energiemeter",
                        "HardwareType" : "P1 Smart Meter USB",
                        "HardwareTypeVal" : 4,
                        "HaveTimeout" : false,
                        "ID" : "0001",
                        "LastUpdate" : "2024-11-02 13:16:11",
                        "Name" : "Gasmeter",
                        "Notifications" : "false",
                        "PlanID" : "0",
                        "PlanIDs" :
                        [
                                0
                        ],
                        "Protected" : false,
                        "ShowNotifications" : true,
                        "SignalLevel" : "-",
                        "SubType" : "Gas",
                        "SwitchTypeVal" : 1,
                        "Timers" : "false",
                        "Type" : "P1 Smart Meter",
                        "TypeImg" : "counter",
                        "Unit" : 2,
                        "Used" : 1,
                        "XOffset" : "0",
                        "YOffset" : "0",
                        "idx" : "2",
                        "price" : "0.0000"
                }
        ],
        "status" : "OK",
        "title" : "Devices"
}


Het gaat blijkbaar mis naar mindergas toe, maar ik ben helaas kwijt.
Dacht dat het dus kwam omdat er een waarde reeds bekend is, maar als ik de waarde bij mindergas verwijder dan blijf ik de foutmelding houden.
Hopelijk kunnen jullie mij een duwtje in de juiste richting geven.

2250 WP Zuid PVoutput


Acties:
  • 0 Henk 'm!

  • PhilipsFan
  • Registratie: Oktober 2003
  • Laatst online: 17:41
_JGC_ schreef op zaterdag 2 november 2024 @ 09:06:
Ik doe het ook nog handmatig maar ga het automatiseren. Sponsor het project al elk jaar door de advertenties af te kopen, maar omdat het niet automatisch verlengd wordt en je daar geen melding van krijgt is dat niet heel consistent (ik zie de banners sowieso niet ivm pihole).
Voor die 3 euro per jaar ga ik me er niet aan wagen, maar in principe is het toch wel mogelijk om elke dag even die webpagina te curlen met de actuele meterstand voor die dag?

Acties:
  • +2 Henk 'm!

  • ericplan
  • Registratie: Mei 2006
  • Nu online

ericplan

5180 Wp PV

Topicstarter
PhilipsFan schreef op maandag 11 november 2024 @ 00:42:
[...]
Voor die 3 euro per jaar ga ik me er niet aan wagen, maar in principe is het toch wel mogelijk om elke dag even die webpagina te curlen met de actuele meterstand voor die dag?
Ach, de initiatiefnemer is een aardig iemand. Heeft me in het begin goed op weg geholpen. Drie euro is natuurlijk ook niet iets waar je rijk van wordt.

A'dam PVOutput


Acties:
  • 0 Henk 'm!

  • RoD
  • Registratie: September 2004
  • Niet online

RoD

Admin Mobile & FP PowerMod
Ik krijg de laatste tijd vaker een "timeout call" als ik via HA mijn meterstand naar Mindergas wil uploaden. Ik weet niet precies wat de reden is van deze waarschuwing, maar ik vermoed dat de server van Mindergas niet reageert?

Ik heb destijds dit script geïmplementeerd en ik zag dat die om 23:58 de upload doet, en ik meen dat er werd aanbevolen om niet te dicht rond middernacht te gaan zitten omdat iedereen dat doet en dan de server mogelijk overbelast is.

Kan iemand bevestigen dat bovenstaande aannemelijk is?

Ik heb nu sowieso het script aangepast om iets eerder te gaan draaien, om te zien of dit het verhelpt.

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Je kan beter later doen, want ik heb gemerkt bij mijn meter dat hij de gasmeterstand soms een paar minuten na het hele uur pas doorgeeft aan de elektrameter. Dat is wel met een DSMR4 meter trouwens, die maar één keer per uur de gasstand doorgeeft. De upload naar Mindergas gaat bij mij om 0:08

Grote kans dat het issue binnenkort zichzelf oplost, de API van Mindergas wordt per 1-2 betalend dus er zullen ongetwijfeld een hoop mensen afhaken.

[ Voor 5% gewijzigd door ThinkPad op 01-01-2025 13:13 ]


Acties:
  • 0 Henk 'm!

  • RoD
  • Registratie: September 2004
  • Niet online

RoD

Admin Mobile & FP PowerMod
ThinkPad schreef op woensdag 1 januari 2025 @ 13:12:
Je kan beter later doen, want ik heb gemerkt bij mijn meter dat hij de gasmeterstand soms een paar minuten na het hele uur pas doorgeeft aan de elektrameter. Dat is wel met een DSMR4 meter trouwens, die maar één keer per uur de gasstand doorgeeft. De upload naar Mindergas gaat bij mij om 0:08

Grote kans dat het issue binnenkort zichzelf oplost, de API van Mindergas wordt per 1-2 betalend dus er zullen ongetwijfeld een hoop mensen afhaken.
Dat is een goeie. Ik heb ook zo'n oude DSMR4 meter en ik merk ook dat die updates wel even kunnen duren.

Ik weet alleen niet hoe het werkt met het script dat ik gebruik, of hij met een upload na middernacht nog wel de datum van de vorige dag pakt.

Vooralsnog wacht ik het wel even af. Die betaling zal het inderdaad voor velen minder aantrekkelijk maken. Grote kans ook dat er veel mensen zijn die nog altijd dagelijks uploaden maar de interesse al zijn verloren.

Acties:
  • +1 Henk 'm!

  • RudolfR
  • Registratie: Maart 2011
  • Laatst online: 20:02
Ik upload om 01:10 en geef altijd de datum van gisteren mee.
Verbruik na middernacht is te verwaarlozen.

YAML:
1
2
3
4
5
6
7
8
9
10
11
alias: Mindergas Upload
id: bb0ddd49-e072-4be6-83cd-b515e11d0a51
trigger:
  - at: "00:01:10"
    platform: time
condition: []
action:
  - service: rest_command.mindergas_upload
    data:
      date: '{{ (as_timestamp(now()) - (24*3600)) | timestamp_custom("%Y-%m-%d", True)}}'
      reading: "{{ states('sensor.toon_gas_used_cnt') | float }}"


YAML:
1
2
3
4
5
6
7
8
rest_command:
  mindergas_upload:
    url: "https://www.mindergas.nl/api/meter_readings"
    method: POST
    headers:
      content-type: application/json
      AUTH-TOKEN: !secret mindergas_api_token
    payload: '{ "date": "{{date}}", "reading": "{{reading}}" }'


Edit: oh, en tegenwoordig kun je eenvoudig een sensor op een vast tijdstip laten updaten met een template sensor timed trigger.

[ Voor 7% gewijzigd door RudolfR op 02-01-2025 12:10 ]


Acties:
  • 0 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
Ik upload random tussen 0:00 en 4:00 met de datum van "gisteren" incl het verbruik per dag op 23:58 (om Domoticz niet teveel te laten doen om precies 0:00)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
            domoticz.openURL({
                url = 'https://www.mindergas.nl/api/meter_readings',
                method = 'POST',
                headers = {
                    ['Content-Type']    = 'application/json',
                    ['AUTH-TOKEN']      = AUTH_TOKEN
                },
                callback = 'UploadToMindergas',
                postData = {
                    ['date']            = TodaysDate,
                    ['reading']         = GasUsageCounter
                },
            }).withinHour(4)

Acties:
  • 0 Henk 'm!

  • RoD
  • Registratie: September 2004
  • Niet online

RoD

Admin Mobile & FP PowerMod
Ik krijg nu helemaal geen uploads meer naar Mindergas via de api. Zelfs midden op de dag krijg ik timeout calls. Ik heb Homeassistant al eens herstart, maar dat deed ook niets. Ben ik de enige met dit probleem?

Acties:
  • 0 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
Hier werkt het prima. Goede adres (ik gebruik meter_readings, jouw gelinkte script geeft aan gas_meter_readings), Auth_token en datum gebruikt?
Wat is de http-response?

Acties:
  • 0 Henk 'm!

  • RoD
  • Registratie: September 2004
  • Niet online

RoD

Admin Mobile & FP PowerMod
Heinemancp schreef op maandag 6 januari 2025 @ 14:19:
Hier werkt het prima. Goede adres (ik gebruik meter_readings, jouw gelinkte script geeft aan gas_meter_readings), Auth_token en datum gebruikt?
Wat is de http-response?
Dan zal het toch aan mij liggen. Ik heb het script nog eens nagelopen en alles klopt (juiste sensor-naam, auth-token klopt nog, etc). Zou ook niks verkeerd aan moeten zijn, want het is ineens gestopt met werken terwijl het altijd goed heeft gewerkt.

Ik krijg geen http-response omdat ik een timeout call krijg. Dat doet me vermoeden dat de Mindergas-server niet bereikbaar is, maar als het bij jou wel werkt, gaat het ergens anders mis. Ik heb alleen geen idee waar.

Acties:
  • 0 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
RoD schreef op dinsdag 7 januari 2025 @ 11:08:
[...]

Dan zal het toch aan mij liggen. Ik heb het script nog eens nagelopen en alles klopt (juiste sensor-naam, auth-token klopt nog, etc). Zou ook niks verkeerd aan moeten zijn, want het is ineens gestopt met werken terwijl het altijd goed heeft gewerkt.

Ik krijg geen http-response omdat ik een timeout call krijg. Dat doet me vermoeden dat de Mindergas-server niet bereikbaar is, maar als het bij jou wel werkt, gaat het ergens anders mis. Ik heb alleen geen idee waar.
Ook gas_meter_readings vs meter_readings bekeken?

Acties:
  • 0 Henk 'm!

  • RoD
  • Registratie: September 2004
  • Niet online

RoD

Admin Mobile & FP PowerMod
Heinemancp schreef op dinsdag 7 januari 2025 @ 11:36:
[...]

Ook gas_meter_readings vs meter_readings bekeken?
Ja die is correct. Het gelinkte script geeft inderdaad het oude adres van de api aan, maar bij mij staat het goed. En zoals gezegd, het heeft tot een paar dagen geleden gewoon gewerkt, maar geeft nu timeout calls.

Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 20:40
RoD schreef op dinsdag 7 januari 2025 @ 11:42:
[...]

Ja die is correct. Het gelinkte script geeft inderdaad het oude adres van de api aan, maar bij mij staat het goed. En zoals gezegd, het heeft tot een paar dagen geleden gewoon gewerkt, maar geeft nu timeout calls.
Ik upload om 5 uur (UTC), mijn script probeert het 5x. Ik krijg een mail als het niet lukt, maar tot nu toe is dat voldoende.

Kan het zijn dat je geen toegang meer hebt tot de API? https://mindergas.nl/member/api

Ik weet niet precies vanaf wanneer de API geblokkeerd wordt als je die paar euro niet betaald.

Edit: oh je hebt timeouts, dan zal het niet aan de API toegang zelf liggen.

[ Voor 39% gewijzigd door Kalentum op 07-01-2025 11:55 ]


Acties:
  • 0 Henk 'm!

  • RoD
  • Registratie: September 2004
  • Niet online

RoD

Admin Mobile & FP PowerMod
Kalentum schreef op dinsdag 7 januari 2025 @ 11:49:
[...]


Ik upload om 5 uur (UTC), mijn script probeert het 5x. Ik krijg een mail als het niet lukt, maar tot nu toe is dat voldoende.

Kan het zijn dat je geen toegang meer hebt tot de API? https://mindergas.nl/member/api

Ik weet niet precies vanaf wanneer de API geblokkeerd wordt als je die paar euro niet betaald.

Edit: oh je hebt timeouts, dan zal het niet aan de API toegang zelf liggen.
Klopt, daar ligt het niet aan, ik heb nog gewoon toegang. Ik vermoed ook niet dat ik geblokkeerd ben, want ik vermoed dat ik dan een http-foutcode zou krijgen.

Acties:
  • 0 Henk 'm!

  • RudolfR
  • Registratie: Maart 2011
  • Laatst online: 20:02
Dat staat hier:
https://mindergas.nl/member/api

Bij mij 1 februari 2025, nog nooit betaald.

Maar dan zou je geen timeouts moeten krijgen, maar:
402 Payment Required
Je hebt geen toegang meer tot de API. Na het betalen van de bescheiden jaarlijkse bijdrage is dit verholpen.

[ Voor 49% gewijzigd door RudolfR op 07-01-2025 11:58 ]


Acties:
  • +2 Henk 'm!

  • RoD
  • Registratie: September 2004
  • Niet online

RoD

Admin Mobile & FP PowerMod
Nou het lijkt opgelost. Na werkelijk alles te hebben geprobeerd, bedacht ik me nog een ding: mijn Raspberry Pi rebooten. En dat werkte, er wordt nu weer een meterstand geupload. Had ik natuurlijk als eerste moeten proberen 8)7

Acties:
  • +1 Henk 'm!

  • Heinemancp
  • Registratie: Maart 2011
  • Laatst online: 20:26
RoD schreef op donderdag 9 januari 2025 @ 10:22:
Nou het lijkt opgelost. Na werkelijk alles te hebben geprobeerd, bedacht ik me nog een ding: mijn Raspberry Pi rebooten. En dat werkte, er wordt nu weer een meterstand geupload. Had ik natuurlijk als eerste moeten proberen 8)7
Question 1 by the guys of IT ;)

Acties:
  • +2 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Nu online
Let op, vanaf middernacht is de API niet meer te gebruiken zonder donatie!

Ik ga het voortaan even handmatig elke maand invullen. Keek er toch nauwelijks nog naar dus heb er wel vrede mee, maar voor de prognose/graaddagen wil ik m'n account nog wel aanhouden.

[ Voor 59% gewijzigd door ThinkPad op 31-01-2025 22:07 ]

Pagina: 1 2 Laatste