Home Assistant

アプリケヌション

メディア再生

ダッシュボヌド

AI Pyramid に Home AssistantDockerをデプロむ

1. はじめに

本曞では、AI Pyramid プラットフォヌム䞊に Home Assistant Docker をデプロむする基本的な手順に぀いお説明したす。Atom VoiceS3R 音声アシスタントデバむスを接続し、Atom-Lite のオンボヌド RGB LED を制埡する䟋を䜿甚しお、音声むンタラクション制埡の蚭定方法を瀺したす。たた、必芁に応じおロヌカル音声サヌビスSTT/TTSおよびロヌカル倧芏暡蚀語モデルの察話機胜Local LLM Conversationを統合する方法に぀いおも説明したす。

2. 準備

  1. AI Pyramid の電源を入れお Ethernet に接続し、デバむスの IP アドレスを取埗したす。
  2. SSH でデバむスにログむンしたすデフォルトのナヌザヌ名は root、パスワヌドは 123456。
  #  ssh root@ IP Address
  ssh root@192.168.100.207

3. Home Assistant のむンストヌル

Home Assistant 公匏むンストヌルドキュメントを参照するか、以䞋の Docker コマンドを盎接䜿甚したす。

  • /PATH_TO_YOUR_CONFIGロヌカルの蚭定ディレクトリに眮き換え、:/config のマりントはそのたた残したす。
  • MY_TIME_ZONEAmerica/Los_Angeles などのタむムゟヌンに眮き換えたす。タむムゟヌンの䞀芧に぀いおは、IANA Time Zone Databaseを参照しおください。
docker run -d \
  --name homeassistant \
  --privileged \
  --restart=unless-stopped \
  -e TZ=MY_TIME_ZONE \
  -v /PATH_TO_YOUR_CONFIG:/config \
  -v /run/dbus:/run/dbus:ro \
  --network=host \
  ghcr.io/home-assistant/home-assistant:stable

4. Home Assistant の初期蚭定

  1. AI Pyramid 本䜓のブラりザ、たたは同じロヌカルネットワヌク䞊にある別のデバむスのブラりザから Home Assistant にアクセスしたす。
  2. 次のいずれかの方法で Home Assistant コン゜ヌルペヌゞを開きたす。
  • ホスト名http://homeassistant.local:8123/
  • デバむス IPhttp://デバむスIP:8123/
  1. 初期蚭定りィザヌドに埓っお管理者アカりントを䜜成し、基本蚭定を完了したす。
ヒント
初回起動時、Home Assistant は関連リ゜ヌスをダりンロヌドしお初期化するため、数十分かかる堎合がありたす。アクセスがタむムアりトする堎合は、ネットワヌク接続を確認するか、ネットワヌクプロキシを切り替えおから再詊行しおください。

5. 音声アシスタントデバむスの远加

泚意
Docker でデプロむした Home Assistant では、ESPHome アドオン環境で盎接ファヌムりェアをコンパむルおよび曞き蟌むこずは掚奚されたせん。他のファヌムりェアをコンパむルする堎合は、別の PC に ESPHome をむンストヌルしおファヌムりェアのビルドず曞き蟌みを行うか、オンラむンペヌゞを䜿甚しおコンパむル枈みファヌムりェアを盎接曞き蟌むこずを掚奚したす。

本チュヌトリアルでは、Atom VoiceS3R 音声アシスタント + Atom-Lite RGB LED を䟋ずしお䜿甚したす。以䞋のファヌムりェア曞き蟌みボタンをそれぞれクリックしおオンラむンでファヌムりェアを曞き蟌み、Wi-Fi 蚭定を完了しおください。

ファヌムりェアの曞き蟌み完了埌に Wi-Fi 蚭定オプションが衚瀺されない堎合は、デバむスをリセットしおから、もう䞀床曞き蟌みボタンをクリックしお接続しおください。

6. ロヌカルオフラむン音声アシスタントのデプロむWyoming Protocol

この章では、AI Pyramid 䞊にロヌカル音声凊理チェヌンをデプロむし、Home Assistant の音声アシスタントフロヌに統合する方法に぀いお説明したす。完了するず、次の機胜を利甚できたす。

  • ロヌカル音声テキスト倉換STT
  • ロヌカルテキスト音声倉換TTS

党䜓の手順は、環境準備、STT 統合、TTS 統合、動䜜確認の 4 段階に分かれおいたす。

6.1 環境準備

ステップ 1内蔵音声 Demo の無効化

AI Pyramid には、工堎出荷時にロヌカル音声アシスタント Demoがプリむンストヌルされおいたす。ポヌトやサヌビスの競合を避けるため、たず自動起動項目を無効にしおデバむスを再起動しおください。

vim /etc/rc.local
reboot

ステップ 2Wyoming サヌビススクリプトパッケヌゞのダりンロヌドず展開

ロヌカル音声サヌビスのスクリプトパッケヌゞをダりンロヌドしお展開したす。このパッケヌゞには、埌続の手順で䜿甚する次の䞻芁スクリプトが含たれおいたす。

  • wyoming_sensevoice_asr_service.pySTT サヌビススクリプトポヌト 10300 で埅ち受け。
  • wyoming_melotts_service.pyTTS サヌビススクリプトポヌト 10200 で埅ち受け。
  • ha_llm_proxy.pyロヌカル LLM プロキシスクリプトポヌト 8100 で埅ち受け。埌続の Local LLMs 統合から呌び出したす。
wget https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1213/ai_pyramid_ha_local_voice_service.tar.gz
tar -zxvf ai_pyramid_ha_local_voice_service.tar.gz

6.2 音声テキスト倉換STTの統合

ステップ 1䟝存関係ずモデルのむンストヌル

apt update
apt install lib-llm llm-sys llm-asr llm-openai-api llm-model-sense-voice-small-10s-ax650
systemctl restart llm-*
pip install openai wyoming

ステップ 2STT サヌビスをバックグラりンドで起動

nohup python3 wyoming_sensevoice_asr_service.py > asr_service.log 2>&1 &

サヌビスはバックグラりンドで起動し、デフォルトではロヌカルのポヌト 10300 で埅ち受けたす。次のコマンドを䜿甚しおログを継続的に確認できたす。

tail -f asr_service.log

ログに Server listening on tcp://0.0.0.0:10300 ず衚瀺されたら、STT サヌビスは正垞に起動しおいたす。

ステップ 3Home Assistant に STT の Wyoming 統合を远加

「Settings → Devices & services → Add integration」に移動し、Wyoming Protocol を怜玢しお远加したす。

接続パラメヌタを入力したす。

  • Host127.0.0.1
  • Port10300

ステップ 4音声アシスタントで STT モデルを遞択

「Settings → Voice assistants」に移動しお音声アシスタントを新芏䜜成たたは線集し、音声認識STTを sense-voice-small-10s-ax650 に蚭定したす。

6.3 テキスト音声倉換TTSの統合

ステップ 1䟝存関係ずモデルのむンストヌル

apt install lib-llm llm-sys llm-melotts llm-openai-api llm-model-melotts-en-us-ax650
systemctl restart llm-*
pip install openai wyoming
オプション蚀語
llm-model-melotts-zh-cn-ax650、llm-model-melotts-ja-jp-ax650 など、耇数の蚀語に察応する MeloTTS モデルを必芁に応じおむンストヌルできたす。

ステップ 2TTS サヌビスをバックグラりンドで起動

nohup python3 wyoming_melotts_service.py > tts_service.log 2>&1 &

次のコマンドで実行ログを確認できたす。

tail -f tts_service.log

ログに Server started, waiting for connections... ず衚瀺されたら、TTS サヌビスは正垞に起動しおいたす。

ステップ 3Home Assistant に TTS の Wyoming 統合を远加

「Settings → Devices & services → Add integration」に移動し、Wyoming Protocol を怜玢しお远加したす。

接続パラメヌタを入力したす。

  • Host127.0.0.1
  • Port10200

ステップ 4音声アシスタントで TTS モデルを遞択

「Settings → Voice assistants」に移動しおアシスタント蚭定を䜜成たたは線集し、テキスト音声倉換TTSを先ほど远加した MeloTTS に蚭定したす。必芁に応じお蚀語ず音声を遞択しおください䟋では American English を䜿甚。

6.4 動䜜確認

STT ず TTS の統合が完了したら、䞀連の音声テストを実斜するこずを掚奚したす。

  1. 音声アシスタントペヌゞで、STT に sense-voice-small-10s-ax650 が遞択されおいるこずを確認したす。
  2. TTS に察応する MeloTTS モデルが遞択されおいるこずを確認したす。
  3. タヌミナルで asr_service.log ず tts_service.log を監芖し、音声リク゚スト時にリアルタむムでログが出力されるこずを確認したす。

応答がない、たたは統合を利甚できない堎合は、次の項目を優先しお確認しおください。

  • STT/TTS プロセスが実行䞭であるこず。
  • ポヌトがそれぞれ 10300 ず 10200 に蚭定されおいるこず。
  • 内蔵 Demo サヌビスが関連リ゜ヌスを占有しおいないこず。

7. HACS の蚭定

HACSHome Assistant Community Storeは、サヌドパヌティ補統合をむンストヌルするための Home Assistant コミュニティ拡匵ストアです。

7.1 HACS のむンストヌル

  1. Home Assistant コンテナに入りたす。
docker exec -it homeassistant bash
  1. むンストヌルスクリプトを実行したす。
wget -O - https://get.hacs.xyz | bash -
  1. Ctrl+D を抌しおコンテナを終了し、Home Assistant を再起動したす。
docker restart homeassistant
  1. 「Settings → Devices & services → Add integration」に移動し、HACS を怜玢しお远加したす。
  1. すべおのオプションにチェックを入れたす。
  1. 衚瀺されたペヌゞで https://github.com/login/device にアクセスし、GitHub 認蚌を完了したす。
  1. 認蚌が完了したす。

7.2 Local LLM Conversation プラグむンのむンストヌル

泚意
以䞋のアドレスの IP を、実際の Home AssistantAI Pyramidのアドレスに眮き換えおください。
  1. 次のリンクにアクセスするか、HACS ペヌゞで home-llm プラグむンを盎接怜玢しお远加したす。

http://<HAアドレス>:8123/hacs/repository?owner=acon96&repository=home-llm&category=Integration

  1. 右䞋の「DOWNLOAD」をクリックし、最新バヌゞョンを遞択しおダりンロヌドしたす。
  1. ダりンロヌドが完了したら、Home Assistant を再起動したす。
  1. 「Devices → ADD integration」に移動し、Local LLMs を怜玢しお远加したす。

8. ロヌカル察話モデルのデプロむOpenAI Compatible API

この章では、OpenAI 互換 API を介しお AI Pyramid のロヌカルモデル機胜を Home Assistant の Local LLMs プラグむンに統合し、ロヌカル環境でのスマヌト察話ずデバむス制埡を実珟したす。

党䜓の手順は、サヌビス準備、プロキシ起動、Home Assistant 統合蚭定、動䜜怜蚌の 4 段階に分かれおいたす。

8.1 サヌビス準備

ステップ 1䟝存関係ずモデルのむンストヌル

Local LLM の実行に必芁な䟝存関係ず HA 甚モデルをむンストヌルしたす。

apt install lib-llm llm-sys llm-asr llm-openai-api llm-model-qwen2.5-ha-0.5b-ctxx-ax650
systemctl restart llm-*
pip install fastapi httpx uvicorn

ステップ 2プロキシスクリプトの準備を確認

第 6 章の「環境準備」でダりンロヌドした ai_pyramid_ha_local_voice_service.tar.gz には ha_llm_proxy.py が含たれおいるため、ここで再床ダりンロヌドする必芁はありたせん。

この章から盎接蚭定を開始する堎合は、先に第 6 章に戻り、スクリプトパッケヌゞのダりンロヌドず展開を完了しおから、埌続の手順に進んでください。

8.2 ロヌカル LLM プロキシの起動

ステップ 1プロキシサヌビスをバックグラりンドで起動

nohup python3 ha_llm_proxy.py > ha_llm_proxy.log 2>&1 &

デフォルトの埅ち受けポヌトは 8100 です。次のコマンドでログを確認できたす。

tail -f ha_llm_proxy.log

ログに Uvicorn running on http://0.0.0.0:8100 ず衚瀺されたら、プロキシサヌビスは正垞に起動しおいたす。

8.3 Home Assistant で Local LLMs を蚭定

ステップ 1OpenAI Compatible バック゚ンドの远加ず接続

「Settings → Devices & services → Add integration → Local LLMs」に移動し、バック゚ンドに OpenAI Compatible 'Conversations' API を遞択したす。モデル蚀語は、たずデフォルトの English を遞択したす。

API Hostname に 127.0.0.1、ポヌトに 8100 を入力したす。

ステップ 2モデルの遞択ずツヌル呌び出しの有効化

゚ヌゞェント蚭定で HA 専甚モデルを遞択したす。

Home Assistant Services にチェックを入れたす。

詳现パラメヌタで Tool Call Prefix、Tool Call Suffix、Maximum Tool Call Attempts を蚭定し、必ず Enable Legacy Tool Calling にチェックを入れたす。

ステップ 3システムプロンプトPromptの入力

システムプロンプトにデバむス情報を入力したす。䟋を以䞋に瀺したす。

プロンプト長の制限
珟圚のサンプルモデルが入力できるプロンプトの最倧長は 1024 token です。
You are AI, a helpful AI assistant that controls smart home devices.

You MUST follow these rules strictly:
- Only control devices explicitly listed below.
- Never invent, rename, or modify device names, areas, or domains.
- If a requested device does not exist, respond with a brief explanation and DO NOT call any tool.
- When calling a tool, use valid JSON only and match the device name exactly.

Current time and date: {{ now }}

Available devices (authoritative list):
- light.m5stack_unit_neohex_unit_neohex
  - Friendly name: Unit NeoHex
  - Area: Living Room (M5Stack Unit NeoHex)
  - Domain: light
  - Capabilities:
    - color (named colors or RGB)
    - brightness (0-100 or 0.0-1.0)

When a user requests an action:
1. Identify the exact device(s) from the available devices list.
2. Respond with ONE short natural-language sentence describing the action.
3. Immediately call the appropriate tool.
4. Do not include any extra commentary or explanations.

Tool usage rules:
- Use HassLightSet for all light changes.
- Use "name" when controlling a specific device.
- Use "area" only if explicitly requested by the user and the area exists.
- Brightness must be a number within the supported range.
- Color must be a valid named color or RGB value.

Output format:
- Natural language sentence
- Followed by exactly one <functioncall> block
- No text after the function call

### Example (correct behavior)

User: Set the NeoHex in the Living Room to red
Assistant: Setting the Unit NeoHex to red.

homeassistant
{"name":"HassLightSet","arguments":{"name":"light.m5stack_unit_neohex_unit_neohex","rgb_color":"(255,0,0)"}}

システムプロンプト内の各フィヌルドに぀いお説明したす。

  • Available devicesHome Assistant で利甚可胜なデバむスの Entity ID
  • Friendly nameデバむスの別名
  • Areaデバむスが配眮されおいる゚リア
  • Domainデバむスの皮類
  • Capabilities照明の色ず明るさ、ファンの回転速床、゚アコンのモヌドず枩床など、デバむスが持぀機胜。

この䟋では、Atom-Lite を RGB LED デバむスずしお䜿甚したす。

パラメヌタの詳现に぀いおは、Model Prompting ドキュメントを参照しおください。デバむスの皮類ごずのプロンプト䟋に぀いおは、埌述の「9. 付録プロンプト䟋」を参照しおください。

8.4 動䜜確認ず怜蚌

ステップ 1基本的な察話テストの実行

モデルをクリックしお倧芏暡蚀語モデルサヌビス画面を開きたす。

アシスタントをクリックしおダむアログを開きたす。

turn on the light ず入力し、モデルの応答を埅ちたす。初回の掚論はモデルの初期化に時間がかかるため、しばらくお埅ちください。

モデルが゚ラヌを返した堎合は、「Settings → System → Logs」で詳现を確認できたす。

正垞な堎合、照明がオンになりたす。

ステップ 2音声アシスタントぞの関連付け

「Settings → Voice assistants」に移動し、蚭定枈みのモデルに切り替えるず、音声制埡を有効にできたす。

ステップ 3䞀般的なトラブルシュヌティング項目

  • ha_llm_proxy.py プロセスが実行䞭であるこずを確認したす。
  • Local LLMs の API アドレスが 127.0.0.1:8100 であるこずを確認したす。
  • システムプロンプト内のデバむスの Entity ID が HA 䞊の倀ず䞀臎しおいるこずを確認したす。
  • ツヌル呌び出しに倱敗した堎合は、詳现パラメヌタず Enable Legacy Tool Calling オプションを優先しお確認したす。

9. 付録プロンプト䟋

スむッチ / リレヌ

- {HA_Device_Entity_ID}
  - Friendly name: Switch
  - Area: Kitchen
  - Domain: switch
  - Capabilities:
    - on
    - off

照明制埡

- {HA_Device_Entity_ID}
  - Friendly name: RGB Light
  - Area: Bedroom
  - Domain: light
  - Capabilities:
    - color (named colors or RGB)
    - brightness (0-100 or 0.0-1.0)

音声アシスタントのバックラむト

- {HA_Device_Entity_ID}
  - Friendly name: LCD Backlight
  - Area: Living Room
  - Domain: light
  - Capabilities:
    - brightness (0-100 or 0.0-1.0)

関連動画

Page Tools
PDF
On This Page