📚 科普

【教程】让温湿度计自动把真实箱温记进龟龟档案:小米温湿度计 + Home Assistant + 缘起龟长

缘起龟长管理员 2026-10-21 19:54
👁 27 浏览 · 💬 0 回复 · ❤️ 0 · 最后活动 10-21 · 编辑于 10-22 14:24
适合:已经(或打算)给饲养箱装温湿度计,想让龟龟档案里每一天的最高温、最低温、湿度用真实读数,而不是靠天气预报估、靠每天手动填的龟友。全程不用刷机,温度计保持原厂固件。

先说好处

龟龟的喂食记录、成长曲线里,常常要对照"那天多少度"。温箱里是 28℃,阳台上可能只有十几度,用同一个天气预报当然不准;每天手动填又太累。

接好之后:

  • 温箱、阳台箱、冬眠盒各算各的,每只龟用它所在箱子的真实温度;
  • 读数每 5 分钟自动过来,不用手动填;
  • 温度计掉线、电量低,页面上会有提示;
  • 有 24 小时、7 天、30 天的温湿度曲线,还能一键截图发朋友。
图1

你需要准备

  1. 一只或几只温湿度计(本文以小米米家的蓝牙温湿度计为例,保持原厂固件就行);
  2. 一台常开的 Home Assistant(简称 HA):NAS、树莓派、迷你主机,用 Docker 装都可以。没有的话,先装好它;
  3. 本站的账号,且已开通龟龟记录功能。
不用 Home Assistant 也可以:任何能发网络请求的程序,按「饲养箱温度」页里「先用命令行试一下」的格式发就行。本文只讲最常见的这一条路。

第一步:让温度计出现在 Home Assistant 里

这一步全在 HA 里做,和本站无关。

  1. 装好 HACS(HA 的第三方集成商店)。
  2. 在 HACS 里搜 Xiaomi Home(小米官方的集成),点下载,然后重启 Home Assistant。
  3. 「设置 → 设备与服务 → 添加集成」,搜 Xiaomi Home。
  4. 按提示用小米账号授权登录,区域选中国大陆,选中温度计所在的家。
  5. 在「设备」里找到温度计:每只都有温度、湿度、电池三个实体,数值能显示,就成功了。
图2
如果在 HACS 里下载时提示"该版本不能用于 HACS",是 HACS 或 Home Assistant 的版本太老了,先把它们升级,再下载。
如果之前装过别的小米集成,在实体列表里看到「不再提供此实体」之类的提示,说明那个实体已经没有对应的集成在管了,确认没用以后可以删掉。

第二步:找到每只温度计三个实体的名字

HA 左侧「开发者工具 → 状态」,在过滤框里搜 temperature。每只温度计会有三个实体,名字形如:

sensor.xxxx_temperature_p_2_1       (温度)
sensor.xxxx_relative_humidity_p_2_2 (湿度)
sensor.xxxx_battery_level_p_3_1     (电池)

名字里的编号各家不同,以你看到的为准。记下来,下一步要用。

用「开发者工具 → 模板」确认一下:输入

{{ states('sensor.你的温度实体') | float(none) }}

右边显示一个数字(比如 28.6)就对了;显示 None 说明实体名写错了。

第三步:给每只温度计起一个固定编号

这是整个方案里最值得先想好的一步:

  • 编号只跟温度计本身走,不要写位置。 比如 t2-01、t2-02、t3-01、pro-01(分别是 2 代、3 代、Pro 的第几只)。
  • 建议在温度计背面贴个小标签,写上编号。
  • 位置在网站里改。 以后温度计从温箱挪到冬眠盒,只需要在网站里改"所在饲养箱",不用动 HA 的配置。
图3

第四步:把配置加到 Home Assistant

在 NAS 的 config 目录里打开 configuration.yaml(Docker 版 HA 没有"文件编辑器"插件,直接改挂载出来的文件就行),把下面这一段加到文件最后,前面空一行。

先打开本站的 饲养箱温度 页,里面有"推送地址"和"密钥",下面两处换成你自己的;每只温度计一项,把编号和三个实体名换成自己的:

rest_command:
  yqgui_sensors:
    url: "这里粘贴 /sensors 页面上的推送地址"
    method: POST
    headers:
      Authorization: "Bearer 这里粘贴你的密钥"
      Content-Type: "application/json"
    payload: >-
      {% set boxes = [
        {"id": "t2-01", "name": "温湿度计 #01",
         "t": "sensor.(温度实体)",
         "h": "sensor.(湿度实体)",
         "b": "sensor.(电池实体)"},
        {"id": "t3-01", "name": "温湿度计 #02",
         "t": "sensor.(温度实体)",
         "h": "sensor.(湿度实体)",
         "b": "sensor.(电池实体)"}
      ] %}
      {"readings": [{% for x in boxes %}{"id": "{{ x.id }}", "name": "{{ x.name }}",
        "temp": {{ states(x.t) | float(none) | tojson }}, "hum": {{ states(x.h) | float(none) | tojson }},
        "battery": {{ states(x.b) | float(none) | tojson }}, "at": "{{ now().isoformat() }}"}{{ "," if not loop.last }}{% endfor %}]}

几点说明:

  • 缩进必须用空格,不要用 Tab;payload 下面各行的缩进要一致。
  • 最后一项的 } 后面不要加逗号,其余项后面要有逗号。
  • 如果文件里已经有 rest_command:,把 yqgui_sensors: 合并到它下面,不要写两个。
  • 密钥只能用来推送读数,不能看你的任何数据,但也不要贴到公开的地方,包括截图。
  • 以后增加温度计,在列表里照样子再加一项就行。读不到数据的实体,网站会自动跳过,不会报错。

保存后,在 HA 里「开发者工具 → YAML」点「检查配置」,提示有效再重启 HA。

第五步:手动推一次,再设自动

  1. 重启后,「开发者工具 → 动作」里选 rest_command.yqgui_sensors,点「执行动作」。
  2. 回到 饲养箱温度 页刷新,温度计应该已经出现了,读数和 HA 里一致。
  3. 没出现的话,看 HA 的「设置 → 系统 → 日志」里有没有 rest_command 的报错;常见原因是实体名写错、缩进不对、密钥没贴全。
  4. 确认没问题后,设自动推送:HA「设置 → 自动化与场景」新建自动化,触发选"时间模式",分钟填 /5(每 5 分钟);动作选 rest_command.yqgui_sensors。

第六步:在网站里起名、选饲养箱

饲养箱温度 页的"温度计"表格里:

  • 名字:随便起,比如"大温箱温度计"。
  • 所在饲养箱:要和龟龟档案里龟的"饲养箱"名字完全一致,龟才能用上它的读数。
  • 名字和"启用"改完就自动保存,不用点保存。
图4

(图中为示例数据:上面是各箱子的当前温湿度和今天的最高、最低温,中间是曲线(每个点一个数值,鼠标放上去名字高亮,点名字可以隐藏这条曲线),下面是统计表和温度计列表。页面下方还有一张逐条的详细数值表,📷 按钮可以分别截取温度曲线、湿度曲线和数值表。)

几个常见的用法

情况怎么办
一个箱子放了几只温度计都填同一个饲养箱,网站取它们的平均
一只温度计同时管几个箱子(比如阳台上两个箱子共用一只)"所在饲养箱"里用英文分号 ; 隔开几个名字,例如 阳台大箱;阳台小箱
把温度计换到别的箱子(比如冬眠盒)改"所在饲养箱",旁边会问一句,点"换了位置"(可以填换过去的时间);以前的读数仍算在原来的箱子里,不会被改写
只是给箱子改了名字(温度计没动)改"所在饲养箱"后点"只是改名",曲线、报告、历史、龟龟档案里的饲养箱名字一起改成新的
想把页面发给朋友点页面右上角的 📷,生成带外框的图片;图里不含密钥

它是怎么用这些读数的

  • 一个箱子有一天12 小时以上的读数,那一天的最高温、最低温、湿度就用它,替代天气预报和手动校正;当天还没满,先显示已有的。
  • 超过 45 分钟没有新读数,显示"掉线";电量低于 20%,显示"电量低"。
  • 起初几天,历史曲线里还是天气预报的数据,读数积累起来以后才会变成真实读数。

需要提醒的地方

  • 一只温度计共用两个箱子,意味着两个箱子用的是同一个读数。如果两个箱子的实际温度有差别(一个晒太阳、一个背阴),网站上看不出来,这是取舍,自己判断。
  • 云端接入依赖小米账号的接口;接口变动时,HA 里的集成可能需要更新。
  • 本文的步骤,HA 一侧是按小米官方集成走通的;其他品牌的温度计,只要在 HA 里能看到温度、湿度实体,第二步以后都一样。
  • 这是饲养参考,不能代替对龟龟状态的观察;龟龟明显不舒服,请尽快就医。

有问题可以在下面留言,写清楚是第几步、看到了什么(报错原文最好)。

🤍 0 · 登录后可以点赞、评论、关注
评论 0
还没有评论
想参与讨论、提问或分享你的龟龟?
登录后评论 了解本站
还可以看看 · 科普
温箱饲养多只小克重苗的最佳解决办法🤍 0 · 💬 2 · 2 天前【教程】怎么备份自己的数据:下载记录和照片,以及把备份导入回来🤍 0 · 💬 0 · 10-27温箱升温养龟,喂食量和频率不能照搬自然温度:温度高,吃得快,烧得也快🤍 0 · 💬 0 · 10-25龟的“白便”与肠炎:消化生理结构,以及暴食、骤然降温、变质食物、应激等诱因🤍 0 · 💬 0 · 10-19按天气喂龟:最高温、连续几天、昼夜温差,到底看哪个?🤍 0 · 💬 0 · 10-10