Skip to content

group-broadcast

Opis

Bloczek group-broadcast przyjmuje pojedyncze wejście i nie posiada wyjść. Każda wartość odebrana na wejściu jest rozsyłana do wszystkich pasujących bloczków znajdujących się w wybranym zakresie projektu.

Zakresem tym może być cała zakładka przepływu albo pojedyncza grupa. Dzięki temu jeden sygnał wejściowy może sterować jednocześnie wieloma bloczkami tego samego rodzaju.

Lista odbiorców jest wyznaczana na bieżąco przy każdej nowej wartości wejściowej. Oznacza to, że bloczek uwzględnia aktualny stan projektu i wysyła dane tylko do tych odbiorców, którzy są w danej chwili dostępni.

Odbiorca może być niedostępny między innymi wtedy, gdy znajduje się w projekcie, ale nie został prawidłowo skonfigurowany, jest odłączony albo zgłasza błąd uniemożliwiający normalną pracę.

Parametry konfiguracyjne

Nazwa parametru Wartość
scope_id Parametr obowiązkowy określający identyfikator zakresu, w którym mają być wyszukiwani odbiorcy. Może wskazywać całą zakładkę przepływu albo pojedynczą grupę.
block_type Parametr obowiązkowy określający rodzaj docelowych bloczków. Wartość musi dokładnie odpowiadać typowi odbiorców wybranemu w konfiguracji, na przykład dimmer.

Obsługa wejścia

Bloczek dopuszcza wiele połączeń do jedynego wejścia.

Bloczek obsługuje wszystkie typy wartości wejściowych, ponieważ przekazuje dalej dokładnie tę samą wartość, którą otrzymał.

Każda wartość wejściowa jest przetwarzana w następujący sposób:

  • wyszukiwani są odbiorcy w skonfigurowanym scope_id,
  • wybierane są tylko bloczki zgodne z podanym block_type,
  • pomijani są odbiorcy, którzy w danej chwili nie są dostępni do sterowania,
  • do wszystkich pozostałych odbiorców przekazywana jest ta sama wartość wejściowa.

Przypadki ignorowane:

  • odbiorcy, którzy w danej chwili nie są dostępni,
  • sytuacje, w których w wybranym zakresie nie ma aktualnie żadnego aktywnego odbiorcy pasującego do block_type.

Wyjścia bloczka

Bloczek nie posiada wyjść.

Opis statusu bloczka

Dla poprawnie zainicjalizowanego bloczka opis statusu ma postać:

X block_type: last_value

gdzie:

  • X oznacza liczbę aktualnie dostępnych odbiorców uwzględnionych przy ostatnim odświeżeniu opisu,
  • block_type to skonfigurowany typ docelowy,
  • last_value to ostatnia wartość rzeczywiście rozesłana przez bloczek albo null, jeśli jeszcze nic nie zostało wysłane.

Liczba odbiorców w opisie jest odświeżana po uruchomieniu projektu oraz po każdej nowej wartości wejściowej. Pomiędzy kolejnymi zmianami wejścia opis może być chwilowo nieaktualny, jeśli dostępność odbiorców zmieni się samoczynnie.

Błędy zwracane przez bloczek

Bloczek może zwracać następujące błędy:

Kod błędu Opis błędu
Missing scope_id configuration. Parametr scope_id nie został podany albo jest pusty.
Missing block_type configuration. Parametr block_type nie został podany albo jest pusty.
Input disconnected. Do wejścia bloczka nie podłączono żadnego innego bloczka.
No matching blocks in selected scope. W wybranym zakresie nie znaleziono żadnego bloczka pasującego do podanego block_type.
No connected blocks in selected scope. W wybranym zakresie istnieją pasujące bloczki, ale żaden z nich nie jest aktualnie dostępny.

Przykłady działania

  1. Jeśli scope_id wskazuje grupę zawierającą trzy bloczki typu dimmer, z czego dwa są w danej chwili dostępne, to opis bloczka po inicjalizacji będzie miał postać 2 dimmer: null.

  2. Jeśli później na wejście pojawi się wartość 75, to bloczek przekaże ją do tych dwóch odbiorców i zaktualizuje opis na 2 dimmer: 75.