Files
gree-controller-ha-addon/gree-controller/DOCS.md
T

6.6 KiB

GREE Controller — Home Assistant add-on

Repozytorium: https://git.linuxiarz.pl/gru/gree-controller-ha-addon/
Obraz OCI: zot.linuxiarz.pl/gree-controller:<version>


PL

Instalacja

W Home Assistant dodaj jako własne repozytorium:

https://git.linuxiarz.pl/gru/gree-controller-ha-addon/

Odśwież sklep dodatków/aplikacji i zainstaluj GREE Controller. config.yaml wskazuje gotowy wieloarchitekturowy obraz OCI; jego tag musi być równy polu version.

Sieć, VLAN i discovery

Topologia Home Assistant OS + GREE Controller + VLAN

Dodatek celowo używa host_network: true, więc korzysta bezpośrednio z interfejsów hosta Home Assistant OS. Nie twórz dla niego Docker macvlan.

Interfejsy hosta:

ha network info

Przykład VLAN 50 na eth0, bez dodatkowej bramy domyślnej:

ha network vlan eth0 50 \
  --ipv4-method static \
  --ipv4-address 192.168.50.2/24 \
  --ipv6-method disabled

Dla jednej sieci GREE ustaw gree_interface na nazwę interfejsu (np. eth0.50) albo jego lokalny IPv4 (np. 192.168.50.2) oraz discovery_broadcast na broadcast tej podsieci, np. 192.168.50.255:7000.

Dla wielu bezpośrednio podłączonych podsieci pozostaw gree_interface puste. Kontroler dobiera lokalny interfejs najlepiej pasujący do IP znanego urządzenia. Discovery nadal wysyła jeden broadcast na skan, więc każdą podsieć/VLAN skanuj osobno, zmieniając discovery_broadcast, albo dodaj znane urządzenia ręcznie.

Broadcast zwykle nie przechodzi przez router. Sterowanie unicast może działać przez routing/firewall, jeżeli UDP jest dozwolone. Gdy urządzenia są w routowanym VLAN-ie, zapewnij hostowi HA interfejs w tej sieci, relay broadcast UDP albo wykonuj discovery lokalnie dla każdej podsieci.

Opcje

Opcja Znaczenie
gree_interface interfejs lub lokalny IPv4; puste = automatyczny dobór trasy
discovery_broadcast cel discovery UDP, np. 192.168.50.255:7000
simulate praca bez fizycznych urządzeń
auto_seed przykładowe urządzenie w pustej bazie symulatora
poll_interval_seconds interwał odpytywania urządzeń
zone_interval_seconds interwał sterowania strefami/termostatem
discovery_timeout_ms timeout discovery UDP
app_token opcjonalna ochrona bezpośredniego Web UI/API
log_level error, warn, info, debug, trace

Home Assistant API

Dodatek korzysta automatycznie z wewnętrznego proxy Home Assistant Core (http://supervisor/core/api/) i tokenu SUPERVISOR_TOKEN przekazywanego przez Supervisor. Gdy token jest wykryty, UI pokazuje automatyczną autoryzację i ukrywa ręczne pola URL/token. Dopiero nieudany Test HA odblokowuje awaryjny ręczny fallback. Token Supervisor jest używany tylko w pamięci procesu i nie jest zapisywany w SQLite.

Dostęp, dane i bezpieczeństwo

Usługa słucha na TCP 8787; ingress Home Assistant przekazuje Web UI na ten port. Jeżeli 8787 jest osiągalny z niezaufanej sieci, ustaw app_token albo zablokuj port firewallem. Baza jest zapisywana w /data/gree-controller.db; konfiguracja używa backup: cold, więc dane są objęte backupem dodatku.

Watchdog sprawdza /api/health. Do diagnostyki sieci najpierw sprawdź ha network info, poprawność gree_interface, broadcast konkretnej podsieci i reguły UDP/firewalla.


EN

Installation

Add this custom repository in Home Assistant:

https://git.linuxiarz.pl/gru/gree-controller-ha-addon/

Refresh the app/add-on store and install GREE Controller. config.yaml points to a pre-built multi-architecture OCI image; its tag must match version.

Networking, VLANs and discovery

Home Assistant OS + GREE Controller + VLAN topology

The add-on intentionally uses host_network: true, so it uses the Home Assistant OS host interfaces directly. Do not attach a Docker macvlan network to the add-on.

Inspect host interfaces with:

ha network info

Example VLAN 50 on eth0, without adding another default gateway:

ha network vlan eth0 50 \
  --ipv4-method static \
  --ipv4-address 192.168.50.2/24 \
  --ipv6-method disabled

For one GREE subnet, set gree_interface to the host interface name (for example eth0.50) or its local IPv4 address (for example 192.168.50.2), and set discovery_broadcast to that subnet broadcast, e.g. 192.168.50.255:7000.

For multiple directly attached subnets, leave gree_interface empty. The controller selects the local interface that best matches a known device IP. Discovery still sends one broadcast per scan, so scan each VLAN/subnet separately by changing discovery_broadcast, or add known devices manually.

Broadcast normally does not cross routers. Unicast control may work through routing/firewall rules when UDP is allowed. For routed GREE VLANs, give the HA host an interface in the VLAN, use a suitable UDP broadcast relay, or perform discovery locally per subnet.

Options

Option Meaning
gree_interface interface or local IPv4; empty = automatic route selection
discovery_broadcast UDP discovery target, e.g. 192.168.50.255:7000
simulate run without physical devices
auto_seed create a sample device in an empty simulator database
poll_interval_seconds device polling interval
zone_interval_seconds thermostat/zone control interval
discovery_timeout_ms UDP discovery timeout
app_token optional protection for direct Web UI/API access
log_level error, warn, info, debug, trace

Home Assistant API

The add-on automatically uses the internal Home Assistant Core proxy (http://supervisor/core/api/) and the runtime SUPERVISOR_TOKEN provided by Supervisor. When the token is detected, the UI shows automatic authorization and hides manual URL/token fields. A failed Test HA unlocks the optional manual fallback. The Supervisor token is used only at runtime and is not stored in SQLite.

Access, data and security

The service listens on TCP 8787; Home Assistant ingress proxies the Web UI to that port. If 8787 is reachable from an untrusted network, configure app_token or block the port at the firewall. The database is stored in /data/gree-controller.db; backup: cold keeps it in the add-on backup.

The watchdog checks /api/health. For network troubleshooting, verify ha network info, gree_interface, the selected subnet broadcast, and UDP/firewall rules first.