homelab-codex-ws/kb/services/ir-ac-ha-integration.md
oskar a1a57b04bb feat(kb): przenosiny type=service do kb/services/ (13 plikow, bez SPLIT)
Serwisy o jednorodnej tresci (bez wydzielonej sekcji deploy/runbook):
kb-postgres, stability-agent, llm-gateway, vikunja, zigbee2mqtt, npm,
forgejo, ollama, ir-ac-ha-integration, chelsty-stability-agent.

Deprecated: mosquitto (NOT DEPLOYED/LEGACY), home-assistant-ken-legacy
(archiwum importu), joplin (stub z 2026-04-15, brak katalogu services/joplin/).

git mv + frontmatter, tresc nietknieta.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 16:58:04 +02:00

2.9 KiB

okf type visibility status updated links
0.1 service private active 2026-07-17

Gree IR Blaster

ESPHome firmware for a Wemos D1 Mini (ESP8266) driving a Gree air conditioner over IR, exposed to Home Assistant via the native ESPHome API (no MQTT, no Broadlink, no Tuya).

Hardware

  • Wemos D1 Mini (ESP8266)
  • Grove IR Emitter
  • Grove IR Receiver

Wiring

Grove module Pin Wemos D1 Mini
IR Emitter SIG D5
IR Emitter VCC 5V
IR Emitter GND GND
IR Receiver SIG D6
IR Receiver VCC 3V3 — not 5V, ESP8266 GPIO is not 5V-tolerant
IR Receiver GND GND

Home Assistant / deployment model

HA on piha runs as the home-assistant:stable Docker container, not HAOS, so ESPHome is not installed as an add-on. It runs as a one-off container via docker compose run --rm — there is no ESPHome daemon on piha. Compile/flash is a manual, operator-triggered action; this device is intentionally not registered in hosts/piha/services.yaml.

Once flashed, the device advertises itself via mDNS and shows up as a discoverable ESPHome device in Home Assistant (Settings → Devices & Services → Add Integration → ESPHome).

First flash (USB)

  1. Copy secrets.yaml.example to secrets.yaml and fill in wifi_ssid, wifi_password, fallback_password.
  2. Wire the board as above and plug it into piha via USB.
  3. Run:
    ./deploy.sh --usb
    
    This flashes over /dev/ttyUSB0.

Subsequent flashes (OTA)

Once the device is on WiFi, redeploy without --usb:

./deploy.sh

This runs docker compose run --rm esphome run gree-ir-blaster.yaml, which flashes over the network via the ESPHome OTA protocol.

Identifying the Gree protocol variant

The climate: platform: gree component needs a model: matching your AC's remote protocol. gree-ir-blaster.yaml currently ships with model: yan as a starting guess — this is not verified and must be confirmed against the actual remote.

To identify the correct variant:

  1. Flash the firmware and let the device boot (WiFi connected).
  2. Tail the logs:
    docker compose run --rm esphome logs gree-ir-blaster.yaml
    
  3. Point the physical Gree remote at the Grove IR Receiver and press a button (e.g. power on, or change temperature). dump: all on remote_receiver causes ESPHome to log the raw/decoded IR data it captured.
  4. Compare the decoded output against the known Gree variants supported by ESPHome and pick the closest match:
    • generic
    • yan
    • yaa
    • yac
    • yac1fb9
    • yx1ff
    • yag
  5. Update model: in gree-ir-blaster.yaml to the matching variant, then redeploy (./deploy.sh) and verify the AC responds correctly to commands sent from Home Assistant (power, mode, temperature, fan speed).

If none of the variants behave correctly, capture the raw IR dumps and check the ESPHome gree component issue tracker / docs for newer variants.