找回密码
 立即注册
搜索
查看: 17603|回复: 44

[技术讨论] 分享:石头扫地机保留原app接入ha实现指定房间,模式清扫!

  [复制链接]

76

主题

595

回帖

2925

积分

金牌会员

积分
2925
金钱
2249
HASS币
0
发表于 2023-10-10 18:07:45 | 显示全部楼层 |阅读模式
一直想把家里的g10接入ha,发现论坛大部分都是通过小米的插件的接入,我的g10s用的是石头的app,不想改用米家的app(功能会少一些),后来通过https://github.com/humbertogontijo/homeassistant-roborock这个集成接入,但是发现没办法在ha里面设置自动化,研究了很久,终于成功,实现了将石头g10s接入ha,且不影响原来的app使用,最主要的是可以调用各种自动化服务。以下是我的大致过程,本人小白,还望何为大佬指导!
1,安装插件,用这个集成:https://github.com/humbertogontijo/homeassistant-roborock,不多说,一步一步来,添加集成后,输入扫地机的用户名(邮箱密码啥的)这时,你就会发现扫地机接进去了。如图:
WechatIMG204.jpg

2,如果需要一个地图卡片啥的,就安装这个:Xiaomi Vacuum Map Card。效果如图:
WechatIMG205.jpg

3,到这一步就可以调用各种服务了:
参数如下:set_custom_mode(吸力设置):[101](安静)、[102](标准)、[103](强力)、[104](MAX)、[105](关闭即仅拖地模式)、[106](定制模式)
set_water_box_custom_mode(擦地强度,擦地强度与水箱绑定,强度越大出水量越大):
[200](关闭即仅扫地),[201](轻揉擦),[202](标准擦),[203](强力擦),[204](定制模式)
set_mop_mode(拖地偏好,仅在仅拖地模式下生效):[300](日常擦),[301](精细擦地),[302](定制模式),[303](深度慢擦)
WechatIMG206.jpg
4,指定房间:具体参考内容:
我如何清洁一个特定的房间?
我们计划在未来使这个过程更简单,但目前,这是一个多步骤的过程。
  • 确保在Roborock应用程序中为房间命名;否则,它们不会出现在调试日志中。
  • 为此集成启用调试日志记录并重新加载。
  • 在您的日志中搜索“有家数据”,并找到属性房间。
  • 把房间写下来;他们有一个名字和6位数的ID。
  • 转到开发人员工具>服务>真空:发送命令。选择您的真空作为实体,并选择get_room_mapping作为命令。
  • 返回您的日志并查看get_room_mapping的响应。这是您之前看到的6位ID到2位ID的列表(使用第一个数字,例如[16, '14000663', 12]中的16([内部房间ID,唯一房间ID,房间类型]))。在您的原始房间名称和6位ID列表中,将6位ID替换为其配对的2位ID。
  • 现在,您有了真空吸尘器用来描述房间的2位数ID。
  • 返回开发人员工具>服务>真空:发送命令,然后typeappapp_segment_clean作为您的命令,并使用要清理的2位ID列表进行segments。然后,用数字(从1到3不等)添加repeat,以确定您想要清理这些区域的次数。
按照以上步骤找到房间id,找到后,就可以调用指定房间清扫。
service: vacuum.send_command
data:
  command: app_segment_clean
  params:
    - segments:
        - 22
        - 23
      repeat: 2
target:
  entity_id: vacuum.s7_roborock
接下来就可以愉快的设置自动化了,也可以用小爱的conversation指定房间打扫。
回复

使用道具 举报

76

主题

595

回帖

2925

积分

金牌会员

积分
2925
金钱
2249
HASS币
0
 楼主| 发表于 2023-10-11 11:32:32 | 显示全部楼层
wangmucha 发表于 2023-10-11 01:10
我g20通过米家接入,好像界面都一样吧,就是自动化不知道米家的是否支持,是否nr可以实体接入不,没玩过自 ...

应该可以,不过我也不懂nd。
回复

使用道具 举报

76

主题

595

回帖

2925

积分

金牌会员

积分
2925
金钱
2249
HASS币
0
 楼主| 发表于 2023-10-12 16:38:29 | 显示全部楼层
xiangboshi 发表于 2023-10-12 15:22
米家接入就不能使用石头app的一些功能,这个可以让石头app和ha共存!查了一下github追觅就没有这种项目 ...

是的,主要是能和石头原生app共存。
回复

使用道具 举报

76

主题

595

回帖

2925

积分

金牌会员

积分
2925
金钱
2249
HASS币
0
 楼主| 发表于 2023-10-12 17:04:32 | 显示全部楼层
xiangboshi 发表于 2023-10-12 16:39
g10s就是s7么?还是其他石头也能接入

应该也可以,你试试。
回复

使用道具 举报

76

主题

595

回帖

2925

积分

金牌会员

积分
2925
金钱
2249
HASS币
0
 楼主| 发表于 2023-12-5 13:41:53 | 显示全部楼层
本帖最后由 lichao622 于 2023-12-5 13:47 编辑
yvxingziscn 发表于 2023-12-3 22:07
而且我的界面好像和你的有点不一样

也找不到set_custom_mode的设置

1,首先你要确保是用这个集成接入https://github.com/humbertogontijo/homeassistant-roborock,也就是我帖子里面的内容。接入后,你在hacs下载xiaomi-vacuum-map-card这个卡片。下载好后,刷新浏览器。(大概率第一次下载不会出现任何提示,然后不用删除,直接再下载一次。重新下载,就会出现提示让农刷新)转到仪表板资源,确认已经被添加。然后再前端ui进行添加,你就会看到你下载的xiaomi-vacuum-map-card卡片。如下图: WechatIMG324.jpg

WechatIMG325.jpg

WechatIMG326.jpg

2,如何设置指令及清扫具体房间。
设置指令你在开发者工具,服务里面进行调用。
参数如下:set_custom_mode(吸力设置):[101](安静)、[102](标准)、[103](强力)、[104](MAX)、[105](关闭即仅拖地模式)、[106](定制模式)
set_water_box_custom_mode(擦地强度,擦地强度与水箱绑定,强度越大出水量越大):
[200](关闭即仅扫地),[201](轻揉擦),[202](标准擦),[203](强力擦),[204](定制模式)
set_mop_mode(拖地偏好,仅在仅拖地模式下生效):[300](日常擦),[301](精细擦地),[302](定制模式),[303](深度慢擦)

注意,每个你都可以调用一下,同时打开石头的app。然后点击调用服务。看是否跟app里面一致。
WechatIMG328.jpg

WechatIMG328 1.jpg

房间区分:步骤如下:
  • 确保在Roborock应用程序中为房间命名;否则,它们不会出现在调试日志中。
  • 为此集成启用调试日志记录并重新加载。
  • 在您的日志中搜索“有家数据”,并找到属性房间。
  • 把房间写下来;他们有一个名字和6位数的ID。
  • 转到开发人员工具>服务>真空:发送命令。选择您的真空作为实体,并选择get_room_mapping作为命令。
  • 返回您的日志并查看get_room_mapping的响应。这是您之前看到的6位ID到2位ID的列表(使用第一个数字,例如[16, '14000663', 12]中的16([内部房间ID,唯一房间ID,房间类型]))。在您的原始房间名称和6位ID列表中,将6位ID替换为其配对的2位ID。
  • 现在,您有了真空吸尘器用来描述房间的2位数ID。
  • 返回开发人员工具>服务>真空:发送命令,然后typeappapp_segment_clean作为您的命令,并使用要清理的2位ID列表进行segments。然后,用数字(从1到3不等)添加repeat,以确定您想要清理这些区域的次数。
找到房间号后,然后再进行自动话,比如:更换成自己的实体
alias: 小爱同学打扫阳台(先扫后拖)
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.xiaomi_xa_c90_conversation
      - sensor.xiaomi_la_d4c_conversation
    to: 阳台大扫除
condition: []
action:
  - service: vacuum.send_command
    data:
      command: set_water_box_custom_mode
      params:
        - 200
    target:
      entity_id: 扫地机实体
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - service: vacuum.send_command
    data:
      command: set_custom_mode
      params:
        - 103
    target:
      entity_id: 扫地机实体
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - service: vacuum.send_command
    data:
      command: app_segment_clean
      params:
        - segments:
            - 22
    target:
      entity_id: 扫地机实体
  - delay:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
  - wait_for_trigger:
      - platform: state
        entity_id:
          - 扫地机地图实体
        from: streaming
        to: idle
    continue_on_timeout: false
  - service: vacuum.send_command
    data:
      command: set_custom_mode
      params:
        - 105
    target:
      entity_id: 扫地机实体
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - service: vacuum.send_command
    data:
      command: set_water_box_custom_mode
      params:
        - 203
    target:
      entity_id: 扫地机实体
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - service: vacuum.send_command
    data:
      command: set_mop_mode
      params:
        - 301
    target:
      entity_id: 地图实体
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - service: vacuum.send_command
    data:
      command: app_segment_clean
      params:
        - segments:
            - 22
    target:
      entity_id: 扫地机实体
  - delay:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
  - wait_for_trigger:
      - platform: state
        entity_id:
          - 地图实体
        from: streaming
        to: idle
    continue_on_timeout: false
  - service: notify.微信通知服务
    data:
      message: >-
        扫地机已完成阳台清扫!模式为先扫后拖,目前正在充电中!{{'\n'}}{{ now().strftime('%Y-%m-%d
        %H:%M:%S') }}
mode: single

回复

使用道具 举报

76

主题

595

回帖

2925

积分

金牌会员

积分
2925
金钱
2249
HASS币
0
 楼主| 发表于 2023-12-10 13:58:01 | 显示全部楼层
yvxingziscn 发表于 2023-12-10 12:09
我又尝试了一下,在开发者工具中调用服务改变扫地机器人的模式也成功了,但是还是想请教您一下set_custom_m ...

不是试出来的。你用就完了。哈哈哈,能用就行。
回复

使用道具 举报

76

主题

595

回帖

2925

积分

金牌会员

积分
2925
金钱
2249
HASS币
0
 楼主| 发表于 2023-12-10 14:00:55 | 显示全部楼层
lichao622 发表于 2023-12-10 13:58
不是试出来的。你用就完了。哈哈哈,能用就行。

设置好后,你可以参照我的自动化对每个房间的清扫模式进行单独设置,或者设置你喜欢的清扫模式,然后你可以新建一个虚拟开关。进行相应模式的关联。这样的话,就可以直接在ha的界面点击一键清扫,或者将这个开关接入homekit。
回复

使用道具 举报

76

主题

595

回帖

2925

积分

金牌会员

积分
2925
金钱
2249
HASS币
0
 楼主| 发表于 2024-1-10 11:55:40 | 显示全部楼层
singlermy 发表于 2023-12-16 08:21
g10s pro也可以吗?我的还带上下水套件

可以的,你试试
回复

使用道具 举报

76

主题

595

回帖

2925

积分

金牌会员

积分
2925
金钱
2249
HASS币
0
 楼主| 发表于 2024-5-8 14:30:20 | 显示全部楼层
请叫我阿牛哥 发表于 2024-5-8 14:11
大佬,为什么你的是中文呢,我的是英文

点击编辑,在代码里面加上:language: zh WeChatd6a6f966054d3d55ad42b08acd9e468f.jpg
回复

使用道具 举报

76

主题

595

回帖

2925

积分

金牌会员

积分
2925
金钱
2249
HASS币
0
 楼主| 发表于 2024-6-18 09:55:25 | 显示全部楼层
cnxiaozhi 发表于 2024-6-17 22:49
请问设备如何添加进家庭呢?试了在HomeKit Bridge里添加实体,总是添加不进去。 ...

在ha里面的辅助元素,新建一个开关,然后在自动化里面,设置开关打开后,需要扫地机执行的动作,可以每个房间设置一个打扫策略对应一个开关,也可以全屋清扫对应一个策略和开关,然后通过bridge把这些开关接入苹果家庭就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-6-30 20:49 , Processed in 0.053972 second(s), 8 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表