Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/syssi/esphome-soyosource-gtn-virtual-meter

ESPHome component to simulate the current clamp to control the Soyosource GTN1200 limiter
https://github.com/syssi/esphome-soyosource-gtn-virtual-meter

esphome esphome-component gtn1200 gtn1200w hacktoberfest rs485-limiter soyosource wifi-version

Last synced: 4 days ago
JSON representation

ESPHome component to simulate the current clamp to control the Soyosource GTN1200 limiter

Awesome Lists containing this project

README

        

# esphome-soyosource-gtn-virtual-meter

![GitHub actions](https://github.com/syssi/esphome-soyosource-gtn-virtual-meter/actions/workflows/ci.yaml/badge.svg)
![GitHub stars](https://img.shields.io/github/stars/syssi/esphome-soyosource-gtn-virtual-meter)
![GitHub forks](https://img.shields.io/github/forks/syssi/esphome-soyosource-gtn-virtual-meter)
![GitHub watchers](https://img.shields.io/github/watchers/syssi/esphome-soyosource-gtn-virtual-meter)
[!["Buy Me A Coffee"](https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg)](https://www.buymeacoffee.com/syssi)

ESPHome component to simulate the current clamp to control the Soyosource GTN1200 limiter

![Lovelace entities card](lovelace-entities-card.png "lovelace entities card")

## Supported devices

* GTN-1000LIM24, GTN-1000LIM36, GTN-1000LIM48, GTN-1000LIM72, GTN-1000LIM96
* GTN-1200LIM48, GTN-1200LIM72, GTN-1200LIM96
* GTN-1000LIM24W, GTN-1000LIM36W, GTN-1000LIM48W, GTN-1000LIM72W, GTN-1000LIM96W
* GTN-1200LIM48W, GTN-1200LIM72W, GTN-1200LIM96W

It looks like there is no GTW (waterproof) version of the device with limiter / RS485 support.

## Supported setups

| Configuration example | Description |
|----------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------|
| [esp32-example.yaml](esp32-example.yaml) | Monitor[^1] the inverter and control the power output on demand **both** via RS485 using a ESP32 |
| [esp8266-example.yaml](esp8266-example.yaml) | Monitor[^1] the inverter and control the power output on demand **both** via RS485 using a ESP8266 |
| [esp32-limiter-example.yaml](esp32-limiter-example.yaml) | Control the power output only on demand via RS485 using a ESP32 |
| [esp8266-limiter-example.yaml](esp8266-limiter-example.yaml) | Control the power output only on demand via RS485 using a ESP8266 |
| [esp8266-display-display-version-example.yaml](esp8266-display-display-version-example.yaml) | Monitor and control the inverter (Display version) using the **internal display port** |
| [esp8266-display-display-version-limiter-example.yaml](esp8266-display-display-version-limiter-example.yaml) | Monitor and control the inverter (Display version) using the **internal display port** and control the power output on demand via RS485 |
| [esp8266-display-wifi-version-example.yaml](esp8266-display-wifi-version-example.yaml) | Monitor and control the inverter (WiFi version) using the **display port** |
| [esp8266-display-wifi-version-limiter-example.yaml](esp8266-display-wifi-version-limiter-example.yaml) | Monitor and control the inverter (WiFi version) using the **display port** and control the power output on demand via RS485 |
| [esp8266-wifi-dongle-example.yaml](esp8266-wifi-dongle-example.yaml) | Monitor and control the inverter using the **OEM WiFi dongle** with a custom firmware |
| [esp8266-wifi-dongle-example-web-only.yaml](esp8266-wifi-dongle-example-web-only.yaml) | Monitor and control the inverter using the **OEM WiFi dongle** with a custom firmware providing a nice **web interface** |
| [esp8266-wifi-dongle-limiter-example.yaml](esp8266-wifi-dongle-limiter-example.yaml) | Monitor and control the inverter using the **OEM WiFi dongle** and control the power output on demand via RS485 |
| [esp32-multiple-uarts-example.yaml](esp32-multiple-uarts-example.yaml) | Monitor[^1] **multiple inverters** and control the power output on demand **both** via RS485 |

## Requirements

* [ESPHome 2024.6.0 or higher](https://github.com/esphome/esphome/releases).
* RS485-to-TTL module (`HW-0519` f.e.)
* Generic ESP32 or ESP8266 board
* Required [Soyosource inverter settings](docs/soyosource-settings.jpg "Soyosource config panel")
* Battery CP Grid `N`
* Bat CP Mode Power `Upper power limit`
* Bat AutoLimit Grid `Y`

## Schematics



```
RS485 UART
┌─────────┐ ┌──────────┐ ┌─────────┐
│ │ │ │<----- RX ----->│ │
│ │<-----B- ---->│ RS485 │<----- TX ----->│ ESP32/ │
│ GTN1200 │<---- A+ ---->│ to TTL │<----- GND ---->│ ESP8266 │
│ │<--- GND ---->│ module │<-- 3.3 VCC --->│ │<-- VCC
│ │ │ │ │ │<-- GND
└─────────┘ └──────────┘ └─────────┘

```

Please make sure to power the RS485 module with 3.3V because it affects the TTL (transistor-transistor logic) voltage between RS485 module and ESP.

## Installation

You can install this component with [ESPHome external components feature](https://esphome.io/components/external_components.html) like this:
```yaml
external_components:
- source: github://syssi/esphome-soyosource-gtn-virtual-meter@main
```

or just use the `esp32-example.yaml` / `esp8266-example.yaml` as proof of concept:

```bash
# Install esphome
pip3 install esphome

# Clone this external component
git clone https://github.com/syssi/esphome-soyosource-gtn-virtual-meter.git
cd esphome-soyosource-gtn-virtual-meter

# Create a secrets.yaml containing some setup specific secrets
cat > secrets.yaml <