Opis jak działa aktualizacja systemu Asystent domowy
System Asystent domowy ma kilka warstw, które okresowo aktualizujemy:
1. Linux
w tym kroku aktualizujemy pakiety binarne z naszego repozytorium, sprowadza się to do 2 komend:
apt update
apt upgrade
oraz, jeżeli trzeba, uruchamiamy skrypty w języku bash.
Technicznie to, co jest uruchamiane podczas tego kroku aktualizacji, napisane jest głównie w języku C / C++:
Przykład najprostszego programu w C
Opiszę, jak skompilować program w C bezpośrednio na bramce, a następnie uruchomić go z Asystenta domowego.
Tworzymy folder z programami
cd AIS/
mkdir programs
cd programs
Dodajemy nowy plik z kodem
cd ~/AIS/programs
nano hello.c
Kod programu:
#include <stdio.h>
int main(void) {
printf("Hello\n");
return 0;
}
[image]
Kompilujemy nasz program
clang hello.c
Uruchamiamy skompilowaną wersję
./a.out
[image]
Uruchamiamy program z Asystenta domoweg…
lub jest skryptem powłoki:
Bash, Konsola w aplikacji - interpreter poleceń na bramce
Opiszę, jak dodać skrypt powłoki bash, a następnie uruchomić go z Asystenta domowego.
Celem tego opisu jest pokazanie, w jaki sposób można dodać na bramce własny skrypt, a następnie wykonać go z automatyzacji.
W ten sposób można zrobić własny backup co określony czas, czy wywołać co tylko chcemy z innych naszych programów - generalnie wszystko, czego nam brakuje na bramce, a bardzo chcemy to mieć.
Konsola
Konsola dostępna w aplikacji…
2. Android
w tym kroku aktualizujemy aplikację systemu Android, robią to tego typu komendy (pobranie i instalacja aplikacji na bramce):
curl -o "/data/data/pl.sviete.dom/files/usr/tmp/AisPanelApp.apk" -L https://powiedz.co/ota/android/AisPanelApp.apk
su -c "pm install -r /data/data/pl.sviete.dom/files/usr/tmp/AisPanelApp.apk"
Technicznie to, co jest uruchamiane podczas tego kroku aktualizacji, napisane jest w języku Java lub Kotlin. Tu są kody naszych aplikacji:
This is our main application that works both on the gateway and on other devices including: tablets, phones, Android TV. - GitHub - sviete/AIS-dom: This is our main application that works both on t...
a w serwisie OTA są gotowe kompilacje podpisane stosownymi kluczami: https://powiedz.co/ota/
3. Home Assistant
w tym kroku aktualizujemy aplikację Home Assistant, za pomocą tego typu komendy:
pip install ais-dom -U
Technicznie to, co jest uruchamiane podczas tego kroku aktualizacji, napisane jest w języku Python:
Przykład najprostszego programu w Python
Opiszę, jak dodać program w języku Python, a następnie uruchomić go z Asystenta domowego.
Tworzymy folder z programami (jeżeli jeszcze go nie mamy)
cd AIS/
mkdir programs
cd programs
Dodajemy nowy plik z naszym pierwszym kodem
cd ~/AIS/programs
nano hello.py
Kod programu:
print("Hello Jolka")
[image]
Uruchamiamy program
python hello.py
[image]
Interpreter Python na bramce
Język Python jest interpretowany, dlatego nie kompilujemy kodu do kodu ma…
4. Zigbee
w tym kroku aktualizujemy aplikację Zigbee w sposób opisany tu:
Opis techniczny działania zigbee2mqtt na bramce AIS dom
zigbee2mqtt to program napisany w serwerowym JavaScript → node.js
Czym jest node.js opisujemy tu:
tu jest też opis jak napisać pierwszy własny program w node.js
Lokalizacja zigbee2mqtt na bramce
zigbee2mqtt znajduje się na bramce w katalogu domowym użytkownika AIS (przedstawiany w Linux symbolem ~ i zmienną środowiskową $HOME )
Przejście do folderu z zigbee2mqtt to komenda w konsoli:
cd ~/zigbee2mqtt
[image]
Konfig…
Technicznie to, co jest uruchamiane podczas tego kroku aktualizacji, napisane jest w języku JavaScript / Node.js:
Przykład najprostszego programu w Node.js
Opiszę, jak dodać program w języku Node.js, a następnie uruchomić go z Asystenta domowego.
Tworzymy folder z programami (jeżeli jeszcze go nie mamy)
cd AIS/
mkdir programs
cd programs
Dodajemy nowy plik z naszym pierwszym kodem
cd ~/AIS/programs
nano hello.js
Kod programu:
var http = require('http');
console.log('Serwer na porcie 8080');
console.log('Naiśnij Ctrl+c żeby zatrzymać');
http.createServer(function (req, res) {
res.writeHead(200, {'Con…
Jak widać w poszczególnych warstwach systemu działają różne technologie/języki.
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średnio na urządzeniu. Więcej szczegółów:
Ś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óryc…
Na bramce DEV można tworzyć / instalować programy w 4 najbardziej popularnych językach na świecie: