diff --git a/ha_addon/config.yaml b/ha_addon/config.yaml new file mode 100755 index 0000000..06f4466 --- /dev/null +++ b/ha_addon/config.yaml @@ -0,0 +1,102 @@ +name: "TSUN-Proxy" +description: "MQTT Proxy for TSUN Photovoltaic Inverters" +version: "dev" +image: docker.io/sallius/tsun-gen3-addon +url: https://github.com/s-allius/tsun-gen3-proxy +slug: "tsun-proxy" +init: false +arch: + - aarch64 + - amd64 + - armhf + - armv7 +startup: services +homeassistant_api: true +services: + - mqtt:want +ports: + 8127/tcp: 8127 + 5005/tcp: 5005 + 10000/tcp: 10000 + +# Definition of parameters in the configuration tab of the addon +# parameters are available within the container as /data/options.json +# and should become picked up by the proxy - current workaround as a transfer script +# TODO: check again for multi hierarchie parameters +# TODO: implement direct reading of the configuration file +schema: + inverters: + - serial: str + monitor_sn: int? + node_id: str + suggested_area: str + modbus_polling: bool + client_mode_host: str? + client_mode_port: int? + #strings: # leider funktioniert es nicht die folgenden 3 parameter im schema aufzulisten. möglicherweise wird die verschachtelung nicht unterstützt. + # - string: str + # type: str + # manufacturer: str + # daher diese variante + pv1.manufacturer: str? + pv1.type: str? + pv2.manufacturer: str? + pv2.type: str? + pv3.manufacturer: str? + pv3.type: str? + pv4.manufacturer: str? + pv4.type: str? + pv5.manufacturer: str? + pv5.type: str? + pv6.manufacturer: str? + pv6.type: str? + tsun.enabled: bool + solarman.enabled: bool + inverters.allow_all: bool + # optionale parameter + # TODO besser strukturieren und vervollständigen + mqtt.host: str? + mqtt.port: int? + mqtt.user: str? + mqtt.passwd: password? + ha.auto_conf_prefix: str? # suggeriert optionale konfigurationsoption -> es darf jedoch kein default unter "options" angegeben werden + ha.discovery_prefix: str? # dito + ha.entity_prefix: str? #dito + ha.proxy_node_id: str? #dito + ha.proxy_unique_id: str? #dito + tsun.host: str? + solarman.host: str? + gen3plus.at_acl.tsun.allow: + - str + gen3plus.at_acl.tsun.block: + - str? + gen3plus.at_acl.mqtt.allow: + - str + gen3plus.at_acl.mqtt.block: + - str? + +# set default options for mandatory parameters +# for optional parameters do not define any default value in the options dictionary. +# If any default value is given, the option becomes a required value. +options: + inverters: + - serial: R17E760702080400 + node_id: PV-Garage + suggested_area: Garage + modbus_polling: false + # strings: + # - string: PV1 + # type: SF-M18/144550 + # manufacturer: Shinefar + # - string: PV2 + # type: SF-M18/144550 + # manufacturer: Shinefar + pv1.manufacturer: Shinefar + pv1.type: SF-M18/144550 + pv2.manufacturer: Shinefar + pv2.type: SF-M18/144550 + tsun.enabled: true # set default + solarman.enabled: true # set default + inverters.allow_all: false # set default + gen3plus.at_acl.tsun.allow: ["AT+Z", "AT+UPURL", "AT+SUPDATE"] + gen3plus.at_acl.mqtt.allow: ["AT+"] \ No newline at end of file diff --git a/ha_addon/icon.png b/ha_addon/icon.png new file mode 100644 index 0000000..f11771f Binary files /dev/null and b/ha_addon/icon.png differ diff --git a/ha_addon/logo.png b/ha_addon/logo.png new file mode 100644 index 0000000..f11771f Binary files /dev/null and b/ha_addon/logo.png differ diff --git a/ha_addon/translations/en.yaml b/ha_addon/translations/en.yaml new file mode 100755 index 0000000..9331e48 --- /dev/null +++ b/ha_addon/translations/en.yaml @@ -0,0 +1,85 @@ +--- +configuration: + inverters: + name: Inverters + description: >+ + For each GEN3 inverter, the serial number of the inverter must be mapped to an MQTT + definition. To do this, the corresponding configuration block is started with + <16-digit serial number> so that all subsequent parameters are assigned + to this inverter. Further inverter-specific parameters (e.g. polling mode) can be set + in the configuration block + + The serial numbers of all GEN3 inverters start with `R17`! + + monitor_sn # The GEN3PLUS "Monitoring SN:" + node_id # MQTT replacement for inverters serial number + suggested_area # suggested installation area for home-assistant + modbus_polling # Disable optional MODBUS polling + pv1 # Optional, PV module descr + pv2 # Optional, PV module descr + + tsun.enabled: + name: Connection to TSUN Cloud - for GEN3 inverter only + description: >- + switch on/off connection to the TSUN cloud + This connection is only required if you want send data to the TSUN cloud + eg. to use the TSUN APPs or receive firmware updates. + + on - normal proxy operation + off - The Inverter become isolated from Internet + solarman.enabled: + name: Connection to Solarman Cloud - for GEN3PLUS inverter only + description: >- + switch on/off connection to the Solarman cloud + This connection is only required if you want send data to the Solarman cloud + eg. to use the Solarman APPs or receive firmware updates. + + on - normal proxy operation + off - The Inverter become isolated from Internet + inverters.allow_all: + name: Allow all connections from all inverters + description: >- + The proxy only usually accepts connections from known inverters. + Switch on for test purposes and unknown serial numbers. + mqtt.host: + name: MQTT Broker Host + description: >- + Hostname or IP address of the MQTT broker. if not set, the addon will try to connect to the Home Assistant MQTT broker + mqtt.port: + name: MQTT Broker Port + description: >- + Port of the MQTT broker. if not set, the addon will try to connect to the Home Assistant MQTT broker + mqtt.user: + name: MQTT Broker User + description: >- + User for the MQTT broker. if not set, the addon will try to connect to the Home Assistant MQTT broker + mqtt.passwd: + name: MQTT Broker Password + description: >- + Password for the MQTT broker. if not set, the addon will try to connect to the Home Assistant MQTT broker + ha.auto_conf_prefix: + name: MQTT prefix for subscribing for homeassistant status updates + ha.discovery_prefix: + name: MQTT prefix for discovery topic + ha.entity_prefix: + name: MQTT topic prefix for publishing inverter values + ha.proxy_node_id: + name: MQTT node id, for the proxy_node_id + ha.proxy_unique_id: + name: MQTT unique id, to identify a proxy instance + tsun.host: + name: TSUN Cloud Host + description: >- + Hostname or IP address of the TSUN cloud. if not set, the addon will try to connect to the cloud default + on logger.talent-monitoring.com + solarman.host: + name: Solarman Cloud Host + description: >- + Hostname or IP address of the Solarman cloud. if not set, the addon will try to connect to the cloud default + on iot.talent-monitoring.com + + +network: + 8127/tcp: x... + 5005/tcp: listening Port for TSUN GEN3 Devices + 10000/tcp: listening Port for TSUN GEN3PLUS Devices diff --git a/repository.yaml b/repository.yaml new file mode 100644 index 0000000..597adb8 --- /dev/null +++ b/repository.yaml @@ -0,0 +1,3 @@ +name: TSUN-Proxy +url: https://github.com/s-allius/ha_addons +maintainer: Stefan Allius \ No newline at end of file