解決策1:「Xiaoai Open Platform - Custom Skills」を使って音声テキストをOpenClawに転送する
(「アクセススピーカー」のようなものです)
対象効果:
あなたがXiaomiのスピーカーに一言言った→Xiao Aiは認識されたテキストをサーバーに送信→、サーバーはOpenClaw に呼びかけてXiao Aiのスピーカーブロードキャストに返信させます/v1/chat/completions→ →。
建築
Xiaomiスピーカー(ASR)→Xiaoai Skill Cloud Callback(HTTPS)→Webhookサービス→OpenClaw HTTP →Xiaoai(TTS)ブロードキャスト→テキストを返します
準備が必要です
- シャオアイオープンプラットフォームアカウント&カスタムスキル作成(コンソール内では「スキル開発→カスタムスキル」)
- パブリックネットワーク上でアクセス可能になるHTTPSサービス(ドメイン名+証明書、プラットフォームコールバックは一般的にHTTPSが必要です)
- OpenClawはOpenAI互換HTTPエンドポイントを起動します:
POST /v1/chat/completions
主要実装ポイント(最小限の統合ステップ)
- Xiaoaiプラットフォームで「カスタムスキル」を作成し、以下を設定します:
- ウェイクワード/スキル名
- 意図/スロット(最もシンプル:ユーザーを文全体でクエリテキストとして扱う)
- サーバー側のコールバックURL(あなたの)
https://xxx.com/xiaoai/webhook
- WebhookサービスがXiaoaiからのリクエストを受け取った場合:
- 認証署名/トークン(Xiaoaiプラットフォームの書類要件に基づく)
- ユーザーの言った内容を削除してください
query - OpenClawのチューニング:
POST http://<openclaw-gateway-host>:<port>/v1/chat/completions([OpenClaw][2])
- 返却されたOpenClaw
contentをXiao Aiが求めるJSON応答形式に戻す(TTSで諦めてください)
「ブリッジサービス」(Node/Express)の最小限の例
以下の例は「テキストをOpenClawに転送し、その後テキストを返す」ことを示すものであり、プラットフォームのドキュメントによるとXiao Ai側の署名検証/応答フォーマットのフィールドを入力する必要があります。
import express from "express";
const app = express();
app.use(express.json());
app.post("/xiaoai/webhook", async (req, res) => {
// 1) TODO: 校验小爱签名/鉴权(按平台文档)
const userText =
req.body?.request?.intent?.query ||
req.body?.query ||
req.body?.request?.query ||
"";
// 2) 调 OpenClaw OpenAI 兼容端点
const r = await fetch("http://127.0.0.1:18789/v1/chat/completions", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
model: "auto",
messages: [
{ role: "system", content: "你是简洁的中文语音助手,回答尽量短。" },
{ role: "user", content: userText },
],
}),
});
const data = await r.json();
const answer = data?.choices?.[0]?.message?.content?.trim() || "我没听清。";
// 3) TODO: 按小爱自定义技能要求组织响应 JSON(这里先用占位)
return res.json({
// 你需要替换成小爱平台规定的字段
reply: answer,
});
});
app.listen(3000, () => console.log("xiaoai bridge on :3000"));
解決策2:Home Assistantを使って「Xiaomiエコシステム」を接続し、AutomaticでOpenClawにテキストをドロップする
(「音声トリガーリンク」により適している)
ターゲット効果:スピーカーに「リビングルームのライトをつける/特定のシーンを実行する」と言い→、Xiaomiの生態デバイス/シーンの状態をHome Assistantに入力→HAの自動化トリガー→OpenClawのチューニング(まとめ/放送/録画/追加操作を行う)を指示します。
準備が必要です
- ホームアシスタント
- Xiaomi公式Xiaomi Home連携(OAuth2ログイン対応)
- オプションで、HAのwebhook/RESTコマンドを使ってイベントをOpenClawに転送することもできます
この道の利点:多くのリンクをプレイするためにシャオアイのスキルレビューをする必要はありません。 欠点:どちらかというと「スマートホームのリンク」のようなもので、「恣意的なQ&Aチャット」というよりは。
選択推奨事項(直接結論)
- あなたが求めているのは、「スピーカーを音声の入口として使い、OpenClawと自由にチャットできるように」→選択A(Xiao Aiのカスタムスキル)です。
- あなたが望むのは、「Xiaomiのデバイス/シーンをハブに入力し、OpenClawを自動化に参加させる」→B(Home Assistant)を選択します。
はい、Home Assistantを使うというアイデアは「Xiaomiエコシステム」をHAに接続し、トリガーソースやアクチュエーターとして使うことでしょう。 OpenClawは「脳」として使われます。 スピーカーは「聞く/話す」または「アナウンシング」の責任を負います。 (ただし、多くのXiaomiスピーカーはモデルやプロトコルによって標準media_player として直接 TTSを放送できない場合があります。) )
Home Assistantで遊ぶ典型的な方法は2つあります
ゲームプレイA:Xiao Aiは音声(クラウド)を担当し、HAは自動化、OpenClawは意思決定やテキスト生成を担当します
話者に「リビングの明かりをつけて、今日何をすればいいか教えて」と言います。
- シャオアイ -> ミジアのシーン/装置をトリガーします
- HAはデバイスの状態変化やシーントリガーを受信します
- HAはOpenClawを「ブロードキャストテキスト/要約」文を生成するようチューニングしています
- その後、HAはテキストを放送可能なデバイス(Chromecast、Googleスピーカー、ESPHomeスピーカーなど)に「キャスト」します。
適している場合:すでにHAハブを持っていて、OpenClawを「インタプリタ/サマライザー/ロガー」にしたい場合。
ゲームプレイB:HAローカルアシストを音声エントリーとして(どちらかというと「ローカル音声アシスタント」のようなもの)
- STT/TTSとHA Assist(ローカル/セミローカル音声パイプライン)を組み合わせています。
- OpenClawは会話型バックエンドとして使う(テキストをOpenClawに転送するためにミドルウェアを書く)
- HAは応答TTSを放送する責任があります(HAの音声衛星やmedia_player
適している場合:リンク全体をできるだけ「ローカライズ」したいが、より多くの作業量を要する。
2) Xiaomiデバイスへのアクセス(HA側)
現在主流はXiaomi Home Integration(公式/公式の協力ルート、OAuth2ログイン、パスワード保存なし)を使う ことです。
説明(非常に短い):
- HA: 設定 → デバイスおよびサービス → Xiaomi Home→統合を追加(OAuthログインは指示されます)
- ログイン後、デバイスは(ライト、ソケット、センサー、エアコンなど)として表示されます。
3) HAで「OpenClawを呼び出す」方法
本質的に、HAはOpenClawへのHTTPリクエストを自動化→送信します。 これはrest_commandHAや自動化された呼び出す動作)で一般的な手法 であり、コミュニティでも「ウェブフックやHTTPリクエストを作成する」ためによく使われています。
例えば: configuration.yaml
rest_command:
openclaw_chat:
url: "http://127.0.0.1:18789/v1/chat/completions"
method: POST
headers:
content-type: "application/json"
payload: >
{
"model":"auto",
"messages":[
{"role":"system","content":"你是简洁的中文家庭助手。"},
{"role":"user","content":"{{ prompt }}"}
]
}
そして自動化では:
- トリガー:特定のXiaomiデバイスの状態の変化(例:ドアの磁気開閉)
- アクション:
rest_command.openclaw_chat呼びかけてprompt代わり - その後、返送されたコンテンツを放送・通知します(次のセクション参照)
自動化トリガーの基本的な概念については、HAドキュメントを参照してください。状態変更やイベントなどをトリガーできます。
4) OpenClawの返答がどのように「放送されたか」
このステップが最も踏みやすいです。XiaomiスピーカーがHAによる放送TTSとしてmedia_player 使えるかどうかは、しばしば不安定または珍しいです(コミュニティではXiaomiスマートスピーカー/ネットワークスピーカーについて多くの議論がありますが、すべてのモデルに適用できる「統一された公式な方法」はありません)。
つまり、一般的に「実用的」なルートは三つあります:
ルート1:「HAで既に安定している放送機器」へのブロードキャスト
- Chromecast / Google Nest / Sonos / ESPHome スピーカー / HA Voice Assistant 衛星など
(このタイプのTTS/再生リンクはHAでより成熟しています)
ルート2:TTSを放送せず、通知に変更
- HAモバイルアプリのプッシュ
- Telegram/Feishu(すでにボットシステムがある場合)
ルート3:スピーカーは「リトルラブクラウド放送」を引き続き追っています
- HAにミジアのシーン/シャオアイスキルを呼んで放送させましょう(「放送アクション」をシーンやサービスにできるかどうかによります)
5) 選択方法
(OpenClawのターゲット現在)
- あなたが望むのは「スピーカー=無料のチャット入場」です。優先的に「Xiaoai カスタムスキル→OpenClaw」(HA不要)
- あなたが望むのは「全館自動化+OpenClawの意思決定・まとめへの参加」です:HAを使いましょう(デバイスアクセス、トリガー、リンクはすべてHAにあります)