Token导航 LogoToken导航TokenDH.com
Aimdb Homepilot logo
AI代理未说明官方级别未说明来源级核验

Aimdb Homepilot

MCP Server

基于AimDB的智能家居演示系统,通过STM32上的KNX、MQTT链接和LLM/MCP集成,实现家庭自动化控制。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
智能家居RustClaudeClaude DesktopClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

lxsaah

提供方

lxsaah

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

aimdb家庭飞行员

AimDB支持的智能家居演示使用STM32上的KNX、MQTT链接和LLM/MCP集成——一个用Rust构建的家庭自动化“副驾驶”。

建筑

该项目展示了一个分层的家庭自动化系统,主要由三个部分组成:

  • 地面:基于STM32H563ZI的KNX/IP网关,将KNX设备桥接到MQTT

- 使用Embassy构建(异步嵌入式Rust) - 监控KNX总线并向MQTT发布状态更新 - 接收MQTT命令并转发到KNX设备 - 直接在STM32硬件上运行

  • :控制和监控控制台(PC应用程序)

- 连接到MQTT代理以与地面通信 - 通过AimX协议公开用于LLM集成的Unix域套接字 - 在MQTT和LLM接口之间提供双向桥接 - 内置Tokio异步运行时

  • 飞行员:通过aimdb-mcp服务器的LLM接口

- 实现自然语言控制和监控 - 通过Unix套接字连接到塔 - 适用于Claude Desktop、VS Code Copilot和其他MCP客户端

数据流:KNX设备↔ 接地(STM32)↔ 消息队列遥测传输↔ 塔(PC)↔ UNIX套接字↔ LLM

项目结构

aimdb-homepilot/
├── ground/          # STM32 KNX gateway (Embassy, no_std)
├── tower/           # PC console (Tokio, std)
├── records/         # Shared data types (no_std by default)
└── README.md

记录模块

records crate定义了所有组件中使用的共享数据类型:

  • 切换状态:KNX开关的当前状态(监控)
  • 开关控制:控制KNX开关的命令
  • 温度:温度传感器读数

每种记录类型包括:

  • Serde兼容数据结构(no_std)
  • JSON序列化/反序列化
  • KNX DPT编码/解码(地面)
  • 运行时无关监视器(可选,用于调试)

发展

先决条件

此项目使用DevContainer来实现一致的开发环境。使用来自以下位置的DevContainer配置: https://github.com/aimdb-dev/aimdb/blob/main/.devcontainer/devcontainer.json

文档

有关使用AimDB的详细信息,请参阅官方使用指南: https://github.com/aimdb-dev/aimdb/blob/main/docs/aimdb-usage-guide.md

接地(STM32上的KNX网关)

地面组件是一个嵌入式KNX/IP网关,在STM32H563ZI硬件上运行。

硬件要求

  • :STM32H563ZI Nucleo板
  • 网络:以太网连接到KNX/IP网关和MQTT代理
  • 调试:集成ST-Link调试器(在Nucleo板上)

特性

  • KNX/IP集成:通过IP网关连接到KNX总线(隧道模式)
  • MQTT网桥:发布KNX事件并通过MQTT接收控制命令
  • 异步运行时:使用Embassy构建,实现高效的嵌入式异步执行
  • 实时监控:跟踪KNX设备状态和温度传感器

配置

编辑 ground/src/main.rs 要配置网络地址,请执行以下操作:

const KNX_GATEWAY_IP: &str = "192.168.1.19";  // Your KNX/IP gateway
const MQTT_BROKER_IP: &str = "192.168.1.7";    // Your MQTT broker

建筑与闪光

构建并闪存到STM32:

cd ground
cargo run --release

固件将:

  1. 使用DHCP初始化以太网
  2. 连接到KNX/IP网关
  3. 连接到MQTT代理
  4. 开始桥接KNX↔ 消息队列遥测传输
  5. LED闪烁以指示操作

备注:在macOS主机上,使用 flash.sh 作为DevContainer USB直通问题的解决方法。

KNX设备配置

网关当前配置为:

受监控设备 (KNX → MQTT):

  • 组地址 1/0/7:开关状态监测(DPT 1.001)

- 发布到MQTT主题: knx/tv/state

  • 组地址 9/1/0:温度传感器(DPT 9.001)

- 发布到MQTT主题: knx/temperature/state

受控设备 (MQTT→ KNX):

  • 组地址 1/0/6:开关控制(DPT 1.001)

- 订阅MQTT主题: knx/tv/control

修改这些 ground/src/main.rs 以匹配您的KNX安装。

技术说明

网络套接字配置:大使馆网络堆栈需要8个插座:

  • DHCP客户端(1个套接字)
  • KNX/IP连接器(1-2个插座)
  • MQTT连接器(1个插座)
  • 协议开销(2-3个套接字)

任务池:大使馆执行人使用32个任务槽(通过 embassy-task-pool-32 功能)用于并发异步操作。

记忆:为MQTT/KNX协议缓冲区和JSON序列化分配64KB堆。

塔台(控制台)

该塔是一个PC应用程序,提供MQTT和LLM客户端之间的接口。

特性

  • MQTT集成:连接到MQTT代理以与地面通信
  • 远程访问:暴露Unix域套接字(/tmp/console.sock)使用AimX协议
  • 安全:LLM访问的可配置读/写权限
  • 实时更新:将KNX设备状态流式传输到连接的LLM客户端

跑步

启动控制台:

cd tower
cargo run

控制台将:

  1. 连接到MQTT代理
  2. 在以下位置创建Unix套接字 /tmp/console.sock
  3. 订阅KNX状态主题(knx/tv/state, knx/temperature/state)
  4. 将控制命令发布到 knx/tv/control
  5. 接受来自MCP客户端的连接

数据流

LLM Client (Claude/Copilot)
    ↓ MCP protocol
aimdb-mcp server
    ↓ AimX protocol (Unix socket)
tower (/tmp/console.sock)
    ↓ MQTT
MQTT Broker
    ↓ MQTT
ground (STM32)
    ↓ KNX/IP
KNX devices

飞行员(通过MCP的LLM接口)

飞行员通过aimdb-mcp服务器集成提供自然语言控制。

安装

安装aimdb mcp服务器:

cargo install aimdb-mcp

VS代码配置

增添 .vscode/mcp.json:

{
    "servers": {
        "aimdb": {
            "type": "stdio",
            "command": "aimdb-mcp",
            "args": [],
            "env": {
                "RUST_LOG": "info"
            }
        }
    }
}

重新启动VS Code或直接从MCP.json文件运行MCP服务器。

使用GitHub Copilot

一旦tower运行并配置了aimdb mcp,您就可以:

  1. 发现实例:“显示可用的AimDB实例”
  2. 列出记录:“控制台实例中有哪些记录可用?”
  3. 读取状态:“现在的温度是多少?”或“电视开着吗?”
  4. 控制装置:“打开电视”(通过MQTT向KNX发送命令)
  5. 订阅:“订阅50个样本的温度更新”

快速开始

1.启动MQTT代理

确保您有一个正在运行的MQTT代理(例如Mosquitto):

# On the host or in a container
mosquitto -v

2.闪存和运行地(STM32)

cd ground
# Edit src/main.rs to configure KNX_GATEWAY_IP and MQTT_BROKER_IP
cargo run --release

3.启动塔控制台

cd tower
# Optional: export MQTT_BROKER=mqtt://your-broker:1883
cargo run

4.使用MQTT进行测试

监控KNX事件:

mosquitto_sub -h 192.168.1.7 -t 'knx/#' -v

发送控制命令:

mosquitto_pub -h 192.168.1.7 -t 'knx/tv/control' \
  -m '{"address":"1/0/6","is_on":true}'

5.连接LLM

在VS Code中配置aimdb mcp(请参阅Pilot部分),并提出自然语言问题:

  • “温度是多少?”
  • “打开电视”
  • “显示开关状态”

公用事业

AimDB命令行界面

用于开发和调试的命令行工具:

cargo install aimdb-cli

常用命令:

# List running instances
aimdb instance list

# Watch temperature in real-time
aimdb watch records::Temperature

# Get switch state
aimdb record get /tmp/console.sock records::SwitchState

aimdb-cli文档 以获取完整的命令参考。

许可证

许可证 了解详情。

目录标签

目录标签

智能家居RustClaude本地部署家庭自动化KNXMQTTLLM集成

支持客户端

Claude DesktopClaudeVS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP