Solax PV Anlage über NTUITY in ioBroker einbinden

0
35
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.  

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here