💾 Bramka AIoT - Architektura: Linux i Android. Jak działa ten system

Wyjaśnienie unikalnej architektury AI-Speaker.

Postaram się opisać, co jest unikalnego w naszym projekcie, czym różnimy się od systemu na RPi czy na mini serwerach z kontenerami Dockera. Pozwoli to lepiej zrozumieć, dlaczego idziemy tą drogą i podjąć decyzję czy AIS to system dla Ciebie? Zapraszam do lektury.

Linux + Android

Na bramkach AIoT mamy 3 warstwy:

  1. Jądro Linux-a,
  2. System Android
  3. Aplikacje AIS dom.

Aplikacja AIS-dom współdzieli to samo jądro z systemem Android.

Cały system AI-Speaker ma takie składowe:

  1. System Android ze środowiskiem Linux : minimalny system podstawowy oraz dodatkowe pakiety dostępne za pomocą menedżera pakietów APT z naszego repozytorium pakietów Ais Linux.
  2. AIS dom + inne nasze aplikacje dostępne w Google Play
  3. Platforma automatyki : platfroma AIS-dom bazująca na Home Assistant Core oraz na projekcie Zigbee2Mqtt do komunikacji z urządzeniami zigbee. Te systemy działają w naszej aplikacji AIS dom (w przestrzeni naszego użytkownika w systemie).
  4. Usługi online : w serwisie online mamy zdefiniowane stacje radiowe, podcasty, kanały wiadomości oraz dostępy do usług zewnętrznych wymagających uwierzytelnienia. Panel integratora

Aktualizacje AIS, które wydajemy co miesiąc, dotyczą głównie punktu 3. - aktualizujemy to co działa w aplikacji AIS dom. Projekty Home Assistant Core oraz Zigbee2Mqtt są bardzo intensywnie rozwijane i to jest główną przyczyną częstych aktualizacji.

Partycje na bramce- wyjaśnienie

Mamy te same partycje, co system Android, ponieważ ten system został zaprojektowany tak żeby nie dało się go zepsuć. Postaram się to wyjaśnić i opisać rolę partycji: boot, system, recovery, data, cache (te same partycje są na tablecie, telefonie, zegarku, telewizorze, samochodzie… z systemem Android).

image

/boot

To jest partycja, która umożliwia uruchomienie bramki (jak zresztą sugeruje nazwa). Zawiera jądro Linuxa i ramdysk. Bez tej partycji urządzenie po prostu nie będzie mogło się uruchomić. Aktualizacja tej partycji powinna być wykonywana tylko wtedy, gdy jest to absolutnie konieczne - chodzi o to, że po wyczyszczeniu tej partycji NIE MOŻNA ponownie uruchamiać urządzenia przed jej ponownym zapisaniem.

/system

Ta partycja zawiera cały system operacyjny Android, z wyjątkiem jądra i ramdysku (na partycji boot). Obejmuje to interfejs użytkownika Androida, a także wszystkie aplikacje systemowe AIS, które są fabrycznie zainstalowane na urządzeniu.
Ta partycja jest montowana tylko do odczytu - nie można nic zapisać w partycji system.

/recovery

Partycja odzyskiwania to alternatywna partycja rozruchowa (boot), która umożliwia uruchomienie urządzenia w celu wykonania na nim zaawansowanych operacji… takich jak → przywrócenie do ustawień fabrycznych.

/data

Partycja danych, zwana także partycją użytkownika, zawiera dane użytkownika - to miejsce, do którego trafiają Twoje integracje, ustawienia i zainstalowane aplikacje. Wyczyszczenie tej partycji zasadniczo powoduje przywrócenie ustawień fabrycznych na urządzeniu, przywracając je do stanu, w jakim było po pierwszym uruchomieniu. Podczas usuwania danych / przywracania ustawień fabrycznych w trybie recovery jest to ta partycja, którą czyścisz.

/cache

Jest to partycja, na której Android przechowuje często używane dane i ekrany (aktywności) aplikacji. Wyczyszczenie pamięci podręcznej nie wpływa na Twoje dane w systemie, ale po prostu usuwa ulotne dane, które są automatycznie tam ponownie zapisywane w miarę dalszego korzystania z urządzenia.

Pełny reset aplikacji

Pełny reset aplikacji opisany w dokumentacji, to wyczyszczenie danych w jednej aplikacji → AIS dom, która jest na partycji data. Nie ma to wpływu na cały system i o to chodzi.

tak samo działa to na telefonie z Android itd…

Aplikacja AIS dom, a co za tym idzie Home Assistant i Zigbee2Mqtt działają w przestrzeni użytkownika i nie mają możliwości pisana w przestrzeniach innych użytkowników (aplikacja w android to użytkownik Linux). Partycja system jest tylko do odczytu.

Tak wygląda układ partycji w DEV1:

Korzyści i ograniczenia

Architektura naszego systemu - współdzielenie jądra Linux-a z Android to ogromne korzyści:

:heavy_plus_sign: Mamy “niezniszczalną” strukturę systemu zaprojektowaną przez firmę Android, którą kupiło Google żeby konkurować z iOS.
:heavy_plus_sign: Cały system Android bazuje na Linux i jest za darmo wraz z dostępem do kodów.
:heavy_plus_sign: Mamy jądro Linux-a skompilowane przez Amlogic, wraz z zastrzeżonymi kodekami audio i video, które ma tylko Amlogic - dzięki temu odtwarzamy świetnie multimedia. Te same kompilacje dostaje np. Google czy Amazon od Amlogic do ich sprzętów.
:heavy_plus_sign: Mamy świetne API Android i dostęp do ogromnej ilości usług w tym TTS i STT, które jest zaimplementowane w systemie
:heavy_plus_sign: Mamy dostęp do układów i płyt Amlogic w dobrych cenach, bo są one produkowane i sprzedawane w milionach egzemplarzy.

Są też ograniczenia, nie można mieć wszystkiego:

:heavy_minus_sign: Nasz serwer działa w przestrzeni użytkownika systemu, czyli w lokalizacji naszej aplikacji: /data/data/pl.sviete.dom dlatego nie używamy oficjalnych pakietów Debiana ani Ubuntu w swoim środowisku. Mamy własne kompilacje binarek, które uwzględniają tą niestandardową ścieżkę (cały nasz system można uruchomić na telefonie czy tablecie i też będzie działał).
:heavy_minus_sign: Nie mamy kontenerów tak jak w mini serwerach PC (głównie dlatego, że wirtualizacja to spadek wydajności).
:heavy_minus_sign: Nie mamy GPIO tak jak w RPi.

Podsumowując

System AIS to nie jest opowiedź na wszystkie problemy tego świata i nie zastępuje wszystkich urządzeń. Inni producenci nie powinni się martwić, no może poza Fibaro :wink: ale wg nas bramki AIoT będą w ten sposób robione jak nasza. Naszym docelowym klientem będzie użytkownik, który radzi sobie z telefonem Android. Gdyby nie Android i jego architektura oraz “ograniczenia” to już dawano projekt by się zakończył niepowodzeniem bo nie nadążylibyśmy wysyłać kart pamięci :wink:

Jak potrzebujesz GPIO, to kup płytkę developerską która ma GPIO - jest takich setki.
Jak chcesz administrować bazami danych, zarządzać kontenerami Dockera, to kup mini serwer NUC i instaluj tam kontenery Dockera i nimi zarządzaj.

A jak chcesz po prostu bramkę, która działa bez wentylatora i do której możesz po minucie od uruchomienia powiedzieć: “Włącz radio …” i Jolka to zrobi, a następnie możesz zintegrować urządzenia, ponazywać je i też głosowo nimi sterować, po 30 minutach czytania dokumentacji dojdziesz do tego, że kliknięciem możesz włączyć szyfrowany dostęp zdalny i mieć sterowanie domu z całego Internetu… Jeżeli rozumiesz tą wartość, to bramka AIS dom jest dla Ciebie :+1:

Polecamy się

:heart:

PS
Ten post to trochę odpowiedź na wątki z “forum dla fachowców od OpenSource”, którzy nie widzą wartości dodanej w tym AIS i Jolce… bo przecież to kopia HA, Z2M i RPi i jeszcze Pythona i Linuxa skopiowali (a nie, to chyba jednak HA skopiowało Pythona od Google, a Google Android od Linuxa), ale w sumie to po co przepłacać jak “można ze szwagrem taki system zrobić z Internetu”???

Nie będzie innej odpowiedzi… będziemy przekierowywać tu. Mamy sporo kodu do napisania i szkoda czasu na dyskusje, szczególnie z osobami które pod przykrywką adwokata Open Source “chcą nam pomóc”… a jak nie dostają sprzętu za darmo to recenzują, że nie widzą wartości w takim urządzeniu :wink: Kody AIS są Open Source, my potrafimy programować, tworzymy i wspieramy Open Source, co nie znaczy, że rozdajemy za darmo.

9 polubień

Nie ma sensu dyskutować, wszyscy mamy co robić, zgadzam się z argumentami :slight_smile: ale nasuwa się proste pytanie: jakie będą, możliwe/planowane, ograniczenia w wersji PRO1 bramki AIS? Czy konsola, ssh nadal będą dostępne?

1 polubienie

AIS PRO1 to wszystkie kody, które zrobiliśmy i przetestowaliśmy wspólnie, tworząc: AIS DEV1, DEV2, DEV3. Żadnej funkcjonalności nie zabraknie i będzie znacznie szybciej. Konsola i root zostają, możliwe, że dodamy tylko ostrzeżenie przed wejściem w ten tryb.

Nie będzie już tak przystępnie cenowo, bo mocny najnowszy sprzęt i kilka innych cech które, które ma ten sprzęt, kosztują. Ostrzegam uczciwie, że nie pobijemy tu stosunkiem ceny do możliwości poleasingowe hp, sorry.

Liczymy też, że z ceną pójdzie też w parze świadomość kupującego, który przed wydaniem większej kwoty, przeczyta coś o możliwościach i nie będzie zdziwiony, że nie działa z żarówką LED z żabki… Ten trend bardziej świadomych zakupów widzimy już przy DEV3 - zero zwrotów (nawet pomimo “afery dekielkowej”), czyli wygląda na to, że jak ktoś wydał 450 zł, to zastanowił się nad tym bardziej.

PRO1 to nie będzie wersja “AIS Insane 1” (jak mod w tesli), którą chcemy tylko pokazać, że potrafimy coś takiego zrobić, bo nie ma ograniczeń w budżecie. A potem sprzedać tylko w 2 egzemplarzach, za to osobiście zainstalowanych przez Jolkę w rezydencji u Państwa Kulczyków i Radziwiłów.
Dlatego wykrywanie obiektów i ucznie się Jolki zachowań użytkownika w domu zostawimy na później…

i wszystko jasne, dzięki. Cierpliwie więc czekam na wersję PRO1, zakładam, że spełni 80% moich wymagań co do hardware i software :grinning:.

ale z tym napewno sobie poradzi Image processing - Home Assistant a to wykorzystywane jest w rozpoznawanie tablic rejestracyjnych pojazdów:

A ja tylko bym chciał podpytać co na Pro będzie można zrobić więcej niż na dev3? Czekam na Pro z nadzieją, że zrobię z niej mini serwerem, który postawię u żony w sklepie. Jolka posteruje ogrzewaniem, a dodatkowo jakiś vpn postawie czy mały NAS. Z tego co rozumiem to kontenerów do kierowania nie postawie?

1 polubienie