You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -17,7 +19,7 @@ Der Benutzer muss einen eigenen PHP- und MySQL-Provider anmieten / bereitstellen
17
19
18
20
### Zielsetzung
19
21
20
-
Das Projekt richtet sich an technisch erfahrene Benutzer, die ihren privaten Echtzeit-Energieverbrauch und/oder ihre private Echtzeit-Stromerzeugung durch PV-Anlagen, Balkonkraftwerkeoder andere Energieerzeuger im Detail analysieren möchten. Die Software kann mobil auf dem Handy als auch auf dem PC benutzt werden.
22
+
Das Projekt richtet sich an technisch erfahrene Benutzer, die ihren privaten Echtzeit-Energieverbrauch und/oder ihre private Echtzeit-Stromerzeugung durch PV-Anlagen, Balkonkraftwerke, Akkusysteme oder andere Energieerzeuger in der eigenen Datenbank speichern möchten. Es werden umfangreiche Analyseansichten angeboten, wie z.B. eine nahezu Echtzeitübersicht, eine Eigenverbrauchsquote oder eine Autarkieansicht jeweils für Stunden, Tage, Monate oder Jahre. Die Software kann mobil auf dem Handy als auch auf dem PC benutzt werden.
21
23
22
24
Beispielsweise können Stromspitzen in Echtzeit erkannt und mithilfe von zwei Berechnungslinien analysiert werden. Dies ermöglicht es, den Energieverbrauch oberhalb, unterhalb oder zwischen den definierten Linien zu ermitteln.
23
25
@@ -56,7 +58,8 @@ In der Datenbank ist pro Zeitabschnitt ein Wert für Verbrauchsdaten vorgesehen,
56
58
-**Netzeinspeisung**: Definiert die überschüssige erzeugte Energie, die nicht selbst verbraucht wird.
57
59
58
60
### Echtzeitdaten und Daten-Logger
59
-
Die Echtzeitdaten und Stundenübersicht sind nur in Verbindung mit Echtzeitdaten sinnvoll nutzbar. Gleiches gilt für die Tagesansicht, da man in der Regel nur Werte für einen ganzen Monat manuell eingibt.
61
+
Die Echtzeitdaten und Stundenübersicht sind nur in Verbindung mit Echtzeitdaten sinnvoll nutzbar. Gleiches gilt für die Tagesansicht, da man in der Regel nur Werte für einen ganzen Monat manuell eingibt. Es handelt sich hierbei um eine nahezu Echtzeitanzeige, d.h. es tritt immer eine geringe Verzögerung im Sekundenbereich auf.
62
+
60
63
Für das Datenlogging der Echtzeitdaten gibt es eine API, die diese entgegennimmt und in die Datenbank speichert. Dieses Projekt enthält Skripte für die Shelly-Energiemesssensoren. Bitte unbedingt die Sicherheitshinweise beachten, falls Sensoren genutzt werden, die in die Elektroinstallation eingebaut werden.
61
64
Die API kann auch mit anderen Energiedaten bedient werden, man kann sich also auch ein Skript für andere Geräte programmieren.
62
65
@@ -78,6 +81,10 @@ Preisdaten können ebenfalls manuell für mehrere Zeiträume eingegeben werden.
78
81
### Status fehlender Werte
79
82
Hier wird ein Status angezeigt, der einen Überblick über die Datenabdeckung gibt und die Möglichkeit bietet, fehlende Daten manuell nachzupflegen. Falls bei der Berechnung der Echtzeitdaten ein Fehler beim Cronjob aufgetreten ist, kann der Monat manuell nachberechnet werden. Fehlen allerdings die Echtzeitdaten vollständig, bleibt die Lücke bestehen.
80
83
84
+
### Zendure (Hyper 2000 System)
85
+
Es können Daten von dem Zendure System zusätzlich mit angezeigt werden. Derzeit ist es nur mit dem Hyper 2000 System getestet, da keine spezifischen Hyper 2000 Werte benutzt werden, sollten auch die anderen Zendure Systeme funktionieren.
86
+
Die Daten werden von der offiziellen Zendure-API aus deren Cloud ausgelesen.
87
+
81
88
## Lizenz
82
89
83
90
Dieses Projekt ist unter der [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.html) lizenziert. Sie dürfen es verwenden, modifizieren und weitergeben, solange alle Kopien und abgeleiteten Werke ebenfalls unter dieser Lizenz stehen.
@@ -117,6 +124,14 @@ Das Projekt nutzt folgende Open-Source-Bibliotheken:
-**Funktion**: Optional, falls ein Zendure Akkusystem benutzt wird, um die Daten aus der Zendure API zu lesen.
132
+
133
+
134
+
120
135
## Shelly-Geräte und Skripte
121
136
122
137
### Verwendung von Shelly-Geräten und -Skripten
@@ -142,3 +157,9 @@ Ebenso wird keine Haftung für die erfassten Daten, deren Speicherung oder deren
142
157
Darüber hinaus wird keine Verantwortung für etwaige Datenverluste, Abwärtskompatibilitätsprobleme (z. B. nach einem Update) oder andere technische Probleme übernommen. Es wird ausdrücklich empfohlen, regelmäßig ein Backup der Datenbank zu erstellen, um den Verlust wichtiger Informationen zu vermeiden.
143
158
144
159
**Wichtiger Hinweis**: Die Geräte und Skripte dürfen nur in Übereinstimmung mit den geltenden gesetzlichen Bestimmungen und Sicherheitsvorgaben genutzt werden.
160
+
161
+
## Zendure Geräte und API (Optional)
162
+
163
+
### Auslesen von PV Ertrag sowie Akkudaten
164
+
165
+
Falls entsprechend konfiguriert, wird die Zendure-API benutzt um den Erzeugten PV-Ertrag und den aktuellen Akkustand auszulesen. Aktuell nur mit dem Hyper 2000 System getestet.
$config->configRealtimeAlert()->setAlertThresholdInMinutes(5); // Wenn x Minuten keine Einträge gefunden werden, wird ein Mail und ein Hinweis in der Navigation gezeigt, solange das Problem besteht.
30
-
$config->configRealtimeAlert()->setSendAlertMailEveryXMinutes(30); // Die Mail wird alle x Minuten erneut gesendet, solange das Problem besteht.
31
-
$config->configRealtimeAlert()->setShouldAlertForEnergyType(EnergyTypeEnum::EM, true); // Welche Kanäle überwacht werden
$config->realtimeAlert()->setAlertThresholdInMinutes(5); // Wenn x Minuten keine Einträge gefunden werden, wird ein Mail und ein Hinweis in der Navigation gezeigt, solange das Problem besteht.
30
+
$config->realtimeAlert()->setSendAlertMailEveryXMinutes(30); // Die Mail wird alle x Minuten erneut gesendet, solange das Problem besteht.
31
+
$config->realtimeAlert()->setShouldAlertForEnergyType(EnergyTypeEnum::EM, true); // Welche Kanäle überwacht werden
$config->zendure()->setAppKey("DeinAppKey"); // Der AppKey, siehe Installationsanleitung
86
+
$config->zendure()->setAppSecret("DeinAppSecret"); // Das AppSecret, siehe Installationsanleitung
87
+
$config->zendure()->setReadTimeInSec(60); // Wie lange ein Request die Zendure Nachrichten abfragt, hängt vom Timeout des Webservers ab.
88
+
$config->zendure()->setDisplayName("Akku"); // Name auf dem Dashboard
89
+
$config->zendure()->setConnectedToPmPort("PM3"); // An welcher Phase der Zendure angeschlossen ist. Kann auch in der Echtzeitübersicht erkannt werden
90
+
$config->zendure()->setCalculatePackData(true); // Wenn Zendure im Smart Mode, also mit Nulleinspeisung betrieben wird, bekommt man schnellere ungefähr Werte, wenn der Akku berechnet wird.
91
+
92
+
$config->dashboardPage()->setShowZendureOnDashboard(false); // Falls ein Zendure-System benutzt wird, das die Werte auf dem Dashboard angezeigt werden
93
+
$config->dashboardPage()->setConsumptionIndicatedAs100Percent(6000); // Max. Wert für 100% Hausverbrauch, z.B. 6000W
94
+
$config->dashboardPage()->setMaxEnergyProduction(1600); // Max. Wert für Energieproduktion, z.B. 1600W PV-Panel Leistung
Es kann der aktuelle Wert der PV Stromgenerierung und der Akkustand aus dem Zendure-System ausgelesen und mit angezeigt werden. Die Werte werden dann außerdem auf dem Dashboard auch für die Anzeige der gesamten Energieproduktion berücksichtigt. Dies zeigt dann auch die PV-Energie an, welche für das Laden des Akkus verwendet wird.
150
+
Die Werte werden über die API ausgelesen und in der DB zwischengespeichert.
151
+
152
+
Beim Lesen der Zendure-Werte kann es zu geringfügigen Datenverlusten, insbesondere bei der aktuellen PV-Leistung kommen, wodurch ggfls. die Echtzeitanzeige etwas verfälscht ist. Die Akkudaten können auch berechnet werden, weil die API die Akkudaten nur ~ alle Minute sendet und im Smart-Modus dann nur ein Indiz sind.
153
+
154
+
Hintergrund: Das Auslesen erfolgt per einzelne Requests durch den TaskManager welcher dann einen gewissen Zeitraum läuft, da auf dem Webserver kein dauerhafter Prozess laufen kann. Dies ist nicht so, wie das MQQT-Protokoll es vorsieht, funktioniert aber auch. Deshalb ist das Feature als rudimentär gekennzeichnet.
155
+
156
+
Um ein Zendure-System anzubinden, sind folgende Schritt notwendig:
157
+
158
+
1. AppKey und AppSecret für die Zendure API besorgen
159
+
Als Vorbereitung muss man die Seriennummer aus der Zendure-App im Einstellungsbereich auslesen.
160
+
Mit der Seriennummer und die E-Mail, mit welcher man sich registriert hat setzt man folgenden Befehl ab, um die Zugangsdaten zu erhalten:
161
+
- Eingabeaufforderung (cmd) öffnen
162
+
- Die Werte in diesem Befehl entsprechend ersetzen und abschicken:
163
+
- Nicht empfohlen: Bei Zertifikatsfehlermeldung am Ende --insecure anhängen.
Die Werte von DeinAppKey + DeinAppSecret werden in der local-config.php eingetragen.
176
+
Folgende Einstellungen können für Zendure vorgenommen werden:
177
+
178
+
```
179
+
// Zendure
180
+
$config->zendure()->setAppKey("DeinAppKey"); // Der oben gelesene AppKey
181
+
$config->zendure()->setAppSecret("DeinAppSecret"); // Das oben gelesene AppSecret
182
+
$config->zendure()->setReadTimeInSec(60); // Wie lange ein Request die Zendure Nachrichten abfragt, hängt vom Timeout des Webservers ab.
183
+
$config->zendure()->setDisplayName("Akku"); // Name auf dem Dashboard
184
+
$config->zendure()->setConnectedToPmPort("PM3"); // An welcher Phase der Zendure angeschlossen ist. Kann auch in der Echtzeitübersicht erkannt werden
185
+
$config->zendure()->setCalculatePackData(true); // Wenn Zendure im Smart Mode, also mit Nulleinspeisung betrieben wird, bekommt man schnellere ungefähre Werte, wenn der Akku berechnet wird.
186
+
187
+
$config->dashboardPage()->setShowZendureOnDashboard(true); // Falls ein Zendure-System benutzt wird, das die Werte auf dem Dashboard angezeigt werden
188
+
$config->dashboardPage()->setConsumptionIndicatedAs100Percent(6000); // Max. Wert für 100% Hausverbrauch, z.B. 6000W
189
+
$config->dashboardPage()->setMaxEnergyProduction(1600); // Max. Wert für Energieproduktion, z.B. 1600W PV-Panel Leistung
0 commit comments