Home Assistant 中 Mastodon Get account 操作完全指南:账户查询、响应变量与自动化实战
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
本指南以 Home Assistant 官方文档库中的mastodon.get_account操作文档为核心,系统讲解如何在自动化与脚本中查询 Mastodon 账户信息、解析返回的响应数据,以及如何基于这些数据构建粉丝数展示、新帖监控等实用场景。读完本文,你将掌握该操作的完整配置方式(UI 与 YAML 双模式)、响应变量使用技巧,以及结合其他 Mastodon 操作(发帖、静音、改资料)的联动方案。
操作概览:mastodon.get_account能做什么
mastodon.get_account是 Home Assistant Mastodon 集成提供的操作之一,用于按用户名查询一个 Mastodon 账户,并返回其详细信息,包括显示名称(display name)、粉丝数(follower count)和帖子数量(posts)等。
从仓库的版本记录可以确认,该操作在 Home Assistant Core 2026.3 版本中随 Mastodon 集成新增(见 source/changelogs/core-2026.3.markdown 中 "Add get_account service to Mastodon" 条目)。
它的典型用途包括:
- 在仪表盘上展示你关注的某个账户的粉丝数,随数据更新自动变化;
- 触发自动化:例如当某个账户发布新帖子时执行后续动作(监控方法详见下文"响应数据"一节);
- 作为脚本中的中间查询步骤,把返回结果交给后续操作使用。
需要特别注意的是:该操作只能查询与你的实例已经联合(federated)的账户,未联合的账户无法被查找到。
前置条件:先完成 Mastodon 集成配置
使用该操作的前提是已在 Home Assistant 中配置好 Mastodon 集成。配置流程参考 source/_integrations/mastodon.markdown:
- 登录你的 Mastodon 实例 Web 界面,进入Preferences(偏好设置)→Development(开发);
- 创建一个新应用(Application);
- 至少勾选以下权限范围(scopes):
read:accounts、write:accounts、write:statuses、write:media、write:mutes; - 提交后生成客户端密钥(client key)、客户端密文(client secret)和访问令牌(access token);
- 在 Home Assistant 中添加 Mastodon 集成,依次填入:
| 配置项 | 说明 |
|---|---|
| URL | 你的 Mastodon 实例地址,例如https://mastodon.social |
| Client key | Mastodon Web 界面创建应用后生成的客户端密钥 |
| Client secret | 创建应用后生成的客户端密文 |
| Access token | 创建应用后生成的访问令牌 |
集成文档提示:如果使用操作时日志中出现权限相关报错,请回到 Mastodon 账户检查上述权限范围是否设置正确(参见 source/_integrations/mastodon.markdown 的 "Unable to use actions" 排障章节)。
在 UI 中创建 Get account 操作
在自动化或脚本中添加该操作,按以下步骤操作:
- 进入Settings(设置)>Automations & scenes(自动化与场景);
- 打开一个已有的自动化或脚本,或选择Create automation(创建自动化)>Create new automation(创建新自动化);
- 如果新建的是自动化,先在When(何时)区域添加一个触发器;脚本不需要触发器,它们在被其他流程调用时运行;
- 在Then do(执行)区域选择Add action(添加操作);
- 在搜索框中搜索并选择Mastodon: Get account;
- 选择要使用的Mastodon instance(Mastodon 实例),并输入要查询的Account name(账户名);
- 点击Save(保存)。
与部分实体类操作不同,该操作不支持 targets——在 UI 中你不会被提示选择区域(area)、设备(device)、实体(entity)或标签(label)。
UI 中的选项
| 选项 | 必填 | 说明 |
|---|---|---|
| Mastodon instance | 是 | 用于查询账户的 Mastodon 实例 |
| Account name | 是 | Mastodon 账户用户名,格式为@user@instance |
在 YAML 中使用:响应变量与配置入口 ID
如果直接在 YAML 中编写配置,操作引用名称为mastodon.get_account。由于该操作会返回结果,官方推荐**将结果存储到响应变量(response variable)**中,以便在自动化或脚本的后续步骤继续使用:
action: mastodon.get_account data: config_entry_id: 6b4be47a1fa7c3764f14cf756dc9899d account_name: "@account@instance.online" response_variable: account_detailsYAML 参数详解
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
config_entry_id | string | 是 | 要使用的 Mastodon 配置条目(config entry)的 ID |
account_name | string | 是 | Mastodon 账户用户名,格式为@user@instance |
如何获取config_entry_id:进入Settings(设置)>Tools(工具)>Actions(操作),选中该操作,选择你的 Mastodon 实例,然后切换到 YAML 模式,即可看到该实例对应的config_entry_id。
关于响应变量
Home Assistant 的操作系统会在执行带返回值的操作时,把结果写入response_variable指定的变量中。该变量仅在同一个自动化或脚本的后续步骤中可用,这正是"先查询、再使用"类流程的构建基础。若省略response_variable,返回数据将无法被后续步骤引用。
响应数据结构:解析账户详情
执行成功后,响应中包含一个account映射(mapping),承载该账户的详细信息。文档中明确列出的有用字段如下:
| 字段 | 含义 |
|---|---|
display_name | 账户资料中展示的显示名称 |
username | 账户的用户名 |
followers_count | 关注该账户的人数 |
following_count | 该账户关注的人数 |
statuses_count | 该账户发布的帖子总数 |
last_status_at | 最近一次发布帖子的日期 |
note | 账户简介(bio) |
url | 账户个人资料页的公开 URL |
在 YAML 自动化中引用响应变量字段的示例写法(供参考):
- action: mastodon.get_account data: config_entry_id: 6b4be47a1fa7c3764f14cf756dc9899d account_name: "@account@instance.online" response_variable: account_details - action: notify.mobile_app_phone data: title: "账户动态" message: "{{ account_details['account']['display_name'] }} 当前有 {{ account_details['account']['followers_count'] }} 位粉丝"实战场景一:监控账户发布新帖
这是该操作最有价值的用法之一。Mastodon 集成文档在"已知限制"一节中给出了一条关键的实测提示(见 source/_integrations/mastodon.markdown):
Mastodon 账户详情只显示最近一条帖子的日期,不显示时间。如果使用
mastodon.get_account操作来监控新帖,应改为监视操作响应中的statuses_count字段是否发生变化。
因此,一个"检测到新帖就通知我"的自动化思路是:
- 周期触发(例如用
time_pattern每小时执行); - 调用
mastodon.get_account,把结果存入响应变量; - 用模板将本次的
statuses_count与上一个周期记录的值(可通过input_number或自动化变量保存)比较; - 若数值变大,说明发布了新帖,触发通知,并更新记录值。
由于该操作返回的是快照式数据,这种"比对计数增量"的方式比依赖last_status_at的日期字符串更可靠。
实战场景二:仪表盘展示粉丝数
如果你关注某个账户(例如本地天气服务号),希望把它的粉丝数实时呈现在 Lovelace 仪表盘上,可以结合mastodon.get_account与 Home Assistant 的模板传感器思路:
- 用自动化定期(如每小时,与集成传感器刷新频率一致)执行该操作,将
followers_count写入input_number或模板 sensor; - 在仪表盘卡片中渲染该值,即可实现"粉丝数卡片"。
更简单的替代方案:Mastodon 集成本身就会为你自己的账户创建Followers(粉丝数)、Following(关注数)、Posts(帖子数)、Last post(最后发帖时间)等传感器(每小时更新一次,参见 source/_integrations/mastodon.markdown 的 "Sensors" 一节)。mastodon.get_account的增量价值在于查询任意联合账户,而非仅限自己的账户,因此更适合"监控他人账户"的场景。
与相关操作联动
mastodon.get_account在文档中与以下操作互为关联(见文档 frontmatter 的related_actions及各自的独立文档):
- mastodon.post:发布状态帖,可配置可见性、内容警告、媒体附件、幂等键(idempotency key)等;
- mastodon.mute_account:静音某个账户(支持时长与隐藏通知选项),配套的 mastodon.unmute_account 用于取消静音;
- mastodon.update_profile:更新自己的资料,如显示名称、简介、头像、横幅等。
典型联动示例:先get_account查询某新闻账号是否活跃,再用mute_account在度假期间临时静音(完整自动化示例见 source/_actions/mastodon.mute_account.markdown 的 "Automation: mute an account while you are away")。这些操作均需在 Mastodon 应用权限中配置对应 scope,权限不足会在日志中报错。
功能边界与注意事项
- 仅限联合账户:该操作只能返回与你的实例已联合的账户信息;
- 不支持 targets:无法按区域、设备、实体或标签批量执行;
- 不提供内容流功能:集成不支持获取时间线、收藏、书签或转嘟(boost)等功能(见 source/_integrations/mastodon.markdown 的 "Known limitations");
- 实时性说明:Mastodon 账户详情中的
last_status_at只有日期粒度,做新帖监控请改用statuses_count增量判断; - 权限要求:读取账户信息需要
read:accounts权限范围,操作报错时请先核对应用权限配置(排障步骤见 source/_integrations/mastodon.markdown 的 "Troubleshooting" 章节)。
动手验证
完成配置后,你可以立即在Settings(设置)>Tools(工具)>Actions(操作)中搜索mastodon.get_account,选择你的实例、填入账户名,点击Perform action(执行操作)直接测试,无需编写任何 YAML 即可在返回结果中看到完整的账户详情——这是验证配置与理解响应结构最快的方式。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考