Hello.sh, Bash, Konsola w aplikacji - interpreter poleceń na bramce

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:

  1. Tworzymy nowy skrypt
nano hej.sh
  1. 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

  1. Dodajemy uprawnienia do uruchamiania skryptu
chmod +x hej.sh
  1. 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

  1. Lokalizacja pliku ze skryptem

w konsoli przechodzimy do folderu z programami i wpisujemy komendę pwd
kopiujemy ścieżkę

  1. 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” :slight_smile:

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.

  1. 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