Home
AoT 環境モニタリング・制御システム~
AoT は、自分の空間を地図に収め、その場所の記録とデバイスを結びつけます。そして、その空間を AI が人と一緒に見て、判断し、作業できるようにします。
センサーで環境を観測し、デバイスを遠隔操作するためのオープンソースソフトウェアであり、特定の用途や場所の種類に縛られません。デバイス・センサー・構造物をGIS 地図上の実際の位置に置くことができ、MCP(Model Context Protocol)ベースのAIレイヤーがシステムを読み取り、診断し、承認を得たうえで操作できます。どの機能を使うかは利用者が決めます。
Raspberry Pi をはじめとするシングルボードコンピュータ(SBC)にネイティブで動作するほか、一般的なサーバーやPC上ではDockerで動作します。
情報~
AoTが何を行い、各要素がどう組み合わさっているかはAboutを、機能・スクリーンショットなどその他の情報はREADMEをご覧ください。
前提条件~
- シングルボードコンピュータ(推奨: Raspberry Pi 2・3・4以降)、またはその他のDebianベースのLinuxマシン
- Debianベースのオペレーティングシステム(32ビット
armhf、64ビットarm64、amd64)、Python 3.8以上 - 有効なインターネット接続
インストーラーはCPUアーキテクチャを検出し、armhf・arm64・amd64に対応します。Raspberry Pi ZeroとPi 1(ARMv6)は検証していないため、対応対象として記載していません。
このほか、AoTはLinux・macOS・Windowsの各マシン上でDockerを使って動作させることもできます——下記のDockerでインストールを参照してください。
インストール~
起動してログインしたら、次のコマンドを実行してAoTのインストールを開始します。
インストール後、SBCのIPアドレスへWebブラウザでアクセスします。
https://127.0.0.1(またはlocalhost)は、Pi自身で開いたブラウザでのみ動作します。別のコンピュータからはPiのIPアドレスを使ってください。インストーラーが自己署名証明書を作成するため、初回アクセス時にブラウザが証明書の警告を表示します。警告を承諾して先へ進んでください。
このあとの画面は下記の初回起動を参照してください。
MQTTブローカー~
直接インストールでは、ローカルのMosquitto MQTTブローカーも設定されます。既定では同じ機器(127.0.0.1)からの接続のみ受け付け、AoTのMQTT入力・出力の既定の接続先(localhost:1883)と一致します。
- 外部ゲートウェイなど他の機器から接続する場合は、インストールコマンドを実行する前に、同じ端末で
export AOT_MQTT_LISTEN_ALL=1を実行します。この場合、すべてのネットワークインターフェースでログインなしで接続できるため、信頼できるネットワークでのみ使うか、/etc/mosquitto/conf.d/aot.confにパスワードファイル(allow_anonymous false、password_file)を追加してください。 - 既存のインストールでは、現在の
/etc/mosquitto/conf.d/aot.confがそのまま維持されます。以前のバージョンはlistener 1883とallow_anonymous trueを書き込み、ネットワーク全体からログインなしで接続できました。インストール・アップグレードでこのファイルは変更されず、このように開いている場合は警告のみ表示されます。制限するには、1行目をlistener 1883 127.0.0.1に変更し、sudo systemctl restart mosquittoを実行してください。ネットワーク上のゲートウェイがこのブローカーへ発行していないことを確認してから変更してください。
Dockerでインストール~
前提条件: Compose v2を含むDocker。公式イメージはlinux/amd64とlinux/arm64向けに公開されています。
composeファイルはリポジトリ内のカスタム拡張ディレクトリ(aot/inputs/custom_inputsなど)をマウントするため、先にリポジトリをクローンします。
git clone https://github.com/AoT-inc/AoT.git /opt/AoT
cd /opt/AoT
cp docker/.env.prod.example docker/.env
docker/.env内の次の値を確認してください。
AOT_IMAGE_TAG— インストールするバージョン。特定のリリースに固定することを推奨します。AOT_PORT— Webインターフェース用のホストポート(デフォルト8084)。TZ— コンテナのタイムゾーン(デフォルトAsia/Seoul)。システムタイムゾーン設定の初回起動時の既定値だけを決めます(データベースの初回作成時に一度コピーされ、その後変更しても影響しません)。ログの時刻とスケジュールは、システムタイムゾーン設定と地図上のサイト・ゾーンの位置に従います。初回ログイン後にシステムタイムゾーンを確認し、サイトとゾーンを地図に配置してください。データは常にUTCで保存されます。HARDWARE_PROFILE—LOW(デフォルト)、MEDIUM、HIGH。変わるのはAIアシスタント機能だけです。LOWはVEEとEKGの機能をオフにし(AIインテントルーターはオンのまま)、MEDIUMとHIGHはVEEとEKGをオンにします。HIGHはEKGのウィンドウをより大きく(500件ではなく5000件)保持します。センサー・出力・制御はどの値でも同じなので、Raspberry Piや小規模VMではLOWのままにしてください。
スタックを起動します。
そのポートでホストのIPアドレスへWebブラウザでアクセスします。
http://127.0.0.1:8084(またはlocalhost)は、Dockerホスト自身で開いたブラウザでのみ動作します。Dockerスタックは既定でHTTPSを使わないため、証明書の警告は出ません。HTTPSが必要な場合は前段にリバースプロキシを置いてください(セキュリティを参照)。
Docker環境のアップグレードとは、ディスク上のファイルを置き換えることではなく、新しいイメージを取得してコンテナを再作成することを意味します。詳しくはアップグレード/バックアップ/復元を参照してください。
Note
Dockerスタックは、ホストのGPIO・I2C・1-Wireデバイスをコンテナに渡しません。Raspberry Piのピンに配線したセンサーやリレーには直接インストールを使用してください。LoRaWAN(ChirpStack)・Modbus TCP・MQTTなどネットワーク接続のデバイスは、どちらのインストール方式でも同じように動作します。
初回起動~
新規インストール(直接インストール・Dockerとも)では、ログインフォームではなく公開のランディングページが最初に開きます。管理者ユーザーがまだいない間の流れは次のとおりです。
- ランディングページでログインを押します。
/loginへ移動しますが、管理者がいないためそのまま/create_adminへ転送されます。 - 最初の画面は品質保証に関する通知(ライセンス・保証・匿名統計)です。読んで承認しますを押します。
- 管理者作成フォームが表示されます。ユーザー名・メール・パスワードを入力して送信します。
- 作成したアカウントでログインします。統計収集は、あとから
管理 → システム管理 → 一般設定で拒否できます。