OpenDTU / OpenDTU Fusion mit Victron und oder Batterie

Moderator: Ulrich

Benutzeravatar
mysolar123
Beiträge: 25
Registriert: Fr 17. Feb 2023, 16:10
Wohnort: BW
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

OpenDTU / OpenDTU Fusion mit Victron und oder Batterie

Beitrag von mysolar123 »

Hallo,

hat hier jemand schon mit dem OpenDTU Script rumprobiert und erweitert wenn ein Victron Laderegler und oder eine Batterie (Pylontech, Seplos...) angeschlossen ist, die Werte in die Solaranzeige wandern?
Spaß am basteln mit BKWs

Benutzeravatar
mysolar123
Beiträge: 25
Registriert: Fr 17. Feb 2023, 16:10
Wohnort: BW
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Re: OpenDTU / OpenDTU Fusion mit Victron und oder Batterie

Beitrag von mysolar123 »

So! Ich kann hier auchmal was sinnvolles beitragen...

an meiner OpenDTU (in dem Fall Fusion - ist aber egal) ist ein Victron MPPT 100/20 + Seplos BMS via CAN angeschlossen. Hier ist mein pin_mapping.json file dazu:
[
{
"name": "OpenDTU Fusion v2 + 1xVictron MPPT + Pylontech CAN",
"nrf24": {
"miso": 48,
"mosi": 35,
"clk": 36,
"irq": 47,
"en": 38,
"cs": 37
},
"cmt": {
"clk": 6,
"cs": 4,
"fcs": 21,
"sdio": 5,
"gpio2": 3,
"gpio3": 8
},
"led": {
"led0": 17,
"led1": 18
},
"battery": {
"rx": 13,
"tx": 14
},
"victron": {
"rx": 10,
"tx": 9,
"rx2": -1,
"tx2": -1
}
}
]
1. Batterie "einschalten"
1_batterysetting.png
2. Solarregler "einschalten"
solarladeregler.png
3. In OpenDTU werden auf der ersten Seite Werte angezeigt (hier sieht man dann den Laderegler + BMS Informationen:
opendtu.png
4. In Zeile 334 der opendtu.php habe ich folgendes eingefügt (das ist nicht update-sicher, Ulrich wird den Code mit einem Update überschreiben)

Code: Alles auswählen

if (!empty($Daten['battery']) && is_array($Daten['battery']) || !empty($Daten['solarcharger']) && is_array($Daten['solarcharger'])) {
		$getVal = function(array $arr, string $path) {
			$parts = explode('.', $path);
			$cur = $arr;
			foreach ($parts as $p) {
				if (!is_array($cur) || !array_key_exists($p, $cur)) return null;
				$cur = $cur[$p];
			}
			return $cur;
		};
		if (!empty($Daten['battery']) && is_array($Daten['battery'])) {
			$b = $Daten['battery'];
			$aktuelleDaten['Batterie']['Voltage'] = is_numeric($getVal($b, 'voltage.v')) ? round((float)$getVal($b, 'voltage.v'), 2) : null;
			$aktuelleDaten['Batterie']['Current'] = is_numeric($getVal($b, 'current.v')) ? round((float)$getVal($b, 'current.v'), 2) : null;
			$aktuelleDaten['Batterie']['SOC']     = is_numeric($getVal($b, 'soc.v')) ? (int)$getVal($b, 'soc.v') : null;
			$aktuelleDaten['Batterie']['Power']   = is_numeric($getVal($b, 'power.v')) ? round((float)$getVal($b, 'power.v'), 2) : null;
		}
		if (!empty($Daten['solarcharger']) && is_array($Daten['solarcharger'])) {
			$s = $Daten['solarcharger'];
			$aktuelleDaten['SolarCharger']['Power'] = is_numeric($getVal($s, 'power.v')) ? round((float)$getVal($s, 'power.v'), 2) : null;
		}
	}
5. in influx kommt ein neues Datenfeld hinzu:
measurements.png
measurements.png (29.46 KiB) 15 mal betrachtet
Damit kann ich mir nun die Batteriespannung, Lade bzw. Entladestrom, SOC und Leistung + Leistung vom Laderegler in influx ziehen bzw. mit Grafana visualisieren
4_visu.png
Vielleicht kann ja damit jemand was anfangen... vielleicht kann Ulrich das auch in die OpenDTU.php einbauen?? :-)
Spaß am basteln mit BKWs

Zurück zu „Hoymiles Microwechselrichter DTU-pro, Ahoy-DTU, OpenDTU“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste