
mtand/post2mqttpost2mqtt是一个轻量工具,用于将HTTP POST请求转换为MQTT事件。其核心工作流程为:监听HTTP POST请求,将请求的URL路径作为MQTT主题,请求体内容作为MQTT消息内容,从而实现HTTP协议到MQTT协议的转换。
适用于家庭自动化系统(如Home Assistant)中处理来自外部服务(如IFTTT)的Webhook请求。通过该工具可避免直接暴露家庭自动化系统的API令牌,转而通过MQTT协议进行安全通信,简化外部服务与本地MQTT生态的集成。
通过环境变量进行配置,具体参数如下:
| 名称 | 描述 | 默认值 |
|---|---|---|
PORT | 监听HTTP请求的端口 | 8080 |
MQTT_URL | MQTT服务器的URL | mqtt://localhost |
MQTT_USERNAME | MQTT服务器的用户名 | ''(空字符串) |
MQTT_PASSWORD | MQTT服务器的密码 | ''(空字符串) |
MQTT_RETAIN | MQTT消息的保留标志,有效值为true或false | false |
TOKEN | 调用者用于认证的令牌,若设置则需在请求中提供 | ''(空字符串) |
通过Docker启动服务的命令如下:
bashdocker run --rm -e TOKEN=theauthtoken \ -e MQTT_URL="mqtt://192.168.0.3" \ -p 8080:8080 mtand/post2mqtt
上述命令会启动post2mqtt服务,监听本地8080端口,连接至mqtt://192.168.0.3的MQTT服务器,并要求请求携带令牌theauthtoken进行认证。
服务启动后,可通过以下curl命令发送POST请求测试:
bashcurl -d '{"key1":"value1", "key2":"value2"}' \ -H "Content-Type: application/json" \ -H "Authorization: theauthtoken" \ -X POST http://localhost:8080/a/b
该请求会将JSON内容{"key1":"value1", "key2":"value2"}发送至MQTT主题a/b。
若无法使用Authorization请求头,也可通过URL参数传递令牌:
bashcurl -d '{"key1":"value1", "key2":"value2"}' \ -H "Content-Type: application/json" \ -X POST http://localhost:8080/a/b?token=theauthtoken

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务