NEWS
UNSOLVED Victron Photovoltaik Anlage Daten für ioBroker auslesen!
-
@mickym Die Zerlegung eines JSON Strings siehst Du in dem Thread als 6. Beispiel. Und ein Adapter der MQTT Nachrichten interpretiert ist kein MQTT-Adapter mehr. Ich bin froh, dass er das nicht tut.
-
@fuci said in Victron Photovoltaik Anlage Daten für ioBroker auslesen!:
Wie hast du die Struktur für deinen Hauszaehler angelegt?
Kannst du vielleicht dein Skript zur Übertragung deiner Werte als Beispiel zur Verfügung stellen?
Die Struktur hab ich im Broker von Hand erzeugt. Sind teilweise Ordner, Kanäle oder dann die Datenpunkt (alle numerisch)
Hier das Script:
var Einspeisung, CurrentL1, CurrentL2, CurrentL3;on({id: "sonoff.0.StromzählerHaus.SM_16_7_0"/StromzählerHaus SM 16_7_0/, change: "any"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
CurrentL1 = Math.round((parseFloat(getState("sonoff.0.StromzählerHaus.SM_36_7_0").val) / getState("smartmeter.1.1-0:32_7_0__255.value").val)*100)/100;
CurrentL2 = Math.round((parseFloat(getState("sonoff.0.StromzählerHaus.SM_56_7_0").val) / getState("smartmeter.1.1-0:52_7_0__255.value").val)*100)/100;
CurrentL3 = Math.round((parseFloat(getState("sonoff.0.StromzählerHaus.SM_76_7_0").val) / getState("smartmeter.1.1-0:72_7_0__255.value").val)*100)/100;
setState("mqtt.0.Hauszähler.sdm1-1.Voltage.L1"/Voltage.L1/, getState("smartmeter.1.1-0:32_7_0__255.value").val);
setState("mqtt.0.Hauszähler.sdm1-1.Voltage.L2"/Voltage.L2/, getState("smartmeter.1.1-0:52_7_0__255.value").val);
setState("mqtt.0.Hauszähler.sdm1-1.Voltage.L3"/Voltage.L3/, getState("smartmeter.1.1-0:72_7_0__255.value").val);
setState("mqtt.0.Hauszähler.sdm1-1.Current.L1"/Current.L1/, CurrentL1);
setState("mqtt.0.Hauszähler.sdm1-1.Current.L2"/Current.L2/, CurrentL2);
setState("mqtt.0.Hauszähler.sdm1-1.Current.L3"/Current.L3/, CurrentL3);
setState("mqtt.0.Hauszähler.sdm1-1.Current"/Current/, (parseFloat(CurrentL1) + parseFloat(CurrentL2) + CurrentL3));
setState("mqtt.0.Hauszähler.sdm1-1.Power.L1"/Power.L1/, getState("sonoff.0.StromzählerHaus.SM_36_7_0").val);
setState("mqtt.0.Hauszähler.sdm1-1.Power.L2"/Power.L2/, getState("sonoff.0.StromzählerHaus.SM_56_7_0").val);
setState("mqtt.0.Hauszähler.sdm1-1.Power.L3"/Power.L3/, getState("sonoff.0.StromzählerHaus.SM_76_7_0").val);
setState("mqtt.0.Hauszähler.sdm1-1.Power"/Power/, getState("sonoff.0.StromzählerHaus.SM_16_7_0").val);
setState("mqtt.0.Hauszähler.sdm1-1.Import"/Import/, Math.round((parseFloat(getState("sonoff.0.StromzählerHaus.SM_1_8_0").val) / 1000)*100)/100);
setState("mqtt.0.Hauszähler.sdm1-1.Export"/Export/, Math.round((parseFloat(getState("sonoff.0.StromzählerHaus.SM_2_8_0").val) / 1000)*100)/100);
// Ab hier Werte für Display füllen
setState("mqtt.0.Spannung"/Spannung/, getState("smartmeter.1.1-0:32_7_0__255.value").val);
setState("mqtt.0.Strom"/Strom/, Math.round((parseFloat(getState("sonoff.0.StromzählerHaus.SM_16_7_0").val) / getState("smartmeter.1.1-0:32_7_0__255.value").val)*100)/100);
setState("mqtt.0.Leistung"/Leistung/, getState("sonoff.0.StromzählerHaus.SM_16_7_0").val);
setState("mqtt.0.SoC"/SoC/, 76.456);
setState("mqtt.0.BMSTemp"/BMSTemp/, getState("zigbee.0.00158d0001c2a13e.temperature").val);
});Hoffe das hilft weiter
-
@mickym said in Victron Photovoltaik Anlage Daten für ioBroker auslesen!:
Wenn Du NodeRed benutzt habe ich einen tollen Subflow für Dich:
https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen
Ein JSON String ist die beste und am wenigsten aufwendige Art Daten zu übertragen. Man kann alles in einzelnen Datenpunkte zerlegen. Das aber zu lassen und die JS Objekte in NodeRed direkt zu verarbeiten hat viele Vorteile, auch wenn es Dir am Anfang kryptischer aussieht. JSON Strings sind zudem ein Standard um Daten zwischen verschiedenen Systemen auszutauschen.
Habe es mal getestet irgendetwas funktioniert beim erstellen des Subflows nicht ich bekomme immer die Fehlermeldung.
node red cannot read properties of undefined reading length
-
@mlapp said in Victron Photovoltaik Anlage Daten für ioBroker auslesen!:
sdm1-1.Voltage.L1
Vielen Dank für deine Hilfe. Bis hierhin habe ich es nun gebracht... Lasten kann er negativ wohl nicht vertragen.
Wie bist du damit verfahren?
Hast du weitere Werte emuliert? -
@jacke Der Subflow exisistiert doch schon. Sonst poste mal den JSON String hier in Code-Tags und kann es selbst versuchen.
-
@fuci
negative Werte sind im Code abgefangen und werden auf 0 gesetzt.
Das hab ich auskommentiert und neu kompiliert, sonst bringt das ja nichts.
Das System muss doch wissen, wenn ein PV Überschuss vorliegt.
Keine Ahnung warum das so gemacht wurde. -
@mickym ich habe es so verstanden das ich den Code aus dem Link unter Punkt 1 als subflow importieren muss.
28.3.2022, 23:47:46node: abcde12346788 N/abcde12345678/vebus/289/Energy/AcIn1ToInverter : msg.payload : string[29] "{"value": 28.635589599609375}"
-
@jacke Ich hab die Versionen mal bereinigt. HIer ist die aktuelle Version:
Das was Du importierst ist kein JSON String - entweder Du steckst das sowieso in eine String Feld dann brauchst Du die Anführungszeichen nicht - oder Du definierst einen String in Javascript - dann musst das aber in einfache Anführungszeichen stecken.
Importiere den Flow wie hier
und Du bekommst das Ergebnis:
-
Hallo,
ich verwende zwei nicht Victron MPPT Laderegler von Epever Xtra.
Die Laderegler lese ich aktuell über Solaranzeige aus und erhalte verschiedenen Werte über MQTT in ioBroker.
Hat jemand eine Idee wie ich diese Werte in VenosOS übertragen und darstellen könnte?
-
@fuci
Ich hab mir den Code im Projekt angepasst und neu kompiliert.
Meiner Meinung nach muss er natürlich auch negative Werte mitbekommen, damit er weiß mit welcher Leistung die Akkus geladen werden können. -
@e-i-k-e
Ich würde mir auf Github mal die ganzen Projekte ansehen.
Für Stromzähler gibt es eine MQTT-DBus Bridge.
Ich könnte mir gut vorstellen, dass es sowas auch für die Laderegler geben könnte.
Das war bisher allerdings nicht mein Thema, von daher kann ich dir nicht sagen ob es sowas wirklich schon gibt.
Such auf Github einfach nach Victron. Da gibts dann über 200 Projekte. -
@mlapp sagte in Victron Photovoltaik Anlage Daten für ioBroker auslesen!:
@e-i-k-e
Ich würde mir auf Github mal die ganzen Projekte ansehen.
Für Stromzähler gibt es eine MQTT-DBus Bridge.
Ich könnte mir gut vorstellen, dass es sowas auch für die Laderegler geben könnte.
Das war bisher allerdings nicht mein Thema, von daher kann ich dir nicht sagen ob es sowas wirklich schon gibt.
Such auf Github einfach nach Victron. Da gibts dann über 200 Projekte.Ich konnte leider nichts passendes finden. Wundert mich aber tatsächlich selber.
Soll hier jemand eine Idee oder Lösung dafür haben, wäre ich über einen Tipp sehr dankbar! -
Moin Zusammen!
Ich bin kurz davor mir ein Victron WR zu bestellen um ein lifepo4 Pack als PV Speicher zu betreiben. Den EM24 wollte ich mir sparen und hatte vor VenusOS als Docker auf meiner Disksstation zu installieren. Der Plan: Aktuell bekommt der ioBroker per MQTT die Verbrauchs/Erzeugungswerte meines SolarEdge WR bzw. Hausanschlusses von meiner OpenWB (diese bekommt sie vom SE Modbus Zähler). Nun möchte ich auch dem Victron WR diese Werte zur Verfügung stellen. Soviel ich verstanden habe, muss ich den Umweg über das Venus OS gehen.Mein Problem: Ich würde Venus OS gerne einen anderen Port (standard wohl 80) zuweisen. In welche Conf. Datei kann ich das anpassen? Kennt sich da jemand aus? Hintergrund: Ich möchte den Docker Container im gleichen Subnetz wie die Diskstation laufen lassen.
1000 DANK!!!!
-
@dan11hh Hab da selbst eine Frage. Welche Victron WR meinst du? Könnte man wenn man nur einen SmartSolar WR betreibt und sonst keine Victron Komponente diesen über VenusOS auslesen und Werte ändern?
Z.B.:
-
@lobomau sagte in Victron Photovoltaik Anlage Daten für ioBroker auslesen!:
Könnte man wenn man nur einen SmartSolar WR betreibt und sonst keine Victron Komponente diesen über VenusOS auslesen und Werte ändern?
zumindest auslesen müsste schon mit VE-direkt gehen
Ändern weiß ich nicht.
Habe (noch) keinen Smartsolar MPPT -
@lobomau
Das sollte gehen. Guck mal bei VanLife die machen das meine ich so.
Ich habe einen MulitPlus II 5000 bestellt (noch nicht da).
Bin jetzt übrigens weg von der gekapselten Docker Lösung und lasse Venus OS direkt auf eine RP4 laufen. Soweit funktioniert alles. -
@e-i-k-e und alle anderen die Geräte an das VenusOS anbinden wollen:
Jemand hat einen universellen Treiber für den DBus von Victron geschrieben. Damit kann man "beliebige" Geräte per MQTT am Victron System anmelden und anschließend mit Daten füttern.
Ich habe zB eine Tasmota Zwishcensteckdose als PV-Inverter konfiguriert, sende meine Homematic Temperatur und Luftfeuchtigkeit an das System, sogar ein Fake Grid-Meter ist im Einsatz.
Grüße
Sebastian
-
Möchtest Du ESS nutzen?
Mit diesem Treiber ist es möglich die Daten vom Hausanschluss und des WR in das Victron System zu bekommen.
Grüße
Sebastian
-
@stundenblume Solange der Treiber nicht die Daten meines SE WR per Modbus auslesen will. Das geht nämlich nicht, weil ich den Zugang schon für die OpenWB brauche, bei SE geht leider nur eine Verbindung. Ich guck mir das mal an...Danke.
-
@dan11hh
Kommst Du nicht von ioBroker an die Daten bei OpenWB? Dann kannst Du die Daten via ioBroker in das Victron System schreiben.