CHint DTSU666-H Smart Meter über WLAN einbinden

Welche Geräter können mit dieser Anzeige benutzt werden?
Laderegler, Wallboxen, Batterie-Management-Systeme, WLAN Schalter mit Tasmota Firmware und Wechselrichter

Moderator: Ulrich

Antworten
gzi
Beiträge: 153
Registriert: Mo 16. Jan 2023, 20:43
Hat sich bedankt: 20 Mal
Danksagung erhalten: 29 Mal

CHint DTSU666-H Smart Meter über WLAN einbinden

Beitrag von gzi »

Ich habe einen 3-Phasen Smart-Meter DTSU666-H via WLAN an die Solaranzeige angebunden.

Dieser Stromzähler kann im Hauptverteiler installiert werden und misst so den gesamten Stromverbrauch bzw. die Einspeisung von PV-Stroms ins öffentliche Netz.
Der DTSU666-H verfügt über eine Modbus RTU Schnittstelle, die über eine RS485 Verbindung angesprochen werden kann. Damit der Stromzähler WLAN-fähig wird, benötigt man einen Protokoll-Wandler. Ich verwende den Elfin EW11. Das Gerät macht aus der Modbus RTU Schnittstelle des Stromzählers eine Modbus TCP Schnittstelle. Den Protokollwandler habe ich bereits in einem früheren Posting beschrieben.

Bei mir ist der Elfin EW11 im Verteiler montiert (Halter für DIN Schiene werden mitgeliefert), weil er über ein RS485 Kabel mit dem DTSU666-H verbunden wird und eine Stromversorgung braucht. Er hat eine abschraubbare WLAN-Antenne, die bei mir zur Verbesserung des WLAN Empfangs außen am Verteilerschrank montiert ist und mit einem Antennenverlängerungskabel (RP SMA Stecker auf RP SMA Buchse) verbunden ist. Die Stromversorgung erfolgt über ein Netzteil für DIN-Schiene 12VDC, 1,25A, 15W.

Hinweis: Die Montage der Geräte im Verteiler erfordert unbedingt Fachkenntnisse und ist eine Arbeit für Elektriker. Es besteht die Gefahr von tödlichen Stromschlägen oder Bränden bei unsachgemäßer Ausführung!

Im o.a. Posting ist auch die Datei user_device.php angehängt, die die Anbindung an die Solaranzeige implementiert.

Diese dort angehängte Datei tut einiges mehr. Hier möchte ich aber speziell beschreiben, wie die Anbindung des Smart Meter implementiert ist. Folgende Einstellungen werden in der Datei 3.user.config.php angegeben (sie ist auch im o.a. Posting angehängt):

Code: Alles auswählen

$Regler =  "1001";
Den Regler 1001 gibt es nicht in der Solaranzeige. Das hat zur Folge, dass automatisch die Datei /var/www/html/user_device.php eingebunden wird, wo eben das Auslesen des Smart Meters stattfindet.

Code: Alles auswählen

$GeraeteNummer = "3";  // Die user device(s) sind bei mir der 3. "Regler"
$WR_IP = "10.0.0.2";  // Für DTSU666-H - IP-Adresse des Modbus TCP Adapters (Elfin EW11)
$WR_Port = "502"; 	// Modbus-TCP Standard-Port
$WR_Adresse = "38";	// Für DTSU666-H - Modbus Geräte ID, wie am Display des Geräts eingestellt
$InfluxDB_local = true; // die ausgelesenen Daten werden im der lokalen Influx DBMS gespeichert
$InfluxDBLokal  = "DTSU666H"; // die Daten werden in einer eigenen SB geseichert
$MQTT = false; // die ausgelesenen Daten werden nicht an den MQTT Broker der Solaranzeige geschickt
Die Datenbank DTSU666H muss in Influx angelegt werden. Ich habe das ebenfalls im o.a. Posting beschrieben. Im Abschnitt 1.2 der Datei user_device.php finden sich weitere für den DTSU666-H notwendige Einstellungen, die in der user.config nicht vorgesehen sind:

Code: Alles auswählen

$SM_Richtung=-1;		//  Smart Meter Sensoren Einbaurichtung
Falls man den Smart Meter ursprünglich für die Hoymiles DTU Pro eingebaut hat, dann sind die Stromzangen eigentlich verkehrt herum (Pfeilrichtung öffentliches Netz) eingebaut. In diesem Fall muss man diesen Wert auf -1 setzen. Weisen die Pfeile Richtung Hausnetz dann auf +1.

Code: Alles auswählen

$SM_Detaildaten=1;

Hier kann man einstellen, ob nur Watt und KWh ausgelesen werden sollen, oder alle anderen Daten (Spannung, Ampere, Frequenz etc.), die der Stromzähler liefern kann, auch ausgelesen werden sollen.

Der Code für die weitere Verarbeitung befindet sich im Abschnitt 2 der Datei user_device.php.

// 2. Smart Meter DTSU666-H via Modbus TCP auslesen
Zuerst wird mit fsockopen eine Socket-Verbindung zur Modbus TCP Schnittstelle geöffnet.

// 2.1 Aktuellen Energieverbrauch vom Netz ermitteln
Mit der Solaranzeige Standardfunktion modbus_tcp_lesen werden die entsprechenden Modbus-Register gelesen und in Zahlen umgewandelt. Das Modbus-Protokoll liefert die Zahlen nicht in der richtigen Skalierung. Daher muss etwa die Netz-Leistung durch 10 dividiert werden, damit man den Wert in Watt bekommt.
Die Einheit der Zahlenwerte habe ich an den Variablennamen angehängt:
V … Volt
W … Watt
KWh … Kilowattstunde
Etc.
Mit A, B und C sind die drei Phasen L1, L2, L3 gemeint.
In diesem Abschnitt wird der aktuelle Gesamtverbrauch und der aktuelle Verbrauch je Phase ausgelesen, in Watt umgerechnet und im Array $aktuelleDaten gespeichert.

// 2.2 Zählerstand auslesen
Hier werden die seit Inbetriebnahme des Smart Meters verbrauchten KWh ausgelesen.

// 2.3 Spannung auslesen
Diese und die folgenden Daten werden nur ausgelesen, wenn $SM_Detaildaten == 1 . Es wird die Spannung zwischen den Phasen sowie die Spannung von den Phasen zum Neutralleiter.

// 2.4 Strom, Ampere auslesen
Die Stromstärke je Phase wird ausgelesen.

// 2.5 Blindleistung auslesen
Die Blindleistung und der Leistungsfaktor je Phase und gesamt werden ausgelesen.

// 2.6 Frequenz auslesen
Es wird die Netzfrequenz in Hz ermittelt.

// 2.7 4-Quadrantenzählung
Die Daten zur Quadrantenzählung werden ausgelesen.

// 2.8 abgeleitete Daten berechnen
Netzbezug und Einspeisung werden berechnet und in die Datei solaranzeige.log geschrieben.

// 2.9 Query für das Schreiben in die influxDB zusammenstellen
Es wird ein Query, eigentlich ein INSERT Statement für die Influx Datenbank in der Variablen $zq zusammengestellt und dann im Array $aktuelleDaten gespeichert.

// 2.10 optionale Nachbearbeitung der Smart-Meter Daten
Diese Option wir nicht verwendet.

// 2.11 Smart-Meter Daten optional an den hauseigenen MQTT Broker übergeben
Abhängig von der Einstellung $MQTT in der Datei 3.user.config.php werden die ausgelesenen Daten auch an den MQTT Broker der Solaranzeige gesendet.

// 2.12 Zeitpunkte definieren
Daten für die Statistik werden aufbereitet.

// 2.13 Smart-Meter Daten in influxDB ablegen
Mit der Solaranzeige Standard-Funktion influx_local werden die ausgelesenen Daten in der Datenbank gespeichert.

Smart Meter-Daten in einem Dashboard darstellen

Man kann dazu das in der Solaranzeige mitgelieferte Grafana Dashboard für Smart Meter als Vorlage nehmen. Damit man aber die in user_device.php vom DTSU666-H gesammelten Daten in diesem Dashboard darstellen kann, muss man zuerst die Datenbank DTSU666H bei Grafana bekannt machen.

Dazu klickt man in Grafana aufs Zahnrad-Symbol und wählt dort Data Sources aus. Dann rechts aus „Add data source“, dann auf InfluxDB. Im Formular unter

Code: Alles auswählen

Name: DTSU666H 
URL: http://localhost:8086 (wichtig: das selbst ausfüllen, das Feld hat keinen Default-Wert)
Database: DTSU666H
http-Method: GET
Und dann Save & Test klicken. Nun kann man das vorgefertigte Dashboard „SmartMeter“ öffnen, und dann zum Beispiel auf „Netz Bezug“ klicken und dann Edit auswählen.
Dort gibt man dann ein:

Code: Alles auswählen

Data Source: DTSU666H
From: Zaehlerstand
Select: Bezug_W
Der Rest kann bleiben wie er ist. Dann „Apply“ klicken. Das macht man dann bei allen anderen Ausgabefeldern ähnlich. Am Ende nicht vergessen das ganze Dashboard speichern. Das geht rechts oben mit dem Diskettensymbol. Am Ende kann es dann so aussehen:
Bild
Raspi 3B, Hybrid Must PV18-3024 VHM, Hoymiles HM-800 , Nachteinspeisung, Flex-BKW, AhoyDTU, Smart Meter DTSU666-H, DIY Akku 6,7 KWh, DalyBMS2MQTT, Victron2MQTT,Architektur, HomeMatic CCU. Autor: Solaranlage Do-It-Yourself

Antworten

Zurück zu „Regler, Wallboxen und Wechselrichter“