Co nowego w moim świecie IoT?

Cześć,

Kolejny raz witam się z Wami po chwilowej ciszy. Jednak w ciszy przy hardware i software właśnie pracuje się najlepiej. No, chyba że programujemy sterownik silnika rakiety.

Co nowego w moim IoT?

Na wstępie zalecam przeczytanie wcześniejszych postów, by mieć ogląd poprzedniego stanu systemu.

Przejdźmy zatem do konkretów. Ostatnimi czasy system dotknęły dość spore zmiany, chociaż dla użytkownika końcowego nie zmienia się zbyt wiele.

Zmiana topologii

Największa zmiana, to przeniesienie całego mózgu z chmury, do domu. W roli centralki działa minikomputer / cienki klient Dell Wyse 5070.


Zalety tego rozwiązania to:
  • logika wykonywana lokalnie — tj. nie jest wymagane połączenie z internetem do poprawnej pracy całego systemu
  • możliwość integracji dodatkowych systemów — na przykład monitoring wideo poprzez LAN, komunikacja Bluetooth
  • dodatkowe wykorzystanie maszyny — np. w roli przystawki do telewizora, umożliwiającej skorzystanie z podstawowych funkcji komputera (przeglądarka internetowa, odtwarzacz wideo)
  • pełna kontrola nad maszyną, możliwość backupowania całego systemu
Wady rozwiązania:
  • jedyną poważniejszą wadą jest to, że potrzeba trochę gimnastyki, by móc wystawić dostęp zdalny, w przypadku gdy nie mamy tzw. zewnętrznego IP

Nowe funkcje w bibliotece ksIotFrameworkLib

W związku z tym, że ostatnimi czasy prowadziłem sporo różnych prac diagnostycznych, jeśli chodzi o pracę urządzeń, zdecydowałem się kluczowe funkcjonalności umieścić w bibliotece.

Oto ważniejsze z nich:
  • wystawienie wartości uptime (czasu działania) urządzenia
  • przesyłanie informacji o sieci bezprzewodowej (siła sygnału, lokalne IP)
  • przesyłanie statystyk połączenia MQTT (ilość ponownych połączeń, czas połączenia)

Inne usprawnienia wydajnościowe:
  • usprawnienie modułu tzw. bezpiecznej listy, poprzez podniesienie wydajności kopiowania danych
  • usprawnienie komponentów korzystających ze zmiennych typu string poprzez eliminację zbędnego kopiowania buforów
  • wprowadzenie własnego mechanizmu dynamicznej identyfikacji typów (pseudo RTTI), celem oszczędzenia pamięci i podniesienia wydajności

Hardware — nowa wersja modułu PelletMon

Jeśli chodzi o urządzenia końcowe (wykonawecze), zdecydowałem się przygotować nową wersję modułu dla kontroli kotła grzewczego.

Oto ważniejsze zmiany względem poprzedniej wersji:
  • solidne złącza ARK, dzięki czemu przewody wygodnie i solidnie łączy się z urządzeniem
  • nowy, stabilniejszy i mniej prądożerny układ zasilania płytki
  • ochrona przed wyładowaniami elektrostatycznymi (ESD)
  • lepsza sygnalizacja pracy za pomocą dodatkowych diod (CAN in/out, status)

Znacznie ulepszone zostało też oprogramowanie płytki, to jest:
  • udało się, po latach, znaleźć przyczynę problemów z ramkami CAN — okazało się, że kocioł grzewczy skanuje magistralę w sposób, który generuje kolizje ramek (rozwiązanie okazało się banalne w swojej prostocie — dzięki temu, że skanowanie jest sekwencyjne — ID ramki zwiększa się), moduł jest w stanie złapać odpytywanie o jeden z poprzednich identyfikatorów i "zamrozić" wysyłanie swoich żądań, do czasu aż nastąpi potencjalna kolizja (wtedy wysyłka jest "odmrażana")
  • uproszczone zostały identyfikatory poszczególnych tematów MQTT
  • obsługę kolejki rzeczy do wysłania zaimplementowałem sam, dzięki czemu mam pełną kontrolę nad buforem wychodzących ramek, co umożliwia też zastosowanie mechanizmu zamrażania, opisanego wyżej
  • moduł wystawia teraz dodatkowe informacje, na przykład czas połączenia magistrali CAN (tj. czas od ostatniego zestawienia połączenia)

Inne zmiany, już w samym Home Assistant

Nie sposób wymienić wszystkich ulepszeń, jednak z ważniejszych rzeczy, mogę przytoczyć:
  • wyświetlanie w większości encji statusu niedostępności, gdy nie ma połączenia z danym modułem wykonawczym
  • wyświetlanie czasu działania wszystkich urządzeń wykonawczych
  • frigate — czyli AI do monitoringu, o tym może napiszę więcej w innym poście
  • integracja z Goolge Assistant, co umożliwia wydawanie komend, np. "Ok Google, włącz podgrzewanie CWU"
  • integracja z TV oraz dekoderem TV SAT (wybieranie kanałów, sterowanie)

Na koniec galeria...

Większość z nas jest wzrokowcami, więc zamiast technicznego bełkotu, lepiej pooglądać zrzuty ekranu.





Tyle na dzisiaj...

Dajcie znać, czy taka formuła jest w porządku. Gdyby jakaś kwestia Was ciekawiła, zostawcie komentarz!


Komentarze

Prześlij komentarz