Python Applikation Konsole
Für dieses Python Programm werden folgende Bibliotheken benötigt:
Modbus: pip install pymodbus (Version 3.6.8)
GitHub: dduransseau.
Python modbus client for Shelly Pro devices. Dieses GitHub Repository besteht aus zwei Dateien
consts.py und client.py. Das Skript
consts.py wurde geändert! Die Liste mit den
Identnummern 2000 bis 2015 wurden entfernt. Die kann mein Shelly
Pro 3EM nicht verarbeiten. Weiterhin wurde das Skript in register.py
umbenannt.
Das Original Python Skript client.py wurde umbenannt in
modbus_client.py weiterhin wurde das Import geändert.
Von:
import struct
from pymodbus.client import ModbusTcpClient
from .consts import *
In:
import struct
from pymodbus.client import ModbusTcpClient
from register import *
Der Rest ist identisch zum Original.
Nur das ich das Listing auf dieser Webseite nicht zeige. Weiter unten auf dieser Seite findest
du ein Bild über den Inhalt des Projektordners Shelly Konsole!
Python Skript: main.py.
Eine kleine Menüsteuerung für die Konsole.
Python Skript: variablen.py.
Zeile 8: Hier die IP
Adresse eingegeben. Zeile 9: Generiert das Objekt client (Modbus).
Python Skript: tools.py.
Zeile 12 bis 14: Löscht den Inhalt der Konsole. Zeile 19 bis 30: Liefert die Anzahl der Tage.
Das Datum wird benötigt, jedoch ist im String die Uhrzeit enthalten, das wird in Zeile 20 und
21 korrigiert. Zeile 35 bis 39: Der Zeitstempel, geliefert von Shelly, wird von Unixzeit zur
Realzeit gewandelt. Zeile 44 bis 47: Liefert die gesamte verbrauchte elektrische Arbeit
in Kilowattstunde. Mehr dazu unter Menüpunkt Shelly & JSON.
Python Skript: synchronisieren.py.
Zeile 12 bis 23: Visualisiert auf der Konsole eine Eingabemaske für die Synchronisation.
Zeile 28 bis 60: Führt die Synchronisation aus. Auch hier wird eine CSV-Datei generiert
(Zeile 33 bis 41), diese wird aber in der Applikation nicht verwendet. Von essentieller
Bedeutung sind aber die Zeilen 42 bis 56! Hier wird die Synchronisation.json Datei erzeugt.
Andere Programmteile beziehen sich auf dessen Inhalt.
Python Skript: register.py.
Jetzt müssen wir die Seite von Shelly-Modbus
besuchen. Im ersten Drittel der Seite (Registers) sind zwei Schalter:
EM und EMData. Klicke diese beiden Links an und informiere dich.
Ich benutze für die Applikation Konsole nur drei Register: 1160, 1162 und 1164.
Python Skript: zeigeVerbrauch.py.
Zeile 11 bis 41: Der kalibrierte Drehstromzähler wird aus der Datei Synchronisation.json ausgelesen,
Zeile 17. Abschlagszahlungen werden addiert, Zeile 26 bis 32. Die restlichen Variablen werden mit den
Parametern aus der Datei StromParameter.json belegt. Siehe auch Menüpunkt Shelly & JSON.
Zeile 45 bis 80: Visualisiert den Verbrauch und die Kosten. Weiterhin wird eine CSV-Datei erstellt.
Die ist aber nicht wichtig. Wird nicht genutzt. Zeile 85 bis 96: Zeigt den Istwert des Drehstromzählers an.
Das Projektverzeichnis mit allen benötigen Dateien. Zum Order Datenmodul
siehe Menüpunkt Shelly & JSON.