FireタブレットでNode-REDを実行する

# Fireタブレットに Termux を入れて Node-RED を実行する

使わなくなったFire HD 6があったので、Node-REDを入れてみました。基本的にはNode-RED日本ユーザ会の公開している手順に沿っていますが、OSがFire OS 5（Android 5.1ベース）と古く、苦労したので手順を残します。

https://nodered.jp/docs/getting-started/android

## 動作環境
- Fire HD 6 (第4世代)
- Fire OS 5.7.0.0

## 手順
### Termuxのインストール
まず、Termuxをインストールします。
2022年8月現在、Android 5ではGoogle Play版Termuxが動作しないため、Android 5対応バージョンのapkファイルをダウンロードしてインストールする必要があります。

:::note
そもそも、FireタブレットはAmazonアプリストアからしかアプリをインストールできず、AmazonアプリストアにはTermuxは登録されていません。
:::

1. [設定]−[セキュリティとプライバシー]を開く
1. [不明ソースからのアプリ]をONにする
1. Android 5対応バージョンのapkファイルをダウンロードする
    - [https://archive.org/details/termux-repositories-legacy](https://archive.org/details/termux-repositories-legacy) から以下のファイルを探してダウンロードする
        - termux-v0.79-offline-bootstraps.apk
    - ダウンロード時に「有害なファイルの可能性があります」と警告が表示されますので、続行するか否かはご自身で判断してください。なお、ダウンロード元の情報は [https://github.com/termux/termux-app](https://github.com/termux/termux-app) に基づいています。
1. Fireタブレット標準の[ドキュメント]アプリ等を使って、ダウンロードした「termux-v0.79-offline-bootstraps.apk」ファイルを開き、インストールする
1. Termuxを開いて以下画面が出ればインストール完了しています
    ![Termux起動画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269407/5f1bb065-f112-40c9-83b7-5b4cf4bc86f5.png "Termux起動画面")

### Termuxの設定変更
Termux起動して`apt update`を実行するとリポジトリ絡みのエラーとなるので、以下ページの情報を元に参照リポジトリを変更します

https://github.com/termux/termux-app/wiki/Termux-on-android-5-or-6

```/data/data/com.termux/files/usr/etc/apt/sources.list
# もともとの以下の行はコメントアウト
#deb https://termux.net stable main
# 以下の行を追加
deb https://packages.termux.dev/apt/termux-main-21 stable main
```
```/data/data/com.termux/files/usr/etc/apt/sources.list.d/game.list
# もともとの以下の行はコメントアウト
#deb https://dl.bintray.com/grimler/game-packages-21 games stable
```
```/data/data/com.termux/files/usr/etc/apt/sources.list.d/science.list
# もともとの以下の行はコメントアウト
#deb https://dl.bintray.com/grimler/science-packages-21
```
:::note
gameとscienceのリポジトリを以下に変更してもエラーとなるのでコメントアウトのみとしました
deb https://termux.dev/game-packages-21-bin games stable
deb https://termux.dev/science-packages-21-bin science stable
:::

### Node-REDのインストール
以下を入力します。
```
apt update
apt upgrade
apt install coreutils nano nodejs-lts
npm i -g --unsafe-perm node-red
node-red
```
:::note
Node.jsは`apt install nodejs`だとNode-RED非対応のバージョン13がインストールされるため（2022年8月時点）、`apt install nodejs-lts`でバージョン12をインストールしています。
:::
ブラウザで`http://localhost:1880`を開くと以下画面が表示されます
![Node-RED画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269407/cecb692c-8106-e586-aac3-9c72e1a6890d.png)

## Termux:apiのインストール
端末の持つセンサ等にアクセス可能となるよう、Termux:apiをインストールします
1. `termux-v0.79-offline-bootstraps.apk`をダウンロードしたのと同じ場所から`termux-api-git-debug.apk`をダウンロードし、ファイルを開いてインストールします
1. Termuxのターミナルを開き、以下を入力します
    ```
    apt install termux-api
    ```
1. Node-REDに`node-red-contrib-termux-api`というノードを追加すると、以下画面のように簡単に端末の情報にアクセスできます
    ![Termux:apiサンプル画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269407/e2e4a718-ccf3-3891-d718-b08625c043c9.png)

https://flows.nodered.org/node/node-red-contrib-termux-api

## 補足
- LinuxとしてTermuxではなくUserLAndも試してみましたが起動できませんでした。行った手順は以下の通り。
    - 開発者オプションでUSBデバッグを許可する
    - Fire ToolboxでGoogle Playからアプリをインストールできるようにする
    - Google PlayからUserLAndをインストール
    - UserLAndを起動し、Ubuntuをssh環境で起動しようとする
        - エラー表示されないが、ターミナルが表示されない。
        - ポート2022で待ち受けるはずのsshdも起動していない模様。

以上