Google 表格

Google 表格集成允许您将 Google Drive 连接到 Home Assistant。该集成添加了一个操作,允许您向表格文档添加行。这个想法是您可以在上面存储数据以进行进一步处理。当您设置配置条目时,您的驱动器将创建一个名为 Home Assistant 的新表格。然后您可以将其重命名为您喜欢的名称。

注意: 该集成目前仅访问设置过程中创建的那一个文档。

先决条件

您需要配置开发者凭据以允许 Home Assistant 访问您的 Google 帐户。 这些凭据与 NestYouTubeGoogle Mail 的凭据相同。 这与之前为 Google Calendar 推荐的 设备身份验证 凭据不同。

情景 1:您已经拥有凭据

在这种情况下,您需要做的就是启用 API:

  1. 转到 Google 开发者控制台 Google Drive APIGoogle Sheets API
  2. 确认项目并 启用 API。
  3. 按照 配置 部分中描述的步骤继续进行。

情景 2:您尚未设置凭据

在这种情况下,您需要先生成一个客户端密钥:

生成客户端 ID 和客户端密钥

本节说明如何在 Google 开发者控制台 上生成客户端 ID 和客户端密钥。

  1. 首先,转到 Google 开发者控制台以启用 Google Drive APIGoogle Sheets API
  2. 选择 创建项目,输入项目名称并选择 创建
  3. 启用 Google Drive API。
  4. 导航到 API 和服务(左侧边栏) > 凭据
  5. 在左侧边栏,选择 OAuth 同意屏幕
    • 选择 外部创建
    • 应用名称(请求同意的应用程序名称)设置为您想要的任何名称,例如 Home Assistant
  6. 您需要选择一个 支持电子邮件
    • 从下拉菜单中选择您的电子邮件地址。
  7. 开发者联系信息 下,输入您的电子邮件地址(可以与上面的相同)。
  8. 向下滚动并选择 保存并继续
    • 您不需要在这里填写其他任何内容。添加此页面的其他信息(如应用标志)可能会触发 Google 的额外审核过程,并导致设置延迟几天。
  9. 然后,您将自动进入 范围 页面。
    • 您不需要在此处添加任何范围。选择 保存并继续 以移至 测试用户 页面。
    • 您不需要在 测试用户 页面添加任何内容。选择 保存并继续,这将带您到 摘要 页面。
    • 选择 返回仪表板
  10. 重新选择 OAuth 同意屏幕 并在 发布状态 下选择 发布应用
    • 否则您的凭据将每7天到期。
  11. 确保 发布状态 设置为 在生产中
  12. 在左侧边栏中,选择 凭据,然后选择 创建凭据(在屏幕顶部),再选择 OAuth 客户端 ID
  13. 应用程序类型 设置为 Web 应用程序,并给这个凭据集命名(例如 “Home Assistant Credentials”)。
  14. https://my.home-assistant.io/redirect/oauth 添加到 授权重定向 URI 中,然后选择 创建
    • 这不是占位符。它是必须使用的 URI。
  15. 然后,您将看到一个弹出窗口,显示 OAuth 客户端已创建,显示 您的客户端 ID您的客户端密钥
    • 请记下这些(例如,将其复制并粘贴到文本编辑器中),因为您稍后需要它们。
    • 记下这些字符串后,选择 确定
    • 如果您在任何时候需要再次查找这些凭据,请导航到 API 和服务 > 凭据,您将在 OAuth 2.0 客户端 ID 下看到 Home Assistant Credentials(或您在上一步中命名的任何名称)。
    • 要查看 客户端 ID客户端密钥,请选择铅笔图标。这将带您进入这些凭据的设置页面,信息将在页面右侧显示。
  16. 恭喜您!您现在是客户端密钥的保管者。将其保存在您的宝藏箱中。在大多数情况下,您的新凭据将在几分钟内激活。然而,Google 表示在某些情况下激活可能需要多达五小时。

配置

要将 Google 表格 服务 添加到您的 Home Assistant 实例中,请使用此 My 按钮:

手动配置步骤

如果上述 My 按钮不起作用,您也可以手动执行以下步骤:

集成设置将接下来给您提供进入 应用凭证(OAuth 客户端 ID 和客户端密钥)的说明,并授权 Home Assistant 连接到 Google 表格。

OAuth 和设备授权步骤
  1. 继续执行选择您想要授权的帐户的步骤。

  2. 注意:您可能会收到一条消息,告知您该应用尚未经过验证,您需要确认才能继续。

  3. 现在您可以看到您授权 Home Assistant 访问的详细信息,底部有两个选项。选择 继续

  4. 页面现在将显示 将账户链接到 Home Assistant 吗?,请注意 您的实例 URL。如果不正确,请参考 我的 Home Assistant。如果一切正常,请选择 链接账户

  5. 您可以关闭窗口,然后返回 Home Assistant,在那里您应该会看到来自 Home Assistant 的 成功! 消息。

故障排除

如果您的凭据出现错误,您可以在 应用凭据 用户界面中删除它们。

视频教程

本视频教程解释了如何设置 Google 表格集成,以及如何将数据从 Home Assistant 添加到 Google 表格中。

操作 google_sheets.append_sheet

您可以使用 google_sheets.append_sheet 操作向设置时创建的表格文档添加数据行。

创建事件操作详细信息
数据属性 可选 描述 示例
config_entry 要使用的配置条目。
worksheet 工作表的名称。默认为文档中的第一个工作表。 Sheet1
data 要附加到工作表的数据。每列一个值地在新行中放置数据。 {“hello”: world, “cool”: True, “count”: 5}
# 示例操作
action: google_sheets.append_sheet
data:
  config_entry: 1b4a46c6cba0677bbfb5a8c53e8618b0
  worksheet: "汽车充电"
  data:
    日期: "{{ now().strftime('%-d-%b-%y') }}"
    KWh: "{{ states('input_number.car_charging_kwh')|float(0) }}"
    成本: "{{ states('input_number.car_charging_cost')|float(0) }}"

# 示例操作,包含多行
action: google_sheets.append_sheet
data:
  config_entry: 1b4a46c6cba0677bbfb5a8c53e8618b0
  worksheet: "汽车充电"
  data:
    - 项目: "汽车 1 成本"
      成本: "{{ states('input_number.car_1_charging_cost')|float(0) }}"
    - 项目: "汽车 2 成本"
      成本: "{{ states('input_number.car_2_charging_cost')|float(0) }}"