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 --> extStrzał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.