Monitoring Slimme Meter

Monitoring Slimme Meter

mbv Grafana en MySQL

Inlezen Gegevens Slimme Meter

KAIFA MA304A
KAIFA MA304A.
Links de kabel die van de P1 poort naar de Pi loopt

Je zult eerst moeten bepalen welke slimme meter je hebt. Er zijn verschillende typen in omloop. Ik zelf heb een KAIFA MA304A met DSMR 4.x en P1 telegram header /KFM5. Voor meer informatie over verschillende uitvoeringen zie Domoticx P1 poort. Info over DSMR (Dutch Smart Meter Requirements) vind je in DSMR 4.2.3

De kabel die je nodig hebt kun je bijv. kopen bij SOS Solutions voor ca. €20,=

Sluit de meter aan op de Raspberry Pi. Hoe je dat moet doen kun je hier vinden. Informatie over testen of het werkt kun je daar ook vinden.

De software voor de uitlezing maakt gebruik van python. Mocht je dat nog niet geïnstalleerd hebben doe dat dan eerst dmv van de volgende opdrachten :

$ sudo apt update

$ sudo apt install python3 python3-pip

Installeer ook MySql zoals hier beschreven staat.

Tijd om het inlees-script te installeren. Dit script is geschreven door J. van der Linde ( Van der Linde Informatiesystemen). Tevens heb ik twee scripts toegevoegd die het starten en controleren van de werking van het script makkelijker maken. Bij mij staat de software in de directory /opt/p1. Deze directory is aangemaakt onder root, maar /opt/P1 heeft de rechten drwxrwxrwx . Installatie gaat als volgt.

  • Login op de Pi als gebruiker waaronder het script moet lopen. In de rest van het verhaal gaan we uit dat de gebruiker de naam “monitor”heeft.
  • Download Inlees_SM.tar en kopieer deze naar /opt/p1
  • Pak de tar file uit in /opt/p1

$ tar xvf Inlees_SM.tar

  • Vul in script start.sh de Gebruikersnaam en Wachtwoord van MySql gebruiker in.
    Pas ook de tty aan waarop de kabel is aangesloten
  • In script check.sh verwijder evt. de comments als je mail wilt krijgen wanneer het script P1.py gestopt en herstart is. Pas ook evt. de _BINDIR en LOGDIR aan.
  • Voeg een crontab regel toe aan de crontab van gebruiker monitor.

$ vi crontab
m h dom mon dow command
1,6,11,16,21,26,31,36,41,45,51,57 * * * * /opt/p1/check_P
1.sh >/tmp/p1_cron.log 2>&1

Iedere 5 minuten wordt gecontroleerd of het script nog loopt. Je hebt er dus geen omkijken naar. Bij een herstart van het systeem zal cron er voor zorgen dat binnen 5 minuten ook het inlezen weer start. Doordat je een crontab entry hebt gemaakt zal binnen 5 minuten de meterwaarden in de tabel p1_log in de p1 db worden in gelezen.

$ /opt/p1/start.sh

  • Controleer of het inlezen werkt.

$ ps -afe|grep P1.py |grep -v grep

Resultaat :

peter 27592 27585 0 apr16 ? 00:32:04 /usr/bin/python3.5 ./P1.py -c /dev/ttyUSB0 -o mysql -u <user>-p <wachtwoord> –loginterval 30 -systime Y

De gegevens worden vanaf nu ingelezen in de database P1 in tabel P1_log. Check dit evt. mbv Heidi.