From 99891165a96264fc21e86114c2fe036ca67eacd1 Mon Sep 17 00:00:00 2001 From: Pieter Hollander Date: Thu, 25 Jul 2024 21:18:31 +0200 Subject: [PATCH] first commit --- README.md | 13 ++++++ opendtu-logger/README.md | 98 +++++++++++++++++++++++++++++++++++++++ opendtu-logger/config.yml | 27 +++++++++++ repository.json | 5 ++ 4 files changed, 143 insertions(+) create mode 100644 README.md create mode 100644 opendtu-logger/README.md create mode 100644 opendtu-logger/config.yml create mode 100644 repository.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..7dcca19 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# Pieter's Home Assistant energy management add-ons + +Welcome to this repository for open source energy management add-ons. + +Add this repository to the Home Assistant add-on store using the following steps + +1. Go to Settings -> Add-ons -> Add-on store +2. Click the three dots in the top-right corner, select 'Repositories'. +3. Add . +4. Done + +Best regards, +Pieter diff --git a/opendtu-logger/README.md b/opendtu-logger/README.md new file mode 100644 index 0000000..777423c --- /dev/null +++ b/opendtu-logger/README.md @@ -0,0 +1,98 @@ +# OpenDTU Logger Home Assistant add-on + +OpenDTU logger adds detailed, long-term storage and visualisation of Hoymiles solar inverter metrics monitored with OpenDTU. + +![PV dashboard in dark mode](https://git.hollander.online/energy/opendtu-logger/raw/commit/a3debb78665641fe7101555d85df89eb0f0d2a79/screenshots/PV-overview-dark-mode.png) + +## Installation instructions + +These instructions contain 3 steps: + +1. This add-on requires a PostgreSQL database, optionally with TimescaleDB support. In this example, we'll Expaso's TimescaleDB add-on in order to store data. +2. Then, we install OpenDTU Logger to connect to OpenDTU and record inverter data into the database. +3. Finally, we setup Grafana to visualise the data recorded by OpenDTU Logger. + +### Install Expaso's TimescaleDB add-on + +Install Expaso's TimescaleDB add-on by adding to the add-on store and installing TimescaleDB. + +After installing TimescaleDB, go to Configuration. Click the three dots in the top-right corner and select "Edit in YAML". Then, make the following changes: + +- Add opendtu_logger to `databases` and `timescaledb_enabled` like so: + +```yml +databases: + - homeassistant + - opendtu_logger +timescale_enabled: + - homeassistant + - opendtu_logger +timescaledb: + telemetry: basic + maxmemory: 512MB + maxcpus: 4 +max_connections: 50 +system_packages: [] +init_commands: [] +retry_upgrade: false +``` + +Save the configuration, go to the "Info" tab and start TimescaleDB. + +### Setting up OpenDTU Logger + +With the database initialised, we can now setup OpenDTU Logger. Add the [add-on repository](https://git.hollander.online/energy/home-assistant-addons) using the [instructions](https://git.hollander.online/energy/home-assistant-addons) provided. Then, click "Install" to install this add-on. Go to "Configuration". + +- If you're using Expaso's TimescaleDB add-on, the `db` setting will **not** require any changes. +- **In the `opendtu` field, enter the *IP address* or *hostname* of your OpenDTU.** E.g.: `192.168.1.5` or `opendtu.local`. +- In `tz`, enter your timezone. The default is "Europe/Amsterdam". +- Optionally, if you don't want to use TimescaleDB, disable `timescaledb`. + +Save the configuration, go to the "Info" tab and start OpenDTU Logger. + +Check the "Log" page. If the setup is succesfull, it should contain a mesasge stating: `OpenDTU Logger has been successfully initialised. Starting data recording...`. + +### Setting up Grafana + +From the Home Assistant Community Add-ons repository, install Grafana. Click "Start" to start the add-on and then click "Open Web UI". + +- In the top-left corner, click the three bars (open menu) -> Connections. +- Using the search box, enter `PostgreSQL`. Click the resulting "PostgreSQL". +- In the top-right corner, click "Add new data source" +- Use the following settings + - Name: `opendtu_logger` + - Host URL: `77b2833f-timescaledb` + - Database name: `opendtu_logger` + - Username: `postgres` + - Password: `homeassistant` + - Version: `16` or the closest version to it. + - TimescaleDB: Toggle the switch to enable TimescaleDB support. +- Click "Save and Test". A "Database Connection OK" message should appear. +- In the top-right corner, click the `+` sign, "Import dashboard". +- Go to + - In this folder, a number of sample dashboards is available. + - For a complete overview of all collected data + - For English, use `PV.json`. + - For Dutch, use `Zonnepanelen.json`. + - Click the dashboard you want, and then "Raw". + - Copy and paste the text into the "Import via dashboard JSON model" box. + - Click "Load". + - In the `energy` field, select `opendtu_logger` as the data source. + - Click import. You should now be able to view the data, collected by OpenDTU Logger and stored into TimescaleDB. + - Feel free to try out the other dashboards as well. + +## Configuring OpenDTU + +In order for OpenDTU Logger to work properly, it is required to ensure the following OpenDTU settings are used. + +- Within OpenDTU, go to `Settings` -> `Inverter settings` (). +- For each inverter in the inverter list, click on the pencil (Edit inverter) and go to `Advanced`. +- Enable `Zero daily yield at midnight` and `Clear Eventlog at midnight`. +- Click `Save` +- Repeat this procedure for every inverter. + +By default, OpenDTU sends data every 5 seconds. This can be adjusted by changing the "Poll interval" setting in <. + +## Security notice + +Using the aforementioned steps, you should now have a working OpenDTU Logger setup. However, it is important to keep your data safe. [Expaso recommends](https://github.com/Expaso/hassos-addons/tree/master/timescaledb#usage) changing the default postgres `homeassistant` password. I recommend following their recommendation and also installing the pgAdmin4 add-on using the [instructions](https://github.com/Expaso/hassos-addons/tree/master/pgadmin4) they provide. In case you're doing this after setting up OpenDTU Logger, remember to also update this password in the OpenDTU Logger config and the Grafana data source connection settings. diff --git a/opendtu-logger/config.yml b/opendtu-logger/config.yml new file mode 100644 index 0000000..c477297 --- /dev/null +++ b/opendtu-logger/config.yml @@ -0,0 +1,27 @@ +name: OpenDTU Logger +version: "0.0.9" +slug: opendtu_logger +description: "OpenDTU Logger add-on for Home Assistant" +image: "git.hollander.online/energy/opendtu-logger" +restart_policy: + name: always +arch: + - amd64 + - armv7 + - armhf + - aarch64 +startup: services +boot: auto +map: + - ssl + - config:rw +options: + db: "host=77b2833f-timescaledb user=postgres port=5432 password=homeassistant dbname=opendtu_logger sslmode=disable" + opendtu: "192.168.12.79" + timescaledb: "true" + tz: "Europe/Amsterdam" +schema: + db: str + opendtu: str + timescaledb: bool + tz: str \ No newline at end of file diff --git a/repository.json b/repository.json new file mode 100644 index 0000000..9df8c03 --- /dev/null +++ b/repository.json @@ -0,0 +1,5 @@ +{ + "name": "Pieter's Home Assistant add-ons for energy management", + "url": "https://git.hollander.online/energy/home-assistant-addons", + "maintainer": "Pieter Hollander " + } \ No newline at end of file