Batteriedaten vom HybridWR an die OpenWB per MQTT

Allgemeine Informationen zum Nachbau und zum Forum.
PV-Monitorung / PV Überwachung

Moderator: Ulrich

Schnödersöder
Beiträge: 6
Registriert: Mo 11. Sep 2023, 16:59
Hat sich bedankt: 3 Mal

Batteriedaten vom HybridWR an die OpenWB per MQTT

Beitrag von Schnödersöder »

Hallo zusammen,

ich hatte eigentlich gehofft, ich bekomme das alles alleine hin, aber nun brauch ich glaub doch mal Hilfe.

Ich habe einen Infini 3kw Hybriden installiert und nun auch die Solaranzeige aufgesetzt, um die Daten des WR auslesen zu können. Nun möchte ich nur die Batteriedaten an die OpenWB per MQTT übergeben und hab entsprechend den super Anleitungen entsprechend die "user.config.php" angepasst:

Code: Alles auswählen

// Sollen alle ausgelesenen Daten mit dem MQTT Protokoll an einen
// MQTT-Broker gesendet werden? Bitte das Solaranzeige-MQTT PDF Dokument lesen
$MQTT = true;
//
// Wo ist der MQTT-Broker zu finden?
// Entweder "localhost", eine Domain oder IP Adresse "xxx.xxx.xxx.xxx" eintragen.
// broker.hivemq.com ist ein Test Broker Siehe http://www.mqtt-dashboard.com/
$MQTTBroker = "192.168.178.61";
//
// Benutzter Port des Brokers. Normal ist 1883 mit SSL 8883
$MQTTPort = 1883;
//
// Falls der Broker gesichert ist. Sonst bitte leer lassen.
$MQTTBenutzer = "";
$MQTTKennwort = "";
//
// Wenn man die Daten mit SSL Verschlüsselung versenden möchte.
// Wenn hier true steht, muss im Verzeichnis "/var/www/html/" die "cerfile"
// 'ca.crt' vorhanden sein. Nähere Einzelheiten über diese Datei findet
// man im Internet in der Mosquitto Dokumentation.
$MQTTSSL = false;
//
// Timeout der Übertragung zum Broker. Normal = 10 bis 60 Sekunden
$MQTTKeepAlive = 60;
//
// Topic Name oder Nummer des Gerätes solaranzeige/1
// oder solaranzeige/box1 (solaranzeige ist fest vorgegeben.)
// Man kann das Gerät nennen wie man will, nur jedes Gerät, welches Daten
// senden soll unterschiedlich. Entwerder 1 bis 6 oder Namen Ihrer Wahl vergeben.
$MQTTGeraet = "box1";
//
// Welche Daten sollen als MQTT Message übertragen werden? Wenn hier nichts
// aufgeführt ist, werden alle ausgelesenen Daten übertragen.
// Bitte darauf achten, dass keine Leerstellen zwischen den Variablen sind.

// Die einzelnen Variablen müssen mit einem Komma getrennt und klein geschrieben
// werden. Zusätzlich müssen sie den Eintrag vom $MQTTGeraet und ein Schrägstrich
// enthalten. Das ist nötig, da mehrere Geräte an dem Raspberry hängen können.
// Beispiel mit obigen MQTTGeraet:
// $MQTTAuswahl = "openWB";
Dazu dann noch eine "openWB_math.php" erstellt:

Code: Alles auswählen

<?php
/*****************************************************************************
// Daten an die openWB Wallbox per MQTT senden.
*****************************************************************************/

$openWB_DB = "solaranzeige"; // Datenbankname des Wechselrichters

$openWB_MQTT = array();

$timeFilter = " time >= ".strtotime(date("Y-m-d"))."000ms and time <= ".strtotime(date("Y-m-d")." + 1day")."000ms ";

$Measurement = "Batterie";
$sql = urlencode('select * from '.$Measurement.' order by time desc limit 1');
$ch = curl_init('http://localhost/query?db='.$openWB_DB.'&precision=s&q='.$sql);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_TIMEOUT, 15); //timeout in second s
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 12);
curl_setopt($ch, CURLOPT_PORT, 8086);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$Ergebnis["result"] = curl_exec($ch);
$Ergebnis["rc_info"] = curl_getinfo ($ch);
$Ergebnis["JSON_Ausgabe"] = json_decode($Ergebnis["result"],true,10);
$Ergebnis["errorno"] = curl_errno($ch);
if ($Ergebnis["rc_info"]["http_code"] == 200 or $Ergebnis["rc_info"]["http_code"] == 204) {
$Ergebnis["Ausgabe"] = true;
}
curl_close($ch);
unset($ch);
if (!isset($Ergebnis["JSON_Ausgabe"]["results"][0]["series"])) {
log_schreiben("Es fehlt die Datenbank solaranzeige mit dem Measurement Batterie oder sie ist leer.","|- ",3);
log_schreiben("Fehler: ".$Ergebnis["JSON_Ausgabe"]["results"][0]["error"],"|- ",4);
}
else {
for ($h = 1; $h < count($Ergebnis["JSON_Ausgabe"]["results"][0]["series"][0]["columns"]); $h++) {
$DB[$b][$Ergebnis["JSON_Ausgabe"]["results"][0]["series"][0]["columns"][$h]] =
$Ergebnis["JSON_Ausgabe"]["results"][0]["series"][0]["values"][0][$h];
}
log_schreiben("Datenbank: solaranzeige DB ".print_r($DB,1)," ",10);
}
$Ergebnis = array();
}

// OpenWB Speicher Modul
$openWB_MQTT["openWB/set/houseBattery/W"] = $DB["Leistung"];
$openWB_MQTT["openWB/set/houseBattery/%Soc"] = $DB["SOC"];
$openWB_MQTT["openWB/set/houseBattery/WhImported"] = $DB["BatterieLadungHeute"];
$openWB_MQTT["openWB/set/houseBattery/WhExported"] = $DB["BatterieEntladungHeute"];

// Die Pipe wird geöffnet
// Ab hier werden die MQTT Topics in die Pipe geschrieben
$fifoPath = "/var/www/pipe/pipe";
if (! file_exists($fifoPath)) {
$funktionen->log_schreiben("Pipe wird neu erstellt."," ",5);
posix_mkfifo($fifoPath, 0644);
}
$fifo = fopen($fifoPath, "w+");
if (is_resource($fifo)) {
foreach($openWB_MQTT as $key=>$wert) {
$rc = fwrite($fifo, $key." ".$wert."\r\n");
$funktionen->log_schreiben($key." ".$wert." rc: ".$rc," ",10);
}
$rc = fwrite($fifo,"|");
fclose($fifo);
}
?>
Leider kommt bei der openWB nichts an. Die Log-files sind meiner Meinung nach unauffällg.

Wird denn die "openWB_math.php" überhaupt verarbeitet, oder muss ich auch in der openWB.php was ändern?

Wenn ich mich auf die Solaranzeige einlogge, finde ich unter "/var/www/pipe/pipe" leider keine Datei. Kann hier schon ein Fehler sein?

Vielen Dank schon mal im Voraus und schöne Grüße

Markus

Benutzeravatar
Ulrich
Administrator
Beiträge: 5548
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 124 Mal
Danksagung erhalten: 835 Mal

Re: Batteriedaten vom HybridWR an die OpenWB per MQTT

Beitrag von Ulrich »

Hallo Markus,

was ich daraus lese ist, dass du die MQTT Daten auf den Brocker der openWB schicken willst.

Was siehst du denn, wenn du das auf der Konsole eingibst?


mosquitto_sub -h 192.168.178.61 -v -t +/#

Damit müsstest du ja die Daten des Wechselrichter jede volle Minute sehen. ( Die _math Datei wird dazu erst einmal nicht benötigt. )
Bitte gehe Schritt für Schritt vor.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Schnödersöder
Beiträge: 6
Registriert: Mo 11. Sep 2023, 16:59
Hat sich bedankt: 3 Mal

Re: Batteriedaten vom HybridWR an die OpenWB per MQTT

Beitrag von Schnödersöder »

Hallo Ulrich,

danke Dir für die schnelle Hilfe.

Es ist genau, wie Du geschrieben hast. Ich möchte die MQTT-Daten auf die openWB schicken - relevant sind für mich eigentlich nur die Batteriedaten.

Ich hab das gerade eben mal vom Smartphone aus getestet (bin leider auf Arbeit und komme vom Arbeitsplatzrechner nicht per VPN auf den Raspberry). Also nach Eingabe von "mosquitto_sub -h 192.168.178.61 -v -t +/# " kommen sehr viele internen Daten der OpenWB. Von der Solaranzeige kommt scheinbar nichts an - mit "box1" kamen keine Daten.

Ich kann die genaue Ausgabe gerne heute Nachmittag hier hochladen, wenn ich daheim am Rechner bin.

Auf jedem Fall schon mal VIELEN DANK!

Markus

Benutzeravatar
Ulrich
Administrator
Beiträge: 5548
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 124 Mal
Danksagung erhalten: 835 Mal

Re: Batteriedaten vom HybridWR an die OpenWB per MQTT

Beitrag von Ulrich »

Kann es sein, dass der Broker der openWB irgendwie mit Userid und Kennwort geschützt ist oder keine Daten von außerhalb zulässt? Das solltest du alles zuerst einmal prüfen.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Schnödersöder
Beiträge: 6
Registriert: Mo 11. Sep 2023, 16:59
Hat sich bedankt: 3 Mal

Re: Batteriedaten vom HybridWR an die OpenWB per MQTT

Beitrag von Schnödersöder »

Ulrich hat geschrieben:
Fr 6. Okt 2023, 10:42
...
Was siehst du denn, wenn du das auf der Konsole eingibst?


mosquitto_sub -h 192.168.178.61 -v -t +/#
Hallo Ulrich, hier mal ein Ausschnitt der Ausgabe. Sind diese vielen Werte hinter der Uhrzeit die Messages des WR?

Code: Alles auswählen

17:47:26,-217,0,494,0,0,0,0,0,85,67,220,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,50,0,0,0
17:47:36,-205,0,409,0,0,0,0,0,85,67,149,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,48,0,0,0
17:47:46,-206,0,465,0,0,0,0,0,85,67,207,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,44,0,0,0
17:47:56,-271,0,445,0,0,0,0,0,85,67,125,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,42,0,0,0
17:48:07,-260,0,421,0,0,0,0,0,85,67,114,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,39,0,0,0
17:48:17,-241,0,413,0,0,0,0,0,85,67,126,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,38,0,0,0
17:48:27,-247,0,416,0,0,0,0,0,85,67,124,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,37,0,0,0
17:48:37,-263,0,415,0,0,0,0,0,85,67,104,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,40,0,0,0
17:48:47,-234,0,425,0,0,0,0,0,85,67,141,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,42,0,0,0
17:48:57,-256,0,413,0,0,0,0,0,85,67,105,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,44,0,0,0
17:49:06,-254,0,410,0,0,0,0,0,85,67,104,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,44,0,0,0
17:49:16,-258,0,416,0,0,0,0,0,85,67,105,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,46,0,0,0
17:49:26,-276,0,417,0,0,0,0,0,85,67,86,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,48,0,0,0
17:49:36,-259,0,425,0,0,0,0,0,85,67,109,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,50,0,0,0
17:49:47,-257,0,416,0,0,0,0,0,85,67,102,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,50,0,0,0
17:49:56,-257,0,391,0,0,0,0,0,85,67,79,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,48,0,0,0
17:50:07,-252,0,416,0,0,0,0,0,85,67,110,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,47,0,0,0
17:50:17,-257,0,410,0,0,0,0,0,85,67,99,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,47,0,0,0
17:50:27,-258,0,388,0,0,0,0,0,85,67,76,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,46,0,0,0
17:50:37,-253,0,408,0,0,0,0,0,85,67,99,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,48,0,0,0
17:50:47,-264,0,407,0,0,0,0,0,85,67,86,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,50,0,0,0
17:50:57,-242,0,406,0,0,0,0,0,85,67,106,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,51,0,0,0
17:51:07,-244,0,408,0,0,0,0,0,85,67,105,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,52,0,0,0
17:51:17,-275,0,432,0,0,0,0,0,85,67,97,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,53,0,0,0
17:51:26,-268,0,433,0,0,0,0,0,85,67,105,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,53,0,0,0
17:51:36,-274,0,429,0,0,0,0,0,85,67,94,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,53,0,0,0
17:51:46,-269,0,424,0,0,0,0,0,85,67,96,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,52,0,0,0
17:51:56,-283,0,427,0,0,0,0,0,85,67,82,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,54,0,0,0
17:52:07,-275,0,427,0,0,0,0,0,85,67,94,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,51,0,0,0
17:52:17,-266,0,430,0,0,0,0,0,85,67,106,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,50,0,0,0
17:52:27,-272,0,426,0,0,0,0,0,85,67,96,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,50,0,0,0
17:52:37,-228,0,421,0,0,0,0,0,85,67,135,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,50,0,0,0
17:52:47,-173,0,359,0,0,0,0,0,85,67,129,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,49,0,0,0
17:52:57,-148,0,417,0,0,0,0,0,85,67,211,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,50,0,0,0
17:53:07,-161,0,405,0,0,0,0,0,85,67,189,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,47,0,0,0
17:53:16,-156,0,404,0,0,0,0,0,85,67,193,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,47,0,0,0
17:53:26,-128,0,399,0,0,0,0,0,85,67,217,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,46,0,0,0
17:53:37,-149,0,393,0,0,0,0,0,85,67,192,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,45,0,0,0
17:53:46,-132,0,401,0,0,0,0,0,85,67,216,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,45,0,0,0
17:53:56,-151,0,402,0,0,0,0,0,85,67,198,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,45,0,0,0
17:54:07,-114,0,377,0,0,0,0,0,85,67,210,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,45,0,0,0
17:54:17,-83,0,398,0,0,0,0,0,85,67,263,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,44,0,0,0
17:54:27,-104,0,391,0,0,0,0,0,85,67,237,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,42,0,0,0
17:54:37,-139,0,384,0,0,0,0,0,85,67,194,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,43,0,0,0
17:54:47,-135,0,385,0,0,0,0,0,85,67,199,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,43,0,0,0
17:54:57,282,0,359,0,0,0,0,0,85,67,594,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,40,0,0,0
17:55:07,-12,0,333,0,0,0,0,0,85,67,272,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,41,0,0,0
17:55:16,15,0,367,0,0,0,0,0,85,67,337,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,38,0,0,0
17:55:26,18,0,351,0,0,0,0,0,85,67,326,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,36,0,0,0
openWB/graph/5alllivevalues -
openWB/graph/9alllivevalues -
openWB/graph/12alllivevalues -
openWB/graph/2alllivevalues 17:38:55,-603,0,736,0,0,0,0,0,85,67,35,0,0,0,0,0,0,0        ,0,0,0,0,3,0,0,74,0,80,0,0,0
17:39:07,-587,0,743,0,0,0,0,0,85,67,69,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,80,0,0,0
17:39:17,-634,0,749,0,0,0,0,0,85,67,26,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,81,0,0,0
17:39:27,-627,0,742,0,0,0,0,0,85,67,28,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,80,0,0,0
17:39:37,-627,0,749,0,0,0,0,0,85,67,37,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,78,0,0,0
17:39:47,-657,0,733,0,0,0,0,0,85,67,37,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,78,0,0,0
17:39:57,-656,0,772,0,0,0,0,0,85,67,28,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,81,0,0,0
17:40:07,-662,0,771,0,0,0,0,0,85,67,21,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,80,0,0,0
17:40:16,-661,0,758,0,0,0,0,0,85,67,9,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,81,0,0,0
17:40:27,-641,0,768,0,0,0,0,0,85,67,39,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,81,0,0,0
17:40:37,-655,0,759,0,0,0,0,0,85,67,15,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,81,0,0,0
17:40:47,-651,0,729,0,0,0,0,0,85,67,15,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,80,0,0,0
17:40:57,-624,0,753,0,0,0,0,0,85,67,40,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,82,0,0,0
17:41:10,-640,0,756,0,0,0,0,0,85,67,28,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,81,0,0,0
17:41:17,-639,0,745,0,0,0,0,0,85,67,18,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,80,0,0,0
17:41:27,-631,0,744,0,0,0,0,0,85,67,25,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,80,0,0,0
17:41:37,-625,0,713,0,0,0,0,0,85,67,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,78,0,0,0
17:41:47,-626,0,733,0,0,0,0,0,85,67,21,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,78,0,0,0
17:41:57,-602,0,729,0,0,0,0,0,85,67,42,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,78,0,0,0
17:42:06,-602,0,693,0,0,0,0,0,85,67,10,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,74,0,0,0
17:42:16,-558,0,706,0,0,0,0,0,85,67,67,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,74,0,0,0
17:42:26,-577,0,693,0,0,0,0,0,85,67,35,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,73,0,0,0
17:42:37,-548,0,620,0,0,0,0,0,85,67,35,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,69,0,0,0
17:42:46,-494,0,663,0,0,0,0,0,85,67,93,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,69,0,0,0
17:42:56,-544,0,671,0,0,0,0,0,85,67,50,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,70,0,0,0
17:43:07,-538,0,665,0,0,0,0,0,85,67,50,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,70,0,0,0
17:43:17,-513,0,654,0,0,0,0,0,85,67,65,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,68,0,0,0
17:43:27,-503,0,631,0,0,0,0,0,85,67,52,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,68,0,0,0
17:43:37,-478,0,616,0,0,0,0,0,85,67,69,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,62,0,0,0
17:43:46,-440,0,590,0,0,0,0,0,85,67,82,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,61,0,0,0
17:43:57,-439,0,551,0,0,0,0,0,85,67,49,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,56,0,0,0
17:44:07,-403,0,563,0,0,0,0,0,85,67,95,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,57,0,0,0
17:44:17,-307,0,565,0,0,0,0,0,85,67,194,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,56,0,0,0
17:44:26,-298,0,570,0,0,0,0,0,85,67,213,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,51,0,0,0
17:44:36,-291,0,563,0,0,0,0,0,85,67,213,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,51,0,0,0
17:44:46,-283,0,529,0,0,0,0,0,85,67,185,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,54,0,0,0
17:44:56,-273,0,536,0,0,0,0,0,85,67,204,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,51,0,0,0
17:45:08,-245,0,545,0,0,0,0,0,85,67,242,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,51,0,0,0
17:45:18,-269,0,530,0,0,0,0,0,85,67,206,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,48,0,0,0
17:45:27,-253,0,517,0,0,0,0,0,85,67,209,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,48,0,0,0
17:45:37,-233,0,514,0,0,0,0,0,85,67,225,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,48,0,0,0
17:45:47,-248,0,501,0,0,0,0,0,85,67,199,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,46,0,0,0
17:45:57,-258,0,519,0,0,0,0,0,85,67,207,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,46,0,0,0
17:46:06,-258,0,521,0,0,0,0,0,85,67,208,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,48,0,0,0
17:46:16,-253,0,515,0,0,0,0,0,85,67,206,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,49,0,0,0
17:46:27,-253,0,521,0,0,0,0,0,85,67,213,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,47,0,0,0
17:46:37,-267,0,507,0,0,0,0,0,85,67,187,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,45,0,0,0
17:46:47,-265,0,481,0,0,0,0,0,85,67,163,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,45,0,0,0
17:46:57,-175,0,512,0,0,0,0,0,85,67,279,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,51,0,0,0
17:47:06,-244,0,504,0,0,0,0,0,85,67,202,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,0,51,0,0,0
openWB/graph/10alllivevalues -
openWB/graph/8alllivevalues -
openWB/graph/6alllivevalues -
openWB/graph/11alllivevalues -
openWB/graph/13alllivevalues -
openWB/graph/16alllivevalues -
openWB/graph/7alllivevalues -
openWB/graph/14alllivevalues -
openWB/graph/15alllivevalues -
openWB/pv/W -328
openWB/evu/W -17
openWB/global/WHouseConsumption 267
openWB/system/Uptime  18:00:37 up 47 days,  4:44,  1 user,  load average: 2,41,         1,82, 1,52
openWB/system/Date Fr 6. Okt 18:00:37 CEST 2023
openWB/system/Timestamp 1696608036
openWB/lp/1/VPhase1 226.8
openWB/lp/1/VPhase2 226.1
openWB/lp/1/VPhase3 226.9
openWB/pv/WhCounter 41853819.0546875
openWB/evu/VPhase2 226.455
openWB/evu/VPhase3 226.845
openWB/evu/VPhase1 227.153
openWB/global/strLastmanagementActive
openWB/evu/WhExported 22816005.8
openWB/evu/APhase1 -1.388
openWB/evu/APhase3 1.404
openWB/evu/APhase2 0.383
openWB/evu/WPhase3 126
openWB/evu/WPhase1 -149
openWB/pv/1/W -154
openWB/evu/PfPhase1 0.598
openWB/evu/PfPhase2 0.285
openWB/pv/2/W -174
openWB/evu/PfPhase3 0.442
openWB/pv/1/WhCounter 38394613
openWB/evu/Hz 50.069
openWB/global/cpuModel ARMv7 Processor rev 4 (v7l)
openWB/global/cpuUse 51
openWB/global/cpuTemp 60.14
openWB/global/cpuFreq 1400
openWB/global/memTotal 926
openWB/global/memUse 284
openWB/global/memFree 521
openWB/global/diskUse 15G
openWB/global/diskFree 9,6G
openWB/set/pv/1/faultStr "Kein Fehler."
openWB/set/pv/1/faultState 0
openWB/pv/1/faultStr "Kein Fehler."
openWB/pv/1/faultState 0
openWB/set/pv/1/faultStr (null)
openWB/set/pv/1/faultState (null)
openWB/set/pv/2/faultStr "Kein Fehler."
openWB/set/pv/2/faultState 0
openWB/pv/2/faultStr "Kein Fehler."
openWB/pv/2/faultState 0
openWB/set/pv/2/faultStr (null)
openWB/set/pv/2/faultState (null)
openWB/set/houseBattery/faultState 0
openWB/housebattery/faultState 0
openWB/set/houseBattery/faultState (null)
openWB/set/houseBattery/faultStr Kein Fehler
openWB/set/houseBattery/faultState 0
openWB/housebattery/faultStr Kein Fehler
openWB/housebattery/faultState 0
openWB/set/houseBattery/faultStr (null)
openWB/set/houseBattery/faultStr (null)
openWB/set/houseBattery/faultState (null)
openWB/SmartHome/Devices/9/RunningTimeToday 64836
openWB/SmartHome/Status/uberschussoffset 17
openWB/SmartHome/Status/wattnichtHaus 43
openWB/SmartHome/Status/wattschalt 7
openWB/SmartHome/Status/uberschuss 17
openWB/SmartHome/Devices/7/RunningTimeToday 46257
openWB/SmartHome/Devices/1/RunningTimeToday 64837
openWB/SmartHome/Devices/4/RunningTimeToday 22354
openWB/SmartHome/Devices/7/Watt 7
openWB/SmartHome/Devices/9/WHImported_temp 1403023443
openWB/set/evu/faultStr "Kein Fehler."
openWB/evu/faultStr "Kein Fehler."
openWB/set/evu/faultState 0
openWB/set/evu/faultStr (null)
openWB/evu/faultState 0
openWB/set/evu/faultState (null)
openWB/graph/alllivevalues 17:52:37,-228,0,421,0,0,0,0,0,85,67,135,0,0,0,0,0,0,0        ,0,0,0,0,3,0,0,8,0,50,0,0,0
17:52:47,-173,0,359,0,0,0,0,0,85,67,129,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,49,0,0,0
17:52:57,-148,0,417,0,0,0,0,0,85,67,211,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,50,0,0,0
17:53:07,-161,0,405,0,0,0,0,0,85,67,189,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,0,47,0,0,0

Eigentlich hab ich in der openWB kein Passwort oder ähnliches gesetzt. Wenn man dort bei der Speicher-Konfiguration "MQTT" einstellt, steht da, dass keine weitere Konfiguration (seitens der openWB) benötigt wird.
2023-10-06_18h06_59.png
Wenn die oben angegebenen Zahlen/Buchstaben NICHT vom WR kommen, dann hab ich scheinbar wirklich ein Problem dass die openWB keine Daten von der Solaranzeige bekommt.

Danke und schöne Grüße

Markus

Benutzeravatar
Ulrich
Administrator
Beiträge: 5548
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 124 Mal
Danksagung erhalten: 835 Mal

Re: Batteriedaten vom HybridWR an die OpenWB per MQTT

Beitrag von Ulrich »

Was passiert denn, wenn du auf der Konsole folgendes eingibst:

mosquitto_pub -h 192.168.178.61 -m "Testnachricht" -t solaranzeige -d
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Schnödersöder
Beiträge: 6
Registriert: Mo 11. Sep 2023, 16:59
Hat sich bedankt: 3 Mal

Re: Batteriedaten vom HybridWR an die OpenWB per MQTT

Beitrag von Schnödersöder »

Guten Morgen, dann kommt:

Code: Alles auswählen

pi@solaranzeige:~ $ mosquitto_pub -h 192.168.178.61 -m "Testnachricht" -t solaranzeige -d
Client (null) sending CONNECT
Client (null) received CONNACK (0)
Client (null) sending PUBLISH (d0, q0, r0, m1, 'solaranzeige', ... (13 bytes))
Client (null) sending DISCONNECT
pi@solaranzeige:~ $
Nun hab ich testhalber mal folgendes gesendet:

Code: Alles auswählen

pi@solaranzeige:~ $ mosquitto_pub -h 192.168.178.61 -t openWB/set/houseBattery/%Soc -m 88
pi@solaranzeige:~ $
und im Open-WB-Log kam an:

Code: Alles auswählen

2023-10-07 11:24:53,711: Topic: openWB/set/houseBattery/%Soc, Message: 88
Die OpenWB zeigt in der Oberfläche auch die 88% an:
2023-10-07_11h28_06.png
Also nimmt sie die Daten schon mal an :-) Soweit sind wir also schon mal.

Gerade hab ich dann noch mal "pi@solaranzeige:~ $ mosquitto_sub -h 192.168.178.61 -v -t +/#" eingegeben... und siehe da:

Code: Alles auswählen

openWB/global/diskFree 9,6G
solaranzeige/box1/zentralertimestamp 1696671384
solaranzeige/box1/wattstundengesamtheute 668.72
solaranzeige/box1/modus G
solaranzeige/box1/devicestatus 10
solaranzeige/box1/warnungen --0000000000--00110---000000----
solaranzeige/box1/fehlermeldung Batterie discharge low
solaranzeige/box1/anzahlmppt 1
solaranzeige/box1/kilowattstundentotal 111000
solaranzeige/box1/netzspannung 225.2
solaranzeige/box1/netzleistung 000118
solaranzeige/box1/netzfrequenz 50.0
solaranzeige/box1/netzstrom 0000.2
solaranzeige/box1/ac_ausgangsspannung 225.6
solaranzeige/box1/ac_ausgangsleistung 00000
solaranzeige/box1/ac_ausgangsfrequenz 50.0
solaranzeige/box1/ac_ausgangsstrom 000.0
solaranzeige/box1/ac_ausgangslast 002
solaranzeige/box1/batteriespannung 010.0
solaranzeige/box1/batteriekapazitaet 000
solaranzeige/box1/solarleistung1 00247
solaranzeige/box1/solarleistung2 00118
solaranzeige/box1/solarleistung3 0
solaranzeige/box1/solarspannung1 176.3
solaranzeige/box1/solarspannung2 0
solaranzeige/box1/solarspannung3 0
solaranzeige/box1/temperatur 021.0
solaranzeige/box1/geraetestatus D---100010
solaranzeige/box1/laden_entladen 0
solaranzeige/box1/bezug_einspeisung 0
solaranzeige/box1/solarleistung 00247
solaranzeige/box1/batterieleistung 00118
solaranzeige/box1/regler 24
solaranzeige/box1/objekt (null)
solaranzeige/box1/firmware 0
solaranzeige/box1/produkt Protokoll 16
openWB/set/pv/1/faultStr "Kein Fehler."
Es kommen auch Daten von der Solaranzeige an.

Und in der pipe stehen jetzt auch Daten drin:

Code: Alles auswählen

box1/zentralerTimestamp 1696674790
box1/WattstundenGesamtHeute 828.72
box1/Protokoll 16
box1/Modus G
box1/DeviceStatus 10
box1/Warnungen --0000000000--00110---000000----
box1/Fehlermeldung Batterie discharge low
box1/AnzahlMPPT 1
box1/KiloWattstundenTotal 111000
box1/Netzspannung 223.0
box1/Netzleistung 000008
box1/Netzfrequenz 49.9
box1/Netzstrom 0000.2
box1/AC_Ausgangsspannung 224.6
box1/AC_Ausgangsleistung 00006
box1/AC_Ausgangsfrequenz 49.9
box1/AC_Ausgangsstrom 000.0
box1/AC_Ausgangslast 002
box1/Batteriespannung 008.0
box1/Batteriekapazitaet 000
box1/Solarleistung1 00123
box1/Solarleistung2 00014
box1/Solarleistung3 0
box1/Solarspannung1 165.4
box1/Solarspannung2 0
box1/Solarspannung3 0
box1/Temperatur 021.0
box1/Geraetestatus D---100001
box1/Laden_Entladen 0
box1/Bezug_Einspeisung 1
box1/Solarleistung 00123
box1/Batterieleistung 00014
box1/Regler 24
box1/Objekt 
box1/Firmware 0
box1/Produkt Protokoll 16
|
Scheinbar hapert es nun "nur" noch an der Übersetzung der Daten in das openWB-Format?

Vielen Dank nochmals soweit...

Markus

Schnödersöder
Beiträge: 6
Registriert: Mo 11. Sep 2023, 16:59
Hat sich bedankt: 3 Mal

Re: Batteriedaten vom HybridWR an die OpenWB per MQTT

Beitrag von Schnödersöder »

Guten Morgen,

Entschuldigung, wenn ich hier noch mal nerve ;)

Also in der OpenWB kommen die Daten an:

solaranzeige/box1/batteriekapazitaet 000 (es ist aktuell kein Akku angeschlossen)
solaranzeige/box1/batterieleistung 00118


Damit die OpenWB aber was damit anfangen kann, müssten die Daten so aussehen:

opwnWB/set/houseBattery/%Soc
opwnWB/set/houseBattery/W

Eigentlich will die OpenWB auch noch:

opwnWB/set/houseBattery/WhImported
opwnWB/set/houseBattery/WhExported

...aber ich glaube, diese Daten gibt mein Wechselrichter leider nicht raus.


Wie bekomme ich das hin? Ist das sehr kompliziert?

Schnödersöder
Beiträge: 6
Registriert: Mo 11. Sep 2023, 16:59
Hat sich bedankt: 3 Mal

Re: Batteriedaten vom HybridWR an die OpenWB per MQTT

Beitrag von Schnödersöder »

Moin,

wollte mich abschließend noch mal melden. Ich hab das ganze jetzt mit Node Red gelöst - davon hab ich zwar auch keine Ahnung, aber ich habe es trotzdem irgendwie hinbekommen:
2023-10-11_23h05_22.png
Vielleicht steht ja mal jemand von dem ähnlichen Problem und kann was mit dieser Information anfangen.

Code: Alles auswählen

[
    {
        "id": "c6f39d8f55b734e5",
        "type": "tab",
        "label": "Solaranzeige zu openWB Batteriespeicher",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "d2a89699c8c9622a",
        "type": "mqtt in",
        "z": "c6f39d8f55b734e5",
        "name": "",
        "topic": "solaranzeige/box1/batteriekapazitaet",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "f65eccf0983837ee",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 190,
        "y": 740,
        "wires": [
            [
                "7af5523fa17345fa"
            ]
        ]
    },
    {
        "id": "b37beaa6a532f6c7",
        "type": "mqtt out",
        "z": "c6f39d8f55b734e5",
        "name": "",
        "topic": "openWB/set/houseBattery/%Soc",
        "qos": "2",
        "retain": "true",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "f65eccf0983837ee",
        "x": 1100,
        "y": 740,
        "wires": []
    },
    {
        "id": "cffba26676c07e9b",
        "type": "mqtt in",
        "z": "c6f39d8f55b734e5",
        "name": "solaranzeige/box1/batterieleistung",
        "topic": "solaranzeige/box1/batterieleistung",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "f65eccf0983837ee",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 180,
        "y": 900,
        "wires": [
            [
                "661d5951458c2593"
            ]
        ]
    },
    {
        "id": "6e8a7b821d9ee4fe",
        "type": "mqtt out",
        "z": "c6f39d8f55b734e5",
        "name": "",
        "topic": "openWB/set/houseBattery/W",
        "qos": "2",
        "retain": "true",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "f65eccf0983837ee",
        "x": 1090,
        "y": 940,
        "wires": []
    },
    {
        "id": "e284b75e4df6197e",
        "type": "mqtt in",
        "z": "c6f39d8f55b734e5",
        "name": "solaranzeige/box1/laden_entladen",
        "topic": "solaranzeige/box1/laden_entladen",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "f65eccf0983837ee",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 180,
        "y": 1040,
        "wires": [
            [
                "3b35716383972c1b"
            ]
        ]
    },
    {
        "id": "cd3a4257c9e36ab4",
        "type": "debug",
        "z": "c6f39d8f55b734e5",
        "name": "SOC gerundet",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 700,
        "y": 640,
        "wires": []
    },
    {
        "id": "7af5523fa17345fa",
        "type": "range",
        "z": "c6f39d8f55b734e5",
        "minin": "000",
        "maxin": "100",
        "minout": "0",
        "maxout": "100",
        "action": "scale",
        "round": true,
        "property": "payload",
        "name": "SOC runden",
        "x": 470,
        "y": 740,
        "wires": [
            [
                "b37beaa6a532f6c7",
                "cd3a4257c9e36ab4"
            ]
        ]
    },
    {
        "id": "50cb99f50696b97e",
        "type": "debug",
        "z": "c6f39d8f55b734e5",
        "name": "Soeicher laden/entladen W",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 1000,
        "y": 840,
        "wires": []
    },
    {
        "id": "661d5951458c2593",
        "type": "range",
        "z": "c6f39d8f55b734e5",
        "minin": "00000",
        "maxin": "10000",
        "minout": "0",
        "maxout": "10000",
        "action": "scale",
        "round": true,
        "property": "payload",
        "name": "Leistung runden",
        "x": 460,
        "y": 900,
        "wires": [
            [
                "f7a15b54a977f346"
            ]
        ]
    },
    {
        "id": "3b35716383972c1b",
        "type": "change",
        "z": "c6f39d8f55b734e5",
        "name": "ändere 0 zu -1",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "0",
                "fromt": "num",
                "to": "-1",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 500,
        "y": 1040,
        "wires": [
            [
                "f7a15b54a977f346"
            ]
        ]
    },
    {
        "id": "f7a15b54a977f346",
        "type": "function",
        "z": "c6f39d8f55b734e5",
        "name": "Multiplikation",
        "func": "if (msg.topic === \"solaranzeige/box1/batterieleistung\") context.set(\"leistung\",msg.payload);\nif (msg.topic === \"solaranzeige/box1/laden_entladen\") context.set(\"laden_entladen\",msg.payload);\n\n\nvar leistung = context.get(\"leistung\") || 0;\nvar laden_entladen = context.get(\"laden_entladen\") || 0;\n\n\nmsg.payload = leistung * laden_entladen;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 760,
        "y": 940,
        "wires": [
            [
                "6e8a7b821d9ee4fe",
                "50cb99f50696b97e"
            ]
        ]
    },
    {
        "id": "f65eccf0983837ee",
        "type": "mqtt-broker",
        "name": "",
        "broker": "192.168.178.61",
        "port": "1883",
        "clientid": "",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "3",
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    }
]
Schöne Grüße

Markus

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast