Solax PV Anlage über NTUITY in ioBroker einbinden

0
164
Node-RED-NTUITY

Wie wir bereits beschrieben haben, sendet der Solax X3-Hybrid-G1/G2 Wechselrichter die Daten nur mehr an die Solax Cloud. Eine direkte Abfrage auf dem Wechselrichter über Webinterface oder Modbus ist scheinbar nicht mehr möglich.

Solax X3-Hybrid-G1/G2 Modbus

Lt offiziellen Solax Beschreibungen ist der Modbus am Wechselrichter nicht mehr aktiv. Jedoch ist das Modbus Port am Wechselrichter offen und es scheint auch ein Dienst zu laufen. Man bekommt jedoch keine Daten raus.
Warum das so ist, konnten wir noch nicht herausfinden. (Lösung bitte in die Kommentare)

NTUITY KJUUBE neoom BEAAM Solax Pylontech LiFePO4 Speicherpaket

Wir setzten das von der „neoom group“ vertriebene System ein. Im wesentlichen wird hier scheinbar nur das Gehäuse von neoom group gemacht und mit einem Solax X3-Hybrid Wechselrichter in Kombination mit Pylontech LiFePO4 Batteriespeicher verbaut.

Die Kommunikation läuft hier über den lokalen BEAAM (IoE Gateway) von NEOM. Es ist ein kleiner min-PC der die Daten sammelt und wiederum nur in die Cloud sendet.

Dieser mini-PC „neoom BEAAM“ bekommt aber scheinbar die Daten in Echtzeit vom Solax Wechselrichter. Jedoch kann man als Kunde weder auf den Solax Wechselrichter noch auf den Beaam zugreifen, sondern wieder nur über die NTUITY Cloud.

NTUITY Cloud API Daten abfragen

In der ntuity.io Cloud kann man einen API Schlüssel erstellen und dann alle ca. 5 Sekunden die Daten abfragen und in ioBroker einbinden um damit Geräte zu Steuern. Diese Abfrage funktioniert soweit recht gut.

NTUITY Cloud über Node-RED in ioBroker

Node-RED-NTUITY

Wir holen die Daten im Moment über Node-RED ab und übertragen diese in den ioBroker.

Hier das Node-RED Script zum Importieren.

Hier das Node-RED Script zum Importieren.

[
    {
        "id": "7a3aee77.49d76",
        "type": "tab",
        "label": "ntuity.io",
        "disabled": false,
        "info": ""
    },


    {
        "id": "d23d1d63.3f7278",
        "type": "inject",
        "z": "7a3aee77.49d76",
        "name": "15sec",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "15",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 100,
        "y": 40,
        "wires": [
            [
                "d252b7a6.cd5a9"
            ]
        ]
    },
    {
        "id": "368c364e.ca90ba",
        "type": "debug",
        "z": "7a3aee77.49d76",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 130,
        "y": 400,
        "wires": []
    },
    {
        "id": "d252b7a6.cd5a9",
        "type": "http request",
        "z": "7a3aee77.49d76",
        "name": "",
        "method": "GET",
        "ret": "obj",
        "paytoqs": "body",
        "url": "https://api.ntuity.io/v1/sites/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/energy-flow/latest",
        "tls": "debfeaca.8b004",
        "persist": false,
        "proxy": "",
        "authType": "bearer",
        "x": 130,
        "y": 120,
        "wires": [
            [
                "966c7a5f.dfa57",
                "51990825.075968",
                "10407e9c.3b6739",
                "1736b9cf.2c35b6",
                "233edbf3.829034",
                "335714bc.5b03bc",
                "8d07046.95419f8",
                "fd42c229.e48d8",
                "e0ac6964.cda9c"
            ]
        ]
    },
    {
        "id": "f349b842.f382",
        "type": "ioBroker out",
        "z": "7a3aee77.49d76",
        "name": "NTUITY",
        "topic": "NTUITY.power_consumption_calc",
        "ack": "true",
        "autoCreate": "true",
        "stateName": "",
        "role": "",
        "payloadType": "number",
        "readonly": "",
        "stateUnit": "W",
        "stateMin": "",
        "stateMax": "",
        "x": 660,
        "y": 180,
        "wires": []
    },
    {
        "id": "966c7a5f.dfa57",
        "type": "change",
        "z": "7a3aee77.49d76",
        "name": "Calculated power of all consumers",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.power_consumption_calc.value",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 420,
        "y": 120,
        "wires": [
            [
                "f349b842.f382",
                "3668f32d.8b015c"
            ]
        ]
    },
    {
        "id": "51990825.075968",
        "type": "change",
        "z": "7a3aee77.49d76",
        "name": "Von Zur Batterie",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.power_storage.value",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 360,
        "y": 180,
        "wires": [
            [
                "3f1adc06.827794"
            ]
        ]
    },
    {
        "id": "3f1adc06.827794",
        "type": "ioBroker out",
        "z": "7a3aee77.49d76",
        "name": "NTUITY",
        "topic": "NTUITY.Von-Zu-Batterie",
        "ack": "true",
        "autoCreate": "true",
        "stateName": "",
        "role": "",
        "payloadType": "number",
        "readonly": "",
        "stateUnit": "W",
        "stateMin": "",
        "stateMax": "",
        "x": 660,
        "y": 240,
        "wires": []
    },
    {
        "id": "3668f32d.8b015c",
        "type": "debug",
        "z": "7a3aee77.49d76",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 790,
        "y": 60,
        "wires": []
    },
    {
        "id": "233edbf3.829034",
        "type": "debug",
        "z": "7a3aee77.49d76",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 150,
        "y": 320,
        "wires": []
    },
    {
        "id": "10407e9c.3b6739",
        "type": "change",
        "z": "7a3aee77.49d76",
        "name": "power_production",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.power_production.value",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 370,
        "y": 260,
        "wires": [
            [
                "ddcdf51a.630ea8"
            ]
        ]
    },
    {
        "id": "ddcdf51a.630ea8",
        "type": "ioBroker out",
        "z": "7a3aee77.49d76",
        "name": "NTUITY",
        "topic": "NTUITY.Power of all producers",
        "ack": "true",
        "autoCreate": "true",
        "stateName": "",
        "role": "",
        "payloadType": "number",
        "readonly": "",
        "stateUnit": "W",
        "stateMin": "",
        "stateMax": "",
        "x": 660,
        "y": 300,
        "wires": []
    },
    {
        "id": "1736b9cf.2c35b6",
        "type": "change",
        "z": "7a3aee77.49d76",
        "name": "Vom Zum Netz",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.power_grid.value",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 360,
        "y": 320,
        "wires": [
            [
                "a48a4a29.467cb"
            ]
        ]
    },
    {
        "id": "a48a4a29.467cb",
        "type": "ioBroker out",
        "z": "7a3aee77.49d76",
        "name": "NTUITY",
        "topic": " NTUITY.Vom Zum Netz",
        "ack": "true",
        "autoCreate": "true",
        "stateName": "",
        "role": "",
        "payloadType": "number",
        "readonly": "",
        "stateUnit": "W",
        "stateMin": "",
        "stateMax": "",
        "x": 660,
        "y": 360,
        "wires": []
    },
    {
        "id": "335714bc.5b03bc",
        "type": "change",
        "z": "7a3aee77.49d76",
        "name": "Stromverbrauch gesamt",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.power_consumption_calc.value",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 400,
        "y": 400,
        "wires": [
            [
                "55595b8.af2e7a4"
            ]
        ]
    },
    {
        "id": "55595b8.af2e7a4",
        "type": "ioBroker out",
        "z": "7a3aee77.49d76",
        "name": "NTUITY",
        "topic": " NTUITY.Stromverbrauch gesamt",
        "ack": "true",
        "autoCreate": "true",
        "stateName": "",
        "role": "",
        "payloadType": "number",
        "readonly": "",
        "stateUnit": "W",
        "stateMin": "",
        "stateMax": "",
        "x": 660,
        "y": 420,
        "wires": []
    },
    {
        "id": "8d07046.95419f8",
        "type": "change",
        "z": "7a3aee77.49d76",
        "name": "Stromverbrauch Ladestationen",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.power_charging_stations.value",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 410,
        "y": 480,
        "wires": [
            [
                "6eb9f20a.4f94ec"
            ]
        ]
    },
    {
        "id": "6eb9f20a.4f94ec",
        "type": "ioBroker out",
        "z": "7a3aee77.49d76",
        "name": "NTUITY",
        "topic": " NTUITY.Stromverbrauch Ladestationen",
        "ack": "true",
        "autoCreate": "true",
        "stateName": "",
        "role": "",
        "payloadType": "number",
        "readonly": "",
        "stateUnit": "W",
        "stateMin": "",
        "stateMax": "",
        "x": 660,
        "y": 480,
        "wires": []
    },
    {
        "id": "fd42c229.e48d8",
        "type": "change",
        "z": "7a3aee77.49d76",
        "name": "Power of all appliances",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.power_appliances.value",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 370,
        "y": 540,
        "wires": [
            [
                "b0cda2cb.0decc8"
            ]
        ]
    },
    {
        "id": "b0cda2cb.0decc8",
        "type": "ioBroker out",
        "z": "7a3aee77.49d76",
        "name": "NTUITY",
        "topic": " NTUITY.Power of all appliances",
        "ack": "true",
        "autoCreate": "true",
        "stateName": "",
        "role": "",
        "payloadType": "number",
        "readonly": "",
        "stateUnit": "W",
        "stateMin": "",
        "stateMax": "",
        "x": 660,
        "y": 540,
        "wires": []
    },
    {
        "id": "e0ac6964.cda9c",
        "type": "change",
        "z": "7a3aee77.49d76",
        "name": "Autarkie",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.self_sufficiency.value",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 320,
        "y": 600,
        "wires": [
            [
                "bf7598c7.db0bc8"
            ]
        ]
    },
    {
        "id": "bf7598c7.db0bc8",
        "type": "ioBroker out",
        "z": "7a3aee77.49d76",
        "name": "NTUITY",
        "topic": " NTUITY.Autarkie",
        "ack": "true",
        "autoCreate": "true",
        "stateName": "",
        "role": "",
        "payloadType": "number",
        "readonly": "",
        "stateUnit": "%",
        "stateMin": "",
        "stateMax": "",
        "x": 660,
        "y": 600,
        "wires": []
    },
    {
        "id": "420bc7df272a2640",
        "type": "modbustcp-server",
        "name": "Solax Inverter",
        "host": "192.168.210.118",
        "port": "502",
        "unit_id": "1",
        "reconnecttimeout": ""
    },
    {
        "id": "debfeaca.8b004",
        "type": "tls-config",
        "name": "",
        "cert": "",
        "key": "",
        "ca": "",
        "certname": "",
        "keyname": "",
        "caname": "",
        "servername": "",
        "verifyservercert": true
    }
]

Hier muss man den Schlüssel und Standort eintragen

 

Status April 2022 NTUITY KJUUBE neoom BEAAM Solax

Die Neoom Group bzw der Support von NTUITY hat es bis jetzt noch nicht geschafft alles zu vernetzten und richtigen Daten zu liefern. So können sie die vorhandenen Wechselrichter von Fronius und Kostal nicht anbinden. Hier haben wir lokal die Abhilfe über ioBroker.

Der Support gibt dem Kunden keinen Zugriff auf die lokalen Daten. Was genau der Beaam macht, ist auch noch unklar. Es könnte sein, dass der Support über den Beaam Zugriff auf das Kundennetz erhält. Das Ganze hat einen bitteren Beigeschmack. Nur der Hersteller hat Kontrolle und nicht der Kunde.  

Solax Wechselrichter und die Anbindung über eine RS485 Schnittstelle in Node-RED

Die Nutzung von Solarenergie zur Stromerzeugung hat in den letzten Jahren rapide zugenommen, und Wechselrichter spielen eine entscheidende Rolle in Photovoltaik (PV)-Anlagen. Einer der führenden Hersteller von Wechselrichtern ist Solax Power, und ihre Produkte sind für ihre Effizienz und Zuverlässigkeit bekannt. Dieser Artikel beleuchtet den Solax Wechselrichter und die Integration in Node-RED über eine RS485 Schnittstelle.

Solax Wechselrichter: Effizienz und Qualität

Solax Wechselrichter sind bekannt für ihre hohe Effizienz und Qualität. Sie spielen eine zentrale Rolle in PV-Anlagen, da sie den von den Solarmodulen erzeugten Gleichstrom in nutzbaren Wechselstrom umwandeln. Die Wechselrichter von Solax sind darauf ausgelegt, den maximal erzeugten Strom zu nutzen und gleichzeitig den Energieverlust während des Umwandlungsprozesses zu minimieren.

RS485 Schnittstelle: Die Verbindung zur Überwachung und Steuerung

Die RS485 Schnittstelle ist ein Kommunikationsprotokoll, das häufig in Wechselrichtern zur Datenübertragung und -kommunikation verwendet wird. Sie ermöglicht die Verbindung des Wechselrichters mit externen Geräten wie Überwachungssystemen und Steuerungseinheiten. Die RS485 Schnittstelle bietet eine zuverlässige und stabile Kommunikation über längere Entfernungen und ist daher ideal für die Integration von PV-Anlagen in Netzwerke und Automatisierungssysteme.

Node-RED: Die Integrationsplattform

Node-RED ist eine Open-Source-Plattform zur Integration von IoT-Geräten und Datenströmen. Sie bietet eine visuelle Programmieroberfläche, die es Benutzern ermöglicht, Flows zu erstellen, die verschiedene Geräte und Dienste miteinander verbinden. Mit Node-RED können Sie Daten von verschiedenen Quellen sammeln, verarbeiten und steuern.

Die Integration von Solax Wechselrichtern in Node-RED

Die Integration eines Solax Wechselrichters in Node-RED über die RS485 Schnittstelle eröffnet viele Möglichkeiten. Hier sind einige der Vorteile:

  1. Echtzeitüberwachung: Node-RED ermöglicht die Echtzeitüberwachung des Betriebs des Solax Wechselrichters. Sie können Leistungsdaten, Spannungswerte und andere Parameter in Echtzeit abrufen und anzeigen.

  2. Fernsteuerung: Mit Node-RED können Sie den Solax Wechselrichter fernsteuern. Sie können den Betriebsmodus ändern, den Wechselrichter ein- oder ausschalten und andere Einstellungen vornehmen.

  3. Datenanalyse: Node-RED ermöglicht die Erfassung und Analyse von Leistungsdaten im Laufe der Zeit. Dies kann dazu beitragen, den Betrieb der PV-Anlage zu optimieren und die Energieeffizienz zu steigern.

  4. Benachrichtigungen und Alarme: Sie können Node-RED so konfigurieren, dass es Benachrichtigungen und Alarme sendet, wenn bestimmte Bedingungen oder Fehler auftreten. Dies ermöglicht es Ihnen, schnell auf Probleme zu reagieren und Ausfallzeiten zu minimieren.

  5. Integration in Automatisierungssysteme: Node-RED kann in Automatisierungssysteme integriert werden, um den Betrieb der PV-Anlage mit anderen Geräten und Systemen zu koordinieren.

Die Integration von Solax Wechselrichtern in Node-RED über eine RS485 Schnittstelle erweitert die Möglichkeiten der Steuerung, Überwachung und Optimierung von PV-Anlagen erheblich. Dies ermöglicht es Benutzern, ihre PV-Anlagen effizienter zu betreiben und die erzeugte Solarenergie optimal zu nutzen.

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here