-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d77ae7e
commit 5d3d8f9
Showing
9 changed files
with
126 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# Changelog | ||
|
||
All notable changes to this project will be documented in this file. | ||
|
||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). | ||
|
||
## [v0.1] | ||
Initial release |
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,16 @@ | ||
ARG BUILD_FROM | ||
|
||
# Use pre-built image to copy the binary from | ||
FROM dennisosrm/hms-mqtt-publisher:v0.1 AS builder | ||
|
||
FROM $BUILD_FROM | ||
|
||
# Copy the compiled binary from the builder stage | ||
COPY --from=builder /usr/local/bin/hms-mqtt-publish /usr/local/bin/hms-mqtt-publish | ||
|
||
# Copy the run script into the container | ||
COPY run.sh /run.sh | ||
RUN chmod a+x /run.sh | ||
|
||
# When the container starts, run the script | ||
CMD [ "/run.sh" ] |
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,31 @@ | ||
# Home Assistant Add-on | ||
|
||
This tool can directly run inside Home Assistant OS as an addon. To get started, add the URL of this repository to the add-on store in Home Assistant and install the add-on. Alternatively, you can also run it stand-alone on any machine that supports rust or docker (see section below). | ||
|
||
## Configuration | ||
|
||
To set up the add-on, fill in the following configuration parameters: | ||
|
||
- `inverter_host`: The hostname or IP address of your inverter. | ||
- `mqtt_broker_host`: The hostname or IP address of your MQTT broker. | ||
- `mqtt_username`: The username for your MQTT broker. | ||
- `mqtt_password`: The password for your MQTT broker. Keep this secret! | ||
- `mqtt_port`: The port of your MQTT broker (default is 1883 for unencrypted MQTT). | ||
|
||
## Example configuration | ||
|
||
```yaml | ||
inverter_host: "192.168.1.100" | ||
mqtt_broker_host: "core-mosquitto" | ||
mqtt_username: "yourusername" | ||
mqtt_password: "yourpassword" | ||
mqtt_port: 1883 | ||
``` | ||
## Note of caution | ||
Please note: The tool does not come with any guarantees and if by chance you fry your inverter with a funny series of bits, you are on your own. That being said, no inverters have been harmed during development. | ||
## Known limitations | ||
- One can only fetch updates approximately twice per minute. The inverter firmware seems to implement a mandatory wait period of a little more than 30 seconds. If one makes a request within 30 seconds of the previous one, then the inverter will reply with the previous reading and restart the countdown. It will also not send updated values to S-Miles Cloud if this happens. | ||
- The tools was developed for (and with an) HMS-800W-T2. It may work with the other inverters from the series, but is untested at the time of writing | ||
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,5 @@ | ||
--- | ||
build_from: | ||
aarch64: ghcr.io/hassio-addons/debian-base:7.2.0 | ||
amd64: ghcr.io/hassio-addons/debian-base:7.2.0 | ||
armv7: ghcr.io/hassio-addons/debian-base:7.2.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,25 @@ | ||
--- | ||
name: Hoymiles HMS Wifi Addon | ||
version: '0.1' | ||
slug: ha-hoymiles-wifi-addon | ||
description: Publishes telemetry information from Hoymiles HMS-XXXXW-T2 micro-inverters to your home assistant MQTT broker | ||
url: https://github.com/dominikandreas/hms-mqtt-publisher/tree/master/ha-hoymiles-wifi-addon | ||
init: false | ||
arch: # List of supported architectures. | ||
- armv7 | ||
- aarch64 | ||
- amd64 | ||
startup: application # When the add-on should start. | ||
boot: auto # Boot options, auto or manual. | ||
options: # Default options value for the add-on. | ||
inverter_host: '' | ||
mqtt_broker_host: '' | ||
mqtt_username: '' | ||
mqtt_password: '' | ||
mqtt_port: 1883 | ||
schema: # Schema validation for the options. | ||
inverter_host: str | ||
mqtt_broker_host: str | ||
mqtt_username: str | ||
mqtt_password: str | ||
mqtt_port: int |
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,36 @@ | ||
#!/usr/bin/with-contenv bashio | ||
|
||
# Enable strict mode for bash (exit on error, error on undefined variable, error if any pipeline element fails) | ||
set -euo pipefail | ||
|
||
# Fetch values from the add-on configuration by extracting it from /data/options.json | ||
INVERTER_HOST=$(bashio::config 'inverter_host') | ||
MQTT_BROKER_HOST=$(bashio::config 'mqtt_broker_host') | ||
MQTT_USERNAME=$(bashio::config 'mqtt_username') | ||
MQTT_PASSWORD=$(bashio::config 'mqtt_password') | ||
MQTT_PORT=$(bashio::config 'mqtt_port') | ||
|
||
|
||
# Check if the required configs are provided | ||
if [[ -z "$INVERTER_HOST" ]]; then | ||
echo "The inverter_host is not configured." | ||
exit 1 | ||
fi | ||
|
||
if [[ -z "$MQTT_BROKER_HOST" ]]; then | ||
echo "The mqtt_broker_host is not configured." | ||
exit 1 | ||
fi | ||
|
||
if [[ -z "$MQTT_USERNAME" ]]; then | ||
echo "The mqtt_username is not configured." | ||
exit 1 | ||
fi | ||
|
||
if [[ -z "$MQTT_PASSWORD" ]]; then | ||
echo "The mqtt_password is not configured." | ||
exit 1 | ||
fi | ||
|
||
# Execute the application with the configuration | ||
/usr/local/bin/hms-mqtt-publish "$INVERTER_HOST" "$MQTT_BROKER_HOST" "$MQTT_USERNAME" "$MQTT_PASSWORD" "$MQTT_PORT" |
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,5 @@ | ||
{ | ||
"name": "HA Hoymiles Wifi Addon", | ||
"url": "https://github.com/dominikandreas/hms-mqtt-publisher", | ||
"maintainer": "Dominik Andreas <13525040+dominikandreas@users.noreply.github.com>" | ||
} |