Przegląd architektury#

vCLU to jeden program, który stoi w środku Twojego domu: zbiera stan ze wszystkich źródeł (Grenton, Satel, MQTT, Modbus, GPIO), trzyma go w jednym rejestrze obiektów, uruchamia na nim automatyki w Lua i wystawia wybrane obiekty dalej: do Home Assistant, Apple Home, dashboardów i agenta AI. Każdą zmianę zapisuje razem z tym, kto ją zrobił.

vCLU w środku domu#

graph LR
    subgraph Źródła
        clu["Grenton CLU<br/>(UDP)"]
        satel["Satel ETHM-1"]
        mqttdev["Zigbee2MQTT, Tasmota,<br/>Shelly, ESPHome"]
        modbus["Liczniki Modbus TCP"]
        gpio["GPIO Raspberry Pi"]
        http["Usługi HTTP<br/>(pluginy)"]
    end

    subgraph core["<span style='font-size:26px;font-weight:700'>vCLU</span>"]
        reg["Rejestr obiektów"]
        bus["StateBus<br/>kto, co, kiedy"]
        lua["Automatyki Lua<br/>moduły i pluginy"]
        hist["Historia i metryki"]
        expose["expose() +<br/>profile dostępu"]
        reg <--> bus
        lua <--> reg
        bus --> hist
        bus --> expose
    end

    subgraph Odbiorcy
        hass["Home Assistant<br/>(MQTT discovery)"]
        apple["Apple Home<br/>(HomeKit)"]
        dash["Dashboardy<br/>(przeglądarka, tablet)"]
        ai["Agent AI (MCP)<br/>sandbox → wdrożenie"]
        ext["Node-RED, InfluxDB,<br/>Grafana"]
    end

    om["Object Manager"] -. "widzi vCLU<br/>jak CLU" .-> reg

    clu <--> reg
    satel <--> reg
    mqttdev <--> reg
    modbus --> reg
    gpio <--> reg
    http <--> lua

    expose --> hass
    expose --> apple
    expose --> dash
    expose --> ai
    expose --> ext

Strzałki w obie strony oznaczają, że vCLU nie tylko czyta stan, ale też steruje: włącza wyjście na CLU, uzbraja strefę Satela, wysyła komendę do gniazdka Tasmota.

Rdzeń#

Rejestr obiektów#

Każde urządzenie jest w vCLU obiektem z adresem, np. CLU220000001.DOU4992 (wyjście Grentona), satel.zone.2 (czujka) czy zigbee.salon.temperatura. Obiekty Grentona powstają z importu projektu Object Managera, pozostałe tworzysz w Lua (VirtualSwitch, VirtualNumber…) albo dostarcza je plugin. Automatyka nie musi wiedzieć, czy lampa wisi na CLU, czy na gniazdku Zigbee: wywołuje switchOn().

StateBus: kto co zmienił#

Każda zmiana stanu przechodzi przez jedną szynę i niesie swoje źródło: włącznik na ścianie (grenton), użytkownik w panelu, agent AI, Home Assistant albo konkretna automatyka. Z tej samej szyny korzystają historia, HomeKit, Home Assistant i MQTT, więc wszystkie widzą to samo. Dzięki temu automatyka może np. odpuścić, gdy ktoś zgasił światło ręcznie, a w historii widać, czemu lampa zapaliła się o 3 w nocy.

expose() i profile dostępu#

Obiekt trafia na zewnątrz dopiero, gdy go wystawisz (expose()), z nazwą i pomieszczeniem. Dla każdej integracji (MQTT/Home Assistant, HomeKit, MCP) profil dostępu mówi, czy obiekt jest sterowalny (full), tylko do odczytu (readonly) czy niewidoczny (hidden), i jest sprawdzany także przy wykonywaniu komendy.

Grenton#

vCLU działa w sieci Grentona na dwa sposoby: jako kolejny CLU, który Object Manager wykrywa i do którego wgrywa konfigurację, oraz jako klient Twoich prawdziwych CLU, który wysyła im komendy i subskrybuje ich stan. Logika może zostać na CLU, a vCLU dokłada to, czego CLU nie ma: historię, integracje i dashboardy.

Komponenty#

Broker MQTT#

Odbiera i wysyła wiadomości do urządzeń smart home (Zigbee2MQTT, Tasmota, Shelly, ESPHome). Wbudowany - nie musisz instalować osobnego brokera. Możesz też podłączyć się do zewnętrznego brokera.

Automatyzacje Lua#

Silnik automatyzacji. Tu działa Twój kod - reakcje na zdarzenia, timery, sceny, logika sterowania. Piszesz w prostym języku Lua, w katalogu modules/.

Dashboard webowy#

Panel w przeglądarce do monitorowania i sterowania urządzeniami. Wyświetla widgety, wykresy, statusy. Dostępny z każdego urządzenia w sieci lokalnej.

HomeKit bridge#

Mostek do Apple Home. Urządzenia zdefiniowane w vCLU pojawiają się w aplikacji Dom na iPhone i Macu. Parujesz jednorazowo kodem PIN.

Home Assistant#

Automatyczne wykrywanie urządzeń w Home Assistant przez MQTT Discovery. Urządzenia pojawiają się w HA bez ręcznej konfiguracji.

Serwer MCP#

Interfejs dla agenta AI (np. Claude). Agent może przez MCP sterować urządzeniami, czytać logi, pisać kod automatyzacji i diagnozować problemy.

System pluginów#

Rozszerzenia napisane w Lua. Pluginy dodają integracje z usługami - pogoda, powiadomienia Telegram, protokoły urządzeń. Instalujesz je przez panel webowy.

GPIO#

Bezpośrednia obsługa pinów Raspberry Pi. Pozwala podłączyć przekaźniki, przyciski, czujniki bez pośrednictwa MQTT. Na komputerze (nie RPi) działa w trybie symulacji.

Jeden proces#

Wszystkie komponenty działają w jednym procesie. Nie ma osobnych usług do uruchamiania, monitorowania czy aktualizowania. vCLU startuje automatycznie jako usługa systemowa na Raspberry Pi.

Włączanie i wyłączanie#

Każdy komponent jest opcjonalny. W ustawieniach panelu webowego możesz:

  • Wyłączyć HomeKit jeśli nie używasz Apple Home
  • Wyłączyć MCP jeśli nie potrzebujesz agenta AI
  • Wyłączyć wbudowany broker jeśli używasz zewnętrznego (Mosquitto)

Minimalna konfiguracja to sam silnik Lua z MQTT. Wszystko inne możesz dołączyć w dowolnym momencie.