From dd49f206f6ada6263a74d1c61f6db042e5ecdd15 Mon Sep 17 00:00:00 2001 From: Etienne G Date: Fri, 26 Jan 2024 04:07:41 +0000 Subject: [PATCH] :tada: Release of add-on Grott Beta branch (2.8) 0.1.6 --- README.md | 23 ++++++ grott-beta/CHANGELOG.md | 11 +++ grott-beta/DOCS.md | 130 ++++++++++++++++++++++++++++++++ grott-beta/README.md | 22 ++++++ grott-beta/config.yaml | 86 +++++++++++++++++++++ grott-beta/icon.png | Bin 0 -> 23261 bytes grott-beta/logo.png | Bin 0 -> 16844 bytes grott-beta/translations/en.yaml | 38 ++++++++++ 8 files changed, 310 insertions(+) create mode 100644 grott-beta/CHANGELOG.md create mode 100644 grott-beta/DOCS.md create mode 100644 grott-beta/README.md create mode 100644 grott-beta/config.yaml create mode 100644 grott-beta/icon.png create mode 100644 grott-beta/logo.png create mode 100644 grott-beta/translations/en.yaml diff --git a/README.md b/README.md index ff9bd80..7426394 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,19 @@ This addon allow you to have all the entities automatically created. ## Add-ons provided by this repository +### ✓ [Grott Beta branch (2.8)][addon-grott-beta] + +![Latest Version][grott-beta-version-shield] +![Supports armhf Architecture][grott-beta-armhf-shield] +![Supports armv7 Architecture][grott-beta-armv7-shield] +![Supports aarch64 Architecture][grott-beta-aarch64-shield] +![Supports amd64 Architecture][grott-beta-amd64-shield] +![Supports i386 Architecture][grott-beta-i386-shield] + +The Growatt inverter monitor with current HA plugin integrated + +[:books: Grott Beta branch (2.8) add-on documentation][addon-doc-grott-beta] + ### ✓ [Grott stable branch (2.7)][addon-grott] ![Latest Version][grott-version-shield] @@ -39,12 +52,22 @@ You could also open an issue here on GitHub. Note, we use a separate GitHub repository for each add-on. Please ensure you are creating the issue on the correct GitHub repository matching the add-on. +- [Open an issue for the add-on: Grott Beta branch (2.8)][grott-beta-issue] - [Open an issue for the add-on: Grott stable branch (2.7)][grott-issue] For a general repository issue or add-on ideas [open an issue here][issue] +[addon-grott-beta]: https://github.com/egguy/addon-grott-beta/tree/v0.1.6 +[addon-doc-grott-beta]: https://github.com/egguy/addon-grott-beta/blob/v0.1.6/README.md +[grott-beta-issue]: https://github.com/egguy/addon-grott-beta/issues +[grott-beta-version-shield]: https://img.shields.io/badge/version-v0.1.6-blue.svg +[grott-beta-aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg +[grott-beta-amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg +[grott-beta-armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg +[grott-beta-armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg +[grott-beta-i386-shield]: https://img.shields.io/badge/i386-yes-green.svg [addon-grott]: https://github.com/egguy/addon-grott/tree/v0.1.7 [addon-doc-grott]: https://github.com/egguy/addon-grott/blob/v0.1.7/README.md [grott-issue]: https://github.com/egguy/addon-grott/issues diff --git a/grott-beta/CHANGELOG.md b/grott-beta/CHANGELOG.md new file mode 100644 index 0000000..e72ec96 --- /dev/null +++ b/grott-beta/CHANGELOG.md @@ -0,0 +1,11 @@ +## What’s changed +## 🚀 Enhancements + +- Add the support for creating a versioned release @egguy (#19) +- Use [Grott 2.8.3](https://github.com/johanmeijer/grott/commit/c97bd8ca8c6b8dd778cd3a089711703e0a60bd7e) + +## ⬆️ Dependency updates + +- ⬆️ Update Add-on base image to v14.3.3 @renovate (#17) +- ⬆️ Update Add-on base image to v15 (major) @renovate (#18) +- ⬆️ Update peter-evans/repository-dispatch action to v3 @renovate (#20) diff --git a/grott-beta/DOCS.md b/grott-beta/DOCS.md new file mode 100644 index 0000000..cc124cb --- /dev/null +++ b/grott-beta/DOCS.md @@ -0,0 +1,130 @@ +# Grott - Home Assistant native MQTT integration + + + + + +- [Grott - Home Assistant native MQTT integration](#grott---home-assistant-native-mqtt-integration) + - [Requirements](#requirements) + - [Configuration of the Wi-Fi logger](#configuration-of-the-wi-fi-logger) + - [Configuration](#configuration) + - [Specific inverter configuration](#specific-inverter-configuration) + - [Multiple inverters configuration](#multiple-inverters-configuration) + - [External MQTT broker](#external-mqtt-broker) + - [Compatibility with homeassistant-grott](#compatibility-with-homeassistant-grott) + - [Configuration of grott](#configuration-of-grott) + - [PVOuput](#pvouput) + + + +## Requirements + +- A MQTT broker (e.g. the Mosquitto broker add-on) + - If you don't have an MQTT broker yet; in Home Assistant go to **Settings → Add-ons → Add-on store** and install the **Mosquitto broker** add-on. +- A Growatt inverter with a Wi-Fi module + +## Configuration of the Wi-Fi logger + +The IP to use is the IPv4 of home assistant. You can't use the DNS of home assistant. You need to use the IPv4. + +You can find this information in: **settings → system → network**, on **Configure network interfaces** click on the three dots and choose **IP Information**. You will see the IPv4 address. + +The IP address to use is the field **IP Address**. You need to remove the /XX at the end of the IP address. e.g.: **IP Address: 192.168.20.2/24** -> IP address to use: **192.168.20.2** + +Here some resources to configure your Wi-Fi logger: + +- [Rerouting Growatt Wi-Fi TCPIP data via your Grott Server](https://github.com/johanmeijer/grott/wiki/Rerouting-Growatt-Wifi-TCPIP-data-via-your-Grott-Server) +- [Muppet3000 guide to reconfigure the stick](https://github.com/muppet3000/homeassistant-grott/blob/main/docs/setup/datalogger.md) + +## Configuration + +If you do a change of configuration. It is important to save and then restart the add-on. + +### Specific inverter configuration + +If you have multiple inverters, please refer to how to configure them in this documentation: [Multiple inverters configuration](#multiple-inverters-configuration) + +In the case you have one of the listed inverter types, you need a special configuration: + +- SPH + - SPH6000, SPH3000... +- SPF + - SPF5000, SPF3000... +- TL3 + - TL3-X... +- MAX + - MAX 100-150KTL3-X... + +The support for these inverters is available in grott 2.8 + +- SPA + - SPA 4000-10000TL3 +- MIN + - MIN 2500-6000TL + +The setting to change is inverter type. You need to put the 3 letters of the inverter type in the configuration. + +e.g: + +- SPH6000 -> SPH +- SPF5000 -> SPF +- TL3-X -> TL3 +- MAX 100-150KTL3-X -> MAX +- SPA 4000-10000TL3 -> SPA +- MIN 2500-6000TL -> MIN + +### Multiple inverters configuration + +In the case of multiple inverters, you need to configure the inverter details in the add-on configuration. If you have only one inverter, you can leave the inverter details empty. Use the inverter type as described in the [Specific inverter configuration](#specific-inverter-configuration) section. + +You will have to get the serial number of the inverter. To achieve this, you can run grott in verbose mode and check the logs. You will see the serial number of the inverter in the logs. + +You can keep the default value for `invertype`, it will override it. + +The format is e.g.: + +```json +{ "SERIAL": "TYPE", "SERIAL": "TYPE" } +``` + +It is important to respect the quotes and the comma to separate the inverters. + +e.g.: + +```json +{ "NWO00415E3": "SPH", "DFO1231952": "MAX" } +``` + +### External MQTT broker + +If you are using an external MQTT broker, you need to configure the MQTT broker details in the add-on configuration. If you are using the Mosquitto broker add-onn, you can leave the MQTT broker details empty. + +1. Click on **Configuration** + **If you are not using the Mosquitto broker add-on** fill in your MQTT details (leave empty when using the Mosquitto broker add-on). The format is e.g.:
+ + ```yaml + host: + port: 1883 + user: my_user + password: my_password + ``` + +### Compatibility with homeassistant-grott + +Muppet3000 has created a custom component for Home Assistant. This component is called [homeassistant-grott](https://github.com/muppet3000/homeassistant-grott). It is compatible with this add-on. + +You can use the add-on and the component at the same time. This will make the deployment of grott and configuration a bit easier. + +You can activate the compatibility mode by checking: **Enable grott MQTT** in the configuration, and then follow the instruction to install and activate the extension. + +It is recommended to deactivate the **Home Assistant plugin** in the configuration. This can lead to duplicate sensors. + +## Configuration of grott + +The add-on creates a folder in home assistant. You can find it in the `/config/grott` folder of your home assistant instance. + +You can create/modify the `grott.ini` using the file editor add-on or VS Code add-on. This allows you to add pvoutput support or to add a custom JSON layout. + +### PVOuput + +[How to configure PVOutput](https://github.com/johanmeijer/grott/wiki/PVOutput.org-support) diff --git a/grott-beta/README.md b/grott-beta/README.md new file mode 100644 index 0000000..26bc90c --- /dev/null +++ b/grott-beta/README.md @@ -0,0 +1,22 @@ +# Grott - Home Assistant native MQTT integration + +![Release][release-shield]][release] ![Project Stage][project-stage-shield] ![Project Maintenance][maintenance-shield] + +[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/egguy) + +This addon allow you to run a local version of grott with the HA plugin +and auto discovery enabled. + +The data is fowarded to the growatt's server. +The grott server decode them and send them to your HA instance. + +This addon is based on the 2.8 Branch of [grott](https://github.com/johanmeijer/grott) code and current grott_ha extension. + +[:books: Read the full add-on documentation][docs] + + +[docs]: https://github.com/egguy/addon-grott-beta/blob/main/grott-beta/DOCS.md +[maintenance-shield]: https://img.shields.io/maintenance/yes/2023.svg +[project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg +[release-shield]: https://img.shields.io/badge/version-v0.1.6-blue.svg +[release]: https://github.com/egguy/addon-grott-beta/tree/v0.1.6 \ No newline at end of file diff --git a/grott-beta/config.yaml b/grott-beta/config.yaml new file mode 100644 index 0000000..d2f2669 --- /dev/null +++ b/grott-beta/config.yaml @@ -0,0 +1,86 @@ +name: Grott Beta branch (2.8) +version: 0.1.6 +slug: grott-beta +description: The Growatt inverter monitor with current HA plugin integrated +url: https://github.com/egguy/addon-grott-beta +arch: +- armhf +- armv7 +- aarch64 +- amd64 +- i386 +services: +- mqtt:need +init: false +map: +- config:rw +ports: + 5279/tcp: 5279 +ports_description: + 5279/tcp: The port used by grott to receive the data of the logger +options: + data_path: /config/grott + gmode: proxy + grott_mqtt: false + ginvtype: default + ginvtypemap: '' + retain: false + verbose: false + ha_plugin: true + mqtt: {} +schema: + gblockcmd: bool? + gcompat: bool? + gdecrypt: bool? + gextension: bool? + gextname: str? + gextvar: str? + ggrottip: str? + ggrottport: port? + ggrowattip: str? + ggrowattport: port? + gifbucket: str? + gifdbname: str? + gifip: str? + giforg: str? + gifpassword: password? + gifport: port? + giftoken: str? + gifuser: str? + gincludeall: bool? + ginflux: bool? + ginflux2: bool? + ginverterid: str? + ginvtype: str? + ginvtypemap: str? + gminrecl: int? + gmode: str + gmqttauth: bool? + gmqttinverterintopic: bool? + gmqttip: str? + gmqttpassword: password? + gmqttport: str? + gmqtttopic: str? + gmqttuser: str? + gnoipf: bool? + grott_mqtt: bool? + gpvapikey: str? + gpvdisv1: bool? + gpvinverters: int? + gpvoutput: bool? + gpvsystemid: int? + gpvtemp: bool? + gsendbuf: bool? + gtime: str? + gtimezone: str? + gvalueoffset: int? + verbose: bool + retain: bool + ha_plugin: bool + mqtt: + host: str? + port: int? + user: str? + password: str? + data_path: str +image: ghcr.io/egguy/grott-beta/{arch} diff --git a/grott-beta/icon.png b/grott-beta/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b3a89bc4a0af1dcd828a01edc58a31dedbcc4e9e GIT binary patch literal 23261 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∓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 a9te53F0mEuYgd8V1Jcpb#}#SV1^*v`-kHMy literal 0 HcmV?d00001 diff --git a/grott-beta/translations/en.yaml b/grott-beta/translations/en.yaml new file mode 100644 index 0000000..58f3f71 --- /dev/null +++ b/grott-beta/translations/en.yaml @@ -0,0 +1,38 @@ +--- +configuration: + verbose: + name: Verbose mode + description: Enable the verbose mode. Useful for debugging + retain: + name: Activate MQTT retain + description: >- + This allow to keep the values between reboot, prevent showing sensor + values as unknown + gminrecl: + name: Minimum record length + description: The minimum packet length to be treated + grott_mqtt: + name: Enable grott MQTT + description: >- + Allow grott to send MQTT messages. If your are using + the grott_ha extension, you don't need this. + If you are using the grott integration, you need to enable it. + ginvtype: + name: Inverter type + description: >- + For changing the layout used for decoding + (ex: sph, spf or tl3). Keep it on default if using inverter map. + ginvtypemap: + name: Inverter mapping + description: >- + An inverter mapping in the form {"SERIAL": "type"} + e.g.: for an SPH6000 with serial "NWO00415E3" : {"NWO00415E3": "sph"} + ha_plugin: + name: Home Assistant plugin + description: >- + Enable the Home Assistant plugin. + This will send the data to Home Assistant via the grott HA plugin. + Can be disabled if you are using the grott integration. + +network: + 5279/TCP: This is the port used by grott to receive datalogger information.