[ { "id": "34d862d7e3e33714", "type": "tab", "label": "Huawei schreiben", "disabled": false, "info": "", "env": [] }, { "id": "9dc84cc01681a6a9", "type": "modbus-write", "z": "34d862d7e3e33714", "name": "47075 (Max Charge Power)", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "unitid": "1", "dataType": "MHoldingRegisters", "adr": "47075", "quantity": "2", "server": "70220ecd.1ca1e", "emptyMsgOnFail": false, "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", "x": 920, "y": 380, "wires": [ [], [] ] }, { "id": "910389e948761422", "type": "function", "z": "34d862d7e3e33714", "name": "", "func": "var fc=16;\nvar sa=50;\nvar addresses=2;\nvar buf=Buffer.alloc(4);//create buffer\nbuf.writeInt32BE(msg.payload);\nvar values=[(buf[0]*256+buf[1]),(buf[2]*256)+buf[3]]\nmsg.slave_ip=\"192.168.1.76\";\nmsg.payload=values;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 600, "y": 380, "wires": [ [ "9dc84cc01681a6a9" ] ] }, { "id": "3ff397b4818a42ef", "type": "ioBroker in", "z": "34d862d7e3e33714", "name": "Battery_Max_Charge_Power_SET", "topic": "0_userdata.0.Photovoltaik.Huawei.Change.Battery.Battery_Max_Charge_Power_SET", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 340, "y": 380, "wires": [ [ "910389e948761422" ] ] }, { "id": "5f837fa9a14e004d", "type": "modbus-write", "z": "34d862d7e3e33714", "name": "47077 (Max Discharge Power)", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "unitid": "1", "dataType": "MHoldingRegisters", "adr": "47077", "quantity": "2", "server": "70220ecd.1ca1e", "emptyMsgOnFail": false, "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", "x": 930, "y": 460, "wires": [ [], [] ] }, { "id": "8ed321ecfddbc51b", "type": "function", "z": "34d862d7e3e33714", "name": "", "func": "var fc=16;\nvar sa=50;\nvar addresses=2;\nvar buf=Buffer.alloc(4);//create buffer\nbuf.writeInt32BE(msg.payload);\nvar values=[(buf[0]*256+buf[1]),(buf[2]*256)+buf[3]]\nmsg.slave_ip=\"192.168.1.76\";\nmsg.payload=values;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 600, "y": 460, "wires": [ [ "5f837fa9a14e004d" ] ] }, { "id": "1ded1aed72e5c8d6", "type": "ioBroker in", "z": "34d862d7e3e33714", "name": "Battery_Max_Discharge_Power_SET", "topic": "0_userdata.0.Photovoltaik.Huawei.Change.Battery.Battery_Max_Discharge_Power_SET", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 350, "y": 460, "wires": [ [ "8ed321ecfddbc51b" ] ] }, { "id": "b6f8dd12fbcbc8a8", "type": "ioBroker in", "z": "34d862d7e3e33714", "name": "Battery_AC_Load_On_OFF", "topic": "0_userdata.0.Photovoltaik.Huawei.Change.Battery.Battery_AC_Load_On_OFF", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 320, "y": 540, "wires": [ [ "33a5acc15e0407e9" ] ] }, { "id": "33a5acc15e0407e9", "type": "function", "z": "34d862d7e3e33714", "name": "", "func": "var sa = 50; // Startadresse des Registers\nvar address = 1; // Adressen des Registers\nvar value = msg.payload; // Wert, den du schreiben möchtest (16-Bit)\n\nvar buf = Buffer.alloc(2);\nbuf.writeUInt16BE(value); // Schreibe den 16-Bit Wert in den Buffer\n\nmsg.payload = {\n 'fc': 6, // Funktion 6 für das Schreiben eines einzelnen Registers\n 'unitid': 1, // Modbus-Geräte-ID\n 'value': buf.readUInt16BE(0) // Lese den Wert aus dem Buffer\n};\n\nreturn msg;\n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 620, "y": 540, "wires": [ [ "a6335cf3bdd49516" ] ] }, { "id": "a6335cf3bdd49516", "type": "modbus-write", "z": "34d862d7e3e33714", "name": "47087 (AC Load On/Off)", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "unitid": "1", "dataType": "HoldingRegister", "adr": "47087", "quantity": "1", "server": "70220ecd.1ca1e", "emptyMsgOnFail": false, "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", "x": 930, "y": 540, "wires": [ [], [] ] }, { "id": "b880571203ec3425", "type": "ioBroker in", "z": "34d862d7e3e33714", "name": "Workingmode_Change_2 max self_ 5TOU", "topic": "0_userdata.0.Photovoltaik.Huawei.Change.Battery.Mode_2Self_5TOU", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 360, "y": 600, "wires": [ [ "1865aea33f90e450" ] ] }, { "id": "591cc9384b97cddf", "type": "modbus-write", "z": "34d862d7e3e33714", "name": "47086 (Workingmode)", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "unitid": "1", "dataType": "HoldingRegister", "adr": "47086", "quantity": "1", "server": "70220ecd.1ca1e", "emptyMsgOnFail": false, "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", "x": 920, "y": 600, "wires": [ [], [] ] }, { "id": "1865aea33f90e450", "type": "function", "z": "34d862d7e3e33714", "name": "", "func": "var sa = 50; // Startadresse des Registers\nvar address = 1; // Adressen des Registers\nvar value = msg.payload; // Wert, den du schreiben möchtest (16-Bit)\n\nvar buf = Buffer.alloc(2);\nbuf.writeUInt16BE(value); // Schreibe den 16-Bit Wert in den Buffer\n\nmsg.payload = {\n 'fc': 6, // Funktion 6 für das Schreiben eines einzelnen Registers\n 'unitid': 1, // Modbus-Geräte-ID\n 'value': buf.readUInt16BE(0) // Lese den Wert aus dem Buffer\n};\n\nreturn msg;\n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 620, "y": 600, "wires": [ [ "591cc9384b97cddf" ] ] }, { "id": "dddd9d6a489267e9", "type": "modbus-getter", "z": "34d862d7e3e33714", "name": "47075-47087", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "unitid": "1", "dataType": "HoldingRegister", "adr": "47075", "quantity": "26", "server": "70220ecd.1ca1e", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", "x": 230, "y": 240, "wires": [ [ "31c1ce86aa6b903b" ], [] ] }, { "id": "31c1ce86aa6b903b", "type": "buffer-parser", "z": "34d862d7e3e33714", "name": "Schreibbar", "data": "payload", "dataType": "msg", "specification": "spec", "specificationType": "ui", "items": [ { "type": "uint32be", "name": "47075 - Maximum Charging [W]", "offset": 0, "length": 1, "offsetbit": 0, "scale": "1", "mask": "" }, { "type": "uint32be", "name": "47077 - Maximum Discharge [W]", "offset": 4, "length": 1, "offsetbit": 0, "scale": "1", "mask": "" }, { "type": "uint16be", "name": "47087 - Charge from Grid", "offset": 24, "length": 1, "offsetbit": 0, "scale": "1", "mask": "" }, { "type": "uint16be", "name": "47086 - Mode", "offset": 22, "length": 1, "offsetbit": 0, "scale": "1", "mask": "" } ], "swap1": "", "swap2": "", "swap3": "", "swap1Type": "swap", "swap2Type": "swap", "swap3Type": "swap", "msgProperty": "payload", "msgPropertyType": "str", "resultType": "value", "resultTypeType": "return", "multipleResult": true, "fanOutMultipleResult": true, "setTopic": true, "outputs": 4, "x": 490, "y": 240, "wires": [ [ "3b2523c8f2dcc8cd" ], [ "f11645a6490683bd" ], [ "1ec9e7ba8317947e" ], [ "72eb74b73b3f1be5" ] ] }, { "id": "3b2523c8f2dcc8cd", "type": "ioBroker out", "z": "34d862d7e3e33714", "name": "47075 - Battery_Max_Charge_Power", "topic": "0_userdata.0.Photovoltaik.Huawei.Change.Battery.Battery_Max_Charge_Power", "ack": "true", "autoCreate": "true", "stateName": "Huawei", "role": "Power", "payloadType": "number", "readonly": "true", "stateUnit": "W", "stateMin": "", "stateMax": "", "x": 1010, "y": 80, "wires": [] }, { "id": "f11645a6490683bd", "type": "ioBroker out", "z": "34d862d7e3e33714", "name": "47077 - Battery_Max_Discharge_Power", "topic": "0_userdata.0.Photovoltaik.Huawei.Change.Battery.Battery_Max_Discharge_Power", "ack": "true", "autoCreate": "true", "stateName": "Huawei", "role": "Power", "payloadType": "number", "readonly": "true", "stateUnit": "W", "stateMin": "", "stateMax": "", "x": 1020, "y": 140, "wires": [] }, { "id": "1ec9e7ba8317947e", "type": "ioBroker out", "z": "34d862d7e3e33714", "name": "47087 - Battery_AC_Load", "topic": "0_userdata.0.Photovoltaik.Huawei.Change.Battery.Battery_AC_Load", "ack": "true", "autoCreate": "true", "stateName": "Huawei", "role": "Power", "payloadType": "number", "readonly": "true", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 970, "y": 200, "wires": [] }, { "id": "f4537ecccd0ee522", "type": "ioBroker out", "z": "34d862d7e3e33714", "name": "47086 - Working mode [N/A]", "topic": "0_userdata.0.Photovoltaik.Huawei.Change.Battery.Working_mode", "ack": "true", "autoCreate": "true", "stateName": "Working_mode", "role": "Power", "payloadType": "string", "readonly": "false", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 980, "y": 260, "wires": [] }, { "id": "72eb74b73b3f1be5", "type": "function", "z": "34d862d7e3e33714", "name": "Working mode Text", "func": "\nswitch (parseInt(msg.payload)) {\n case 0:\n msg.payload = \"0 Adaptive(Self Consumtion)\";\n break;\n case 1:\n msg.payload = \"1 Fix\";\n break;\n case 2:\n msg.payload = \"2 Maximise self consumtion\";\n break;\n case 3:\n msg.payload = \"3 Time of Use (LG)\";\n break;\n case 4:\n msg.payload = \"4 Fully fed to grid\";\n break; \n case 5:\n msg.payload = \"5 Time of Use (LUNA2000)\";\n break; \n \n default:\n msg.payload = \"Unknown state\";\n}\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 730, "y": 260, "wires": [ [ "f4537ecccd0ee522" ] ] }, { "id": "70220ecd.1ca1e", "type": "modbus-client", "name": "Huawei-Luna", "clienttype": "tcp", "bufferCommands": true, "stateLogEnabled": true, "queueLogEnabled": false, "failureLogEnabled": true, "tcpHost": "192.168.178.48", "tcpPort": "502", "tcpType": "DEFAULT", "serialPort": "/dev/ttyUSB", "serialType": "RTU-BUFFERD", "serialBaudrate": "9600", "serialDatabits": "8", "serialStopbits": "1", "serialParity": "none", "serialConnectionDelay": "100", "serialAsciiResponseStartDelimiter": "", "unit_id": 1, "commandDelay": 1, "clientTimeout": 5000, "reconnectOnTimeout": true, "reconnectTimeout": 2000, "parallelUnitIdsAllowed": true } ]