Aufbau der Datenerfassung und Auswertung
Bei der Vorüberlegung zur tagesaktuellen Verbrauchserfassung automatisiert auszuwerten führte zum Shelly 3EM.
Es wurden drei Abrufwebseiten auf Basis von PHP geschrieben, die die Daten über einen Webserver (Raspberry PI4) per Cronjob einmal täglich um 23:59 abruft und in drei CSV-Datei des Webserververzeichnisses schreibt. Durch die drei Abruf- und CSV-Dateien wird jede Phase einzeln abgerufen und kann über ein Excel-Data-Sheet zusammengeführt ausgewertet werden.
Shelly 3EM Features
- Strommessung von 3-Phasen Netzen mit bis zu je 120A
- Ausgang für Schützsteuerung oder Last bis zu 10A
- 365 Tage interner Speicher, falls WiFi nicht verfügbar ist
- Spannungsmessung und konfigurierbare Alarmmeldung
- Messen der Rückspeisung von Energie ins Netz bei Solar oder Windanlagen
- Cronjob auf Webserver
- PHP-Skripte auf Webserver zur täglichen Speicherung der Datendatei (CSV)
- Excel-Datenauswertung per Datenanbindung an Datendatei (CSV)
- Cronjob
59 23 * * * * /<Pfad zum PHP>/php7.3 /<Pfad zum Webserver>/shelly3-xxx.php >/<Pfad zum Webserver>/data-xxx.csv
- PHP-Skripte
<?php
$_url = "http://<User:Passwort@Ihr Webserver>/emeter/<0; 1 o. 2>/3em_data";
$_buffer = date("d.m.Y H:i:s") . " " . implode('', file($_url));
//Datei öffnen zum anfügen, lesen und schreiben
$text = "$_buffer\n";
//Ersetzungen in buffer
$ersatz0 = array("{", "}", ",", "\"power\":", "\"pf\":", "\"current\":", "\"voltage\":", "\"is_valid\":", "\"total\":", "\"total_returned\":");
$new_text0 = str_replace($ersatz0, " ", $_buffer)."\n";
echo $new_text0;
$dateiname = "<Datendateiname>.csv";
$handler = fopen($dateiname, "a+");
while ( $inhalt = fgets ($handler, 4096))
{
echo "<li> $inhalt ";
}
fwrite($handler, $new_text0);
fclose($handler);
?>
Die in braun gekennzeichneten Abschnitte müssen auf Ihre Anforderungen angepasst werden. Z.B. bei:
$_url = "http://Mustermann:Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!/emeter/0/3em_data";*
$dateiname = "phase0.csv";
Username und Passwort nur notwendig *, wenn Ihr Shelly 3EM den Datenabruf nur passwortgeschützt erlaubt. Anstelle des qualifizierten Domainnamens können Sie auch die IP-Adresse (z.B. 192.168.33.1) nutzen, wenn Sie das System nur aus Ihrem lokalen Netzwerk nutzen wollen.
- Excel-Datenauswertung