-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
🎉 Release of add-on Solarflow Control 0.9.0
- Loading branch information
Showing
8 changed files
with
360 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Initial Release of Solarflow-Control Add-On 🎉 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
# Solarflow Control Home Assistant Add-On | ||
|
||
[Solarflow Control][sf-control] is a full local control for Zendure Solarflow Hub components | ||
developed by [Reinhard Weber (Brandstaedter)][reinhard-brandstaedter]. It has the following main | ||
features: | ||
|
||
- Read live telemetry data locally without the Zendure app and cloud | ||
- Update the settings locally without the Zendure app and cloud | ||
- Automatically control the charging/discharging and the power output based on the acutal consumption | ||
|
||
## Prerequisites | ||
|
||
In order to use this addon you need to disconnect your Solarflow Hub from the Zendure cloud and have it | ||
only report to your local MQTT broker. You can disconnect it via the [Solarflow Bluetooth Manager][sf-bt-manager]. | ||
|
||
## Installation | ||
|
||
The installation of this add-on is pretty straightforward and not different in | ||
comparison to installing any other Home Assistant add-on. | ||
|
||
1. Add this repository to have addons by Daniel Figus: | ||
[![Home Assistant with repository URL pre-filled][my-ha-shield]][my-ha-repo] | ||
1. Search for the "Solarflow Control" add-on in the Supervisor add-on store and install it. | ||
1. Go to the configuration tab and configure the mandatory parameters | ||
1. Start the "Solarflow Control" add-on. | ||
1. Check the logs of the "Solarflow Control" to see if everything went well. Solarflow Control will | ||
output status messages regularily | ||
|
||
## Changelog & Releases | ||
|
||
This repository keeps a change log using [GitHub's releases][releases] | ||
functionality. | ||
|
||
Releases are based on [Semantic Versioning][semver], and use the format | ||
of `MAJOR.MINOR.PATCH`. In a nutshell, the version will be incremented | ||
based on the following: | ||
|
||
- `MAJOR`: Incompatible or major changes. | ||
- `MINOR`: Backwards-compatible new features and enhancements. | ||
- `PATCH`: Backwards-compatible bugfixes and package updates. | ||
|
||
## Support | ||
|
||
Got questions? | ||
|
||
You have several options to get them answered: | ||
|
||
- The Home Assistant [Community Forum][forum]. | ||
- You could also [open an issue here][issue] GitHub. | ||
|
||
## Authors & contributors | ||
|
||
This repository is owned and maintained by [Daniel Figus][dfigus]. | ||
|
||
This has been possible thanks to the community add-ons initiative by [Frenck][frenck] | ||
|
||
## License | ||
|
||
MIT License | ||
|
||
Copyright (c) 2024 Daniel Figus | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. | ||
|
||
[reinhard-brandstaedter]: https://github.com/reinhard-brandstaedter | ||
[sf-control]: https://github.com/reinhard-brandstaedter/solarflow-control | ||
[sf-bt-manager]: https://github.com/reinhard-brandstaedter/solarflow-bt-manager | ||
[forum]: https://community.home-assistant.io/ | ||
[frenck]: https://github.com/frenck | ||
[dfigus]: https://github.com/dfigus | ||
[my-ha-shield]: https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg | ||
[issue]: https://github.com/dfigus/addon-solarflow-control/issues | ||
[semver]: http://semver.org/spec/v2.0.0.htm | ||
[my-ha-repo]: https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Fdfigus%2Fhassio-addons | ||
[releases]: https://github.com/dfigus/addon-solarflow-control/releases |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Solarflow Control Home Assistant Add-On | ||
|
||
[![Release][release-shield]][release] ![Project Stage][project-stage-shield] ![Project Maintenance][maintenance-shield] | ||
|
||
Local control for Zendure Solarflow Hub. | ||
|
||
## About | ||
|
||
[Solarflow Control][sf-control] is a full local control for Zendure Solarflow Hub components | ||
developed by [Reinhard Weber (Brandstaedter)][reinhard-brandstaedter]. It has the following main | ||
features: | ||
|
||
- Read live telemetry data locally without the Zendure app and cloud | ||
- Update the settings locally without the Zendure app and cloud | ||
- Automatically control the charging/discharging and the power output based on the acutal consumption | ||
|
||
[reinhard-brandstaedter]: https://github.com/reinhard-brandstaedter | ||
[sf-control]: https://github.com/reinhard-brandstaedter/solarflow-control | ||
[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg | ||
[maintenance-shield]: https://img.shields.io/maintenance/yes/2024.svg | ||
[project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg | ||
[release-shield]: https://img.shields.io/badge/version-v0.9.0-blue.svg | ||
[release]: https://github.com/dfigus/addon-solarflow-control/tree/v0.9.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
name: Solarflow Control | ||
version: 0.9.0 | ||
slug: solarflow-control | ||
description: Solarflow Control | ||
url: https://github.com/dfigus/addon-solarflow-control | ||
init: false | ||
panel_icon: mdi:solar-power-variant | ||
arch: | ||
- aarch64 | ||
- amd64 | ||
- armhf | ||
- armv7 | ||
- i386 | ||
map: | ||
- addon_config:rw | ||
- share:rw | ||
options: | ||
dtu_type: OpenDTU | ||
smartmeter_type: Smartmeter | ||
full_charge_interval: 32 | ||
control_bypass: true | ||
mqtt_host: '' | ||
mqtt_user: '' | ||
mqtt_password: '' | ||
dtu_base_topic: solar | ||
inverter_max_power: 2000 | ||
opendtu_inverter_serial: '' | ||
ahoydtu_inverter_id: '0' | ||
sm_generic_base_topic: '' | ||
sm_generic_cur_accessor: '' | ||
sm_generic_total_accessor: '' | ||
sm_rapid_change_diff: 500 | ||
sm_zero_offset: 20 | ||
sm_scaling_factor: 1 | ||
sm_shelly3em_base_topic: shellies/shellyem3/ | ||
min_charge_power: 125 | ||
max_discharge_power: 150 | ||
limit_inverter: true | ||
max_inverter_limit: 800 | ||
min_inverter_limit: 10 | ||
discharge_during_daytime: false | ||
sunrise_offset: 60 | ||
sunset_offset: 60 | ||
schema: | ||
dtu_type: list(OpenDTU|AhoyDTU) | ||
smartmeter_type: list(Smartmeter|PowerOpti|ShellyEM3) | ||
product_id: str | ||
device_id: str | ||
full_charge_interval: int | ||
control_bypass: bool | ||
mqtt_host: str | ||
mqtt_port: port? | ||
mqtt_user: str? | ||
mqtt_password: password? | ||
dtu_base_topic: str | ||
sf_inverter_channels: str | ||
inverter_max_power: int? | ||
opendtu_inverter_serial: str? | ||
ahoydtu_inverter_id: int? | ||
sm_rapid_change_diff: int? | ||
sm_zero_offset: int? | ||
sm_scaling_factor: int? | ||
sm_generic_base_topic: str? | ||
sm_generic_cur_accessor: str? | ||
sm_generic_total_accessor: str? | ||
sm_poweropti_user: str? | ||
sm_poweropti_password: password? | ||
sm_shelly3em_base_topic: str? | ||
min_charge_power: int? | ||
max_discharge_power: int? | ||
limit_inverter: bool? | ||
max_inverter_limit: int? | ||
min_inverter_limit: int? | ||
discharge_during_daytime: bool? | ||
latitude: float? | ||
longitude: float? | ||
sunrise_offset: int? | ||
sunset_offset: int? | ||
image: ghcr.io/dfigus/solarflow-control/{arch} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
--- | ||
configuration: | ||
dtu_type: | ||
name: DTU Type | ||
description: >- | ||
Type of the DTU. Either OpenDTU or AhoyDTU. | ||
smartmeter_type: | ||
name: Smartmeter Type | ||
description: >- | ||
Type of the Smartmeter. Either Smartmeter (generic, Tasmota, Hichi, etc.), PowerOpti or Shelly 3EM. | ||
product_id: | ||
name: Solarflow Product ID | ||
description: >- | ||
The product ID specifies the model of Solarflow hub to use: Hub-1200: "73bkTV" Hub-2000: "A8yh63" | ||
device_id: | ||
name: Solarflow Device ID | ||
description: >- | ||
The device ID of your Solarflow Hub (typically 8 characters). | ||
full_charge_interval: | ||
name: Full Charge Interval | ||
description: >- | ||
The time interval in hours that solarflow-control will try to ensure a full battery (i.e. no discharging if | ||
battery hasn't been at 100% for this long) | ||
control_bypass: | ||
name: Control Bypass | ||
description: >- | ||
Let solarflow-control take over enabling/disabling the bypass of the hub (direct solarinput to hub output when | ||
battery is full) this overrides the automatic switching by the hub's firmware, which is sometimes a bit wierd. | ||
mqtt_host: | ||
name: MQTT Host | ||
description: >- | ||
The hostname or IP address of your MQTT broker. | ||
mqtt_port: | ||
name: MQTT Port | ||
description: >- | ||
The port of your MQTT broker. | ||
mqtt_user: | ||
name: MQTT User | ||
description: >- | ||
The username for your MQTT broker. | ||
mqtt_password: | ||
name: MQTT Password | ||
description: >- | ||
The password for your MQTT broker. | ||
dtu_base_topic: | ||
name: DTU Base Topic | ||
description: >- | ||
The MQTT base topic your OpenDTU/AhoyDTU reports to. | ||
sf_inverter_channels: | ||
name: Solarflow Inverter Channels | ||
description: >- | ||
List of indices of the inverter channels/ports (as reported in the DTU) that the Solarflow Hub is connected to | ||
typically the index starts at 1 as 0 is the output channel of the inverter e.g. 1,3 or 3 or [1,3] | ||
inverter_max_power: | ||
name: Inverter Maximum Power | ||
description: >- | ||
The maximum output power of your inverter, used to calculate correct absolute values. | ||
opendtu_inverter_serial: | ||
name: OpenDTU Inverter Serial | ||
description: >- | ||
The serial number of the inverter connected to the OpenDTU. | ||
ahoydtu_inverter_id: | ||
name: AhoyDTU Inverter ID | ||
description: >- | ||
The ID of the inverter connected to the AhoyDTU. | ||
sm_rapid_change_diff: | ||
name: Smartmeter Rapid Change Difference | ||
description: >- | ||
The rapid change difference defines the difference in W that has to be detected on the smartmeter readings to | ||
consider it a fast drop or rise in demand. This helps a faster adjustment in switching various limits e.g. | ||
when a water boiler is turned on/off | ||
sm_zero_offset: | ||
name: Smartmeter Zero Offset | ||
description: >- | ||
The zero offset defines the minimum power that is considered as a load. This is used to prevent the inverter | ||
from switching on/off when the smartmeter is reading a small amount of power (e.g. standby power) | ||
sm_generic_base_topic: | ||
name: Generic Smartmeter Base Topic | ||
description: >- | ||
The MQTT base topic your generic smartmeter, Hichi, Tasmota, etc. reports to. | ||
sm_generic_cur_accessor: | ||
name: Generic Smartmeter Current Accessor | ||
description: >- | ||
The JSON accessor to the current power reading of your generic smartmeter. If Smartmeter reader posts | ||
{ "Power": {"Power_curr": 120, "Total_in": 12345.6} } then the accessor would be Power.Power_curr | ||
sm_generic_total_accessor: | ||
name: Generic Smartmeter Total Accessor | ||
description: >- | ||
The JSON accessor to the total power reading of your generic smartmeter. If Smartmeter reader posts | ||
{ "Power": {"Power_curr": 120, "Total_in": 12345.6} } then the accessor would be Power.Total_in | ||
sm_poweropti_user: | ||
name: PowerOpti User | ||
description: >- | ||
The username for your Powerfox API of your PowerOpti smartmeter (internet connection required). | ||
sm_poweropti_password: | ||
name: PowerOpti Password | ||
description: >- | ||
The password for your Powerfox API of your PowerOpti smartmeter (internet connection required). | ||
sm_shelly3em_base_topic: | ||
name: Shelly 3EM Base Topic | ||
description: >- | ||
The MQTT base topic your Shelly 3EM reports to (defaults to shellies/shellyem3/). Note: MQTT is disabled by | ||
default on the Shelly 3EM and needs to be enabled first. | ||
min_charge_power: | ||
name: Minimum Charge Power | ||
description: >- | ||
The minimum power that is required to start charging the battery. | ||
max_discharge_power: | ||
name: Maximum Discharge Power | ||
description: >- | ||
The maximum power that is allowed to be discharged from the battery. | ||
limit_inverter: | ||
name: Limit Inverter | ||
description: >- | ||
Limit the output to the inverter. | ||
max_inverter_limit: | ||
name: Maximum Inverter Limit | ||
description: >- | ||
The maximum power that is sent to the inverter. | ||
min_inverter_limit: | ||
name: Minimum Inverter Limit | ||
description: >- | ||
The minimum power that is sent to the inverter. | ||
discharge_during_daytime: | ||
name: Discharge During Daytime | ||
description: >- | ||
Allow discharging the battery during daytime. | ||
latitude: | ||
name: Latitude | ||
description: >- | ||
The latitude of your location. Used to calculate sunrise and sunset times. | ||
longitude: | ||
name: Longitude | ||
description: >- | ||
The longitude of your location. Used to calculate sunrise and sunset times. | ||
sunrise_offset: | ||
name: Sunrise Offset | ||
description: >- | ||
The offset in minutes before sunrise. Can be used to set the duration of what is considered "night". | ||
sunset_offset: | ||
name: Sunset Offset | ||
description: >- | ||
The offset in minutes after sunset. Can be used to set the duration of what is considered "night". |