馃捑 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 鈥渘iezniszczaln膮鈥 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 鈥渙graniczenia鈥 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膰: 鈥淲艂膮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 鈥渇orum 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 鈥渕o偶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 鈥渃hc膮 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 鈥渁fery dekielkowej鈥), czyli wygl膮da na to, 偶e jak kto艣 wyda艂 450 z艂, to zastanowi艂 si臋 nad tym bardziej.

PRO1 to nie b臋dzie wersja 鈥淎IS 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