Discovery w OM#

Discovery to proces, w którym Grenton Object Manager (OM) wykrywa vCLU w sieci lokalnej – tak samo jak wykrywa fizyczne kontrolery Grenton CLU.

Jak działa discovery#

sequenceDiagram
    participant OM as Object Manager
    participant NET as Sieć LAN (broadcast)
    participant VCLU as vCLU

    OM->>NET: UDP broadcast na port 1234<br/>(szukam CLU w sieci)
    NET->>VCLU: pakiet discovery
    VCLU->>OM: odpowiedź: IP, MAC, serial, typ
    OM->>OM: wyświetla vCLU na liście urządzeń
    OM->>VCLU: żądanie parowania + PIN
    VCLU->>OM: potwierdzenie (klucze AES-128)
    OM->>VCLU: TFTP: odczyt config.txt
    VCLU->>OM: config.txt (lista modułów TFBus)
    OM->>OM: generuje om.lua i user.lua
    OM->>VCLU: TFTP: wysyłka om.lua + user.lua
    VCLU->>VCLU: ładuje om.lua → obiekty dostępne w runtime

Wymagania#

Aby discovery działał poprawnie:

WymaganieOpis
SiećvCLU i komputer z OM muszą być w tej samej domenie broadcastowej (ten sam VLAN/podsieć)
Port UDP 1234Musi być otwarty na firewallu – vCLU nasłuchuje na tym porcie
Unikalne daneKażdy vCLU musi mieć unikalny IP, adres MAC i numer seryjny
CAP_NET_BROADCASTNa Linuksie proces vCLU musi mieć uprawnienia do wysyłania pakietów broadcast (systemd nadaje je automatycznie)

Jeśli vCLU działa w Dockerze, kontener musi używać --network host. Tryb bridge nie przepuszcza pakietów broadcast UDP.

Parowanie krok po kroku#

1. Uruchom Object Manager#

Otwórz Grenton Object Manager na komputerze w tej samej sieci co vCLU.

2. Discovery#

W menu OM wybierz Window > Discovery (lub użyj skrótu klawiszowego). OM wyśle broadcast UDP i wyświetli listę wykrytych urządzeń.

vCLU pojawi się na liście z:

  • Numerem seryjnym (np. 2210xxxxx dla CLU, 5200xxxxx dla Gate)
  • Adresem IP
  • Typem urządzenia

3. Parowanie#

Kliknij na vCLU i wybierz Connect. OM poprosi o PIN – wpisz 8-znakowy PIN skonfigurowany w kroku 3 wizarda.

Po poprawnym PIN-ie OM nawiązuje szyfrowane połączenie (AES-128) i odczytuje konfigurację vCLU.

4. Odczyt konfiguracji#

OM odczytuje config.txt przez TFTP. Plik zawiera listę modułów TFBus skonfigurowanych w wizardzie (DOUT8T, RELAY4, DIN8). Na tej podstawie OM widzi, jakie moduły i obiekty I/O ma vCLU.

5. Generowanie kodu Lua#

OM generuje dwa pliki:

  • om.lua – definicje obiektów (moduły, wejścia, wyjścia, stałe)
  • user.lua – plik użytkownika z pustą funkcją init()

Pliki są wysyłane do vCLU przez TFTP. Po załadowaniu om.lua obiekty są dostępne w runtime Lua.

6. Programowanie#

Od tego momentu vCLU zachowuje się jak fizyczny CLU. Możesz:

  • Przypisywać zdarzenia do obiektów
  • Tworzyć sceny i skrypty
  • Wysyłać konfigurację z OM do vCLU

Tryb Standalone#

W trybie Standalone discovery Grenton nie jest używany. Urządzenia integruje się bezpośrednio przez:

  • MQTT – Zigbee2MQTT, Tasmota, Shelly
  • HomeKit – natywna integracja Apple
  • MCP – sterowanie przez AI (Claude, ChatGPT)

Konfiguracja odbywa się w pliku user.lua bez potrzeby Object Manager.

Rozwiązywanie problemów#

vCLU nie pojawia się w discovery#

  1. Sprawdź, czy vCLU działa: sudo systemctl status vclu
  2. Sprawdź, czy port 1234 jest otwarty: ss -ulnp | grep 1234
  3. Upewnij się, że OM i vCLU są w tej samej podsieci
  4. Sprawdź logi: sudo journalctl -u vclu -f – przy discovery pojawi się wpis o odebranym pakiecie
  5. Jeśli Docker – upewnij się, że kontener ma --network host

Błąd PIN#

  • PIN jest 8-znakowy, wpisywany bez myślników
  • Sprawdź PIN w pliku konfiguracyjnym: pole pin w sekcji keys w .vclu.json
  • Aby zresetować PIN, uruchom wizard ponownie (patrz Pierwsze uruchomienie)

OM nie widzi modułów#

  • Upewnij się, że moduły zostały dodane w kroku 2 wizarda
  • Sprawdź, czy config.txt istnieje w katalogu danych vCLU
  • Wykonaj ponowne discovery w OM

Następne kroki#

  • Struktura katalogów – gdzie znajdują się pliki konfiguracyjne
  • DOUT – praca z wyjściami cyfrowymi
  • DIN – praca z wejściami cyfrowymi