Omnik-solar
Omnik-solar provides a custom node that can listen to incoming messages from an Omnik converter. The flow opens TCP port 8899. Your Omnik converter needs to be configured to send statistics to this address.
Inverter configuration
- Log on to Omnik inverter
- Open menu Advanced | Remote Server
- On the Server B row:
- Set IP address to the (local) IP address of your server.
- Set Domain name to the domain name of your server (or leave blank).
- Set Port to 8899.
- Set Connection to TCP.
- Click Save
- Open port 8899 in your firewall
Output
Data from the Omnik inverter is parsed and available as below properties of the msg-object.
Note, the inverter only connects and outputs data when enough sunlight is received for the internals to be awake. No data is returned at night.
Production
msg.omnik.currentProduction
- Current production in Wmsg.omnik.productionToday
- Today's production in kWhmsg.omnik.productionTotal
- Total production in kWh
Operational
msg.omnik.temperature
- Current temperature in Cmsg.omnik.hoursActive
- Total hours running
Power
msg.omnik.pvVoltageDc1
msg.omnik.pvVoltageDc2
msg.omnik.pvVoltageDc3
msg.omnik.ivAmpsDc1
msg.omnik.ivAmpsDc2
msg.omnik.ivAmpsDc3
msg.omnik.pvVoltageAc1
msg.omnik.pvVoltageAc2
msg.omnik.pvVoltageAc3
msg.omnik.ivAmpsAc1
msg.omnik.ivAmpsAc2
msg.omnik.ivAmpsAc3
msg.omnik.frequencyAc
Inverter
msg.omnik.wifiSerialNumber
msg.omnik.inverterMainFirmwareVersion
msg.omnik.inverterSlaveFirmwareVersion
msg.omnik.inverterStatus
Debug
msg.omnik.rawBuffer
msg.omnik.rawString
[{"id":"2a4285cd.7cbdea","type":"subflow","name":"live","info":"Opens local port 8899 for Omnik inverter to connect to and send statistics.\n\n# Inverter configuration\n* Log on to Omnik inverter\n* Open menu **Advanced | Remote Server**\n* On the **Server B** row:\n * Set **IP address** to the IP address of your server.\n * Set **Domain name** to the domain name of your server (or leave blank).\n * Set **Port** to **8899**.\n * Set **Connection** to **TCP**.\n * Click **Save**\n\n# Output\nData from the Omnik inverter is parsed and available as below properties of the msg-object.\n\nNote, the inverter only connects and outputs data when enough sunlight is received for the internals to be awake. No data is returned at night.\n\n## Production\n* `msg.omnik.currentProduction` - Current production in W\n* `msg.omnik.productionToday` - Today's production in kWh\n* `msg.omnik.productionTotal` - Total production in kWh\n\n## Operational\n* `msg.omnik.temperature` - Current temperature in C\n* `msg.omnik.hoursActive` - Total hours running\n\n## Power\n* `msg.omnik.pvVoltageDc1`\n* `msg.omnik.pvVoltageDc2`\n* `msg.omnik.pvVoltageDc3`\n* `msg.omnik.ivAmpsDc1`\n* `msg.omnik.ivAmpsDc2`\n* `msg.omnik.ivAmpsDc3`\n* `msg.omnik.pvVoltageAc1`\n* `msg.omnik.pvVoltageAc2`\n* `msg.omnik.pvVoltageAc3`\n* `msg.omnik.ivAmpsAc1`\n* `msg.omnik.ivAmpsAc2`\n* `msg.omnik.ivAmpsAc3`\n* `msg.omnik.frequencyAc`\n\n## Inverter\n* `msg.omnik.wifiSerialNumber`\n* `msg.omnik.inverterMainFirmwareVersion`\n* `msg.omnik.inverterSlaveFirmwareVersion`\n* `msg.omnik.inverterStatus`\n\n## Debug\n* `msg.omnik.rawBuffer`\n* `msg.omnik.rawString`","category":"omnik","in":[],"out":[{"x":400,"y":60,"wires":[{"id":"d625a814.e8f098","port":0}]}]},{"id":"ff1b0584.ad0a48","type":"tcp in","z":"2a4285cd.7cbdea","name":"","server":"server","host":"","port":"8899","datamode":"single","datatype":"buffer","newline":"\\x16","topic":"","base64":false,"x":80,"y":60,"wires":[["d625a814.e8f098"]]},{"id":"d625a814.e8f098","type":"function","z":"2a4285cd.7cbdea","name":"Parse Omnik data","func":"var omnik = msg.payload;\n\nmsg.omnik = {};\n\n// Production\nmsg.omnik.currentProduction = omnik.readInt16BE(59); // W\nmsg.omnik.productionToday = omnik.readInt16BE(69) / 100; // kWh\nmsg.omnik.productionTotal = omnik.readInt32BE(71) / 10; // kWh\n// Current operation\nmsg.omnik.temperature = omnik.readInt16BE(31) / 10; // C\nmsg.omnik.hoursActive = omnik.readInt32BE(75);\n// Power\nmsg.omnik.pvVoltageDc1 = omnik.readInt16BE(33) / 10;\nmsg.omnik.pvVoltageDc2 = omnik.readInt16BE(35) / 10;\nmsg.omnik.pvVoltageDc3 = omnik.readInt16BE(37) / 10;\nmsg.omnik.ivAmpsDc1 = omnik.readInt16BE(39) / 10;\nmsg.omnik.ivAmpsDc2 = omnik.readInt16BE(41) / 10;\nmsg.omnik.ivAmpsDc3 = omnik.readInt16BE(43) / 10;\nmsg.omnik.pvVoltageAc1 = omnik.readInt16BE(51) / 10;\nmsg.omnik.pvVoltageAc2 = omnik.readInt16BE(53) / 10;\nmsg.omnik.pvVoltageAc3 = omnik.readInt16BE(55) / 10;\nmsg.omnik.ivAmpsAc1 = omnik.readInt16BE(45) / 10;\nmsg.omnik.ivAmpsAc2 = omnik.readInt16BE(47) / 10;\nmsg.omnik.ivAmpsAc3 = omnik.readInt16BE(49) / 10;\nmsg.omnik.frequencyAc = omnik.readInt16BE(57) / 100;\n// Inverter\nmsg.omnik.wifiSerialNumber = omnik.readInt32LE(4);\nmsg.omnik.inverterSerialNumber = omnik.toString(\"utf8\", 15, 31);\nmsg.omnik.inverterMainFirmwareVersion = omnik.toString(\"utf8\", 101, 116);\nmsg.omnik.inverterSlaveFirmwareVersion = omnik.toString(\"utf8\", 117, 136);\nmsg.omnik.inverterStatus = omnik.toString(\"utf8\", 155, 170);\n// Debug\nmsg.omnik.rawBuffer = omnik;\nmsg.omnik.rawString = omnik.toString();\n\nreturn msg;","outputs":1,"noerr":0,"x":260,"y":60,"wires":[[]]},{"id":"4eb05ef.32d9ea","type":"subflow:2a4285cd.7cbdea","z":"14cd401d.1b1e3","name":"","x":110,"y":1140,"wires":[["d48d9e1c.99c0d"]]},{"id":"d48d9e1c.99c0d","type":"debug","z":"14cd401d.1b1e3","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"omnik","x":250,"y":1140,"wires":[]}]