Dobre wieści przynoszę, powstały
nody uniwersalne do Node-reda!
W wersji 1.5, która przed chwilą została opublikowana dodaje dwa nowe klocki, Custom input i Custom output.
Za pomocą Custom output można wysyłać statyczne ramki Hapcana zdefiniowane w konfiguracji jak i dynamicznie je modyfikować za pomocą payloadu wiadomości wejściowej.
Żeby było łatwo i przyjemnie, każdemu bajtowi danych można przypisać nazwę, poprzez którą można potem wstrzykiwać odpowiednie wartości do magistrali Hapcana w odpowiednim miejscu. Do tego, wartości domyślne/statyczne z możliwością wpisania jako hex i dec, automatycznie przeliczane.
W oknie znajduje się również podgląd wysyłanej ramki.
W konfiguracji należy podać typ ramki (0x302, 0x303), która będzie wysłana. Jeśli przez przypadek wklepiecie jakiś numer ramki Hapcana, to obok pojawi się jej nazwa. Zakładam, że najlepiej posługiwać się zdefiniowanymi przez Jacka ramkami jeśli mają takie same dane i znaczenie, jak chociażby 302 - button status. Jeśli wymyślacie swoje ramki to też lepiej trzymały się "standardu" i jeśli to jest status to niech ma tą 3 z przodu, czyli np 0x350

.
Do sterowania urządzeniami oczywiście służy ramka sterująca 0x10A, którą również node rozpoznaje (podobnie jak ramki systemowe).
Dodatkowo, obok okienka z typem ramki jest rozwijana lista presetów, zawierająca wiele typów ramek. Po ich wybraniu w pola z nazwami pól wpiszą się odpowiednie nazwy z dokumentacji konkretnej ramki. Myślę, że jest to cool
Pamiętać należy, że bloczek nie przetwarza danych w ramkach, więc pomimo tego, że są one zwracane w polach o odpowiednich nazwach to maja wartości wzięte prosto z ramki Hapcana. Bloczki dedykowane robią odpowiednie konwersje, tutaj musicie o tym pamiętać aby jednak zerknąć do dokumentacji jakie wartości można wysłać i jakie są odbierane.
Na podobnej zasadzie działa też Custom input, który po wskazaniu urządzenia poprzez (node, group) oraz określeniu ewentualnego filtra typu ramki będzie wrzucał odpowiednie dane z pola, którym przypisaliście nazwy. Tutaj też jest okno z presetami.
Myślę, że teraz możliwości integracji Node-reda z Hapcanem weszły na nowy poziom nieograniczoności

.
Smacznego, mogę iść wreszcie odpocząć
P.S. Trochę szkoda Jacku, że są ramki, które mają kilka znaczeń, bo tego niestety nie da się przeskoczyć robiąc uniwersalny moduł i np taki termometr, moim zdaniem, powinien zwracać osobne typy ramek dla temperatury, termostatu, regulatora temperatury i błędu, a tak każda ma 0x304 i po samym typie nie wiadomo jak intepretować dane w ramce, dopóki się ich nie sprawdzi. Może przydała by się "mała" zmiana w protokole

włączana jakimś pstryczkiem w konfiguracji modułów, aby moduł mógł generować różne typy ramek. Można by je wtedy ładnie usystematyzować, opisać w jednym dokumencie, wszak do dyspozycji jest ponad 4000 typów

a urządzenia wykorzystują ledwie 10.