
如果您拥有一台现代化的机器人割草机,并且已经在使用 Home Assistant,那么您只需一步即可将其融入您的智能家居生态系统,而不再局限于其官方应用程序。集成后,您可以根据天气、是否有人在花园里、太阳能是否充足,或者仅仅是根据您家人的日程安排,来决定割草的时间和方式。
本文将详细介绍主流智能割草机及其与 Home Assistant 的集成方式:Mammotion(Luba/Yuka)、通过 MQTT 连接的 Bosch Indego、使用官方 API 连接的 Husqvarna Automower,以及如何通过 Matter 将 Mammotion 作为吸尘器接入 Apple Home 的技巧,并介绍 Home Assistant 为那些刚开始研究如何购买机器人的用户提供的功能。本文全部内容均以西班牙语(西班牙)撰写,并包含大量实际的自动化示例。
将智能割草机集成到 Home Assistant 中有什么好处?
当你的割草机仅仅存在于其应用程序中时,它就像一个“孤岛”,与你的智能家居系统完全隔绝。而与 Home Assistant 集成则打破了这种孤岛效应,将割草机转变为一个与其他智能家居设备一样的普通设备,它拥有各种实体、传感器和服务,可用于实现自动化控制。
实际上,这意味着您可以利用电池电量、工作状态、GPS 位置、切割区域或天气预报等数据来决定机器人是出去切割、返回基地、暂停工作还是保持静止。
当你在 Home Assistant 中设置了割草机时,以下几个非常典型的想法就显得很有意义:
- 如果快要下雨,就停止切割。 利用本地传感器或时间积分。
- 避开一天中最热的时段。 否则可能会损坏草坪,请将施工安排在清晨或傍晚。
- 当光伏发电过剩时,启动关机程序。如果您在 Home Assistant 中监控太阳能发电量。
- 当花园里有人时,请阻止机器人进入。 (儿童玩耍、客人烧烤、花园大门敞开等)。
- 将裁剪时间与家庭日历对齐 这样就不会干扰会议、午睡或特殊活动。
这一切之所以成为可能,是因为一旦集成,机器人就会暴露传感器(电池、状态、模式、区域、错误……)和动作(启动、暂停、停靠、覆盖等),这些都可以与您的智能家居的其他部分结合起来。
将 Mammotion 割草机(Luba 和 Yuka)集成到 Home Assistant 中
Mammotion 的 Luba、Yuka 及相关型号等产品具备全面的社区集成功能,可将机器人变成Home Assistant 中的原生割草机。通过 Home Assistant,您可以读取数十种传感器数据并执行高级割草指令。
这种集成的最大优势在于,它能够从割草机中提取电池电量、运行状态、GPS 位置、卫星数量、活动区域、连接类型(WiFi/BLE/4G)和其他特定型号的参数等数据,此外还能提供启动、暂停、停止或将机器人送回基站的服务。
关于要求,需要将 Home Assistant更新到最新版本(最低 2025.3.0)并安装 HACS(Home Assistant Community Store),因为该集成并非核心功能的一部分,而是作为自定义存储库安装的。
最需要注意的细节并非技术层面,而是与账户有关:建议您专门为 Home Assistant 创建一个新的 Mammotion 账户。如果您使用应用中已在使用的主账户,每次 Home Assistant 重新登录时,您的手机都可能出现恼人的断线情况。
准备第二个账户的典型工作流程如下:
- 使用不同的电子邮件地址在 Mammotion 应用程序中创建一个新帐户。
- 返回您的主账户 分享机器人 使用备用账户。
- 使用辅助帐户登录,接受共享设备,并将其仅保留给 Home Assistant 使用。
账户部分准备就绪后,即可通过 HACS 安装集成,方法是将自定义存储库“https://github.com/mikey0000/Mammotion-HA”添加为集成,安装它并重启 Home Assistant,使其出现在“集成”菜单中。
在“设置”→“设备和服务”→“添加集成”中配置集成时,您可以选择通过低功耗蓝牙 (BLE)或WiFi/4G连接机器人。如果您使用 BLE 并且 Home Assistant 服务器距离花园较远,则可以使用带有 ESPHome 的蓝牙代理(ESP32 可作为割草机附近的 BLE 网桥)。
如果花园遮蔽良好,使用 WiFi 连接通常是最方便的,只需输入辅助 Mammotion 帐户的电子邮件和密码,集成就会开始创建设备及其实体。
添加后,您将在设备面板中看到您的 Luba/Yuka,其中包含切割控制和一系列传感器:电池、当前状态(割草、充电、空闲……)、连接类型、位置、卫星数量、活动工作区域、切割进度等等,具体取决于型号。
除了传感器之外,该集成还提供了强大的服务,例如mammotion.start_mow,它允许您触发参数化的割草操作。您可以从“开发者工具”→“操作”中选择此服务,选择您的割草机,并向其传递速度、路径模式、障碍物检测、切割高度(适用于 Luba 型号)或区域列表等参数。
在许多情况下,整个系列都有一些通用的参数组合(例如速度、导航模式或障碍物灵敏度),而 Yuka(收集、边缘等)或 Luba(切割高度、不同的地图策略)则有其特有的参数组合,从而使您可以高度详细地调整切割场景。
使用 Mammotion 和 Home Assistant 实现实用自动化
真正的飞跃在于将割草机的逻辑与智能家居的其他部分连接起来,从而创建自动化功能。通过了解割草机的状态、电池电量和位置,您可以做出比使用标准应用程序编程更精确的决策。
一个经典的例子是天气反应:如果你的本地气象站、你的室外 Zigbee 传感器或预测集成检测到即将下雨的概率很高,Home Assistant 可以命令割草机停止工作并返回其基站,以免草坪变成泥泞。
类似的方法也适用于极端温度。例如,如果室外传感器检测到温度超过 30°C,您可以延迟割草,避免在阳光直射下工作,这样既可以保护草坪,又能节省机器人的电池和组件。
如果您的 Home Assistant 集成了光伏发电系统,那么另一个非常实用的自动化功能就是利用多余的太阳能进行割草:当系统检测到您正在向电网输出能量(或发电量超过某个阈值)时,它会在“可接受”的时间范围内启动割草机。这样,机器人后续充电的大部分能量就来自您自己的太阳能发电。
制定安全和共存规则也很常见:如果花园门打开、摄像头检测到有人靠近,或者您启动了“烧烤”或“儿童玩耍”模式,系统会自动暂停割草,避免任何不愉快的意外。这样,机器人就不会成为草坪上不速之客,在您最意想不到的时候造成麻烦。
最后,将家庭日历集成到 Home Assistant 中,可以避免在会议、远程办公时间或特定时间(例如,如果日历事件显示“宝宝午睡”,机器人就会留在底座上)割草。这样,割草机就像家里的另一个成员一样,与家庭日程协调运作。
在界面层面,您可以利用所有传感器和指令,为机器人构建自定义仪表盘,其中包含动画卡片、快捷控制按钮和高度详细的状态显示。通常使用像 HA-Animated-Cards 这样的项目来创建美观的卡片,实时显示切割进度或当前区域。
如果在访问“api.link.aliyun.com”的 API 时出现超时错误,请检查您的路由器或防火墙是否阻止了与中国境内服务的连接(某些安全策略可能会导致这种情况)。此外,如果账户设置过程中电子邮件地址被拒绝,存储库建议使用“账号”代替电子邮件地址,因为有时使用账号效果更好。
通过 Matter 实现从 Apple Home 到 Mammoth 的高级控制
Mammotion 与 Home Assistant 的集成将割草机公开为一个`lawn_mower`实体。问题在于,截至目前,Matter 尚不支持割草机的特定设备类型,因此该实体与 Apple Home 配件之间没有直接映射关系。
解决方案在于观察到,从家庭自动化的角度来看,自动割草机和机器人吸尘器实际上是功能上的孪生兄弟:它们都在规定的区域内行驶,都有电池、区域、工作模式、启动/暂停/停止命令和“返回基地”功能。
Matter 的规格确实包括RoboticVacuumCleaner (0x0074)设备类型,以及用于运行状态、清洁模式、运行模式的集群,还有非常重要的 serviceArea 集群,该集群与草坪修剪区域完美契合。
诀窍是在 Home Assistant 中创建一个模板吸尘器实体,该实体“包装”Mammotion 割草机实体:启动/停止/暂停/返回基地命令变为吸尘器的等效命令,电池电量来自割草机的电池传感器,区域表示为吸尘器的“房间”。
要设置所有这些,您需要在 Home Assistant 中启用 Mammotion 集成、安装Home-Assistant-Matter-Hub插件(最好是 RiDDiX 维护的分支)、使用最新的 HomePod 或 Apple TV 作为 Apple Home 中枢,以及在 Home Assistant 中使用割草机区域按钮(Mammotion 公开的 button.*_zone_* 实体)。
第一步是在“开发者工具”→“状态”中找到机器人的所有相关实体:主割草机(lawn_mower.*)、模式和电池传感器、区域按钮、任务取消按钮以及路径模式选择器。使用这些确切的 ID,在 configuration.yaml 中创建一个吸尘器模板,将内部状态“MODE_WORKING”、“MODE_CHARGING”等转换为吸尘器状态,例如清洁、已连接、暂停或空闲。
该模板吸尘器还定义了:
- El 电池电量 从割草机电池传感器获取数值。
- 相应的 lawn_mower.* 和 button.* 服务支持的启动、停止、暂停和返回基地命令。
- 实际用于选择的“风扇速度”列表 切割区 (A区、B区、C区……)
- 属性 ROOMS其中,JSON 中包含一个 {id, name} 对象数组,用于表示不同的区域,格式符合 Matter Hub 的要求。
“房间”属性至关重要,因为 Matter Hub 的逻辑包含一个函数,该函数在检测到吸尘器实体中的此字段后,会自动创建serviceArea集群并填充支持的区域。这样,在 Apple Home 中,您最终会将每个拖地区域视为吸尘器界面中可选择的“房间”。
您也可以在同一模板块中创建一个模板选择实体,将不同的切割路径模式(单网格、双网格、分段网格、无网格)转换为更易于理解的名称,例如“直线切割”、“之字形切割”、“网格切割”或“无网格”。然后,该选择实体将在 Matter Hub 中用作清洁模式实体,以便 Apple Home 在其扫地机器人界面中显示这些名称。
在验证并重启 Home Assistant 以加载这些模板后,我们确认新实体 vacuum.* 的状态正确,电池电量已填充,并且 rooms 属性包含区域 JSON。确认无误后,我们继续进行 Matter Hub 部分。
在 Matter Hub 插件界面中,服务器模式下会创建一个新的桥接器,其实体过滤器限定为模板吸尘器,并添加一个映射,指示此吸尘器*应作为类型为 RoboticVacuumCleaner 的 Matter 设备公开。如果已创建切割模式选择实体,也可以将其链接到此处。
重启附加组件并确认终端显示预期集群(包括支持区域的服务区)后,只需打开 Apple 家庭 app,选择“添加配件”,扫描 Matter Hub 网桥的二维码,完成配对过程即可。配对完成后,割草机将在 Apple 家庭中显示为扫地机器人,带有播放/暂停/主页按钮、电池百分比、区域选择和模式选择。
值得注意的是一些限制:目前,Apple Home 中的区域选择主要依靠视觉,因为 Matter 的 SelectAreas 命令尚未连接到触发区域按钮的通用 HA 服务;如果割草机关闭,清洁模式可能会显示“未知”,任何集群或区域定义更改通常都需要在 Apple Home 中移除并重新配置配件。
通过 MQTT 集成 Bosch Indego
博世 Indego 割草机与 Home Assistant 的原生集成不如 Mammotion 或 Husqvarna 那么紧密,但有一个名为“博世 Indego Connect 的控制器应用程序和 API”的非常可靠的项目,它提供了对其 API 的访问,并且还包含一个 MQTT 适配器,非常适合集成到 HA 中。
原理很简单:一个名为IndegoMqttAdapter的进程运行在机器上(例如 Windows 或 Linux 系统,或者 Raspberry Pi)。该进程使用您的凭据连接到博世云,并同时在您的本地 MQTT 代理上发布和监听信息。Home Assistant 只需将这些 MQTT 主题读取为传感器数据,并通过向其他主题发布消息来发送命令。
要在 Linux 环境下使适配器自动启动,通常的做法是在系统 cron 中添加一行,语法为 @reboot,例如:
@reboot /home/pi/indego/bin/IndegoMqttAdapter -c /home/pi/indego/IndegoMqttAdapterConfig.properties
IndegoMqttAdapterConfig.properties 配置文件包含所有敏感数据:Indego 服务的基本 URL、您在官方应用程序中使用的用户名和密码、MQTT 代理地址(ip:端口)、代理凭据、消息的根主题以及轮询间隔(毫秒)。
此类文件的典型示例包括 indego.mqtt.device.username 和 password 等字段,指向 tcp://IP_BROKER:1883 的参数 indego.mqtt.broker.connection,用于区分适配器的客户端 ID,类型为 test/device/indego 的主题根,以及大约 30000 毫秒的轮询间隔,以便每 30 秒更新一次状态。
由于适配器已经通过 MQTT 发布状态,在 Home Assistant 中,您只需在 configuration.yaml 文件中声明 MQTT 传感器,并指向相应的 MQTT 主题即可。通常会创建用于显示电源状态(开/关)、运行状态(已连接、正在充电、正在割草、正在返回充电座等)、割草百分比、上次割草至今的时间以及总工作时间的实体。
使用值模板,通过 MQTT 接收的英文状态会被翻译成西班牙语文本字符串,因此用户可以看到“正在加载”、“正在割草”、“正在返回家中”、“正在修剪边缘”、“在花园里闲置”、“电池电量低”等状态。工作分钟数也可以通过除以 60 并四舍五入转换为小时数,以便在卡片上更轻松地显示指标。
Home Assistant 重启后,可以将这些传感器放置在面板卡上,以便一目了然地查看电源状态、割草机的当前状态、已割草区域的百分比以及运行时间。
要通过 HA 界面控制 Indego,通常使用实体按钮卡或水平堆叠式按钮卡,每个卡或堆叠式按钮卡包含三个按钮:一个用于启动切割(向主题发送 MOW 有效载荷),一个用于暂停(PAUSE 有效载荷),第三个用于让机器人返回原点(RETURN 有效载荷)。所有这些按钮都会启动 mqtt.publish 服务,并发送相应的主题和有效载荷。
完成设置并运行后,您现在还可以设计类似于其他机器人的自动化操作:例如,通过将机器人的 MQTT 状态与 AccuWeather 等集成数据相结合,仅在未下雨且预计不会下雨的情况下才在早上 6 点开始割草。或者,在割草机开始割草、完成一个循环或被困在花园中时,通过 Telegram 或扬声器发送通知。
这种基于 MQTT 的方法具有非常灵活的优势:由于一切都通过主题来处理,因此您可以轻松地将其与其他系统、仪表板或高级自动化结合起来,而且您不必依赖 Home Assistant 核心中是否有特定的官方 Indego 集成。
Husqvarna Automower 与 Home Assistant 的正式集成
Husqvarna 为其配备Automower Connect 或 Automower Connect 模块的Automower 提供官方集成,利用其自有的云 API。这可提供割草机状态、统计数据和控制方面的详细信息。
要使用此集成,您需要在Husqvarna 开发者门户中配置 OAuth2 凭据。使用您在 Automower Connect 应用中使用的同一帐户登录,创建一个新应用,并为其分配一个特定的 Home Assistant 重定向 URL(https://my.home-assistant.io/redirect/oauth)。您还需要连接身份验证 API 和 Automower Connect API。
创建应用程序时,门户网站会生成一个应用程序密钥和一个应用程序密钥,必须将其视为敏感凭据(相当于用户名和密码)。然后,通过 Home Assistant 中的 Husqvarna Automower 集成,您将使用这些凭据完成登录和授权过程。
配置完成后,Home Assistant 会创建一个 Husqvarna “集线器”,并由此创建一系列与割草机关联的实体。这些实体包括 binary_sensors,用于检测电池是否正在充电(当机器人因电量低而返回充电时)或是否正在离开集线器返回起点。
该集成还可以生成按钮来确认小错误、重置刀片使用时间或将割草机的内部时钟与 Home Assistant 时间同步,这些操作对于维护和诊断非常有用。
每个机器人都会创建一个日历,显示配置的切割时间,允许在 HA 中查看当前和未来的计划时间,并将其与房屋其他部分的日历集成在一起。
如果模型支持,则会显示一个device_tracker实体,用于显示割草机的 GPS 位置;同时会显示一个 event 实体,用于反映上次发生的错误,并包含严重程度、事件发生的精确经纬度以及时间戳等属性。这为实现诸如“如果发生倾斜错误,则发送包含位置信息的通知并在地图上显示标记”之类的自动化功能打开了大门。
中央控制实体是`lawn_mower`实体,您可以通过它恢复程序、暂停割草或将机器人停放在指定位置,直到下次预定时间。在某些型号中,还会创建 `number` 实体,用于调整整体切割高度(1 到 9)以及特定工作区域的切割高度(基准高度的 0% 到 100%),从而使您能够根据花园的不同区域调整割草作业。
此外,还有一些特定实体用于控制,例如割草机前灯的操作模式,以及非常全面的传感器,用于监测电池、刀片使用时间、错误、不活动时间、限制原因(霜冻、每日限制、每周计划……)、剩余充电时间、当前模式、下次启动、充电循环次数、碰撞、累计切割时间、搜索、驾驶等,以及活动工作区域的名称。
对于每个激活系统切割的工作区域,都会创建额外的传感器,用于记录进度百分比和上次完成的日期/时间,从而实现诸如“如果区域 X 的进度达到 100%,则通知并将机器人送回基地”之类的自动化操作。
该集成方案还会生成一些开关,用于控制禁入区域、激活或停用机器人的全局割草程序,以及单独启用或禁用每个工作区域。例如,您可以利用这些开关,设置机器人在您于草坪上举办派对时避开特定区域。
关于具体操作,该集成功能包括调用指令来覆盖预设计划,使机器人能够在特定时间段内(1 分钟到 42 天)进行割草或停车操作,持续时间以天、小时和分钟为单位指定。您还可以使用从相应传感器获取的区域 ID,命令机器人在特定工作区域内进行特定时间的割草操作。
需要注意的是,存在一些设计限制:您无法在预定时间之外直接使用 `lawn_mower.start_mowing` 启动割草机;您需要使用覆盖操作来实现此功能。此外,对于采用 EPOS 技术的机型,此官方集成尚不支持禁区管理。
用户通过 Home Assistant 搜索割草机可以获得什么好处?
如果您正处于研究购买哪款机器人割草机的早期阶段(例如,考虑Mammotion Yuka Mini 700/800或 Ecovacs Goat),并且您安装 Home Assistant 只是为了“试用一下”,您可能会想知道是否值得深入了解所有这些集成功能。
答案通常是肯定的,尤其是如果你将花园和房屋规划成一个连贯的系统:通过将割草机与 Home Assistant 集成,你可以获得比官方应用程序更多的控制和可见性,这在日常生活中意味着更少的意外和更大的自主性。
以 Yuka/Luba 为例,Mammotion 集成允许您:
- 一目了然 状态、电池、位置和区域 来自 Home Assistant 面板。
- 发射量受限于天气、人员配备或太阳能发电等因素。
- 将日程安排与家庭日历或房屋模式(外出、度假、夜间……)同步。
- 探索高级场景,例如: 通过 Matter 接触 Apple Home 像操控扫地机器人一样操控它。
要真正充分利用它,除了割草机之外,您还需要一些基本的家庭自动化元素:一些可靠的天气集成(Meteosat、AccuWeather、当地气象站),如果您想在有人在附近时阻止割草,则需要存在传感器或摄像头,如果您有太阳能电池板,则将其集成到家庭自动化中,以利用剩余能源的逻辑。
一开始,让一切运转起来可能看起来很费劲,但一旦初始自动化完成,系统几乎可以自主运行,你的机器人就成了“在后台工作的自主同事”,但现在它会遵守考虑到你家和花园里实际发生的事情的规则。
最终,无论是Mammotion、通过MQTT协议连接的Bosch Indego,还是使用官方API的Husqvarna Automower,将智能割草机集成到Home Assistant中,都能将看似简单的割草功能转变为家庭自动化系统中的又一重要组成部分,并与天气、能源消耗、家庭成员在场情况和生活习惯等因素协调配合。当花园几乎完全由智能割草机打理,而你几乎感觉不到有机器人在默默工作时,舒适度和安心感都会显著提升。