sigenergy2mqtt is a bridge between the Modbus interface of the Sigenergy energy system and the MQTT lightweight publish/subscribe messaging protocol.
In addition, sigenergy2mqtt has several optional features:
- It can publish the appropriate messages to allow Home Assistant to automatically discover the Sigenergy devices, simplifying Home Assistant configuration.
- Production and consumption data can automatically be uploaded to PVOutput.
- It can auto-discover Sigenergy devices and their device IDs.
sigenergy2mqtt was inspired the Home Assistant integrations developed by TypQxQ.
sigenergy2mqtt was developed for my own use, and as such has only been tested in my single-phase environment without AC or DC chargers. In addition, there has been only cursory testing of the write functions. If you find a problem, please raise an issue.
Follow the installation guides for supported environments:
When parsing configuration options, sigenergy2mqtt looks at the configuration sources in the following order:
- Configuration File
- Environment Variables (not applicable to the Home Assistant Add-On)
- Command Line Options (not applicable to the Home Assistant Add-On)
- Home Assistant Add-On UI
This means, for example, that the options specified in the configuration file can be overridden by environment variables and command line options.
The Home Assistant Add-On has its own configuration interface. You can also create a configuration file for more advanced configuration, but where an option is configured in the Home Assistant user interface, it will override the same option in the configuration file.
The complete list of configuration options with associated comments can be found in sigenergy2mqtt.yaml.
Example:
home-assistant:
enabled: true
mqtt:
broker: 127.0.0.1
username: ""
password: ""
modbus:
- host: sigenergy.local
inverters: [ 1 ]
pvoutput:
enabled: false
api-key: your_api_key
system-id: your_system_id
consumption: trueNotes:
- Configure your MQTT broker IP address/host name and Sigenergy IP address/host name as appropriate for your environment.
- The number in square brackets after
invertersis the Device ID as advised by your installer. It is usually1. If you have multiple inverters, separate them with commas (e.g.[ 1,2 ]) - If your MQTT broker does not require authentication, add the option
anonymous: trueundermqtt. - By default, only entities relating to production, consumption and battery charging/discharging are enabled in Home Assistant (all other published entities will still appear, but will be disabled). All other entities are disabled by default. If you want all entities to be initially enabled, set
sensors-enabled-by-defaulttotrue. This setting only applies the first time that Home Assistant auto-discovers devices and entities; changing this configuration after first discovery will have no effect. Entities can be enabled and disabled through the Home Assistant user interface. - The default location for
sigenergy2mqtt.yamlis in/etc/. However, it will also be found in/data/, and for the Home Assistant add-on, it should be placed in/config/. You can also use the-ccommand line option or theSIGENERGY2MQTT_CONFIGenvironment variable to specify a different location and/or filename.
You can automatically discover Sigenergy devices on your network, using either the command line option --modbus-auto-discovery or the environment variable SIGENERGY2MQTT_MODBUS_AUTO_DISCOVERY. Both of these take a value of either once or force: If once is specified, auto-discovery will only occur if no existing auto-discovery results are found. If force, auto-discovery will overwrite any previously discovered Modbus hosts and device IDs. If not specified, auto-discovery is disabled.
Auto-discovery is a lengthy process because your local network has to be scanned for potential Modbus hosts, and once detected there are 247 potential device IDs to be scanned on each host.
Prior to the V100R001C00SPC108 firmware update, production systems connected to the Sigenergy Gateway Smart-Port were included in the Plant PV Power reported by the Modbus interface. In firmware V100R001C00SPC108, the PV Power register only reports production from panels connected directly to Sigenergy. Firmware V100R001C00SPC109 adds a new sensor for Third-Party PV Power. This register, however, only appears to be updated every 8-10 seconds in my testing with my Enphase micro-inverters, so if you want more frequent updates of Total PV Power and Consumed Power, then you should enable smart-port in the configuration and configure either the Enphase Envoy and/or the MQTT smart-port integrations.
- When smart-port is not enabled in the configuration, the Plant
Total PV Powersensor will be the sum of PlantPV PowerandThird-Party PV Power. - When smart-port is enabled in the configuration, the Plant
Total PV Powersensor will be the sum ofPV Powerand all configured Smart-Port PV Power sensors (Enphase Envoy and/or MQTT). Also, if the Smart-Port PV Power sensor fails to provide updates,sigenergy2mqttwill automatically fail-over to using theThird-Party PV Powersensor, and fail-back when it becomes available again.
This configuration only works with Enphase Envoy firmware versions prefixed with D7 and D8. Add the Envoy host and login details to your sigenergy2mqtt configuration file:
...
modbus:
- host: your_sigenergy_ip_address
inverters: [ 1 ]
log-level: INFO
smart-port:
enabled: true
module:
name: enphase
host: your_enphase_envoy_ip_address
username: your_enphase_enlighten_username
password: your_enphase_enlighten_password
pv-power: EnphasePVPower
...Notes:
- The module
namemust be set toenphase. - The module
pv-powerconfiguration must be set toEnphasePVPowerto create the PlantTotal PV Powersensor to accumulate the Enphase PV production and Sigenergy PV production.
This configuration requires adding the MQTT topics to which sigenergy2mqtt will subscribe to get the third-party PV power production updates, and setting up an automation within Home Assistant to publish the third-party PV power production to MQTT whenever it changes.
...
modbus:
- host: your_sigenergy_ip_address
inverters: [ 1 ]
log-level: INFO
smart-port:
enabled: true
mqtt:
- topic: sigenergy2mqtt/smartport/envoy_nnnnnnnnnn_current_power_production/state
gain: 1
...Notes:
- The topic can be anything meaningful.
- The gain represents the multiplier to convert the state to watts (so if it is provided in kWh, 1000 is the multiplier).
- You can specify multiple MQTT topic/gain pairs in the configuration file (but command line and environment overrides are limited to a single topic).
Create a new automation and enter a YAML configuration similar to this, using the entity_id that contains the current PV power production from your third-party inverter (this example uses Enphase again):
alias: Publish Envoy PV Production
description: "Update sigenergy2mqtt with the current PV production reported by Enphase Envoy"
triggers:
- trigger: state
entity_id:
- sensor.envoy_nnnnnnnnnn_current_power_production
conditions: []
actions:
- action: mqtt.publish
data:
topic: sigenergy2mqtt/smartport/envoy_nnnnnnnnnn_current_power_production/state
payload: "{{ trigger.to_state.state }}"
mode: queuedNotes:
- The topic(s) must match in both the
sigenergy2mqttconfiguration and the Home Assistant automation.
Environment variables override the configuration file, but not command line options.
| Name | Description |
|---|---|
SIGENERGY2MQTT_CONFIG |
The path to the JSON configuration file (defaults: /etc/sigenergy2mqtt.yaml for Linux, /data/sigenergy2mqtt.yaml for Docker and /config/sigenergy2mqtt.yaml for Home Assistant) |
SIGENERGY2MQTT_LOG_LEVEL |
Set the log level. Valid values are: DEBUG, INFO, WARNING, ERROR or CRITICAL. Default is WARNING (warnings, errors and critical failures) |
SIGENERGY2MQTT_DEBUG_SENSOR |
Specify a sensor to be debugged using either the full entity id, a partial entity id, the full sensor class name, or a partial sensor class name. For example, specifying 'daily' would match all sensors with daily in their entity name. If specified, --debug-level is also forced to DEBUG |
SIGENERGY2MQTT_SANITY_CHECK_DEFAULT_KW |
The default value in kW used for sanity checks to validate the maximum and minimum values for actual value of power sensors and the delta value of energy sensors. The default value is 100 kW per second, and readings outside the range are ignored. |
SIGENERGY2MQTT_NO_METRICS |
Set to 'true' to prevent sigenergy2mqtt from publishing metrics to MQTT. |
| Name | Description |
|---|---|
SIGENERGY2MQTT_HASS_ENABLED |
Set to 'true' to enable auto-discovery in Home Assistant. |
SIGENERGY2MQTT_HASS_DISCOVERY_PREFIX |
The Home Assistant MQTT Discovery topic prefix to use (default: homeassistant) |
SIGENERGY2MQTT_HASS_ENTITY_ID_PREFIX |
The prefix to use for Home Assistant entity IDs. Example: A prefix of 'prefix' will prepend 'prefix_' to entity IDs (default: sigen) |
SIGENERGY2MQTT_HASS_UNIQUE_ID_PREFIX |
The prefix to use for Home Assistant unique IDs. Example: A prefix of 'prefix' will prepend 'prefix_' to unique IDs (default: sigen). Once you have set this, you should NEVER change it, as it will break existing entities in Home Assistant. |
SIGENERGY2MQTT_HASS_USE_SIMPLIFIED_TOPICS |
Enable the simplified topic structure (sigenergy2mqtt/object_id/state) instead of the full Home Assistant topic structure (homeassistant/platform/device_id/object_id/state) |
SIGENERGY2MQTT_HASS_DEVICE_NAME_PREFIX |
The prefix to use for Home Assistant entity names. Example: A prefix of 'prefix' will prepend 'prefix ' to names (default: '') |
SIGENERGY2MQTT_HASS_DISCOVERY_ONLY |
Set to 'true' to e xit immediately after publishing discovery. Does not read values from the Modbus interface, except to probe for device configuration. |
| Name | Description |
|---|---|
SIGENERGY2MQTT_MQTT_BROKER |
The hostname or IP address of an MQTT broker (default: 127.0.0.1) |
SIGENERGY2MQTT_MQTT_PORT |
The listening port of the MQTT broker (default is 1883, unless --mqtt-tls or SIGENERGY2MQTT_MQTT_TLS is specified, in which case the default is 8883) |
SIGENERGY2MQTT_MQTT_KEEPALIVE |
The maximum period in seconds between communications with the broker. If no other messages are being exchanged, this controls the rate at which the client will send ping messages to the broker. Default is 60 and minimum is 1. |
SIGENERGY2MQTT_MQTT_TLS |
Set to 'true' to enable secure communication to MQTT broker over TLS/SSL. If specified, the default MQTT port is 8883. |
SIGENERGY2MQTT_MQTT_TLS_INSECURE |
If 'true', allows insecure communication over TLS. If your broker is using a self-signed certificate, you must set this to 'true'. If you are using a valid certificate, set this to 'false' (or do not set at all). Ignored unless SIGENERGY2MQTT_MQTT_TLS is also 'true'. |
SIGENERGY2MQTT_MQTT_ANONYMOUS |
Set to 'true' to connect to MQTT anonymously (i.e. without username/password). |
SIGENERGY2MQTT_MQTT_USERNAME |
A valid username for the MQTT broker |
SIGENERGY2MQTT_MQTT_PASSWORD |
A valid password for the MQTT broker username |
SIGENERGY2MQTT_MQTT_LOG_LEVEL |
Set the paho.mqtt log level. Valid values are: DEBUG, INFO, WARNING, ERROR or CRITICAL. Default is WARNING (warnings, errors and critical failures) |
| Name | Description |
|---|---|
SIGENERGY2MQTT_MODBUS_AUTO_DISCOVERY |
Controls auto-discovery of Sigenergy Modbus hosts and device IDs. If 'once' is specified, auto-discovery will only occur if no existing auto-discovery results are found. If 'force', auto-discovery will overwrite any previously discovered Modbus hosts and device IDs. If not specified, auto-discovery is disabled. |
SIGENERGY2MQTT_MODBUS_HOST |
The hostname or IP address of the Sigenergy device |
SIGENERGY2MQTT_MODBUS_PORT |
The Sigenergy device Modbus port number (default: 502) |
SIGENERGY2MQTT_MODBUS_INVERTER_DEVICE_ID |
The Sigenergy device Modbus Device ID. May be specified as a space-separated list (e.g. "1 2"). (default: 1) |
SIGENERGY2MQTT_MODBUS_ACCHARGER_DEVICE_ID |
The Sigenergy AC Charger Modbus Device ID. |
SIGENERGY2MQTT_MODBUS_DCCHARGER_DEVICE_ID |
The Sigenergy DC Charger Modbus Device ID. |
SIGENERGY2MQTT_MODBUS_NO_REMOTE_EMS |
If true, read-write sensors for remote Energy Management System (EMS) integration will NOT be published to MQTT. Default is false. Ignored if SIGENERGY2MQTT_MODBUS_READ_WRITE is false. |
SIGENERGY2MQTT_MODBUS_READ_ONLY |
If false, read-only entities will not be published to MQTT. Default is true. |
SIGENERGY2MQTT_MODBUS_READ_WRITE |
If false, read-write entities will not be published to MQTT. Default is true. |
SIGENERGY2MQTT_MODBUS_WRITE_ONLY |
If false, write-only entities will not be published to MQTT. Default is true. |
SIGENERGY2MQTT_MODBUS_DISABLE_CHUNKING |
If true, chunking of Modbus reads will be disabled and each register will be read individually. This is NOT recommended for production use. |
SIGENERGY2MQTT_MODBUS_RETRIES |
The maximum number of times to retry a Modbus operation if it fails. The default is 3. |
SIGENERGY2MQTT_MODBUS_TIMEOUT |
The timeout for connecting and receiving Modbus data, in seconds (use decimals for milliseconds). The default is 1.0. |
SIGENERGY2MQTT_MODBUS_LOG_LEVEL |
Set the pymodbus log level. Valid values are: DEBUG, INFO, WARNING, ERROR or CRITICAL. Default is WARNING (warnings, errors and critical failures) |
SIGENERGY2MQTT_SCAN_INTERVAL_LOW |
The scan interval in seconds for Modbus registers that are to be scanned at a low frequency. Default is 600 (seconds), and the minimum value is 1. |
SIGENERGY2MQTT_SCAN_INTERVAL_MEDIUM |
The scan interval in seconds for Modbus registers that are to be scanned at a medium frequency. Default is 60 (seconds), and the minimum value is 1. |
SIGENERGY2MQTT_SCAN_INTERVAL_HIGH |
The scan interval in seconds for Modbus registers that are to be scanned at a high frequency. Default is 10 (seconds), and the minimum value is 1. |
SIGENERGY2MQTT_SCAN_INTERVAL_REALTIME |
The scan interval in seconds for Modbus registers that are to be scanned in near-real time. Default is 5 (seconds), and the minimum value is 1. |
| Name | Description |
|---|---|
SIGENERGY2MQTT_PVOUTPUT_ENABLED | Set to 'true' to enable status updates to PVOutput. |
SIGENERGY2MQTT_PVOUTPUT_API_KEY | The API Key for PVOutput |
SIGENERGY2MQTT_PVOUTPUT_SYSTEM_ID | The PVOutput System ID |
SIGENERGY2MQTT_PVOUTPUT_CONSUMPTION |
|
SIGENERGY2MQTT_PVOUTPUT_EXPORTS | Set to 'true' to upload export data to PVOutput. |
SIGENERGY2MQTT_PVOUTPUT_IMPORTS | Set to 'true' to upload import data to PVOutput. |
SIGENERGY2MQTT_PVOUTPUT_OUTPUT_HOUR | The hour of the day (20-23) at which the daily totals are sent to PVOutput. The default is 23 (11pm). Valid values are 20 to 23. The minute is randomly chosen between 51 and 58. If you specify -1, daily uploads will be sent at the same frequency as status updates. |
SIGENERGY2MQTT_PVOUTPUT_TEMP_TOPIC | An MQTT topic from which the current temperature can be read. This is used to send the temperature to PVOutput. If not specified, the temperature will not be sent to PVOutput. |
SIGENERGY2MQTT_PVOUTPUT_EXT_V7 | A sensor class name, or entity_id without the 'sensor.' prefix, that will be used to populate the associated extended data field in PVOutput. If not specified, OR your donation status is not current, the field will not be sent to PVOutput. You can use any sensor with a numeric value. If you specify an Energy sensor class, the value sent to PVOutput will be the power value over the Status Interval. You can use any sensor that shows a numeric value. If a sensor class is used for multiple sensors (e.g. the `PhaseVoltage` sensor class is used for phases A, B and C), the sensor values will be averaged and a single value sent to PVOutput. |
SIGENERGY2MQTT_PVOUTPUT_EXT_V8 | |
SIGENERGY2MQTT_PVOUTPUT_EXT_V9 | |
SIGENERGY2MQTT_PVOUTPUT_EXT_V10 | |
SIGENERGY2MQTT_PVOUTPUT_EXT_V11 | |
SIGENERGY2MQTT_PVOUTPUT_EXT_V12 | |
SIGENERGY2MQTT_PVOUTPUT_LOG_LEVEL | Set the PVOutput log level. Valid values are: DEBUG, INFO, WARNING, ERROR or CRITICAL. Default is WARNING (warnings, errors and critical failures) |
| Name | Description |
|---|---|
SIGENERGY2MQTT_SMARTPORT_ENABLED |
Enable interrogation of a third-party device for production data. |
SIGENERGY2MQTT_SMARTPORT_MODULE_NAME |
The name of the module which will be used to obtain third-party device production data. |
SIGENERGY2MQTT_SMARTPORT_HOST |
The IP address or hostname of the third-party device. |
SIGENERGY2MQTT_SMARTPORT_USERNAME |
The username to authenticate to the third-party device. |
SIGENERGY2MQTT_SMARTPORT_PASSWORD |
The password to authenticate to the third-party device. |
SIGENERGY2MQTT_SMARTPORT_PV_POWER |
The sensor class to hold the production data obtained from the third-party device. |
SIGENERGY2MQTT_SMARTPORT_MQTT_TOPIC |
The MQTT topic to which to subscribe to obtain the production data for the third-party device. |
SIGENERGY2MQTT_SMARTPORT_MQTT_GAIN |
The gain to be applied to the production data for the third-party device obtained from the MQTT topic. (e.g. 1000 if the data is in kW) Default is 1 (Watts). |
Command line options override both environment variables and the configuration file.
-h, --help show this help message and exit
-c [SIGENERGY2MQTT_CONFIG], --config [SIGENERGY2MQTT_CONFIG]
The path to the JSON configuration file (default: /etc/sigenergy2mqtt.yaml)
-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Set the log level. Valid values are: DEBUG, INFO, WARNING, ERROR or CRITICAL. Default is WARNING
(warnings, errors and critical failures)
-d SIGENERGY2MQTT_DEBUG_SENSOR, --debug-sensor SIGENERGY2MQTT_DEBUG_SENSOR
Specify a sensor to be debugged using either the full entity id, a partial entity id, the full sensor class name,
or a partial sensor class name. For example, specifying 'daily' would match all sensors with daily in their entity
name. If specified, --debug-level is also forced to DEBUG
--sanity-check-default-kw SIGENERGY2MQTT_SANITY_CHECK_DEFAULT_KW
The default value in kW used for sanity checks to validate the maximum and minimum values for actual value of
power sensors and the delta value of energy sensors. The default value is 100 kW per second, and readings outside
the range are ignored.
--no-metrics Do not publish any sigenergy2mqtt metrics.
--hass-enabled Enable auto-discovery in Home Assistant.
--hass-discovery-prefix [SIGENERGY2MQTT_HASS_DISCOVERY_PREFIX]
The Home Assistant MQTT Discovery topic prefix to use (default: homeassistant)
--hass-entity-id-prefix [SIGENERGY2MQTT_HASS_ENTITY_ID_PREFIX]
The prefix to use for Home Assistant entity IDs. Example: A prefix of 'prefix' will prepend 'prefix_' to entity IDs
(default: sigen)
--hass-unique-id-prefix [SIGENERGY2MQTT_HASS_UNIQUE_ID_PREFIX]
The prefix to use for Home Assistant unique IDs. Example: A prefix of 'prefix' will prepend 'prefix_' to unique IDs
(default: sigen). Once you have set this, you should NEVER change it, as it will break existing entities in
Home Assistant.
--hass-use-simplified-topics
Enable the simplified topic structure (sigenergy2mqtt/object_id/state) instead of the full Home Assistant topic
structure (homeassistant/platform/device_id/object_id/state)
--hass-device-name-prefix [SIGENERGY2MQTT_HASS_DEVICE_NAME_PREFIX]
The prefix to use for Home Assistant entity names. Example: A prefix of 'prefix' will prepend 'prefix ' to names
(default: '')
--hass-discovery-only
Exit immediately after publishing discovery. Does not read values from the Modbus interface,
except to probe for device configuration.
-b [SIGENERGY2MQTT_MQTT_BROKER], --mqtt-broker [SIGENERGY2MQTT_MQTT_BROKER]
The hostname or IP address of an MQTT broker (default: 127.0.0.1)
--mqtt-port [SIGENERGY2MQTT_MQTT_PORT]
The listening port of the MQTT broker (default is 1883, unless --mqtt-tls is specified, in which case the default
is 8883)
--mqtt-keepalive [SIGENERGY2MQTT_MQTT_KEEPALIVE]
The maximum period in seconds between communications with the broker. If no other messages are being exchanged,
this controls the rate at which the client will send ping messages to the broker.
Default is 60 and minimum is 1.
--mqtt-tls Enable secure communication to MQTT broker over TLS/SSL. If specified, the default MQTT port is 8883.
--mqtt-tls-insecure Enables insecure communication over TLS. If your broker is using a self-signed certificate, you must specify this
option. Ignored unless --mqtt-tls is also specified.
--mqtt-anonymous Connect to MQTT anonymously (i.e. without username/password). If specified, the --mqtt-username and
--mqtt-password options are ignored.
-u [SIGENERGY2MQTT_MQTT_USERNAME], --mqtt-username [SIGENERGY2MQTT_MQTT_USERNAME]
A valid username for the MQTT broker
-p [SIGENERGY2MQTT_MQTT_PASSWORD], --mqtt-password [SIGENERGY2MQTT_MQTT_PASSWORD]
A valid password for the MQTT broker username
--modbus-disable-chunking
Disable Modbus chunking when reading registers and read each register individually.
--mqtt-log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Set the paho.mqtt log level. Valid values are: DEBUG, INFO, WARNING, ERROR or CRITICAL.
Default is WARNING (warnings, errors and critical failures)
--modbus-auto-discovery {once,force}
Attempt to auto-discover Sigenergy Modbus hosts and device IDs. If 'once' is specified, auto-discovery will only
occur if no existing auto-discovery results are found. If 'force', auto-discovery will overwrite any previously
discovered Modbus hosts and device IDs. If not specified, auto-discovery is disabled.
-m [SIGENERGY2MQTT_MODBUS_HOST], --modbus-host [SIGENERGY2MQTT_MODBUS_HOST]
The hostname or IP address of the Sigenergy device
--modbus-port [SIGENERGY2MQTT_MODBUS_PORT]
The Sigenergy device Modbus port number (default: 502)
--modbus-inverter-device-id [SIGENERGY2MQTT_MODBUS_INVERTER_DEVICE_ID]
The Sigenergy Inverter Modbus Device ID. Multiple device IDS may be specified, separated by spaces.
--modbus-accharger-device-id [SIGENERGY2MQTT_MODBUS_ACCHARGER_DEVICE_ID]
The Sigenergy AC Charger Modbus Device ID.
--modbus-dccharger-device-id [SIGENERGY2MQTT_MODBUS_DCCHARGER_DEVICE_ID]
The Sigenergy DC Charger Modbus Device ID.
--modbus-readonly Only publish read-only sensors to MQTT. Neither read-write or write-only sensors will be
published if specified.
--modbus-no-remote-ems
Do not publish any read-write sensors for remote Energy Management System (EMS) integration to MQTT.
Ignored if --modbus-read-only is specified.
--modbus-disable-chunking
Disable Modbus chunking when reading registers and read each register individually.
--modbus-retries [SIGENERGY2MQTT_MODBUS_RETRIES]
The maximum number of times to retry a Modbus operation if it fails. The default is 3.
--modbus-timeout [SIGENERGY2MQTT_MODBUS_TIMEOUT]
The timeout for connecting and receiving Modbus data, in seconds. The default is 1.0.
--modbus-log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Set the pymodbus log level. Valid values are: DEBUG, INFO, WARNING, ERROR or CRITICAL.
Default is WARNING (warnings, errors and critical failures)
--scan-interval-low [SIGENERGY2MQTT_SCAN_INTERVAL_LOW]
The scan interval in seconds for Modbus registers that are to be scanned at a low frequency. Default is 600,
and the minimum value is 1.
--scan-interval-medium [SIGENERGY2MQTT_SCAN_INTERVAL_MEDIUM]
The scan interval in seconds for Modbus registers that are to be scanned at a medium frequency. Default is 60,
and the minimum value is 1.
--scan-interval-high [SIGENERGY2MQTT_SCAN_INTERVAL_HIGH]
The scan interval in seconds for Modbus registers that are to be scanned at a high frequency. Default is 10,
and the minimum value is 1.
--scan-interval-realtime [SIGENERGY2MQTT_SCAN_INTERVAL_REALTIME]
The scan interval in seconds for Modbus registers that are to be scanned in near-real time. Default is 5,
and the minimum value is 1.
--smartport-enabled Enable interrogation of a third-party device for production data.
--smartport-module-name [SIGENERGY2MQTT_SMARTPORT_MODULE_NAME]
The name of the module which will be used to obtain third-party device production data.
--smartport-host [SIGENERGY2MQTT_SMARTPORT_HOST]
The IP address or hostname of the third-party device.
--smartport-username [SIGENERGY2MQTT_SMARTPORT_USERNAME]
The username to authenticate to the third-party device.
--smartport-password [SIGENERGY2MQTT_SMARTPORT_PASSWORD]
The password to authenticate to the third-party device.
--smartport-pv-power [SIGENERGY2MQTT_SMARTPORT_PV_POWER]
The sensor class to hold the production data obtained from the third-party device.
--smartport-mqtt-topic [SIGENERGY2MQTT_SMARTPORT_MQTT_TOPIC]
The MQTT topic to which to subscribe to obtain the production data for the third-party device.
--smartport-mqtt-gain [SIGENERGY2MQTT_SMARTPORT_MQTT_GAIN]
The gain to be applied to the production data for the third-party device obtained from the MQTT topic.
(e.g. 1000 if the data is in kW) Default is 1 (Watts).
--pvoutput-enabled Enable status updates to PVOutput.
--pvoutput-api-key [SIGENERGY2MQTT_PVOUTPUT_API_KEY]
The API Key for PVOutput
--pvoutput-system-id [SIGENERGY2MQTT_PVOUTPUT_SYSTEM_ID]
The PVOutput System ID
--pvoutput-consumption [SIGENERGY2MQTT_PVOUTPUT_CONSUMPTION]
Enable to send consumption data to PVOutput. May be specified without a value (in which case defaults to
'consumption') or one of 'net-of-battery', 'consumption', or 'imported'. If not specified, no consumption
data is sent.
--pvoutput-exports Enable to send export data to PVOutput.
--pvoutput-imports Enable to send import data to PVOutput.
--pvoutput-output-hour [SIGENERGY2MQTT_PVOUTPUT_OUTPUT_HOUR]
The hour of the day (20-23) at which the daily totals are sent to PVOutput. The default is 23 (11pm).
Valid values are 20 to 23. The minute is randomly chosen between 51 and 58. If you specify -1, daily
uploads will be sent at the same frequency as status updates.
--pvoutput-temp-topic [SIGENERGY2MQTT_PVOUTPUT_TEMP_TOPIC]
An MQTT topic from which the current temperature can be read. This is used to send the temperature to PVOutput.
If not specified, the temperature will not be sent to PVOutput.
--pvoutput-ext-v7 [SIGENERGY2MQTT_PVOUTPUT_EXT_V7]
A sensor class name, or entity id without the 'sensor.' prefix, that will be used to populate the v7
extended data field in PVOutput. If not specified, OR your donation status is not current, this field
will not be sent to PVOutput. You can use any sensor with a numeric value.
--pvoutput-ext-v8 [SIGENERGY2MQTT_PVOUTPUT_EXT_V8]
A sensor class name, or entity id without the 'sensor.' prefix, that will be used to populate the v8
extended data field in PVOutput. If not specified, OR your donation status is not current, this field
will not be sent to PVOutput. You can use any sensor with a numeric value.
--pvoutput-ext-v9 [SIGENERGY2MQTT_PVOUTPUT_EXT_V9]
A sensor class name, or entity id without the 'sensor.' prefix, that will be used to populate the v9
extended data field in PVOutput. If not specified, OR your donation status is not current, this field
will not be sent to PVOutput. You can use any sensor with a numeric value.
--pvoutput-ext-v10 [SIGENERGY2MQTT_PVOUTPUT_EXT_V10]
A sensor class name, or entity id without the 'sensor.' prefix, that will be used to populate the v10
extended data field in PVOutput. If not specified, OR your donation status is not current, this field
will not be sent to PVOutput. You can use any sensor with a numeric value.
--pvoutput-ext-v11 [SIGENERGY2MQTT_PVOUTPUT_EXT_V11]
A sensor class name, or entity id without the 'sensor.' prefix, that will be used to populate the v11
extended data field in PVOutput. If not specified, OR your donation status is not current, this field
will not be sent to PVOutput. You can use any sensor with a numeric value.
--pvoutput-ext-v12 [SIGENERGY2MQTT_PVOUTPUT_EXT_V12]
A sensor class name, or entity id without the 'sensor.' prefix, that will be used to populate the v12
extended data field in PVOutput. If not specified, OR your donation status is not current, this field
will not be sent to PVOutput. You can use any sensor with a numeric value.
--pvoutput-log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Set the PVOutput log level. Valid values are: DEBUG, INFO, WARNING, ERROR or CRITICAL. Default is WARNING
(warnings, errors and critical failures)
--clean Publish empty discovery to delete existing devices, then exits immediately.
-v, --version Shows the version number, then exits immediately.
The topics that are published and subscribed to by sigenergy2mqtt can be found here.
