Grenton#

vCLU emuluje kontroler Grenton CLU - pojawia się w sieci jak prawdziwy CLU i współpracuje z Grenton Object Manager (OM).

Jak to działa#

sequenceDiagram
    participant om as Grenton OM<br/>(aplikacja PC)
    participant vclu as vCLU<br/>(Raspberry Pi)

    om->>vclu: 1. UDP broadcast<br/>"kto jest w sieci?"
    vclu-->>om: "jestem CLU, IP, MAC, serial"

    om->>vclu: 2. TFTP: pobierz config.txt
    vclu-->>om: zwraca konfigurację modułów

    om->>vclu: 3. Wysyłanie om.lua i user.lua
    Note right of vclu: zapisuje, przeładowuje Lua

    om->>vclu: 4. Komendy sterujące (execute Lua)
    vclu-->>om: wykonuje, zwraca wynik

Discovery - wykrywanie w sieci#

vCLU odpowiada na broadcast UDP z Grenton OM. Dzięki temu OM widzi vCLU jako zwykły kontroler CLU w sieci lokalnej.

Wymagania:

  • vCLU i komputer z OM muszą być w tej samej sieci (broadcast domain)
  • Port UDP 1234 musi być otwarty
  • vCLU musi mieć unikalne IP, MAC i numer seryjny

Po wykryciu OM widzi vCLU z nazwą ustawioną w wizardzie (np. “VCLU”).

Object Manager - synchronizacja#

Co robi OM#

Grenton Object Manager to aplikacja na PC do projektowania automatyki. Po wykryciu vCLU:

  1. Odczytuje konfigurację - pobiera config.txt przez TFTP, widzi jakie moduły ma CLU
  2. Generuje obiekty - na podstawie modułów tworzy obiekty I/O (wyjścia, wejścia, sensory)
  3. Wysyła pliki - wgrywa om.lua i user.lua do vCLU

Pliki generowane przez OM#

PlikCo zawieraEdytowalne?
om.luaDefinicje obiektów, modułów, zdarzeńNie - generowane przez OM
user.luaFunkcje użytkownika z OMNie - generowane przez OM
main.luaNumer seryjny (checkAlive)Nie
config.txtKonfiguracja TFTPNie
CONFIG.JSONDefinicje modułów (tfbusDevices)Nie

Nie edytuj tych plików ręcznie. Są generowane przez OM i nadpisywane przy każdej synchronizacji. Twój kod umieszczaj w modules/.

Moduły wirtualne#

W wizardzie (krok 2) możesz dodać wirtualne moduły - nie sterują prawdziwym sprzętem, ale pojawiają się w OM jako prawdziwe moduły:

Typ modułuWyjścia (DOUT)Wejścia (DIN)Analog
DOUT8T881
RELAY44-1
DIN8-8-

OM widzi te moduły i tworzy dla nich obiekty w om.lua. Możesz ich używać w scenariuszach OM jak zwykłych modułów Grenton.

Sterowanie zdalne - Remote CLU#

vCLU może sterować prawdziwymi kontrolerami Grenton w sieci. Po zaimportowaniu pliku OM z innego CLU, vCLU tworzy obiekty proxy:

  • RemoteSwitch - sterowanie wyjściem (switchOn, switchOff, toggle)
  • RemoteDimmer - sterowanie ściemniaczem (setValue, switchOn, switchOff)
  • RemoteRoller - sterowanie roletą (open, close, stop, setPosition)

Import z OM#

  1. W panelu webowym przejdź do OM Files
  2. Wgraj plik .OMF wyeksportowany z Grenton OM
  3. vCLU parsuje plik i generuje proxy_*.lua w katalogu imports/
  4. Po przeładowaniu Lua, obiekty remote są dostępne

Użycie w kodzie#

-- Sterowanie lampą na prawdziwym CLU
local lampa = CLU220000592.DOU5048
lampa:switchOn()

-- Odczyt stanu
local stan = lampa:getValue()

-- Reakcja na zmianę
lampa:onChange(function()
    print("Lampa zmieniła stan: " .. tostring(lampa:getValue()))
end)

-- Expose do dashboardu i HomeKit
expose(lampa, "switch", {
    name = "Lampa salon",
    area = "Salon"
})

Obiekty remote komunikują się z prawdziwym CLU przez sieć - komendy Lua są wysyłane jako RPC.

Tryb standalone#

vCLU może działać bez Grenton OM - jako samodzielny kontroler smart home:

  • Moduły wirtualne nie są potrzebne
  • Urządzenia integrowane przez MQTT (Zigbee2MQTT, Tasmota, Shelly)
  • Obiekty tworzone w modules/ jako VirtualSwitch, VirtualSensor
  • Dashboard, HomeKit, Home Assistant działają normalnie

W trybie standalone pliki OM (om.lua, user.lua) nie istnieją - vCLU startuje bez nich i loguje:

[LUA] om.lua not found - running without Grenton objects

Ograniczenia#

  • OM obsługuje tylko sieć lokalną (broadcast UDP) - nie działa przez VPN/internet
  • Każda synchronizacja z OM nadpisuje om.lua i user.lua
  • Wirtualne moduły nie sterują sprzętem - do tego potrzebny GPIO lub MQTT
  • Limit modułów w jednym CLU: wynika z konfiguracji OM (typowo 8-16)

Agent AI (MCP) może pomóc w konfiguracji obiektów remote, importowaniu plików OM i tworzeniu automatyzacji łączących urządzenia Grenton z MQTT. Użyj vclu_registry żeby zobaczyć wszystkie dostępne obiekty.