Tutorial 3: MQTT + HomeKit + Home Assistant#

Hook: Jedno urządzenie — trzy ekosystemy. Podłączasz lampę do vCLU, a ona pojawia się jednocześnie w Apple Home na iPhonie, w Home Assistant i w dashboardzie webowym. Bez chmury, bez kont — wszystko lokalnie.


Co zbudujemy#

Na koniec tego tutoriala:

  • wbudowany broker MQTT z podłączonymi urządzeniami
  • urządzenia w Home Assistant (auto-discovery)
  • urządzenia w Apple HomeKit (iPhone/iPad)
  • inspect i rejestr — centralne źródło prawdy

Czas: ~10 minut.


1. MQTT — podłącz urządzenia#

Włącz broker w Settings → MQTT.

Skieruj swoje urządzenia na broker vCLU:

UrządzenieKonfiguracja
Zigbee2MQTTmqtt.server: mqtt://<IP-vCLU>:1883
TasmotaWeb UI → MQTT → Host: <IP-vCLU>
ShellySettings → MQTT → Broker: <IP-vCLU>

Urządzenia pojawiają się automatycznie po expose:

-- modules/urzadzenia.lua

mqtt.subscribe("zigbee2mqtt/lampa_salon", function(topic, payload)
    local data = json.decode(payload)
    _:get("lampa_salon"):setValue(data.state == "ON" and 1 or 0)
end)

local lampa = VirtualSwitch:new("lampa_salon")
expose(lampa, "switch", {
    name = "Lampa salon",
    area = "Salon"
})

2. Expose i rejestr#

Każde urządzenie dodane przez expose() trafia do centralnego rejestru. Przejdź do Tools → Inspect:

Rejestr to jedno miejsce, z którego korzystają wszystkie integracje — dashboard, HomeKit, Home Assistant, MCP.


3. Home Assistant#

HA wykrywa urządzenia automatycznie przez MQTT Discovery. Wystarczy, że HA i vCLU korzystają z tego samego brokera.

W HA: Settings → Devices — urządzenia vCLU pojawiają się bez konfiguracji.


4. HomeKit#

Włącz HomeKit w Settings → HomeKit.

Na iPhonie: Aplikacja Dom → Dodaj akcesorium → Zeskanuj kod QR.

Wszystkie urządzenia z expose() pojawiają się w Apple Home. Możesz sterować Siri:

"Hej Siri, włącz lampę w salonie"

5. Wszystko razem#

Teraz jedno urządzenie jest dostępne z:

  • Dashboard vCLU — przeglądarka
  • Home Assistant — automatyzacje HA
  • Apple Home — Siri, iPhone, iPad, Mac
  • Agent AI — MCP

Zmiana stanu w jednym miejscu natychmiast widoczna we wszystkich pozostałych.


Co dalej?#