Raspberry Pi zum Auslesen von einem Smarten Stromzähler
Alternatives Vorgehen II
1. Fertiges VZ Image installieren
https://wiki.volkszaehler.org/howto/raspberry_pi_image
2. Upgrade von Lite auf Desktop Betriebssystem
http://coldcorner.de/2018/02/23/upgrade-raspbian-stretch-lite-zur-vollen-desktop-version/
Bzw ausführlicher:
https://www.raspberrypi.org/forums/viewtopic.php?t=133691
3. VNC aktivieren
https://www.elektronik-kompendium.de/sites/raspberry-pi/2011021.htm => Geht nicht richtig
Über die Config Seite direkt aktivieren, wird dann installiert.
4. Aurora Monitor installieren
http://www.monkeysandgorillas.com/index.php/2013/10/24/raspberry-pi-setup-to-monitor-aurora-pvi-5000-solar-inverter-part-3/
Dabei zusätzlich wie unten beschrieben die Datei bearbeiten vor der Installation!
5: Aurora Programm einrichten und ebenso den VZ Logger (Kanäle etc).
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.