Pushnotificatie indien je externe IP-adres wijzigt

Door ThinkPad op woensdag 05 augustus 2015 21:04 - Reacties (12)
Categorie: Domotica, Views: 2.657

Zoals de meeste internetgebruikers met bijv. een Ziggo-aboonement wel bekend is, wil het nog wel eens voorkomen dat je externe IP-adres wijzigt.

Dit is soms nogal vervelend, ik heb bijvoorbeeld een backuptaak lopen tussen mijn Synology NAS en de Synology NAS die bij mijn ouders staat (offsite backup). Om dit allemaal een beetje veilig te houden staat poort 22 (SSH, nodig voor de 'NetBackup' van Synology) alleen open voor het IP-adres van m'n ouders en andersom alleen voor mijn IP-adres.

Dit adres wil dus nog wel eens wijzigen en dan krijg ik automatische mailtjes dat de backup niet voltooid kon worden. Normaal zou je zoiets met een DynDNS domeinnaam oplossen, maar dat werkt in dit geval niet (ik moet een IP-adres ingeven, domeinnaam kan niet).

Voor wat domotica gerelateerde zaken gebruikte ik al een tijdje Pushover om pushnotificaties naar m'n telefoon te sturen. Ze hebben een simpele API waarmee je gemakkelijk berichten kan sturen.
Nu leek het mij wel handig om een pushnotificatie te krijgen als mijn WAN IP-adres of dat van m'n ouders gewijzigd is. Dus even aan de slag geweest.

Grootste bron was dit script: http://nas.deadcode.net/2...en-external-ip-changed/2/
Voor het Pushover-notificatie stukje heb ik dit script gebruikt: https://github.com/fschae...h/blob/master/pushover.sh

Het uiteindelijke script ziet er zo uit:


Bash:
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
#!/bin/bash
#
# simple script to send alert for ip changes
# version 0.1
# By Ray Chan
# http://nas.deadcode.net/2009/07/26/synology-email-alert-when-external-ip-changed/2/
# If you want a simple log file, assign 1 to log_enabled, otherwise set it to 0
log_enabled=0; #0=disable, 1=enable

# date format used by log file
datestamp=`date '+%Y-%m-%d %H:%M:%S'`

# the actual command getting the public IP
myipnow=`wget -4 -qO - icanhazip.com` 

previp="0.0.0.0";

# path of the log file, ignore if log_enabled=0
logfile="/volume1/@appstore/domoticz/var/scripts/bash/ipcheck/log.txt"

# path of the temporary file storing previous ip address
iplog="/volume1/@appstore/domoticz/var/scripts/bash/ipcheck/ip.log"

if [ -f $iplog ]; then
   previp=`cat $iplog`
fi

if [ $myipnow != $previp ]; then
   #ip changed, sending alert
   /bin/bash /volume1/@appstore/domoticz/var/scripts/bash/pushover.sh -u JOUW_USER_KEY -a JOUW_APPLICATIE_KEY -q "IP-adres thuis is gewijzigd" -m "Was $previp is nu $myipnow"


   #write the new ip to log file
   echo $myipnow > $iplog
   if [ $log_enabled = 1 ]; then
      echo "$datestamp IP changed, sending notification email. $previp | 
      $myipnow" >> $logfile
   fi
else
   if [ $log_enabled = 1 ]; then
      echo "$datestamp IP is same, skipping notification. $previp | 
      $myipnow" >> $logfile
   fi
fi


Het bestand 'ip.log' moet je zelf nog even aanmaken volgens mij (kun je leeglaten).

Als je bent ingelogd bij Pushover maak je een key aan voor je applicatie: https://pushover.net/apps
Om het geheel er wat flitsender uit te laten zien op je telefoon kun je van https://www.iconfinder.com/ nog even een mooi icoontje halen die je bij je Pushover app upload.

Om te testen kun je het script nu een keer draaien:
sh ipcheck.sh

Als het goed is zou in het 'ip.log' bestand dan je huidige IP-adres moeten komen te staan.
Wanneer je dit vervolgens aanpast (laatste cijfers even veranderen in iets anders) en het script nog een keer draait zou je een melding op je telefoon moeten krijgen.

Je zet het script in je crontab (ik laat hem elk uur draaien):
#minute hour    mday    month   wday    who     command
0       *       *       *       *       root    sh      /volume1/@appstore/domoticz/var/scripts/bash/ipcheck/ipcheck.sh


En vervolgens zal je automatisch een melding zoals hieronder krijgen mocht je externe IP-adres onverwachts wijzigen!
http://tweakers.net/ext/f/fNlptsGDp835d0n5ZT6UdePv/full.png

Het versturen van een Pushover bericht is zoals je ziet erg simpel, dus je kunt het ook eenvoudig voor andere scripts gebruiken.

Mocht je nou een 'dom' apparaat hebben wat alleen meldingen per e-mail kan versturen en je wilt dit apparaat toch pushmeldingen laten sturen dan kan dat sinds kort ook. Tweaker 'grote_oever' tipte mij hierop in het Domoticz topic. Pushover heeft een e-mail gateway opgezet waardoor dit mogelijk is. Let er wel op dat je niet over de gebruikslimiet van 7,500 pushberichten per applicatie per maand heengaat.

Modem automatisch powercyclen bij internetproblemen

Door ThinkPad op maandag 03 augustus 2015 12:12 - Reacties (19)
Categorie: Domotica, Views: 2.708

De laatste tijd heb ik een aantal keer gehad dat Ziggo werkzaamheden uitvoerde. Hierna werkte het internet niet meer. Gelukkig gebeurde dit 's nachts, maar ik moest wel telkens 's ochtends het modem even van de stroom af halen en de stroom er weer op. Ook had ik dan vanaf het uitvallen tot het powercyclen van het modem geen internet.
Niet heel erg, maar ik bedacht mij: "waarom kan ik dit niet automatiseren? Ik heb een domoticasysteem draaien wat m'n verlichting automatisch bedient, dan moet zoiets toch ook kunnen?"

Even wat rondgezocht op internet en kwam wat voorbeelden tegen om bijv. een Raspberry Pi te rebooten als de internetverbinding wegviel (door eens in de zoveel tijd een IP-adres te pingen).

Ik heb even zitten denken en kwam tot deze opzet:
http://tweakers.net/ext/f/DplVMp7206PMt7sN1GqDoSXI/full.png
(Plaatje gemaakt met https://www.draw.io/ overigens)

Vertaald naar een Bash-script kom ik dan hier op:

Bash:
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
#!/bin/bash
FirstIP="8.8.8.8" #Google DNS
SecondIP="208.67.222.222" #OpenDNS Public DNS
IDX="165" #IDX of the outlet that controls power to your modem
DomoIP="127.0.0.1"
DomoPort="8084"

COUNTER=0
while [ $COUNTER -lt 3 ] ## Try 3 times before resetting the modem. Modify as needed.
do
if ping -c 1 -w 5 $FirstIP &> /dev/null ## Determine if first IP-address responds to ping.
   then
   echo "First IP-address is responding, do nothing"
   exit 1
elif ping -c 1 -w 5 $SecondIP &> /dev/null ## Determine if second IP-address responds to ping.
   then
   echo "Second IP-address is responding, do nothing"
   exit 1
else
   let COUNTER=COUNTER+1
fi
done
#Turn modem off
wget -O /dev/null - -q -t 1 'http://'$DomoIP':'$DomoPort'/json.htm?type=command&param=switchlight&idx='$IDX'&switchcmd=Off&level=0'     
echo "Turn modem off (sending command twice to Domoticz, just to be sure)"
sleep 2
wget -O /dev/null - -q -t 1 'http://'$DomoIP':'$DomoPort'/json.htm?type=command&param=switchlight&idx='$IDX'&switchcmd=Off&level=0' 
echo "Now waiting 10 seconds"
sleep 10 ## Delay of 10, increase as needed.

#Turn modem back on again
wget -O /dev/null - -q -t 1 'http://'$DomoIP':'$DomoPort'/json.htm?type=command&param=switchlight&idx='$IDX'&switchcmd=On&level=0'
echo "Turn modem back on again (sending command twice to Domoticz, just to be sure)"
sleep 2
wget -O /dev/null - -q -t 1 'http://'$DomoIP':'$DomoPort'/json.htm?type=command&param=switchlight&idx='$IDX'&switchcmd=On&level=0'


Vul bovenaan de variabelen voor jouw situatie in, zet het in je crontab (ik laat het elke 10 minuten draaien) en off you go!
Zoals je ziet worden zowel het 'uit'-commando als het 'aan'-commando twee keer verstuurd, dit doe ik omdat ik absoluut zeker wil weten dat de stekker het commando ontvangt. 433 Mhz plugs geven geen terugkoppeling dus het commando maar één keer sturen is wel heel erg #yolo

Ik gebruik voor deze opzet Domoticz + RFXCOM + 433Mhz stekkerontvanger. Maar je zou ook een IP-based plug kunnen kopen (Ubiquiti mPower of goedkoper uit China: een Kankun / Orvibo plug) en de URL daar van aanroepen om op die manier de stroomtoevoer naar het modem te onderbreken.

Ik heb ook gekeken om het zonder tussenkomst van een stekkerontvanger te doen, maar het Ziggo modem (ik heb een Ubee EVW321b) is volledig afgesloten (geen SSH / Telnet / HTTP-URL om te rebooten). Als jouw modem dit wel heeft (portscan draaien?) dan kun je deze oplossing realiseren zonder te hoeven investeren in hardware :D
Mocht je een Cisco EPC3212 modem van Ziggo hebben dan is de URL waarschijnlijk: http://192.168.100.1/reboot.asp
M'n ouders hebben een EPC3212 modem, dus ik ga het daar binnenkort eens proberen, kan ik dit script mooi op de NAS de internetverbinding laten bewaken.

Voor m'n router zou ik wel zonder extra hardware dit truukje kunnen, die draait OpenWRT en ik kan via SSH eenvoudig een reboot commando geven. M'n router draait echter rockstable dus die heb ik buiten beschouwing gelaten.

Zet de interval overigens niet te klein (elke 30 seconden / minuut checken bijv.) dat vind ik zelf nogal 'asociaal' richting de eigenaren van de IP-adressen die je pingt (Google en OpenDNS in dit geval). Je genereert onnodig dataverkeer naar mijn idee.

Opmerkingen zijn welkom, volgens mij zitten er nog wel wat verbeterpuntjes in het Bash-script.

IP-camera zonder snapshot mogelijkheid, m.b.v. script toch een snapshot verkrijgen uit RTSP-stream!

Door ThinkPad op maandag 03 augustus 2015 11:56 - Reacties (2)
Categorie: Domotica, Views: 709

Tijdje terug een camera gekocht (TOP-201 mini IP-camera (¤22.97)) om m'n voordeur in de gaten te houden. Handig om op afstand te zien dat de pakketbezorger voor de deur staat.
http://tweakers.net/ext/f/DfJMr27f5PljSaTQSuvk87R5/full.jpg

De camera levert een prima 720p beeld, maar heeft als nadeel dat hij alleen ONVIF en RTSP-ondersteund. Voor mijn doel zou ik graag een URL hebben waarmee ik rechtstreeks een (JPEG) snapshot kon opvragen. Helaas heeft de camera deze mogelijkheid niet.

Wel spuugt hij twee RTSP-streams uit:

rtsp://IP_VAN_CAMEREA//user=admin_password=_channel=1_stream=0.sdp (720p HD-kwaliteit)
rtsp://IP_VAN_CAMEREA//user=admin_password=_channel=1_stream=1.sdp (VGA-kwaliteit)

Om toch een snapshot te verkrijgen die ik dan op m'n telefoon kan bekijken als er wordt aangebeld heb ik gekeken naar hoe je een snapshot van een RTSP-stream kunt maken. Dit schijnt met ffmpeg goed mogelijk te zijn. Ik heb eerst geprobeerd om dit op m'n Synology NAS (DS114) waar ook Domoticz op draait te regelen, maar de ffmpeg versie op de NAS wist geen raad met een RTSP-stream, hij kende het protocol niet. Ik heb geen zin om m'n NAS te gaan 'jailbreaken' (ipkg) dus daarom maar een Raspberry Pi gepakt die ik nog had liggen.

Daarmee geprobeerd om een snapshot te grabben van de stream en warempel, het lukte :D

Toen een script geklust:
snapshot.sh

Bash:
1
2
3
#!/bin/sh
export DATETIME=`date +%Y%m%d%H%M%S`
ffmpeg -loglevel fatal -i rtsp://IP_VAN_CAMERA//user=admin_password=_channel=1_stream=1.sdp -vframes 1 -r 1 /home/pi/deurbel/snapshots/$DATETIME.jpg



Als ik nu 'snapshot.sh' aanroep op de commandline verschijnt er na enkele seconden een snapshot op de in het script ingestelde locatie 8) Zoals je ziet gebruik ik de VGA-stream. De HD-stream leverde plaatjes van telkens 500kB op, wat ik een beetje veel vind om telkens op m'n mobiel op te vragen, dan gaat m'n databundel er wel erg snel door :P
Ik ga het script nog aanpassen denk ik zodat de VGA-kwaliteit snapshot naar m'n telefoon gestuurd wordt, maar er lokaal ook nog een HD-variant wordt opgeslagen.

De camera is ook bruikbaar met het 'Surveillance Station' package op de Synology ('Generic ONVIF' en dan poort 8899 geloof ik) en heb geprobeerd om via de API van Surveillance Station een snapshot eruit te trekken. Dit werkte redelijk, maar de helft van de tijd kreeg ik geen plaatje terug en ook duurde het vrij lang voordat het snapshot tevoorschijn kwam. Voor mij geen serieuze optie dus.

Al met al is een IP-camera met alleen een RTSP-stream op deze manier toch weer wat breder in te zetten dan voor alleen het bekijken van de stream.
Ik heb in m'n router overigens wel al het verkeer van deze camera richting internet geblokkeerd. Volgens reviews wil het ding nog wel eens contact zoeken met servers op internet. Misschien is het heel onschuldig (tijd updaten via NTP of checken op nieuwe firmware), maar het idee staat mij niet echt aan.

P.S. Je kunt ook in de camera komen via Telnet, username: root en wachtwoord: xmhdipc
Doe daar zelf verder niks mee, maar leuk om te weten. De camera gebruikt de Hi3518 chipset. Op www.ipcamtalk.com is een uitgebreide review te vinden (zoek op "TOP-201 ipcamtalk" en je vind hem wel).

Deurbel ombouw naar 433Mhz

Door ThinkPad op maandag 03 augustus 2015 11:16 - Reacties (0)
Categorie: Domotica, Views: 601

Ik had al een tijdje m'n domoticasysteem (Domoticz) in gebruik, maar mistte eigenlijk nog de uitlezing van de deurbellen.

Deurbellen zeg je? Ja... Ik heb er namelijk twee omdat ik in een appartement woon. Beneden in het portiek heb ik een intercom bel + microfoon&luidspreker. Maar aan de galerij heb ik ook een deurbel zoals in de meeste huizen in NL (8V AC trafo, knopje naast de deur en een bel met zo'n hamertje).

Even gezocht (ik had zo'n idee dat ik niet de eerste was met deze wens) en ik kwam al gauw de oplossing met een Finder relais en KaKu-deurbelzender tegen. Helaas heeft deze oplossing een vrij pittig prijskaartje, het relais kost je 19 euro en de deurbelzender 14,99 euro. In mijn geval zou ik het dan ook nog x2 moeten doen omdat ik twee bellen heb. Dat zou wel heel erg duur (67,98 euro) worden voor zoiets basaals 8)7

Ik heb daarom gekeken of ik zelf wat kon solderen om dit te bereiken. Ik had nog een goedkope 433Mhz remote uit China liggen. Deze heeft een PT2262 chip en kan daardoor gebruikt worden met de RFXCOM transceiver. Ook heeft deze twee drukknoppen (A en B) die beiden met een eigen ID in Domoticz binnenkomen. See where we're going to >:) ?

Eerst maar eens één deurbel zien af te tappen. Ik ben gestart met die van de galerij aangezien dat een deurbel is die het meest lijkt op deurbellen in andere huizen. Ik heb eerst geprobeerd om met een optocoupler en weerstand het signaal af te tappen. Dit wou echter niet goed lukken, er gebeurde OF niks, OF de knopjes bleven constant 'ingedrukt'. Nog wat zitten prutsen met de weerstandswaarde, maar het lukte niet echt.

Daarom het idee met een optocoupler laten varen en wat aan het graven geweest in m'n onderdelenbak. Toen kwam ik twee printplaatjes met 12V relais tegen. Dit zou nog makkelijker zijn, het relais verbind de twee draadjes van de remote met elkaar en klaar.
Omdat de deurbel op wisselspanning werkt moest ik het nog even gelijkrichten. Dit gedaan met een diode. Om het signaal wat 'stabieler' te maken zodat het relais niet klappert heb ik nog een elco toegevoegd. Heb niet echt gelet op de waarden, gewoon wat spul gepakt wat ik nog had liggen.
Dit getest en bleek goed te werken voor de galerij-deurbel.

Daarna die van de intercom nog.
In de unit die in de gang hangt om terug te kunnen praten zit een zoemer, na even uitpluizen kwam ik erachter dat deze op 12V AC werkt. Dit scheelt aangezien ik een 12V relais had. Als de zoemer op 24V AC zou werken dan moest ik de schakeling verder aanpassen, nu kon ik hem gewoon 2x opbouwen.
Uiteindelijk kwam ik tot dit resultaat:
http://tweakers.net/ext/f/fk0P30SrT8KDTO9WwuTjEsgO/full.jpg

Het schema is als volgt:
Je sluit het spul parallel aan de huidige deurbel/zoemer aan. Eén van de draden gaat rechtstreeks naar het relais, de andere gaat door de diode om de spanning te gelijkrichten. Over de spoel staat nog een elco van ~100uF o.i.d.
De uitgang van het relais (NO, Normally Open) is aangesloten op de soldeerpads van een van de knoppen van de afstandsbediening.

Welke afstandsbediening je moet hebben is even kijken, je wilt eentje die door de RFXCOM kan worden opgepikt, zoals de PT2262 chip. Ik moest bij mijn afstandsbediening nog een weerstand (die de oscillatiefrequentie regelt geloof ik) vervangen, volgens mij was het 4.7MΩ en heb ik hem vervangen door een 3.3MΩ

Ik moet alleen nog even iets zoeken om het signaal wat te 'ontdenderen'. Ik krijg nu voor elke keer dat de bel wordt ingedrukt een signaal binnen in Domoticz. Opzich doet de schakeling het dus prima, maar aangezien de pakketbezorgers e.d. er een handje van hebben om 3x aan te bellen is het nogal irritant om binnen een paar seconden meerdere meldingen te krijgen.
Heb gekeken of het via hardware kon, maar dit werd mij gauw te ingewikkeld. Ga nu kijken of ik het via het Lua-script kan doen (input negeren als laatste wijziging binnen 10s was).

Als Domoticz het signaal ontvangt dan trapt deze een Lua-script af. Dit Lua-script start vervolgens een Bash-script. Dit laatste script maakt een snapshot van de IP-camera die op de voordeur gericht is. Vervolgens wordt de snapshot geupload naar Dropbox en wordt mij via Pushover een bericht gestuurd op m'n telefoon met daarin het Dropbox linkje.

Aan het einde van het script wordt nog gekeken of er in de lokale map nog oude snapshots staan, alles ouder dan één week gooi ik weg, vind ik niet interessant om terug te kijken. Ik moet alleen nog uitzoeken hoe ik dit ook op Dropbox kan laten weggooien, het script wat ik gebruik om te uploaden naar Dropbox heeft hier niet echt een makkelijke optie voor.

Uiteindelijk is dit het resultaat op m'n telefoon:
http://tweakers.net/ext/f/N8nxL2hZ5fEF5Bn5zPczT6Nf/full.png
Bij de deurbel aan de galerij krijg ik een linkje met een plaatje naar snapshot.

Uiteindelijk ben ik voor nog geen 5 euro aan onderdelen klaar. Zwakke 'schakel' is wel het batterijtje in de afstandsbediening (A23 12V-celletje), maar zo vaak wordt er niet aangebeld, dus ik vermoed dat die wel een hele tijd meegaat. En anders maak ik misschien nog een keer een Y-snoertje zodat ik 12V kan aftappen van de voeding van m'n router ofzo.

I love it when a plan comes together :Y)

Maandelijks pushbericht met meterstanden slimme meter

Door ThinkPad op maandag 03 augustus 2015 08:51 - Reacties (0)
Categorieën: Domotica, Energiebesparing, Views: 736

Ik lees mijn slimme meter (Kaifa MA105) uit met Domoticz, via een P1-kabel (RJ11 naar USB). Hiermee kan ik netjes m'n elektra en gasverbruik inzien via Domoticz.

Domoticz toont echter nergens de meterstanden (ja, intern in de database). Ik vind het toch wel fijn om die achter de hand te hebben. Mocht het gruwelijk uit de klauwen lopen en m'n Domoticz install helemaal kaput zijn dan heb ik iig nog de mogelijkheid om zelf m'n maandverbruik te kunnen berekenen a.d.h.v. de meterstanden.

Ik heb daarom een (Python) script gemaakt die mij op elke eerste dag van de maand om 0:01 (dus eigenlijk NET na de laatste dag van de vorige maand) een pushbericht (Pushover) stuurt met de meterstanden (elektra hoog, elektra laag & gas). Op die manier kan ik het zelf ook nog bijhouden in een Excel bestand of iets dergelijks.

Het bericht wat je krijgt ziet er zo uit:
http://tweakers.net/ext/f/qvKvhRr02CaKyZPhTEeumeqn/full.png

Het Python-script:

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import sys
import json
import urllib2
import re
import time
import datetime
import httplib, urllib
 
def open_port():
    pass
 
def close_port():
    pass
 
class Domoticz():
 
    def __init__(self, url):
 
        self.baseurl = url
 
    def __execute__(self, url):
 
        req = urllib2.Request(url)
        return urllib2.urlopen(req, timeout=5)
 
    def get_device(self, xid):
        """
        Get the Domoticz device information.
        """
        url = "%s/json.htm?type=devices&rid=%s" % (self.baseurl, xid)
        data = json.load(self.__execute__(url))
        return data
 
 
def get_el_values(url, device_id):
    """
    Get electricity meter readings.
    """
 
    device_data = Domoticz(url).get_device(device_id)
    data = device_data['result'][0]['Data']
 
    ex = re.compile('^([0-9\.]+);([0-9\.]+);([0-9\.]+);([0-9\.]+);([0-9\.]+);([0-9\.]+)$')
 
    groups = ex.match(data).group
    meter_high = float(groups(1)) / 1000
    meter_low = float(groups(2)) / 1000
    #out_high = float(groups(3)) / 1000
    #out_low = float(groups(4)) / 1000
    #actual_in = float(groups(5)) / 1000
    #actual_out = float(groups(6)) / 1000
 
    return meter_high, meter_low#, out_high, out_low, actual_in, actual_out
 
def get_gas_values(url, device_id):
    """
    Get gasmeter reading.
    """
 
    device_data = Domoticz(url).get_device(device_id)
    data = device_data['result'][0]['Data']
 
    ex = re.compile('^([0-9\.]+)$')
 
    groups = ex.match(data).group
    gasstand = float(groups(1)) #/ 1000
 
    return gasstand
# example usage
 
domoticzurl = "http://localhost:8080"
domoticzdeviceid_el = 6
domoticzdeviceid_gas = 7
#ElectricityRateUsedPeak, ElectricityRateUsedOffPeak, ElectricityRateGeneratedPeak, ElectricityRateGeneratedOffPeak, ElectricityTotalUsed, ElectricityCurrentRateOut = get_el_values(domoticzurl, domoticzdeviceid_el)
ElectricityRateUsedOffPeak, ElectricityRateUsedPeak = get_el_values(domoticzurl, domoticzdeviceid_el)
GasMeterReading = get_gas_values(domoticzurl, domoticzdeviceid_gas)
 
#print "-- DOMOTICZ ENERGIE--"
#print "Meterstand piektarief (hoog):\t\t"+str(ElectricityRateUsedPeak)+"kWh"
#print "Meterstand daltarief (laag):\t\t"+str(ElectricityRateUsedOffPeak)+"kWh"
#print "Gasmeterstand:\t\t\t\t"+str(GasMeterReading)+"m3"
#print "Totaal:\t\t\t"+str(ElectricityRateUsedPeak + ElectricityRateUsedOffPeak)+"kWh"
#print ""
#print "- Teruggeleverd"
#print "Daltarief:\t\t"+str(ElectricityRateGeneratedOffPeak)+"kWh"
#print "Piektarief:\t\t"+str(ElectricityRateGeneratedPeak)+"kWh"
#print "Huidig verbruik:\t"+str(ElectricityTotalUsed)
 
conn = httplib.HTTPSConnection("api.pushover.net:443")
conn.request("POST", "/1/messages.json",
  urllib.urlencode({
    "token": "ABCD1234",
    "user": "ABCD1234",
    "message": "Meterstand elektra hoog: "+str(ElectricityRateUsedPeak)+"\n""Meterstand elektra laag: "+str(ElectricityRateUsedOffPeak)+"\n""Gasmeterstand: "+str(GasMeterReading)+"",
    "title": "Domoticz - meterstanden",
    "priority": "-1",
  }), { "Content-type": "application/x-www-form-urlencoded" })
conn.getresponse()


Verdere uitleg van het script kun je hier vinden: http://domoticz.com/wiki/Meter_readings_monthly
Volg de stappen en als het goed is zou je dan ook maandelijks een soortgelijk berichtje moeten krijgen.

Pushover is overigens niet gratis, je moet éénmalig betalen (ik meen ¤4) maar dat vind ik het geld wel waard. De service werkt supersnel (op de commandline op Enter drukken bij uitvoeren script en nog geen twee seconden later heb je het bericht al binnen). Desgewenst kun je het script ook ombouwen naar een andere service, het script roept via een simpele 'curl' de HTTP-API van Pushover aan. Voor Prowl (gratis te gebruiken op iOS dacht ik) heeft een medetweaker het script aangepast.