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 (tylko w lokalnej sieci) może służyć do wykonywania poleceń z klawiatury (lub innych standardowych urządzeń wejściowych w systemie), lub z pliku (skryptu).
Sama powłoka nie jest częścią jądra systemu, ale używa jądra systemu do wykonywania programów, tworzenia plików itp.
Nasza standardowa konsola to powłoka bash (Bash shell):
https://www.gnu.org/software/bash/
Dodanie skryptu bash
Tworzymy folder z programami (jeżeli jeszcze go nie mamy)
cd AIS/
mkdir programs
cd programs
Dodajemy nowy skrypt z naszym pierwszym kodem
cd ~/AIS/programs
nano hello.sh
Kod programu:
echo "Hello Jolka!"
Uruchamiamy skrypt
żeby uruchomić skrypt nadajemu uprawnienia komendą:
chmod +x hello.sh
Uruchamiamy skrypt w konsoli
./hello.sh
Wywołanie API asystenta ze skryptu
W dokumentacji opisujemy jak działa API systemu:
Jest to API REST full, więc możemy wywołać je za pomocą programu curl dostępnego na bramce.
Wywołanie API z konsoli
Ta komedna, wywołana z konsoli w aplikacji, spowoduje wywołanie API text_to_speech - przeczytanie tekstu przez Jolkę:
curl -v --header "Content-Type: application/json" \
--request POST \
--data '{"text":"Hejka, tu Jolka"}' \
http://localhost:8122/text_to_speech
Wywołanie API ze skryptu
Podobną komendę możemy dodać do naszego skryptu bash:
- Tworzymy nowy skrypt
nano hej.sh
- Dodajemy w skrypcie wywołanie API z curl
# wywołanie mówienia skryptem
curl -v --header "Content-Type: application/json" \
--request POST \
--data '{"text":"Hejka, tu Jolka"}' \
http://localhost:8122/text_to_speech
- Dodajemy uprawnienia do uruchamiania skryptu
chmod +x hej.sh
- Uruchamiamy skrypt
./hej.sh
Wywołanie skryptu z Asystenta domowego
Każdy skrypt możemy uruchomić z poziomu Asystenta domowego, np. z automatyzacji.
Poniższy przykład pokazuje jak uruchomić nasz skrypt hej.sh
- Lokalizacja pliku ze skryptem
w konsoli przechodzimy do folderu z programami i wpisujemy komendę pwd
kopiujemy ścieżkę
- Testowe wywołanie usługi - uruchomienie skryptu
w narzędziach deweloperskich w aplikacji wybieramy usługę ais_shell_command.execute_command
i jako komedę do uruchomienia wpisujemy pełną ścieżkę do skryptu hej.sh
/data/data/pl.sviete.dom/files/home/AIS/programs/hej.sh
Wywołujemy usługę i słyszymy “Hejka tu Jolka”
Oczywiście w ten sposób możemy uruchomić dowolny skrypt w Bash, który uruchomi program (w C, Python czy Node.js) a dodatkowo głosowo poinformuje nas o tym, co robi.
- Wywołanie usługi z automatyzacji
a) Dodajemy nową automatyzacje - uruchomienie podczas startu systemu
b) Dodajemy akcje na starcie - wywołanie naszego skryptu bash
c) zapisujemy i testujemy