
koalazak/rest980rest980是一个HTTP服务器,可将dorita980库的所有方法映射为REST API,从而通过HTTP请求控制iRobot Roomba 900系列(980/i7/i7+)扫地机器人。
rest980旨在提供一个便捷的REST API接口,让用户能够通过HTTP请求远程控制Roomba机器人,支持本地和云两种控制方式,适用于家庭自动化、远程监控等场景。
适用于需要通过HTTP协议控制iRobot Roomba 900系列(980/i7/i7+)机器人的场景,包括但不限于:
检查您的机器人固件版本,并在rest980配置中设置firmwareVersion参数!
服务可通过编辑config/default.json文件或设置环境变量进行配置:
配置文件(config/default.json) | 环境变量 | 描述 |
|---|---|---|
| port | PORT | (默认:3000)HTTP服务监听端口 |
| blid | BLID | (必填)Roomba的BLID * |
| password | PASSWORD | (必填)Roomba的密码 * |
| robotIP | ROBOT_IP | (可选)已知机器人IP时设置,可跳过发现过程加快启动 |
| firmwareVersion | FIRMWARE_VERSION | (可选)根据固件版本设置为1或2。固件>=2时使用2(包括版本3),默认1(适用于固件1.6.6) |
| enableLocal | ENABLE_LOCAL | (可选)设置为'no'禁用本地API,默认'yes' |
| enableCloud | ENABLE_CLOUD | (可选)设置为'no'禁用云API,默认'yes' |
| keepAlive | KEEP_ALIVE | (可选)设置为'no'时每次请求连接/断开机器人(速度慢但释放连接供官方应用使用) |
| basicAuthUser | BASIC_AUTH_USER | (可选)启用基本认证,需同时设置用户和密码 |
| basicAuthPass | BASIC_AUTH_PASS | (可选)启用基本认证,需同时设置用户和密码 |
| sslKeyFile | SSL_KEY_FILE | (可选)HTTPS密钥文件路径,需同时设置密钥和证书 (创建自签名证书方法) |
| sslCertFile | SSL_CERT_FILE | (可选)HTTPS证书文件路径,需同时设置密钥和证书 (创建自签名证书方法) |
有关获取BLID和密码的更多信息和说明,请参见dorita980
bashdocker pull koalazak/rest980
bashdocker run -e BLID=myuser -e PASSWORD=mypass -e ROBOT_IP=myrobotIP koalazak/rest980
可通过项目中的Dockerfile本地构建:
bashdocker build . -t koalazak/rest980
服务启动后,可通过端口3000访问API,主要包含local(本地)和cloud(云)两个端点,分别对应dorita980的本地和云方法。
HTTP状态码500,响应格式:
json{"message":"人类可读消息","error":{}}
操作接口(Actions)
所有清洁操作通过/api/local/action/[action]端点,使用GET方法(无查询参数):
可用操作:
示例:开始清洁
httpGET http://192.168.1.110:3000/api/local/action/start
成功响应:
json{"ok":null,"id":23}
示例:指定房间清洁
部分Roomba型号(如s9、i7)支持房间特定清洁,需通过POST方法发送参数:
shcurl -X POST http://192.168.1.110:3000/api/local/action/cleanRoom -H 'Content-Type: application/json' -d '{"ordered": 0, "pmap_id": "123456", "regions": [{"region_id":"5", "region_name":"Hallway","region_type":"hallway"}], "user_pmapv_id": "987654"}'
信息接口(Info)
所有信息通过/api/local/info/[record]端点,使用GET方法(无查询参数):
可用记录:
示例:获取当前任务变量
httpGET http://192.168.1.110:3000/api/local/info/mission
成功响应:
json{ "ok": { "flags": 0, "cycle": "none", "phase": "charge", "pos": { "theta": 179, "point": {"x": 102, "y": -13} }, "batPct": 99, "expireM": 0, "rechrgM": 0, "error": 0, "notReady": 0, "mssnM": 0, "sqft": 0 }, "id": 2 }
配置接口(Configurations)
所有配置通过/api/local/config/[configName]端点,GET方法获取配置,POST方法设置配置:
可用配置名称:
preferences设置语言)preferences获取当前配置)示例:获取固件1的偏好设置
httpGET http://192.168.1.110:3000/api/local/config/preferences
成功响应:
json{ "ok": { "flags": 1024, "lang": 2, "timezone": "America/Buenos_Aires", "name": "myRobotName", "cleaningPreferences": { "carpetBoost": "auto", "edgeClean": true, "cleaningPasses": "1", "alwaysFinish": true } }, "id": 2 }
示例:设置清洁次数为两次
httpPOST http://192.168.1.110:3000/api/local/config/cleaningPasses/two
请求体:
json{}
成功响应:
json{"ok":null,"id":293}
所有信息接口使用GET方法(无查询参数):
所有操作接口使用GET方法(无查询参数):
示例:开始清洁
httpGET http://192.168.1.110:3000/api/cloud/action/clean
成功响应:
json{"status":"OK","method":"multipleFieldSet"}
可将图片或文件添加到public/文件夹,服务将提供静态文件访问。
通过浏览器访问http://serverIP:3000/map,可体验实验性实时地图功能。
!实时地图
视频演示:使用dorita980库的iRobot Roomba 980清洁地图
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务