This is Python3 service to act as bridge between the Tigo CCA gateway tapping device implemented using taptap project and the Home Assistant MQTT integration. It provides completely local access to the data provided by your Tigo installation (as alternative to using Tigo Cloud). This software reads data from taptap binary and push them into HA integrated MQTT broker as a sensors values. It can be also used for other project compatible with the HomeAssistant MQTT integrations (like for example OpenHab).
It supports HA MQTT auto discovery feature (both new device type as well as older per entity type for HA < 2024.12.0 or OpenHab) to provide for easy integration with the Home Assistant.
If you are looking for seamlessly integrated solution for HomeAssistant please check my HomeAssistant addons repository, where I provide this software packaged as Hassio addon.
- Get taptap binary, either compile it from source, or check my builds. Please do not use original taptap project as it is not compatible with the latest advance features (like modules barcodes discovery etc.)
- You will need Modbus to Ethernet or Modbus to USB converter, connected to Tigo CCA as described.
- Install appropriate Python3 libraries - see
requirements.txt. - Rename config file example
config.ini.exampletoconfig.ini. - Configure your installation in the
config.inifile, check inline comments for explanation.
(per node sensors)
| sensor | state_class | device_class | unit | comment |
|---|---|---|---|---|
| voltage_in | measurement | voltage | V | as reported by Tigo node |
| voltage_out | measurement | voltage | V | as reported by Tigo node |
| current_in | measurement | current | A | as reported by Tigo node |
| current_out | measurement | current | A | current out is calculated as ( voltage_in * current_in ) / voltage_out, disregarding any power loss |
| power | measurement | power | W | power for given Tigo node calculated as current_in * current_out |
| temperature | measurement | temperature | °C | as reported by Tigo node |
| duty_cycle | measurement | power_factor | % | as reported by Tigo node , it is technically not technically correct to report as power factor... |
| rssi | measurement | signal_strength | dB | RSSI as reported by Tigo Gateway for Tigo node |
| energy_daily | total_increasing | energy | kWh | energy generated byt Tigo node calculated as integral of the power, resets daily |
| timestamp | measurement | timestamp | None | time node was last reporting to the Gateway |
| node_serial | measurement | - | - | Tigo optimizer serial number / barcode |
| gateway_address | measurement | - | - | Tigo gateway address to which Tigo optimizer is reporting |
(Total statistic for all Tigo optimizers)
| sensor | state_class | device_class | unit | comment |
|---|---|---|---|---|
| voltage_in_max | measurement | voltage | V | |
| voltage_in_min | measurement | voltage | V | |
| voltage_in_avg | measurement | voltage | V | |
| voltage_in_sum | measurement | voltage | V | |
| voltage_out_min | measurement | voltage | V | |
| voltage_out_max | measurement | voltage | V | |
| voltage_out_avg | measurement | voltage | V | |
| voltage_out_sum | measurement | voltage | V | |
| current_in_min | measurement | current | A | |
| current_in_max | measurement | current | A | |
| current_in_avg | measurement | current | A | |
| current_out_min | measurement | current | A | |
| current_out_max | measurement | current | A | |
| current_out_avg | measurement | current | A | |
| power_max | measurement | power | W | |
| power_min | measurement | power | W | |
| power_avg | measurement | power | W | |
| power_sum | measurement | power | W | |
| temperature_min | measurement | temperature | °C | |
| temperature_max | measurement | temperature | °C | |
| temperature_avg | measurement | temperature | °C | |
| duty_cycle_min | measurement | power_factor | % | |
| duty_cycle_max | measurement | power_factor | % | |
| duty_cycle_avg | measurement | power_factor | % | |
| rssi_min | measurement | signal_strength | dB | |
| rssi_max | measurement | signal_strength | dB | |
| rssi_avg | measurement | signal_strength | dB | |
| energy_daily | total_increasing | energy | kWh | |
| nodes_total | measurement | - | - | total number of defined Tigo nodes |
| nodes_online | measurement | - | - | total number of onlie/reporting Tigo nodes |
| nodes_identified | measurement | - | - | total number of Tigo nodes identified by serial numbers |
(Per string statistic for Tigo optimizers in given string)
| sensor | state_class | device_class | unit | comment |
|---|---|---|---|---|
| voltage_in_max | measurement | voltage | V | |
| voltage_in_min | measurement | voltage | V | |
| voltage_in_avg | measurement | voltage | V | |
| voltage_in_sum | measurement | voltage | V | |
| voltage_out_min | measurement | voltage | V | |
| voltage_out_max | measurement | voltage | V | |
| voltage_out_avg | measurement | voltage | V | |
| voltage_out_sum | measurement | voltage | V | |
| current_in_min | measurement | current | A | |
| current_in_max | measurement | current | A | |
| current_in_avg | measurement | current | A | |
| current_out_min | measurement | current | A | |
| current_out_max | measurement | current | A | |
| current_out_avg | measurement | current | A | |
| power_max | measurement | power | W | |
| power_min | measurement | power | W | |
| power_sum | measurement | power | W | |
| temperature_min | measurement | temperature | °C | |
| temperature_max | measurement | temperature | °C | |
| temperature_avg | measurement | temperature | °C | |
| duty_cycle_min | measurement | power_factor | % | |
| duty_cycle_max | measurement | power_factor | % | |
| duty_cycle_avg | measurement | power_factor | % | |
| energy_daily | total_increasing | energy | kWh | |
| nodes_total | measurement | - | - | number of defined Tigo nodes in string |
| nodes_online | measurement | - | - | number of onlie/reporting Tigo nodes in string |
| nodes_identified | measurement | - | - | number of Tigo nodes identified by serial numbers in string |
(Total statistic for all Tigo optimizers in all strings)
| sensor | state_class | device_class | unit | comment |
|---|---|---|---|---|
| power_sum | measurement | power | W | |
| rssi_min | measurement | signal_strength | dB | |
| rssi_max | measurement | signal_strength | dB | |
| rssi_avg | measurement | signal_strength | dB | |
| energy_daily | total_increasing | energy | kWh | |
| nodes_total | measurement | - | - | total number of defined Tigo nodes |
| nodes_online | measurement | - | - | total number of onlie/reporting Tigo nodes |
| nodes_identified | measurement | - | - | total number of Tigo nodes identified by serial numbers |
Before reporting any issue please check that you can get running taptap binary which can intercept messages in the observe mode! There is high chance, that you problem could be related to the configuration of the converter (especially Ethernet ones).
Always report:
- version of the taptap-mqtt used
- version of the taptap binary used
- configuration (remove sensitive data like MQTT user/pass and Tigo Nodes serials)
- attach log in the debug log level
If you are note able to get outputs in the taptap observe mode, but you are getting messages in the lower layer modes like peek-bytes, peek-frames and/or peek-activity there could be incompatibility of the taptap binary with the current Tigo Gateway protocol implementation. The know versions of the Tigo GW firmware compatible with the taptap are 3.9.0-ct, 4.0.1-ct, 4.0.3-ct. Update your firmware using Tigo application if you are on the older version. If you are on the newer firmware version please report the issue together with taptap binary messages output.