Raspberry Pi zum Auslesen von einem Smarten Stromzähler

IN ARBEIT - On going Project

 

Derzeit werden alle in Deutschland verbauten Zähler gegen Smarte Stromzähler ausgetauscht. Viele dieser Zähler besitzen eine optische Schnittstelle, welche zum Auslesen von Informationen genutzt werden kann. Diese Daten lassen sich z.B. mit einem Pi weiterverarbeiten und auswerten. Zudem ist die smarte Steuerung von Komponenten möglich. Im Folgenden wird mein Weg zum Auslesen mit einem Pi näher beschrieben.

 

Benötigte Komponenten:

  • Raspberry Pi
  • Fototransistor (oder fertiger IR Lesekopf)
  • Ich habe diesen hier nachgebaut mit dem BWP40 Fototransistor
  • https://pgoergen.de/de/2018/05/build-a-smartmeter-reading-head-for-1e/
  • Weitere Schnittstellen o.a. je nach Umfang der Arbeiten (z.B. RS485)

Schritt 1: Basic Setup des Pi mit dem gewünschten Betriebssystem und Einstellungen vornehmen

https://jankarres.de/2012/08/raspberry-pi-raspbian-installieren/

 

Ich habe mich für Rasberian Desktop entschieden. Hier kann man über VNC auf die Oberfläche zugreifen und muss nicht nur mit der ssh Konsole arbeiten.

 

Schritt 2: (ausgelassen, Smart Zähler kommt später)

Schnittstelle des Zählers definieren: Anschluss der Diode direkt an einen der GPIO's

Datenrate für meinen Zähler: 9600 Bit

 

Schritt 3: Alles aufbauen am Standort. Ich musste noch eine Datenleitung, Steckdose und ein paar Steuerleitungen verlegen.


Schritt 4: Aurora Protokoll für Wechselrichter installieren

http://www.monkeysandgorillas.com/index.php/2013/10/24/raspberry-pi-setup-to-monitor-aurora-pvi-5000-solar-inverter-part-3/

 

Diese Anleitung bei monkeysandgorillas funktionierte auf meinem Pi 3 wunderbar bis auf einen Schritt: Nach dem entpacken der Auroramon Paketes (der Zip Datei) muss man erst noch einige Zeilen anpassen, sonst läuft man in folgenden Error:

 

"Schwerwiegender Fehler: Es wurde ein Konflikt zwischen dem Programm und den Versionen der Bibliothekserstellung festgestellt. 

Die Bibliothek verwendete 2.8 (kein Debuggen, Unicode, Kompilieren mit C ++ ABI 1002, wx-Containern, die mit 2.6 kompatibel sind) 

und Ihr Programm 2.8 (kein Debug, Unicode, Kompilieren mit C ++ ABI 1010, wx-Containern, die mit 2.6 kompatibel sind). "

 

VOR dem Schritt sudo make (also dem Kompilieren der Dateien) muss man folgendes ändern:

In auroramon.h insert the definition 

 

#define __GXX_ABI_VERSION 1002

after the first few rows:

#ifndef AURORAMONMAIN_H

#define AURORAMONMAIN_H

#ifndef WX_PRECOMP

#include <wx wx.h="">

#endif

 

HIER DIE ZEILE OBEN EINFÜGEN, Datei speichern und DANACH sudo Make ausführen. Ansonsten (falls man Sudo Make schon ausgeführt hat und in den obigen Fehler gelaufen ist) das ganze Rückgängig machen mit:

make disclean (dabei müsst ihr euch im richtigen Ordner befinden).

 

(Quelle: Die Kommentare unten auf der Monkeys Toturial Seite)

 

Kurze Erklärung die ich gegoogelt habe: Es wird die falsche ABI Version benutzt. Das neue Raspi hat in meinem Fall Version 1010 installiert, das Programm wurde aber auf Basis 1002 gemacht. Daher setzen wir quasi manuell die ABI Version auf 1002 für unseren "make" Befehl.

Schritt 5: Grafische Darstellung z.B. durch Aurora Monitor herstellen.

Wurde die Kommunikation in Schritt 4 richtig getestet, kann man über z.B. Aurora Monitor die Daten darstellen lassen.

 

Ich nutze Aurora Monitor auch um die Daten an PVOutput.org zu senden. Hier kann man sie kostenfrei jederzeit abrufen.

 

Schritt 6: Volkszähler installieren und IR Lesekopf bauen

 

Lesekopf brauche ich 2 Stück. Daher habe ich den TTL Teil des Raspberry und noch einen USB RS232 Konverter verwendet.

 

TTL mit BPW40 Fototransistor direkt an RXD und GND des PI, Anregungen:

https://wiki.volkszaehler.org/howto/simpler_ir_leser

 

Ich habe mir 2 Leseköpfe nach obigem Link mit 1kOhm Widerstand und BWP40 Fototransistor gebaut. Einmal an der TTL Schnittstelle des Pi und einmal an einem USB RS232 Converter. Beide funktionieren auch bei leichtem Licht und Kabellängen von ca. 1,2 Metern.

 

Middleware des VZ installieren:

https://wiki.volkszaehler.org/software/middleware/installation

 

Der Logger selbst (vzlogger) muss zusätzlich installiert werden (das ist der Controller, der alles ausließt):

https://wiki.volkszaehler.org/software/controller/vzlogger/installation_cpp-version

 

Schritt 7: Konfiguration des VZ

https://wiki.volkszaehler.org/howto/raspberry_pi_image

 

Beispielhaftes Vorgehen: https://wiki.volkszaehler.org/howto/emh_pv-anlage

Über den zweiten Link lassen sich "unbekannte" Zähler auslesen und so Parameter herleiten. Der sogenannte Identifier beschreibt die Position des gewünschten Messwertes in der Kette an Daten, die ausgelesen werden.

 

Auch hilfreich: https://raspberry.tips/raspberrypi-tutorials/smartmeter-stromzaehler-mit-dem-raspberry-pi-auslesen-und-aufzeichnen

 

IR Lesekopf testen:

https://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-usb-ausgang

 

 

Schritt 8: Programme als Autostart einrichten

 

Schritt 9: Anlegen der Kanäle und Loggen der gewünschten Werte. Ggf. ist eine Reduzierung der Datenmenge notwendig. Meine Schnittstelle gibt alle 2 Sekunden einen Wert aus. Ich werde das Image auf eine SSD auslagern und dort habe ich viel Speicher zur Verfügung (zudem wird das System schneller): https://raspberry.tips/raspberrypi-tutorials/raspberry-pi-von-ssd-festplatte-booten

 

Ein Ü-Ei passt genau auf den Ringförmigen Ausschnitt für den IR Leser. Dieses habe ich mit Magneten versehen und den Fototransistor darin angebracht.