Środowiska programistyczne dostępne na bramce
Na bramce DEV dostępne są środowiska programistyczne, dzięki czemu nie tylko można uruchamiać gotowe programy ale też pisać i uruchamiać własne programy bezpośredion na urządzeniu.
Bramka AIS dom w wersji DEV może być używana tworzenia oprogramowania, edukacji informatycznej i eksperymentów. W kategorii Programowanie umieścimy kilka postów z informacjami o tym, jak zacząć programowanie na bramce. Skupimy się na językach w których napisany jest system Asystent domowy (C, Python, JavaScript i Java).
C, C++
Pakiet Clang
Opis
Front-end kompilatora dla języków C, C++ oraz Objective-C, który używa LLVM jako back-end (generator kodu natywnego i optymalizator). Jest to alternatywa dla kompilatora z projektu GCC. Prace nad nim sponsorowane są przez Apple, a sam program wydany jest na licencji BSD.
Rola na bramce
Podstawa dla wszystkiego, co działa na bramce. Programy w postaci kodu maszynowego (w postaci binarnej, w slangu komputerowym binarki), które działają na bramce, są kompilowane kompilatorem Clang. Normalnie nie budujemy pakietów na bramce, ale w kontenerze i dostarczamy na bramkę już skompilowane paczki, z naszego repozytorium pakietów apt: https://ai-speaker.com/apt/ Pakiety takie jak Python, Node.js, rclone, Mosquito (broker mqtt) i dziesiątki innych pakietów dostarczane są na bramkę w postaci binarnej z repozytorium apt. Dostępność pakietu Clang na bramce umożliwia też kompilowanie programów bezpośrednio na urządzeniu.
Przykład programu
Można skopilować program w C bezpośrednio na bramce, a następnie uruchomić go z Asystenta domowego. Pokazujemy jak to zrobić na przykładzie:
Python
Pakiet python2 i python3
Opis
Python jest językiem programowania ogólnego przeznaczenia. Ponieważ jest interpretowany, dlatego nie da się instalować pakietów Pythona bez obecności środowiska programistycznego Python na bramce. Obecnie świat używa Python 3, ale wciąż istnieją projekty korzystające z Python 2 dlatego mamy oba te środowiska na urządzeniu.
Rola na bramce
Home Assistant napisany jest w języku Python, wszystkie integracje Home Assistant są napisane w języku Python i najczęściej korzystają z dodatkowych pakietów też napisanych w języku Python.
Przykład programu
Można napisać własny program w Python bezpośrednio na bramce, a następnie uruchomić go z Asystenta domowego. Pokazujemy jak to zrobić na przykładzie:
JavaScript
Pakiet node
Opis
Node.js to wieloplatformowe środowisko uruchomieniowe o otwartym kodzie do tworzenia aplikacji typu server-side napisanych w języku JavaScript. Podobnie jak Python JavaScript nie jest kompilowany tylko interpretowany, dlatego nie da się instalować pakietów Node.js bez obecności środowiska programistycznego Node.js na bramce.
Rola na bramce
Menedżer procesów działających na bramce to PM2, jest napisany w JavaScript. Te procesy to serwery: ssh, ftp, mqtt, ais (Home Assistant), a także tunnel (zdalny dostęp), webssh (dostęp do konsoli z aplikacji). Dodatkowo po włożeniu dongla zigbee uruchamiany jest proces zigbee2mqtt. Pakiet Zigbee2Mqtt też napisany jest w JavaScript i działa na Node.JS.
Przykład programu
Można napisać własny program w JavaScript bezpośrednio na bramce, a następnie uruchomić go z Asystenta domowego. Pokazujemy jak to zrobić na przykładzie: