Python Applikation Konsole

Zurück

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!



Shelly Python Konsole main1 Shelly Python Konsole main2


Python Skript: main.py.
Eine kleine Menüsteuerung für die Konsole.


Shelly Python Konsole Variablen


Python Skript: variablen.py.
Zeile 8: Hier die IP Adresse eingegeben. Zeile 9: Generiert das Objekt client (Modbus).


Shelly Python Konsole tools1 Shelly Python Konsole tools2


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.


Shelly Python Konsole Synchronisation1 Shelly Python Konsole Synchronisation2


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.


Shelly Python Konsole Register1 Shelly Python Konsole Register2 Shelly Python Konsole Register3


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.


Shelly Python Konsole Verbrauch1 Shelly Python Konsole Verbrauch2 Shelly Python Konsole Verbrauch3


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.


Shelly Python Konsole Speicherort


Das Projektverzeichnis mit allen benötigen Dateien. Zum Order Datenmodul siehe Menüpunkt Shelly & JSON.

Zurück