Musste mich gegen ein DIN-Hutschienengehäuse entscheiden, da in meinem Schaltschrank kein Platz mehr war...
Zunächst muss der Entschlüsselungscode angefordert werden. Für Niederösterreich E-Mail an: smartmeter@netz-noe.at
Information zur Kundenschnittstelle (netz-nö) sind hier zu finden: www.netz-noe.at/SmartMeter_Kundenschnittstelle_lektoriert.aspx.
Leistungsfaktor ist teils unglaubwürdig, siehe dazu Issue #7
Das Projekt wurde in PlatformIO entwickelt. Um es zu kompilieren, bitte Einstellungen in platformio.ini
übernehmen.
KEY[]
: Hier muss der Entschlüsselungs-Code eingetragen werdenSD_CARD_LOGGING
: Speichern auf SD-Karte bzw. den Fileserver (de)aktivierenUSE_GRAPHITE
: Daten an Graphite senden (de)aktivierensiehe lib/display/README.md
default_httppassword = "admin"
: Fileserver Login Usernamedefault_httppassword = "smartmeter"
: Fileserver Login PasswortIn platformio.ini kann das Flag TEST_SETUP
verwendet werden, um ohne Smartmeter die Funktionalität zu überprüfen. Dazu muss mein Schlüssel in key.h verwendet werden.
flowchart LR
Smartmeter -- M-Bus --> a[M-Bus UART Konverter] -- UART --> ESP32
ESP32 --> Decrypting
subgraph ESP32
Decrypting -- save -->b[SD-Karte]
c[SD-Karte] -- serve --> Webserver
Decrypting-- push --> d[Graphite Server]
end
ESP32-- display -->e[TFT Display]
Für eine simplere Hardware Version siehe Release V0.1.
Als Folge meiner ersten Version wurde hier eine eigene PCB mit mehr Features entworfen. Diese beinhaltet folgende Kern-Komponenten:
Schaltplan, BOM, Anmerkungen, Zukünftige Verbesserungen der PCB usw. befinden sich im Ordner hardware.
Für einen "simplen" Aufbau wird folgendes benötigt:
ESP32-S Modul | M-Bus Slave Board | RJ12 | Anmerkung | |
---|---|---|---|---|
3.3V | 3V3 | Versorgung | ||
GND | GND | Masse | ||
RXD 2 | GPIO16 | TX | Empfangene Daten vom M-Bus | |
TXD 2 | GPIO17 | RX | Optional, da wir keine Daten senden | |
MBUS1 | 3 | M-Bus Ausgang, Polarität egal | ||
MBUS2 | 4 | M-Bus Ausgang, Polarität egal |
ESP32-S Modul | TFT Display | Anmerkung | |
---|---|---|---|
3.3V | VCC | Versorgung | |
GND | GND | Masse | |
SCK | GPIO18 | SCK | |
MOSI | GPIO23 | SDA | |
MISO | GPIO19 | RES | |
GPIO25 | RS | ||
SS | GPIO5 | CS | |
GPIO26 | LEDA | Display an/aus (Hintergrundbeleuchtung) |
Achtung: Ob ein SPI Micro SD-Karten Modul kompatibel mit dem TFT Display ist, weiß ich nicht. Ich verwende die SD-Karte im 4-Bit SD Bus Mode, welcher folgend aufgelistet ist. | ESP32-S Modul | SD-Karte | Anmerkung | |
---|---|---|---|---|
3.3V | VDD | Versorgung | ||
GND | VSS | Masse | ||
GPIO2 | SD_DATA0 | DAT0 | ||
GPIO4 | SD_DATA1 | DAT1 | ||
GPIO12 | SD_DATA2 | DAT2 | ||
GPIO13 | SD_DATA3 | CD/DAT3 | ||
GPIO15 | SD_CMD | CMD | ||
GPIO14 | SD_CLK | CLK | ||
GPIO27 | SD_CD | CD | Card detect. Erkennt, ob SD-Karte physisch vorhanden ist (Schließer). |
Für jeden Monat wird eine Datei erstellt. Ein Monat hat ca. 60MB und dauert somit ungefähr 5 Minuten zum Herunterladen. Als Übersicht wird oben der SD-Karten Status (Freier Speicher, usw.) angezeigt.
Zur Visualisierung wird Grafana (und Graphite) verwendet. Beide Programme laufen auf einem NAS (Synology DS218).
Es gibt noch viele Ideen für weitere Entwicklungen, siehe dazu: