oprogramowaniestudiobloki logiczneintegracjeklimatyzacja

# Voldeno Studio - Bloki abstrakcyjne i implementacje

Niektóre urządzenia robią to samo, a różnią się tylko sposobem komunikacji. Każdy klimatyzator ma zasilanie, tryb pracy, temperaturę docelową i prędkość wentylatora, ale jeden przyjmuje polecenia przez HTTP w sieci lokalnej, inny przez Modbus, a jeszcze inny wyłącznie przez podczerwień. Voldeno rozdziela te dwie rzeczy na dwa bloki:

  • Blok abstrakcyjny zawiera logikę wspólną dla wszystkich urządzeń danego rodzaju. Ma wejścia i wyjścia, łączysz go z resztą programu jak każdy inny blok.
  • Blok implementacji zna jedno konkretne urządzenie lub rodzinę urządzeń i potrafi się z nim porozumieć. Nie ma własnych wejść ani wyjść - działa wyłącznie podłączony do bloku abstrakcyjnego.

Dzięki temu program automatyki nie zależy od marki urządzenia. Wymiana klimatyzatora na inny model oznacza podmianę bloku implementacji, a połączenia, harmonogramy i widżety w aplikacji mobilnej pozostają bez zmian.

# Jak to działa

                     ┌──────────────────────────────┐
  Termostat  ───────▶│  Klimatyzator                │──────▶  Wizualizacja
  Harmonogram ──────▶│  (blok abstrakcyjny)         │──────▶  Alarm awarii
                     │  wejścia, wyjścia, logika    │
                     └──────────────┬───────────────┘
                          polecenia │ ▲ odczyty
                                    ▼ │
                     ┌──────────────────────────────┐
                     │  Daikin BRP069               │◀─────▶  Klimatyzator
                     │  (blok implementacji)        │  LAN    w sieci lokalnej
                     └──────────────────────────────┘
  1. Blok abstrakcyjny odbiera sygnały z wejść, pilnuje skonfigurowanych limitów i decyduje, kiedy wysłać polecenie do urządzenia, a kiedy odczytać jego stan.
  2. Samą komunikację zleca podłączonemu blokowi implementacji, który tłumaczy polecenie na protokół urządzenia.
  3. Gdy urządzenie odpowie, implementacja przekazuje odczyty z powrotem, a blok abstrakcyjny publikuje je na swoich wyjściach.

Oba bloki działają lokalnie w Hubie. Komunikacja z urządzeniem nie wymaga chmury producenta ani dostępu do internetu - wystarczy, że Hub widzi urządzenie w sieci lokalnej.

# Podłączanie implementacji w Voldeno Studio

  1. Dodaj blok abstrakcyjny do programu w edytorze logiki, tak jak każdy inny blok, na przykład Klimatyzator. Bloki abstrakcyjne rozpoznasz po fioletowej plakietce A w nagłówku.
  2. Pod blokiem abstrakcyjnym pojawi się gniazdo implementacji oznaczone znakiem +. Kliknij je (podpowiedź: „Podłącz blok implementacji").
Blok Klimatyzator w edytorze logiki Voldeno Studio z plakietką bloku abstrakcyjnego i wolnym gniazdem implementacji pod spodem
  1. Otworzy się lista bloków zawężona do implementacji pasujących do tego bloku. Wybierz tę, która odpowiada Twojemu urządzeniu.
Lista dostępnych bloków zawężona do implementacji klimatyzatora, z blokiem Air conditioner : Daikin BRP069
  1. Blok implementacji zostanie umieszczony bezpośrednio pod blokiem abstrakcyjnym i połączony z nim, a gniazdo zniknie. Zaznacz blok implementacji - w panelu bocznym, w sekcji konfiguracji, uzupełnij jego ustawienia, na przykład pole Adres z adresem urządzenia w sieci.
Blok implementacji Daikin BRP069 podłączony pod blokiem Klimatyzator, zaznaczony, z panelem konfiguracji zawierającym pole adresu
  1. Zainstaluj program w Hubie.

Kilka zasad, o których warto pamiętać:

  • Do jednego bloku abstrakcyjnego podłączasz jedną implementację. Gniazdo znika po podłączeniu i wraca, gdy implementację usuniesz.
  • Implementacja nie istnieje bez swojego bloku abstrakcyjnego. Nie da się jej umieścić na płótnie jako osobnego bloku - najpierw dodaj blok abstrakcyjny, który ona implementuje, i podłącz ją przez jego gniazdo. W wyszukiwarce bloków implementacja jest widoczna, ale jej bezpośrednie dodanie nie jest możliwe.
  • Implementacja podąża za swoim blokiem. Przesuwa się razem z nim na płótnie, a usunięcie bloku abstrakcyjnego usuwa również podłączoną implementację.
  • Zmiana urządzenia to zmiana implementacji. Usuń dotychczasowy blok implementacji i przez gniazdo podłącz nowy. Połączenia bloku abstrakcyjnego z resztą programu pozostają nietknięte.

# Gdzie jest która konfiguracja

Każdy z dwóch bloków ma własną konfigurację i nie widzi konfiguracji drugiego.

BlokCo konfigurujeszPrzykład dla klimatyzatora
Abstrakcyjnyzachowanie niezależne od urządzeniazakres temperatury docelowej, interwał odświeżania stanu
Implementacjisposób dotarcia do konkretnego urządzeniaadres adaptera Wi-Fi w sieci lokalnej

Jeśli zastanawiasz się, gdzie szukać danego ustawienia, zadaj sobie pytanie, czy zmieniłoby się ono po wymianie urządzenia na inną markę. Jeśli tak, należy do implementacji.

# Co widać w aplikacji mobilnej

To blok abstrakcyjny określa, jak urządzenie wygląda w aplikacji Voldeno Mobile. Gdy udostępnisz go w aplikacji, jego wejścia stają się elementami sterowania - na przykład zasilanie, tryb pracy czy temperatura docelowa - a wyjścia odczytami, takimi jak temperatura w pomieszczeniu czy informacja o awarii. Blok implementacji nie ma wejść ani wyjść, więc w aplikacji w ogóle się nie pojawia.

Przykładem jest blok Klimatyzator (vldn/air_conditioner). Aplikacja rozpoznaje go i pokazuje dla niego osobny ekran: na górze temperaturę w pomieszczeniu (wyjście room_temp), pod nią włącznik (power) i temperaturę docelową (target_temp). Zakres, w jakim użytkownik może ustawić temperaturę, pochodzi z konfiguracji bloku abstrakcyjnego (min_target_temp i max_target_temp). Tryb pracy (mode), prędkość wentylatora (fan_speed) i ustawienie żaluzji (swing_v, swing_h) wybiera się na osobnych ekranach, a dostępne opcje odpowiadają wartościom wejść opisanym w bloku.

Dzięki temu wszystkie urządzenia danego rodzaju wyglądają w aplikacji tak samo, niezależnie od marki, a wymiana implementacji nie zmienia niczego w tym, co widzi i czym steruje użytkownik.

# Stan urządzenia i awarie

Blok abstrakcyjny publikuje na wyjściach to, co faktycznie zgłasza urządzenie, o ile implementacja potrafi ten stan odczytać. Dzięki temu zmiana wprowadzona z pilota producenta pojawi się w Voldeno po najbliższym odświeżeniu. Wartości, których urządzenie nie raportuje, blok abstrakcyjny publikuje w takiej postaci, w jakiej je zadał.

Problemy z komunikacją trafiają na wyjście awarii bloku abstrakcyjnego, więc możesz je obsłużyć w programie, na przykład wysłać powiadomienie. Znaczenie kodów opisuje dokumentacja konkretnego bloku i jego implementacji.

Blok abstrakcyjny bez podłączonej implementacji można zainstalować, ale nie wyśle on niczego do urządzenia - jego wyjścia pokażą jedynie wartości zadane na wejściach. Przed instalacją upewnij się, że gniazdo każdego bloku abstrakcyjnego jest zajęte.

Tip

implementacje sieciowe łączą się z urządzeniem pod skonfigurowanym adresem. Zarezerwuj ten adres dla urządzenia w routerze (rezerwacja DHCP), aby nie zmienił się po jego restarcie.

# Dostępne bloki abstrakcyjne

Aktualną listę bloków abstrakcyjnych wraz z ich implementacjami znajdziesz w przeglądzie bloków logicznych, w sekcji Bloki abstrakcyjne. Implementacje danego bloku są też wymienione w jego dokumentacji, w sekcji „Bloki implementujące".

# Co dalej

Jak działają bloki abstrakcyjne i bloki implementacji w Voldeno: jedna logika sterowania dla wielu marek urządzeń, podłączanie implementacji w Voldeno Studio i konfiguracja.