Jednym z pierwszych elementów, które warto przemyśleć rozpoczynając programowanie systemu KNX jest adresacja grupowa. Adresy grupowe są to elementy pozwalające tworzyć powiązania między funkcjami różnych urządzeń. Opiera się o nie cały program działania każdej instalacji automatyki domowej KNX. Im większy projekt tym więcej takich adresów. Do struktury adresów grupowych w ETS w najprostszych projektach należy od kilkunastu do kilkudziesięciu takich adresów, ale największe z jakimi miałem do czynienia liczą nawet kilkanaście tysięcy. Jak łatwo się domyśleć – pogubienie się we własnych adresach może się zdarzyć każdemu. Dlatego też niezwykle ważne jest, aby przed rozpoczęciem pracy mieć dobrze rozplanowane struktury adresowania.
Przez ponad 8 lat pracy na stanowisku wsparcia technicznego w firmie produkującej urządzenia KNX, a następnie prowadząc sprzedaż i wsparcie produktów KNX od ponad roku, otwierałem, opiniowałem i korygowałem setki projektów ETS od dziesiątków firm wykonawczych i programistycznych. Nauczyło mnie to dużej elastyczności w podejściu do tematu budowy adresacji funkcji i pokazało, że nie ma dwóch takich samych podejść do stworzenia jednej, najlepszej struktury. Jednak poza pracą z cudzymi projektami miałem okazję uruchamiać budynki zarówno małe (apartamenty i niewielkie domy) zbudowane na mniej niż 10 urządzeniach, jak i bardzo duże (budynki biurowe, komercyjne) składające się z ponad 1000 produktów. Wszystkie te doświadczenia pozwoliły mi wypracować kilka najwygodniejszych dróg postępowania, spośród których wybrałem 2 najważniejsze, którymi chcę się z wami podzielić.
Teoria
Zacznijmy od teorii. Struktura grupowa powinna odzwierciedlać jeden wybrany, dopasowany do realizacji i przede wszystkim logiczny podział funkcji. System integrator powinien być w stanie szybko znaleźć potrzebny mu adres nawet po latach od uruchomienia inwestycji.
Sposoby adresowania w ETS
ETS dopuszcza obecnie 3 typy adresowań: dwupoziomowe, trójpoziomowe i swobodne. Pierwsze wywodzi się ze starszych wersji programu, w których funkcje łączone były w grupy funkcji bezpośrednich. Trzypoziomowe istniejące od wersji ETS3 do dziś jest najpopularniejszym podejściem do adresowania. Swobodne, wprowadzone na wzór systemów “dużej” automatyki budynkowej daje ogrom możliwości i zagnieżdżanie grup w grupach w swobodnie przyjmowanej formie i “głębokości”. Jednak ta swoboda – dostępna w ETS – nie jest zrozumiała dla urządzeń zgodnych z KNX, ale konfigurowanych spoza tego środowiska, tj. paneli dotykowych, serwerów wizualizacji, bramek do innych protokołów i systemów. One wszystkie korzystają zazwyczaj z najpopularniejszego, trójpoziomowego adresowania. Mamy więc punkt 1.: stosuj adresy grupowe 3-poziomowe.
Podział struktur adresów grupowych
Struktury możemy zbudować na kilka podstawowych sposobów: odwzorowanie budynku (najczęściej używany przez młodych integratorów), logiczny podział na funkcje (pierwotnie był moim najczęstszym punktem wyjścia) i ostatni, ale nie taki rzadki, jak mogłoby się wydawać, podział na urządzenia KNX (stosowany najczęściej przez duże firmy, w których jednym projektem może zarządzać i go programować kilka osób).
Odwzorowanie budynku jako podział adresów to pierwszy sposób, jaki stosują intuicyjnie młodzi instalatorzy systemów KNX. Często jedyny i wystarczający dla nich na wiele kolejnych realizacji. Pozwala stosunkowo łatwo poruszać się po strukturze adresowej systemu porządkując je w grupy podzielone na pomieszczenia, automatycznie ograniczając potencjalny bałagan do zawartości danej podgrupy.
Sposób ten dobrze działa na małych i średnich realizacjach do kilkuset metrów kwadratowych przy nawet stosunkowo zaawansowanej funkcjonalności. Nie daje jednak wystarczającej elastyczności osobom, które zajmują się programowaniem systemów w budynkach dużych, komercyjnych, jak biurowce, hotele czy galerie handlowe i stadiony. Z biegiem czasu i wzrostem doświadczenia integratora KNX zmienia się, ewoluuje. Zaczyna być dla nich coraz bardziej niewygodny i zbędny, choćby z uwagi na fakt, że niepotrzebnie duplikuje ten sam podział budynku, który można w dużo elastyczniejszy sposób zbudować za pomocą natywnej funkcji oprogramowania ETS (panel Budynki).
Plusy:
- bardzo często używany przez młodych system integratorów
- kolejni integratorzy nie mają problemów ze zrozumieniem pomysłu swojego poprzednika
- ogranicza bałagan funkcyjny do podgrup
Minusy:
- raczej do niewielkich realizacji do 20-30 pomieszczeń
- w obrębie pomieszczenia brak podziału na rodzaje funkcjonalności
- duplikuje wbudowaną w ETS funkcjonalność pozwalającą sortować urządzenia po lokalizacji pomieszczeń
Kiedy stosować:
- kiedy nie masz dużego doświadczenia w konfigurowaniu systemów
- do małych i średnich realizacji
Podział adresów na funkcje obwodów elektrycznych wydaje się najsensowniejszy. W moim przypadku był ewolucją pierwszego, to jest odwzorowania budynku w adresacji grupowej. Porządkuje rodzaje obiektów komunikacyjnych wg zastosowań, więc daje się łatwo adaptować dla budynków takich jak mieszkania, domy i wille o niewielkiej liczbie pomieszczeń. Zazwyczaj jest ściśle powiązany z przyjętymi przez najważniejszych producentów nazwami i kolejnością obiektów komunikacyjnych.
Plusy:
- często używany przez system integratorów, więc nawet w cudze projekty można stosunkowo łatwo się wgryźć
Minusy:
- nie porządkuje pomieszczeń
- funkcje odpowiedzialne za sterowanie różnymi elementami jednego pomieszczenia są rozproszone po wielu grupach głównych
Kiedy stosować:
- kiedy masz już pierwsze doświadczenia z konfigurowaniem instalacji KNX
- do małych realizacji
- i do bardzo dużych realizacji o niewielkiej różnorodności sterowań
Ostatnim ze wspomnianych, teoretycznych podziałów jest odwzorowanie urządzeń projektu w adresacji grupowej. Grupy główne zbierają urządzenia swoich kategorii, a podgrupy układane są wg standardowych obiektów komunikacyjnych używanych do realizacji konkretnych zadań.
Ja osobiście nie jestem fanem takiego podejścia z uwagi na duże rozbieżności między sposobami adresowania przez różne osoby. Jednak taka realizacja tego zagadnienia, mimo, że jest stosowana przez mniejszą liczbę instalatorów to z drugiej strony używana jest przez bardzo zaawansowanych system integratorów z dużą listą instalacji w swoim portfolio. W efekcie z taką budową struktury adresów grupowych w ETS spotykam się z nią dosyć często. Sposób ten pozwala doświadczonym osobom szybko nawigować po projekcie, a stosowany w większej firmie z kilkoma uruchomieniowcami pilnującymi wspólnego standardu daje dodatkowo opcję szybkiego przekazywania projektu między kolejnymi osobami.
Sposób ten jest też uniwersalny z perspektywy wielkości obiektu, dobrze działa w małych mieszkaniach, średnich domkach i większych willach, a także na dużych budynkach biurowych. Jest elastyczny i dobrze skaluje się do każdej realizacji.
Plusy:
- uniwersalny, sprawdzi się w większości instalacji
- łatwo daje się przekazywać innym programistom
Minusy:
- nie dla początkującego instalatora
- trudny w przekazaniu poza firmę
Kiedy stosować:
- kiedy masz firmę z kilkoma programistami i potrzebujesz uniwersalnego systemu adresowania
Praktyczne sposoby adresowania
Tyle teoria, a praktyka pozostaje praktyką. Trzymanie się na siłę przyjętych zasad tak w życiu, jak i w programowaniu systemów KNX często prowadzi do problemów i odchodzenia od własnych zasad – tworzenia kolejnych i kolejnych wyjątków. Nasze podejście powinno być ustrukturyzowane, ale też elastyczne. Nie wchodząc w kolejne szczegóły i rozległe opisy – podaję kilka najważniejszych zasad jakich ja się trzymam budując struktury adresów grupowych w ETS.
Dzielimy problem na 2 zagadnienia:
- A. Struktura budynku – przede wszystkim używam adresowania opartego o funkcje z wykorzystaniem prostego odwzorowania budynku. Jest to dla mnie najbardziej intuicyjny i elastyczny sposób pracy.
- B. Wstawiam gotowe zestawy adresów dla poszczególnych typów zadań.
Zaczynamy od zagadnienia A i zasady nr 1: na początek określam liczbę poziomów budynku (wliczając w to piwnicę i poddasze). W oparciu o tą informację wybieram czy podział na poziomy wstawię w grupy główne, czy grupy pośrednie.
Budynek do 5 poziomów:
- Grupa główna = funkcja
- Grupa pośrednia = numer / nazwa poziomu
- Adres grupowy = Lokalizacja, rodzaj obiektu komunikacyjnego
- Grupa pośrednia = numer / nazwa poziomu
Budynek powyżej 5 poziomów:
- Grupa główna = numer poziomu / nazwa
- Grupa pośrednia = funkcja
- Adres grupowy = Lokalizacja, rodzaj obiektu komunikacyjnego
- Grupa pośrednia = funkcja
Zasada nr 2: Każdy zerowy adres i grupa służą u mnie do budowania funkcji centralnych:
- grupa główna 0/x/y obejmuje sobą globalne sterowania całym domem, ogrodem i otoczeniem.
- grupa pośrednia x/0/y łączy w grupę więcej pomieszczeń lub rodzajów obwodów – u mnie najwięcej się tu dzieje na potrzeby budowania scenariuszy.
- adres grupowy x/y/0 służy do zebranie w grupę centralną pomieszczeń lub rodzajów obwodów.
- świetnie sprawdza się w podejściu Odwzorowania budynku.
- w pozostałych przypadkach, kiedy pomieszczenie nie ma własnej grupy pośredniej, każdy pierwszy adres związany z pomieszczeniem jest adresem dla scenariuszy.
Zasada nr 3: Używaj uniwersalnej nomenklatury. Nieraz zdarzyło się, że pierwotny “Pokój Jasia” przeistoczył się po czasie w “Bawialnię”. Z tego też względu tam gdzie to tylko możliwe stosuję numerację pomieszczeń wg pierwotnych planów budowlanych (lub innej, aktualnych wg inwestora dokumentów). Taką dokumentację zawsze można wgrać jako załącznik do projektu w ETS i do niej wrócić.
Zasada nr 4: jednolite nazewnictwo.
Zasada 5: rób rezerwy. Puste adresy na poczet możliwości rozbudowy funkcjonalności, zwiększenia liczby obwodów, etc.. To Ci się przyda wcześniej niż myślisz.
Zasada nr 6: najważniejsza i już nie do końca związana ze strukturą. Dokończ program działania w ETS w tak dużym stopniu jak to możliwe (wliczając w to wszelkie integracje) zanim weźmiesz się za panele dotykowe, serwery wizualizacji i inne systemy pod- i nadrzędne. Dzięki temu kiedy zabraknie Ci rezerw, bądź zapomniałeś o czymś jeszcze – zamiast śmiecić w swojej ułożonej już architekturze adresów – przesuniesz je wszystkie w górę czy w dół wyłącznie w środowisku ETS bez konieczności powielania zmian w każdym innym podsystemie.
Zasada nr 7: zasada opcjonalna i dotycząca największych realizacji brzmi “im ważniejsza funkcja, tym niższy adres”. Trzymaj się tego na miarę możliwości. Więcej o tym dowiesz się w innych materiałach w niedalekiej przyszłości.
No i zagalopowałem się. Miało być prosto i przystępnie. Pisałem artykuł bez żadnych materiałów pomocniczych, wyłącznie w oparciu o moje doświadczenia, a wyszło z tego całkiem sporo informacji do przyswojenia i wdrożenia. W tym momencie wstrzymuję się z kolejnymi radami, których w miarę powstawania tekstu coraz więcej napływa mi do głowy. Chcę żebyś coś z tego artykułu miał szansę wyciągnąć i zapamiętać. Po precyzyjniejsze porady zapraszam zawsze do rozmowy telefonicznej, mailowej czy do sklepu, gdzie z czasem wstawię szkolenia obejmujące możliwie szeroko całe moje doświadczenie w pracy z systemami smart.
Zestawy adresów dla typów funkcji w KNX
Przy okazji trzymania się zasad utrzymania jednolitego nazewnictwa w projekcie i bardziej lub mniej koniecznych rezerw w adresacji jest nie mniej ważne utrzymanie spójności w realizacji poszczególnych funkcji. Dlatego ważne i zazwyczaj stosowane jest wykorzystywanie tych samych zestawów adresów grupowych na potrzeby określonych zadań. Poniżej wstawiłem zrzut ekranu obejmujący podstawowe najczęściej spotykane zestawy dla oświetlenia, rolet i żaluzji oraz ogrzewania.
Podsumowując
Być może zauważyłeś, że używam hybrydy odwzorowania urządzeń oraz odwzorowania funkcji. Wersja trochę uzupełniona o wygodę wydzielenia w niezależnej przestrzeni adresowej puli na sterowania grupowe – i to na wielu różnych poziomach, co pozwala jeszcze bardziej zachować porządek. Nie sposób rozpisać wszystkie możliwości, czy nawet wypracowany jeden większy plan na swoje systemy, ale jestem pewien, że tym którzy chcą wyłapać z tekstu coś wartościowego, przekazałem ideę. Grunt to mieć swoje zasady, ale nie trzymać się ich na siłę – bo to też może wprowadzić zamieszanie.
Trzymajcie się dobrze i… widzimy się przy okazji następnego tekstu. /PM