* update changelog * add addon-dev target * initial version * use prebuild docker image * initial version for multi arch images * fix missing label latest * create log and config folder first. * clean up and translate to english * set labels with docker bake * add addon-debug and addon-dev targets * pass version number to proxy at runtime * add two more callbacks * get addon version from app * deploy rc addon container to ghcr * move ha_addon test into subdir * fix crash on container restart - mkdir -p returns no error even if the director exists * prepation for unit testing - move script into a method * added further config to schema * typo fixed * added monitor_sn + PV-strings 3-6 to create toml * added options.json for testing * prepare pytest and coverage for addons * fix missing values in resulting config.toml - define mqtt default values - convert filter configuration * first running unittest for addons * add ha_addons * increase test coverage * test empty options.json file for HA AddOn * fix pytest call in terminal * improve test coverage * remove uneeded options.json * move config.py into subdir cnf --------- Co-authored-by: Michael Metz <michael.metz@siemens.com>
103 lines
3.0 KiB
YAML
Executable File
103 lines
3.0 KiB
YAML
Executable File
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
|
|
- i386
|
|
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+"] |