PV-Anlage + Varta Pulse 6 in Homee (Homee, IoBroker & Node-Red)

Hallo zusammen,

ich habe folgendes vor:

ich besitze seit einigen Tage eine PV-Anlage mit Batterie. Nun soll diese in das smarte System integriert werden, um Ertrag, aktuelle Leistung & Ladezustand Batterie nutzen zu können.
Später sollen Verbraucher geschaltet werden… ( z.B. Siemens Home Connect Geräte oder auch Steckdosen über mein Homee)

Zur PV-Anlage:

  • Wechselrichter Fronius Symo 7.0-3-M
  • Fronius Smart Meter 63A
  • Batterie Varta Pulse 6

Zusätzlich befindet sich in meinem Netzwerk ein Raspberry PI 4 mit IoBroker und installierten Froniusadapter (Auslesen der Daten) und Node-Red.

Ein bisschen konnte ich mich schon einlesen und ausprobieren, großen Dank geht da an @Wildsparrow mit seiner super Anleitung/Berichten zu seinen Projekten…

Leider fehlt mir allgemein mehr Wissen, um die Daten vom Froniusadapter über IoBroker zu meinem Homee bereitgestellt zu bekommen. Da benötige ich eure Hilfe!

Danke im voraus…

1 „Gefällt mir“

Servus,

ich bin selber sehr in SMA eingedacht, aber mit Fronius müsste das auch gehen. Was man alles mit vhih machen kann, ist grandios:

Ich arbeite nur über NodeRed, aber Werte von ioBroker bekommt man sehr einfach in NodeRed.
Mehr entscheidend ist, was der Fronius Adapter für Werte liefert.

Fragt er den WR ab? Oder den Smartmeter? Sind die Werte der Batterie abrufbar?

Man braucht nicht alle Werte, wenn einer fehlt, kann man diesen evt. berechnen.

PV-Produktion, Einspeisung, Netzbezug und Hausverbrauch stehen dabei in festem Zusammenhang.

Vielleicht kannst du uns ein paar Infos zum Fronius Adapter geben.

VG
Michael

1 „Gefällt mir“

Folgende Werte kann ich momentan in IOBroker sehen:

Wie ich an die Daten der Varta Pluse 6 Batterie dran komme, ist mir noch nicht schlüssig.
Laut Fronius kann ich erst Ende des Jahres die Varta Batterie in das Solar.Web integrieren.

Die Daten kommen vom Fronius Datamanager 2.0. Der Wechselrichter ist mit dem Smartmeter verbunden. Der Datamanager fasst die Daten dann zusammen.

Werte sehen schon mal gut aus… wenn ich das richtig sehe, gibts schon mal die Basiswerte.
Batterie würde theoretisch gehen, weiß aber nicht, ob die normale Pulse unterstützt würde. Siehe Varta PDF, nur die Pulse Neo kann Modbus/Sunspec.

https://www.varta-storage.com/fileadmin/varta_storage/publications/Datenblatt_VARTA_pulse_V14_01.pdf

Deine Visualisierung als „Homeeenergiemanager“ sieht ja schon super aus. Gibt es dazu eine Anleitung? Vielleicht schaffe ich dies genauso mit dem Fronius Daten…

Ok,
als erstes müssen deine Daten in NodeRed ankommen.
Kenne jetzt dein Setting nicht, was aber auf jeden Fall geht, dies über MQTT zu tun. Dazu musst du MQTT/Mosquito auf dem Pi installieren (google mal danach, das ist relativ schnell und simple gemacht).

Danach musst du in ioBroker den MQTT Adapter installieren und dort dann die IP des Pi und Port 1883 (Standard) eintragen. Wenn der Adapter läuft, kann du beliebige Werte per MQTT publishen und die dann auch in NodeRed weiterverwenden.

Anbei ein paar Screenshots:

Im letzten Screenshot ist das Topic definiert, mit dem der Wert gepublished wird. Sagen wir dort würde „Erzeugung“ ohne die „“ stehen.
Dann kannst du mit folgendem Flow in NodeRed testen, ob die Werte ankommen:

[{"id":"31287bba.21db7c","type":"mqtt in","z":"c9962df.09d63d","name":"","topic":"Erzeugung","qos":"2","datatype":"auto","broker":"9ec0115c.8f7488","x":110,"y":3340,"wires":[["8019c68e.a4927"]]},{"id":"8019c68e.a4927","type":"debug","z":"c9962df.09d63d","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":260,"y":3340,"wires":[]},{"id":"9ec0115c.8f7488","type":"mqtt-broker","z":"","name":"","broker":"192.168.1.27","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

Wenn die Werte ankommen, können wir weitermachen…

Ich habe hier alles zu meinem Projekt zusammengestellt:

Vom Prinzip kann vieles davon übernommen werden… ich kann das Ganze dann schon mal etwas anpassen, dass du deine MQTT-Werte im Flow weiterverarbeiten kannst.

Du musst auch zuerst einen virtuellen homee einrichten:

Grundlagen findest du auch im YouTube Channel von @Micha , der dort viele Basics zu NodeRed und vhih erklärt hat:

1 „Gefällt mir“

Hallo,

ich habe auch einen Fronius-Wechselrichter. Allerdings ohne Batterie.
Habe mir den Flow für den E-Manager selbst gebastelt. Vielleicht habe ich da manches nicht optimal gelöst (war das erste was ich in ioBroker/Node-Red gemacht habe) aber er funktioniert einwandfrei.

Die Change-Nodes habe ich eingebaut um ein paar Werte zu korrigieren.

  • Der Verbrauch kommt im Fronius-Adapter negativ an.
  • Im Fronius-Adapter gibt es den Wert „Grid“ den ich aufgeteilt und umgerechnet habe (Negativ=Einspeisung, Positiv=Bezug)

Wenn du davon was haben willst, sag Bescheid.

2 „Gefällt mir“

Hi,
also die Werte kommen doch schon durch den Fronius Adapter an und ich kann Sie in Node-Red verwenden. (=siehe Bild)
Wofür benötige ich dann noch MQTT ???

Siehe Bild, ich habe mal als Beispiel mein aktuellen PV „Ertrag“ (2 Watt) zum testen ausprobiert

Den Virtuellen Homee hab ich angelegt, aber so richtig steige ich da noch nicht durch. Ich werde den gleich nochmal neu machen…

Hey Vino,
du nimmst die Werte auch direkt vom Froniusadapter oder?

Das sieht schon mal gut aus…

Wenn du NodeRed integriert in ioBroker nutzt, sind die nodes ioBroker IN/OUT vorhanden, dann brauchst du kein MQTT.

2 Punkte sind jetzt noch wichtig:

  • Kannst du mal eine Debüt Ausgabe von einem ioBroker IN posten, damit ich sehe in welchem Format die Werte ankommen.

  • Welche Werte genau kannst du jetzt abgreifen? Dazu würde ich mal tagsüber in ioBroker reinschauen, wenn du Produktion und Einspeisung hast und das mit deinem Smartester abgleichen.

Nach kann ich dir im Flow mal was zusammenstellen.

Alles klar.
mache ich morgen bei Produktion👍
Danke euch erstmal

Du schreibst: „Kannst du mal eine Debüt Ausgabe von einem ioBroker IN posten, damit ich sehe in welchem Format die Werte ankommen“

->Wo finde ich das? Weiß gerade nicht genau was du meinst…

Das sind die Daten, die vom Fronius rüber kommen:

Nicht in ioBroker…
Debug Ausgabe in NodeRed (das der grüne Node an deinem ioBroker IN). Wenn der Knopf an ist, dann gibt es einen Ausgabe rechts in der Seitenleiste (unter dem Käfer-Reiter).

Mit den Werten komme ich noch nicht klar…

P_PV ist eindeutig der PV-Produktion (Wert = 0 oder positiver Wert)
P_Grid könnte dann Netzbezug sein (positiver Wert = Bezug, negativer Wert Einspeisung)
P_Load könnte der Hausverbrauch sein (müsste immer negativ sein)

Mal checken, ob das immer passt…
Dann haben wir die 4 Werte und du kannst das ganze schon mal ohne Batterie aufsetzen.

Auch den Wert P_Akku mal beobachten, ob der sich ändert bei Ladung/Entladung…

Ladezustand kann ich nichts ersehen…

Hi,

Ja, ich nehme die Werte direkt aus dem Fronius-Adapter.

Wenn du die „schnelle“ Variante willst, hier ist mein Flow:

[
    {
        "id": "31a2ac6f.c44c54",
        "type": "tab",
        "label": "PV",
        "disabled": false,
        "info": ""
    },
    {
        "id": "ed8d772e.3f06d",
        "type": "homeeDevice",
        "z": "31a2ac6f.c44c54",
        "virtual-homee": "",
        "name": "vPhotovoltaik",
        "nodeId": "2",
        "profile": "38",
        "icon": "default",
        "attributes": [
            {
                "id": 200,
                "node_id": 2,
                "instance": 0,
                "minimum": -50000,
                "maximum": 50000,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "W",
                "step_value": 100,
                "editable": 0,
                "type": 267,
                "state": 1,
                "last_changed": 1572785482,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 4,
                "data": ""
            },
            {
                "id": 201,
                "node_id": 2,
                "instance": 0,
                "minimum": -50000,
                "maximum": 50000,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "W",
                "step_value": 100,
                "editable": 0,
                "type": 266,
                "state": 1,
                "last_changed": 1572785663,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 4,
                "data": ""
            },
            {
                "id": 202,
                "node_id": 2,
                "instance": 0,
                "minimum": 0,
                "maximum": 50000,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "W",
                "step_value": 100,
                "editable": 0,
                "type": 264,
                "state": 1,
                "last_changed": 1572785482,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 4,
                "data": ""
            },
            {
                "id": 203,
                "node_id": 2,
                "instance": 0,
                "minimum": 0,
                "maximum": 50000,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "unit": "W",
                "step_value": 100,
                "editable": 0,
                "type": 265,
                "state": 1,
                "last_changed": 1572785482,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 4,
                "data": ""
            }
        ],
        "x": 660,
        "y": 300,
        "wires": [
            []
        ]
    },
    {
        "id": "2e8abea2.40a9f2",
        "type": "ioBroker in",
        "z": "31a2ac6f.c44c54",
        "name": "Verbrauch",
        "topic": "fronius.0.powerflow.P_Load",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "fireOnStart": "false",
        "x": 80,
        "y": 200,
        "wires": [
            [
                "a3457038.994038"
            ]
        ]
    },
    {
        "id": "cd8fe927.d5c39",
        "type": "template",
        "z": "31a2ac6f.c44c54",
        "name": "200 AV",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":200 ,\"value\":{{payload}}}}",
        "output": "json",
        "x": 440,
        "y": 200,
        "wires": [
            [
                "ed8d772e.3f06d"
            ]
        ]
    },
    {
        "id": "a3457038.994038",
        "type": "change",
        "z": "31a2ac6f.c44c54",
        "name": "200",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "$abs($number(payload))",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 270,
        "y": 200,
        "wires": [
            [
                "cd8fe927.d5c39"
            ]
        ]
    },
    {
        "id": "f32be351.bec39",
        "type": "ioBroker in",
        "z": "31a2ac6f.c44c54",
        "name": "Erzeugung",
        "topic": "fronius.0.powerflow.P_PV",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "fireOnStart": "false",
        "x": 80,
        "y": 280,
        "wires": [
            [
                "4f248f7d.cf4d58"
            ]
        ]
    },
    {
        "id": "4f248f7d.cf4d58",
        "type": "template",
        "z": "31a2ac6f.c44c54",
        "name": "201 AE",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":201 ,\"value\":{{payload}}}}",
        "output": "json",
        "x": 440,
        "y": 280,
        "wires": [
            [
                "ed8d772e.3f06d"
            ]
        ]
    },
    {
        "id": "c6fb0840.3cf51",
        "type": "ioBroker in",
        "z": "31a2ac6f.c44c54",
        "name": "Bezug",
        "topic": "fronius.0.powerflow.P_Grid",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "fireOnStart": "false",
        "x": 70,
        "y": 360,
        "wires": [
            [
                "b957224c.71887",
                "13371964.a0c77f"
            ]
        ]
    },
    {
        "id": "92260d16.e09cf8",
        "type": "template",
        "z": "31a2ac6f.c44c54",
        "name": "202 AB",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":202 ,\"value\":{{payload}}}}",
        "output": "json",
        "x": 440,
        "y": 360,
        "wires": [
            [
                "ed8d772e.3f06d"
            ]
        ]
    },
    {
        "id": "13371964.a0c77f",
        "type": "change",
        "z": "31a2ac6f.c44c54",
        "name": "203",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "$max([$number(payload)*-1,0])",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 270,
        "y": 440,
        "wires": [
            [
                "37375787.512098"
            ]
        ]
    },
    {
        "id": "37375787.512098",
        "type": "template",
        "z": "31a2ac6f.c44c54",
        "name": "203 AI",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":203 ,\"value\":{{payload}}}}",
        "output": "json",
        "x": 430,
        "y": 440,
        "wires": [
            [
                "ed8d772e.3f06d"
            ]
        ]
    },
    {
        "id": "b957224c.71887",
        "type": "change",
        "z": "31a2ac6f.c44c54",
        "name": "202",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "$max([$number(payload),0])",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 270,
        "y": 360,
        "wires": [
            [
                "92260d16.e09cf8"
            ]
        ]
    }
]

So richtig fit bin ich damit auch noch nicht, aber das müsstest du in Node-Red importieren können. Dann vielleicht noch auf deinen virtuellen homee umstellen und es sollte laufen.
Ich habe wie gesagt keine Batterie. darum hab ich nur 4 Werte, die ich in den virtuellen homee übergebe.
Die Batterie-Sachen musst du dir selber basteln.

Gruß
Stefan

Guten Tag zusammen,

mit großer Hilfe von @Vino hab ich nun erstmal die Grundlage fertig bekommen und erfolgreich auf Funktion geprüft.

siehe Bilder:

jetzt Fehlt nur noch die Varta Batterie. Wie bekomme ich die Daten in ioBroker? -Mit Hilfe von Mqtt?!

Habt ihr da noch eine Erklärung?! -oder Vorschläge?!

-einen schönen 3. Advent euch allen und bleibt Gesund!

Hallo,

ich hab ja wie gesagt keine Batterie, aber wie wird die Batterieladung denn gesteuert?
Ich hätte jetzt gedacht, dass der Wechselrichter auch die Steuerung der Batterie übernimmt.
Irgendwie müssen der Wechselrichter und die Batterie voneinander wissen, sonst würde die Batterie ja mit Netzstrom laden…
Wenn dem so ist, müssten die Daten der Batterie ja auch im Wechselrichter (und damit im Fronius-Adapter) mit drin sein… Wenn nicht, kann ich leider nicht helfen.

Gruß
Stefan

Ich klemm mich mal hier mit ran.

Ich bin gerade auch dabei meine Fronius PV im Home zu bekommen.

Prinzipiell hab ich die ersten Werte auch schon da, aber ich hätte das auch gerne mit dem Energiemanager-Plugin…
Wie kriege ich das hin?

so long