Skip to content

Omnik data logger Client setup

Jan Bouwhuis edited this page Nov 8, 2021 · 6 revisions

See for more details on the client settings the README.md for detailed information about the settings in the configuration

localproxy client setup

The localproxy client requires at least one localproxy plugin te be setup.

Choose the localproxy client plugin(s) to use

The local proxy client can process the intercepted inverters logging. There are three approaches to achieve this:

  1. Listen directly to the inverters traffic. This requires rerouting and Network Address Translation in your local network.
  2. Subscribe to an object created using omnikloggerproxy.py. Here you can subscribe to an MQTT attribute of use the built-in HASSAPI of AppDaemon.

To be able to listen to your inverters messages you should know that your inverter sends about every 305 seconds a data message to the internet over TCP port 10004. This might be different for your inverter, but mine (Omniksol 3K-TL) is acting this way. If you want to use Omnik data logger with the standard Home Assistant OS image, it is difficult to configure NAT, because it is not supported to configure iptables with Network Address Translation within a docker container. For that reason the omnikloggerproxy.py script was created. The idea is to set this up on a Raspberry Pi running linux, NAS system or router that is able to do the trick. The omnikloggerproxy.py script can read the raw data and push it to MQTT. Additional it can also forward the raw logger data to cloud servers of Solarman, so you can retain the classic data logging and keep using Omnikportal.

Prepare for data interception / setup omnikloggerproxy.py

Read this page to learn more about the interception of the inverters datalogging, forwarding to MQTT or TCP.

Omnik data logger localproxy plugin cannot directy proces your inverters data without Network Address Translation.

Setup configuration for localproxy

Add the client key the section plugins and set its value to localproxy. This section should have a key plant_id_list containing a list of the plants that are to be processed.

Each id should correspond with the plant_id stored at witch your logger data is stored at omnik portal. To find the plant_id, login to the omnik portal and find the pid in the URL, this is the plant_id. The serial number of your Wi-Fi datalogger and inverter you can find here too. Go to settings and click on the device tab. You will find your inverters there along with the serial number of your Wi-Fi datalogger and the serial number of your inverter.

See for more details the README.md

Config tcp_proxy plugin

This plugin listens to (forwarded) inverter traffic at TCP port 10004. The section tcp_proxy needs to be added to the configuration with the listen_address and listen_port. You can only listen if the public IP address is translated to you the internal IP of the host running Omnik data logger. If your host (linux) supports iptables have look at this example script. If you can use omnikloggerproxy.py to forward the data to the internet, then consider to MQTT forwarding. Use the mqtt_proxy or hassapi plugin to process the data forwarde to MQTT. The Mosquitto MQTT server is a standard add-on for Home Assistant. Many NAS providers also have a MQTT server package in there stores.

See for more details the README.md

Config mqtt_proxy plugin

This plugin assumes you have used omnikloggerproxy.py for the data interception. Use the MQTT forwarding feature with this script to publish the captured logging data to a MQTT server. When publishing to the Home Assistant MQTT server you can enable MQTT auto discovery. Home Assistant then will automatically add the datalogger sensor to your entities. Add the mqtt_proxy as a list item to the localproxy key at the section plugins. Add a new section mqtt_proxy to your config and configure the required keys to be able to access the MQTT server you want to use. If you also want to use MQTT output, then there is no need to a mqtt_proxy section. In that case mqtt_proxy can read all keys from the mqtt section. The logger_sensor_name key is the only mqtt_proxy specific key and default to Datalogger. Make sure to configure the MQTT forwarding of omnikloggerproxy.py with the same configuration as mqtt_proxy. The topic mqtt_proxy should be the same topic omnikloggerproxy.py subscribes to.

See for more details the README.md

Config hassapi plugin

The hassapi plugin requires the same interception setup as mqtt_proxy. It asumes MQTT is set up with Home Assistant and Omnik data logger is installed with AppDaemon. The Home Assitant API of AppDaemon (hassapi) exposes the datasensor that has been generated through the MQTT auto discovery. You only need to define the key logger_entity key at the section hassapi. The default value for this key is binary_sensor.datalogger. Check your Home Assistent entities to check if the entity is correct.

See for more details the README.md

tcpclient client setup

Add the client key the section plugins and set its value to tcpclient. This section should have a key plant_id_list containing a list of the plants that are to be processed. Like the omnikportal and solarmanpv client the tcpclient uses a timer for polling your inverter. Add the section tcpclient to your configuration. This section should have a key plant_id_list containing a list of the plants that are to be processed. The client needs the Wi-Fi datalogger serial number (logger_sn) to be able to create a request to your inverter. The key inverter_address is the local IP-address of your inverter. Visit https://www.omnikportal.nl and login. Go to settings and click on the device tab. You will find your inverters there along with the serial number of your Wi-Fi datalogger and the serial number of your inverter.

Each id should correspond with the plant_id stored at witch your logger data is stored at omnik portal. To find the plant_id, login to the omnik portal and find the pid in the URL.

See for more details the README.md

solarmanpv client setup

For this client username and password are critical keys that must be configured.