我正在测试FriEnt的Zigbee HESZB-120热探测器

我的镜片与这个探测器

一天晚上在厨房里,我的烟雾探测器因为被切碎的牛排的烟雾而熄灭了。

厌倦了虚假警报,我在家庭自动化论坛上寻找可靠的解决方案。

这就是我发现的地方 ZigBee 3.0 智能 热 检测 器 HESZB-120 FriEnt 的.

它只对过热的反应,这似乎非常适合我的厨房,车库和带壁炉的客厅。

我从Domadoo订购,因为他正在出售。

这对我来说似乎很完美: 可靠的推送警报,85分贝的强大警笛和长期免维护的自主性。 我正在测试这一切…… 阅读 更多

我 保存 家庭 助理 在我的 Onedrive Business

我想使用OneDrive for Business作为家庭助理的备份目的地。

官方整合 允许将备份发送到 OneDrive for Business,但要求事先在 Microsoft Entra 中准备应用程序,包括 Tenant ID、Client ID、Secret Client Client 和精确重定向 URI。

先决条件

在你开始之前,你需要:

  • 一个功能性的家庭助理。
  • Microsoft 365 / OneDrive for Business 帐户。
  • 使用可以创建应用程序的帐户访问 Microsoft Entra 门户。 微软表示,至少需要一个应用程序开发人员角色。
  • 了解 Home Assistant 使用的重定向 URL 如下: https://my.home-assistant.io/redirect/oauth

阅读 更多

我正在测试新的烟雾探测器Zigbee Heimann HS1SA-E-PLUS

我的目标

我用烟雾探测器已经很久了。  海曼 HS1SA-E 为了保护我的家,这个经济模块让我对基本用途完全满意。

在写我对Zigbee烟雾探测器的比较时,我问道。 海曼 市 海曼 他们是否正在考虑该产品的演变。

令人惊讶的是,HS1SA-E的更新正在开发中,他们向我发送了三份新产品,应该是HS1SA-E-PLUS,在Zigbee展览中有很多变化,我稍后会解释。

三个产品,因为其中一个伟大的新颖之处之一是探测器的互连,所以我将测试这一点。

 

HS1SA-E 或 HS1SA-E-PLUS?

HS1SA-E位于左侧,HS1SA-E-PLUS位于右侧,除非情况相反。 我开玩笑说,它们与外界完全相同。

为了找出谁是谁,你必须比较里面的标签。

我收到了一个预发布,两者都提到了HS1SA-E,我认为新版本的参考将在市场版本中更改。

在图像中,新的在左侧,带有QR码,提到了制造日期: 12/2025.

以下是完整的标签,一旦展开:

我借此机会提高现有的认证。

  • UKCA , UKCA : 取代英国的CE标志。

表示探测器符合英国关于产品安全、EMC、无线电等的规定。

必须在大不列颠(英格兰、苏格兰、威尔士)上市。

  • 标记 标记 房子 房子 建筑(Building)

住宅使用的产品符号(住宅)。

它经常出现在符合欧洲家庭安全标准的烟雾探测器上。

最重要的是,指出使用领域,而不是自主的法律认证。

  • ZigBee 的 : ZigBee标志带有『认证产品』标签。

该设备已经通过了Zigbee 3.0(互操作性,无线电协议,安全性)的Zigbee联盟合规性测试。

全球范围内与家庭自动化生态系统相关,而不是针对特定国家。

  • 欧共 体 : 欧盟和欧洲经济区国家(挪威、冰岛、列支敦士登)的监管标识经常在瑞士接受。

表示遵守欧洲指令(安全、EMC、RED无线电等),允许在所有这些国家投放市场。

车身编号"2531"

确定已评估合格的机构(以下为欧洲无线电设备/建筑产品指令通知实验室)。

这个数字补充了欧共体,并在欧盟/欧洲经济区得到承认。

  • EN14604:2005/AC:2008 欧洲标准规定了家庭使用的烟雾探测器的要求。

大多数欧盟国家强制或强烈推荐用于住宅烟雾探测器(法国、德国、比利时等)。

一些采用EN标准的非欧盟国家也认可。

  • dBi 认证 (logo eye/flamm e + "DBI CERTIFICATION")

丹麦组织("Dansk Brand-og sikringsteknisk Institut")认证消防安全产品。

认证特别适用于丹麦和北欧国家,保险/当局可以重视它。

增强产品在欧洲市场上的可信度,而不必在任何地方强制实施。

  • Barred bin 的

WEEE(废弃电气和电子设备)符号。

表示探测器不应与家庭废物一起处理,而是在特定的回收渠道中处理。

在欧盟,英国 - 在欧洲更广泛地使用。

查看收到的模型

  • 在技术表上 : HS1SA-E(成为HS1SA-E-PLUS)Zigbee 3.0光学烟雾探测器,
  • 在纸箱上 : 海曼HS1SA-E(将成为HS1SA-E-PLUS)
  • 设备类型 : 烟雾探测器
  • 议定书 》 : ZigBee 的
  • 电力供应 : CR123A电池(3V),估计持续时间10年
  • 预定安装 : 天花板,起居室

解包和第一印象

产品 描述

探测器紧凑,带有支架以胶水或螺钉到天花板上。 金属板系统,一套螺丝和复位工具。

新型号提供了一个令人敬畏的磁板系统,具有两个磁铁和3M双面。

 

在哪里购买这些设备?

这里是专用于页面的链接。 HS1SA-e-plus. 我参考了卖家和价格。

我在哪里安装它

为了获得可靠的测量,我选择房间中心的天花板。 我避免角落,厨房或车库,因为厨房烟雾或灰尘误报。

我发现必须隔离电池的黄色标签

黄色舌头绝缘电池 我取下底座(只是绕了几度),然后我拉标签为探测器供电。

我将此检测器与 Zigbee2MQTT 集成

当我删除标签时,我将Zigbee2MQTT置于配对模式,但没有发生任何事情(在这个模型上这不是自动的)。

所以我找到了侧面的小孔,我把一个长号滑入其中以按几秒钟,直到LED闪烁绿色。

配对立即开始,并在几秒钟内集成模块!

下面是发现的3种新产品。 HS1SA-e-plus 在顶部,之前的产品在 HS1SA-e.

我正在重命名设备

在Heimann Test 01中,继续测试。

 

关于 Zigbee2MQTT

关于 Zigbee2MQTT

电池 电池

展览 , 电池 电池 对应于 剩余电池的百分比 由探测器重新组装。 在实践中,它是监测日常自治的最简单指标,例如100。% 安装后。

我将其显示在Home Assistant仪表板上,以快速发现异常下降。 当水平过低时(一般在20以下)%我计划在发生不必要的哔哔声或失去监督之前更换CR123A电池。 您可以选择在这个展览上进行数字测试或使用展览。 电池 低 这是二进制的,每个偏好,设备给出了选择。

识别 识别

展览 , 识别 识别 习惯于 物理识别 探测器。 当我触发这个动作时,探测器开始闪烁的LED,所以我知道哪一个是哪一个。

如果我在房子里安装几个相同的探测器,这是非常有用的。 我可以在Zigbee2MQTT中干净地重命名它们而不会出错。

Temperature 温度

展览 , 温度 温度 上升 A 测量温度 探测器(在°C内)。 这不是烟雾探测器的主要功能,但它是一个实际的事实,例如20.9°C。

我可以在仪表板上显示,或者在简单的自动化(通风、窗户、加热)中使用它。 我记住,这不是一个专门的精确探测,而是环境环境的奖励。

烟 烟

展览 , 烟 烟 检测器是否具有 检测到的烟雾 作为二进制状态(True/False)。 只要没有什么可报告的,我就在仪表板上看到『假』。

这是最重要的安全暴露,因为我用它来触发通知和紧急情况。 例如: 立即推送通知,点火,打开襟翼,并可能触发额外的警报。

Battery Low 电池

展览 , 电池 低 是一个二进制指示器,指示是否 电池几乎是空的。. 即使"电池"值仍然可以显示百分比,此状态也是一个很好的警报触发器,因为它代表了设备侧的"关键"阈值。

我用它来发送优先通知,并避免延迟更换电池。 目标明确: 不要等到探测器切换到常规蜂鸣模式或在网络上变得不稳定。

测试 测试

展览 , 测试 测试 检测器是否为 进行测试. 它是一个二进制状态(True/False),在测试阶段变为"True",然后返回到"False"。

我用它来检查我的自动化是否正确响应测试而不会引发普遍恐慌。 该模式被设计用于仪表板,通知和自动化。

故障状态

展览 , 故障 状态 对应于缺省状态 的探测器。 它指示设备是否处于正常状态,或者它是否正在从某种类型的问题中恢复(取决于可能的『故障类型』)。

我将其显示在我的安全仪表板上,因为缺陷可能与警报一样重要。 如果这种状态发生变化,我计划进行现场检查(电池、污垢、定位),并监测Zigbee的稳定性。

缪德 · 穆德

展览 , 柔和 的 检测器是否为 目前处于静音模式 或者在正常情况下。 重要的澄清是,这种状况主要与此相关。 当探测器在警报状态下被沉默时, 而不是仅仅作为一种永久性的『沉默模式』。

我用它来在视觉上确认假阳性后已经应用了静音。 避免『相信』报警器在没有被关闭时也非常方便。

✅ 触发 Selftest

展览 , 触发自检 触发器 a 远程自我测试 的探测器。 想法很简单: 我可以定期检查设备是否响应,而无需按下按钮。

自我测试持续时间足够长(大约21秒),以便自动化有时间采取行动。 在我的情况下,当我进行自我测试时,我看着它。 测试 测试 切换到"True",即 烟 烟 不切换到"True",我听测试哔哔声(2次3哔哔声)来验证正确的操作。

Temporary Mute

展览 , 临时静音 允许为 要求探测器切换到远程静音模式. 当警报发出非危险原因时,这是一个非常有用的命令,但它必须具有常识: 在关闭声音之前,我总是检查没有真正的火灾开始。

行为取决于背景。

  • 在 低电池状态, 如果我点击临时静音,按钮可以自动返回到原来的状态: 这是正常的,因为低电池警告声音只能关闭。 12小时, 然后,设备恢复了警告。
  • 在 警报状态 (烟雾),我可以激活或停用静音,这是理想的管理假阳性(蒸汽,灰尘),同时保持我的手从仪表板上,不按下设备上的按钮。

心跳指示器

展览 , 心跳指示器 习惯于 激活或停用指示灯 (心跳)。 其目的是管理LED的闪烁,这通常有助于确认设备是活的,但有时在房间里很烦人。

文档建议不要『盲目』禁用它: 如果我关闭LED,我会用定期检查(编程自我测试)和家用助理中不可用的设备检测(离线)来补偿。

可 互联 互连

展览 , 可 互联 互连 计划为互联 互连 在探测器之间(逻辑上"如果有人检测到,其他检测器反应")。 提供的解释表明,这种暴露被认为是一种自动化触发器,比仅仅依靠"烟雾"或"测试"来控制外部警报器更简单和更灵活。

我会用它来创建一个全球警报: 如果单个探测器触发,我会敲响其他设备(爱尔兰语,扬声器,其他探测器),以便随时随地都能听到警报。

在这个阶段,我需要用至少两个探测器来测试它。

烟雾水平

展览 , 烟雾 水平 上升 A 测量的烟雾水平 作为数字值(例如在正常条件下为 0.00)。 这比简单的"Smoke = True/False"更精细的信息。

我可以用它来预防: 在仪表板上显示趋势,或触发『预先警报』通知,如果在触发警报之前水平逐渐上升。

我也有一个 空气质量监测仪 在房间里,我可以看到当空气质量监测器告诉我室内空气质量变差时,烟雾探测器是否会反应。

烟 单位

展览 , 烟雾 单位 指定 ,单位 单位 与『烟雾水平』相联系。 在文档中,该单元旨在促进脚本和自动化,特别是因为该产品用于国际用途。

具体来说,它阻止了我在我的自动化中做出假设。 我也可以调整我的阈值,如果我以后改变我的模型,保持一个一致的逻辑。

室内污染

展览 , 室内污染 表示水平烟雾检测室的污垢.

, 可能值 是:

  • 正常 正常 : 干净的房间,最佳检测。
  • 光 _ 污染 : 光污染,看。
  • 中型 _ 污染 : 中度污染,很快清洁。
  • 关键 _ 污染 : 严重污染,立即清洁或更换。

我可以使用它来安排自动通知。 光 _ 污染, 和强烈的警示 关键 _ 污染. 这可以防止灰尘使探测器不起作用而没有注意到它。

仅限自动化的 Siren

展览 , 仅限自动化的警笛 允许为 通过家庭自动化操作控制警报器.

此功能仅适用于家庭自动化爱好者。 可以激活三个按钮: 停 停 停, 烟 西伦 或 科西伦 · 科西伦, 所以我们只能在两个铃声之间做出选择。 太糟糕了,它有点有限,但构建场景已经很大了。

我打算只在受控的环境中使用它: 测试、场景或互连。 例如,这允许我从自动化中触发探测器的警报,而无需等待它本身检测烟雾。

已报告的包裹

展览 , 报告的包裹 是一个表,表示 多少 Zigbee 包 该设备在24小时内发布。 这是一个非常有用的诊断数据,如果我发现电池排空太快。

在这种背景下,"报告 于" 指 发送/发送 : 这是探测器在一天内发送到网络的Zigbee数据包的总数。 这些数据包对应于『报告』消息(电池、温度、烟雾水平、链路质量等自动状态)。 每次探测器上升状态,变化或周期性心跳时,它都会计数+1个数据包。

如果这个仪表变得异常高,我必须寻找原因(网络不稳定,参数太健谈,无线电干扰)。

重新加入计数

展览 , 重新 加入 计数 表示 多少次 探测器再次加入了Zigbee网络。

在诊断中,它是稳定性的明确指标: 它越是上升,我的网络就越有可能被限制在探测器的位置。 如果我看到频繁的连接,我会在附近添加一个Zigbee路由器(插头,路由器灯泡),或者我把协调器拉近。

我正在获得警报可靠性和电池寿命。

重新启动计数

展览 , 重新启动计数 数计数的数目 重新 启动 的仪器。 这仍然是一个纯粹的诊断事实,但它可以帮助检测不稳定的行为。

如果这个电表增加,我怀疑电池弱,固件问题,或不稳定的内部电源。 无论如何,我更喜欢快速调查,因为烟雾探测器必须连续可靠。

链路 质量 @ info: whatsthis

展览 , 链接 质量 代表 , Zigbee 链接的质量 (LQI)。 它不是一个直接的『安全』指示器,但它是一个很好的温度计,知道探测器是否容易与网络通信。

如果 LQI 太低或波动很大,我会查看位置或添加 Zigbee 路由器。 我记住,良好的Zigbee通信增加了警报和状态迅速上升的机会,特别是在现实生活中。

Zigbee2MQTT参数

温度校准

展览 , 温度校准 允许为调整绝对温度 探测器报告。 通过输入偏移值(例如+1.5°C或-0.5°C),我补偿了与可靠参考探针的测量偏差。

我用它来改进特定房间的测量值,特别是如果我将其与其他内部传感器进行比较。 此校准设置为0.1°C。 这对于补偿传感器的定位非常有用,通常在天花板上,因此比人类高度的温度高几度。

注意: 这种校准直接影响所有温度延迟,所以我在设置并注意可重复性值后进行测试。

温度精度

这个参数定义了 小数位数 显示温度(例如整数为0,1为21.0°C,2为21.05°C)。 它控制延迟的准确性,而不改变实际测量值。

我为仪表板上可读的显示器选择1或2位小数位,而无需不必要的过载。 更多的小数 = 稍长的报告(较小的影响conso),但提高了精细趋势的视觉准确性。

识别超时

此设置修复了 持续时间在秒内 在此期间,探测器在Identify命令中闪烁其LED(范围为1至30秒,默认值3秒)。

我适应我的需求: 短(5s)用于快速定位,长(20s),如果我很难在几个探测器中发现。 这避免了在安装或维护过程中多次重新启动标识符。

 

我在家助理里找到探测器

我可以马上找到我的设备。

控制存在。

我找到所有可用的传感器。

在 配置 配置, 我找到了OTA更新选项(伟大的!)和闪烁探测器的识别命令。

终于在 诊断 诊断, 我有所有的元素。 请注意,我在家里自动激活。 链接 质量 以及 上 一 幕, 如果可能感兴趣,我已经制作了一个Retex来解释:

我注意到两个元素具有相同的名称。 电池 电池, 我不知道这是对整合还是其他原因的关注,我必须小心重命名它们,以免混淆。

 

用于归档: 使用说明

 

在 Zigbee2MQTT

  • 在对等模式下通过Z2M
  • 我从电池5s中取出舌头,LED闪烁几次绿色,但什么也没发生。
  • 并把它放回去快速配对
  • 检测为"HS1SA-E"或"烟雾_zigbee"
  • 实体: 电池、烟雾、篡改、链接质量、测试
 Friendy_name : _fumee _chambre device_class : 烟雾: binary_sensor.smoke battery_low: binary_sensor.battery_low 测试: 纽扣 测试

家庭助理集成

我可以在HA中找到设备: 实体吸烟(烟雾状态),电池,测试。 警报徽章与警报和推送通知。 一切都工作得很好。

我的第一次测量

日期 日期 烟熏状态 电池 电池 % 测试 测试 注释 》
02/03/2026 清 清 100% 好的 好的 安装 安装
03/03/2026 清 清 100% 好的 好的 稳定 型

⚙ 我 正在考虑 的 自动化

  • 警报 警示 : 如果检测到烟雾,警报家 + SMS + 打开百叶窗
  • 舒适 舒适 : 每月自动测试+低电池警报

电池的安装和监测

  • 安装于02/03/2026 家长室(parental room)

委托后我的意见

✅ Fortts : 快速检测,完美的Z2M/HA集成,电池寿命长,价格实惠。

❌ weak : 没有CO,温和的警笛,没有外面。

我的判决: 非常适合家庭自动化Zigbee! 推荐给所有初学者消防安全。

 

我可视化地监视我的Zigbee网络(linkquality & Last_seen)

目标: 为每个 Zigbee 设备提供可见(和可用的)两个关键信息:

  • 链接 质量 无线电健康(Radio Health)和
  • Last_seen 的 (最后一次通信)

这是为了立即检测『丢失』警报器或HS电池,而不必等待偶然发现它。

为什么我把这个放到位

与 69 Zigbee 设备, 我没有简单的能见度来回答两个基本问题: 设备是否正确捕获? 以及 他最近有沟通吗?
在A 警笛 号, 发现『随机』是不可接受的: 我想立即看看她是哑巴,离网,还是在无线电故障。

因此,我决定到处展示:

  • 链接 质量 : 无线电链路质量指标(LQI)。 (这是一个有用的『照片』来识别薄弱区域。
  • Last_seen 的 : 最后一次通信的日期/时间(或相对时间): 12s,4m,2h…)。



《 ⚠ 陷阱 》 #1: 有两个"configuration.yaml"

起初,我被告知: 在家庭助理中,有两个不同的文件。

  • Home Assistant的主要文件: /config/configuration.yaml
  • Zigbee2MQTT 文件: /config/zigbee2mqtt/configuration.yaml

重要: 为 Last_seen 的 并且(在实践中)默认曝光/激活,一切都是侧向配置的。 Zigbee2MQTT, 即 /config/zigbee2mqtt/configuration.yaml.

陷阱 陷阱 #2: Zigbee2MQTT插件UI可以『清理』选项

我表现得非常痛苦: 我添加了高级选项,保存了……然后附加界面似乎通过删除它不理解的内容来『简化』文件。

可靠的方法(在家):

  • 我直接编辑 /config/zigbee2mqtt/configuration.yaml (文件编辑器或SSH)
  • 我 拯救
  • 重新启动 Zigbee2MQTT

激活 激活 Last_seen 的 Zigbee2MQTT(强制性)

默认情况下,Zigbee2MQTT 可能无法发布 Last_seen 的 (禁用值)。
为了激活它,我在部分中添加了这个。 先进 先进 从 /config/zigbee2mqtt/configuration.yaml :

先进: # 在MQTT消息中添加"last_seen" # 可能的值: 禁用,ISO_8601,ISO_8601_local,epoch last_seen: ISO_8601 _ 本地

此设置告诉 Zigbee2MQTT 添加属性 Last_seen 的 MQTT消息,具有本地时间可读格式。

有用的格式(可供选择)

  • ISO_8601 _ 本地 : 清晰+本地主轴(每天最实用)。
  • ISO_8601 标准 : 可读性,但在UTC中(用于集中UTC中的所有内容)。
  • 时代 时代 时代 : Timetamp Unix(用于脚本/处理的实践)。

激活 激活 Last_seen 的 以及 链接 质量 Home Assistant(可选)

一次 Last_seen 的 在Zigbee2MQTT侧激活,还有一点: 在家庭助理中,这些实体通常被归类为『诊断』,因此可以创建它们。 残疾 者 自动。

为了让每个新的Zigbee设备直接到达『准备监督』,我添加了这一点。 /config/zigbee2mqtt/configuration.yaml :

device_options : HomeAssistant: Last_seen : 启用_by_default : 真正的链接质量: 启用_by_default : 真实 的

然后重新启动Zigbee2MQTT。

重要: 对已经安装的设备的影响

这种设置特别有助于 新设备 (或重新发现的设备)。
对于已经存在的设备,通常需要手动激活家庭助理中的相应实体。

数据库: 保持信息可见而不『污染』历史

『风险』不是Zigbee2MQTT(它只是在消息中添加了一个时间戳字段),而是Home Assistant,如果你保存每个更新。 Last_seen 的 在数据库中: 它可以通过许多传感器生成大量的文字。

我的选择: 我要 见 这些值无处不在,但我不需要逐分钟的图表。 因此,我将这些实体排除在记录仪之外。

我把什么放进去了 /config/recorders.yaml

记录器: 不包括: entity_globs : 传感器*_last _seen - sensor.*_linkquality

之后,我重新启动 Home Assistant: 这些价值观是实时可见的,但我强烈限制了不必要的历史的创造。

视觉监督: "无线电+新鲜度"计划

我不希望『一个实体在列表中丢失』: 我想 视觉监督, 立即可辨认。

原则:

  • 每个Zigbee设备在平面上显示为一个小矩形。
  • 批量显示的数字= 链接 质量.
  • 右下方的时间= Last_seen 的 相对数(s/m/h/d)。
  • 黑框=路由器(可变) 路由器: 1快速识别路由器。

排污卡(可重用)

我使用我三年前在这个页面上描述的整洁_模板卡的魔力:

因此 整理 _ 模板 + custom:decluttering-card 为了在任何地方重复使用相同的组件,只需更改4个变量。

我简单地定义了每个设备不同的四个元素:

  • 面积: 传感器将被处理
  • 顶部: 它的位置从顶部
  • 左: 左侧位置
  • 路由器: 1 如果它是路由器,否则 0

示例: 非常简单的仪表板页面

类型 : 图片元素图像: /local/house/1920x1000/off_0800.png 元素: 类型: custom:decluttering-card 模板 : 链接质量变量 : 面积: Sensor.light_chambre_parents - 顶部: 20% 左: 35% 路由器: 1 - 类型: custom:decluttering-card 模板 : 链接质量变量 : 面积: Sensor.fenetre_de_la_chambre_des_parents - 顶部: 15% 左: 37% 路由器: 0

模板 链接 质量 (『大块』)

Decluttering _templates : 链接质量: 默认值 : 顶端: 5% 左: 95% 路由器: 0个元素: 类型 : custom:button-card 实体: | [[[[[] 返回 "[[zone]]_linkquality"; ]]] show _icon : 假名: | [[返回 '[[zone]]]' .replace(/^sensor \./i, '').replace(/_/g, ' ' ' ').trim(); ]]] show _state : 真 show_units : false custom_fields : Lastseen: | [[const obj = state[[[[zone]]_last _seen]]; 如果(!obj ||!obj.state θ obj.state === 'unavailable')返回'! const last = new Date(obj.state); 如果(isNaN(last.getTime())返回 '! const now = new Date(); const seconds = Math.floor((now - last)/ 1000); 如果(秒 < 60)返回 '${seconds}s; const minutes = Math.floor(seconds / 60); 如果(分钟 < 60)返回 '${minutes}m; const hours = Math.floor(minutes / 60); if(hours < 24)返回${hours}h; const days = Math.floor(hours/24); 返回 》${days}d; ] 样式: 卡 : 边界: | [[[[return([router]]] == 1)? 2px Solid Black: 『无』; )-box-shadow: 无 - 位置: 相对 - 边界半径: 8px - min-width: 100px - 高度: 45px - 显示: Flex - flex-direction: 列 - 合理内容: 中心 - 对齐项目: 中心 - 颜色 : 白色名字: 字体大小: 10px - line-height: "1" - 填充: 0 - 保证金: 0 - text-align : 中心 - 颜色 : White-flex: 1、最大宽度: 95px - 字封装: break-word - overflow : 隐藏 - 空白空间 : 正常状态: 字体大小: 15px - 字体重量: Bold-line-height: "1" - 填充: 0 - 保证金: 0 - text-align : 中心 - 颜色 : White-flex: 1 custom_fields : Lastseen: 位置: 绝对 - 底部: 0px - 右: 0px - font-size : 10px - 颜色: Black-padding : 2px 4px - border-radius: 4px -box-shadow: 0 1px 3px rgba(0,0,0,0,0.3)- 背景: | [[const obj = state[[[[zone]]_last _seen]]; 如果(!obj ||!obj.state)返回 'rgba(128,128,128,0.5)'; const last = new Date(obj.state); const now = new Date(); const seconds = Math.floor((now - last)/ 1000); if(seconds < 1200)返回 'rgba(0.255,0,0.9)'; // green <20min if(seconds < 1800)返回 'rgba(255,255,0,0.9)'; // 黄色 20-30 分钟,如果(秒 < 7200)返回 'rgba(255,165,0,0.9)'; // orange <2h 返回 'rgba(255,0,0,0.9)'; // red >2h ]] 状态: 值 : 不可用的样式 : 卡 : 背景: RGBA(255,0,0,0.3)- 操作符: '> 值: 200种风格: 卡 : 背景: RGBA(0,180,0,0.3)- 操作符: '> 值: 150种风格: 卡 : 背景: RGBA(34,255,34,0.3)- 操作符: '> 值: 130种风格: 卡 : 背景: RGBA(255,255,0,0.3)- 操作符: '>=' 值 : 80种风格: 卡 : 背景: RGBA(255,165,0,0.3)- 操作符: '<' 值 : 80种风格: 卡 : 背景: RGBA(255,107,53,0.3)样式: 顶部: [[top]] 左: [[左]

简单地说,这个代码是做什么的?

此模板定义了您对所有 Zigbee 设备重用的唯一映射模板,仅更改 [[zone]] 变量。

实体属性在 JavaScript 中动态构建,指向 [[zone]] _linkquality 实体,该实体会自动显示设备的链接质量(由 Zigbee2MQTT 或 ZHA 返回的 LQI 值)。

名称也在客户端生成: 传感器前缀被移除, _ 被空格替换,并创建一个 trim(),从实体 ID 中产生可读标签。

最后看到的自定义字段读取实体 [[[zone]] _last _seen in state[],将其值转换为 Date 对象,然后计算与当前时间的差值以显示相对时间(s, m, h, d)。 如果值为空、不可用或无效日期,则显示 ! 而不是显示不一致的值。

右下角的最后一个徽章样式使用JavaScript函数,该函数根据上次通信的年龄返回不同的RGBA颜色(灰色如果没有值,那么绿色→黄色→橙色→红色取决于所经过的秒数),它可以直观地编码数据的新鲜度。

该节指出: 按钮卡定义了链接质量值的几个阈值: 不可用,然后切片 >200, >150, >130, >=80, <80,每个应用一个卡片特定的颜色背景,这将一个数字值变成一个立即可读的无线电质量指示器。

格式化属性(flex、min-width、 height、边框半径、绝对徽章位置等)确保了紧凑和均匀的渲染,当[[[路由器]] == 1时,可选的黑色边框与简单的终端相比,可以直观地识别Zigbee路由器。

有用的补充: Zigbee2MQTT 全球 健康 信息

这是这张卡的代码。

类型 : 图片元素图像: /local/house/1920x1000/off_0800.png 元素: 类型: 自定义:mod-card 卡 : 类型 : 实体名称: Zigbee2MQTT 显示 _header _toggle: 虚假实体: - 实体: switch.zigbee2mqtt _bridge _permit _ 加入名称: 允许纳入 - 实体: button.zigbee2mqtt _bridge _restart 名称: 重新启动 - 实体 : select.zigbee2mqt_bridge _log _level name : 日志级别 - 实体: binary_sensor.zigbee2mqtt _bridge _connection _state name: 连接状态 - 类型 : 自定义:template-entity-row name : 从国家启动: > {% 设置 e = state.binary_sensor.zigbee2mqtt _bridge _connection _state %} {% 如果 e 不是 no,e.state not in ['unavailable', 'unknown'] %{{{((now()- e.last _changed).total _seconds()/ 3600)| round(1)} h {% 其他 其它 %不可用 {% Endif 的 %} - 实体: Sensor.zigbee2mqtt _bridge _coordinator _version 名称: 协调版本 - 实体: Sensor.zigbee2mqtt _bridge _version 名称: Zigbee2MQTT版本 - 实体: Sensor.number_de _sensors_linkq_en _error 名称: 无法访问的图标 : MDI:alert-circle - 实体: Sensor.number_de _sensors_linkq 名称: 总图标 : MDI:devices - 实体: Sensor.zigbee _linkquality _mean name: 平均链接质量图标: MDI: 信号样式: 顶部: 35% 左: 75% 宽度 : 450px 的

我添加了一个传感器来计算链路质量的平均值。

这个传感器被添加到Templates.yaml文件中,这里是它的代码:

姓名: "zigbee_linkquality_average": ZigBee _linkquality _ 中单位 _ 测量: "LQI" state_class: 测量状态: >- {% 设置linkqualities = state.sensor | selectattr('entity_id', 'search', '_linkquality')θ selectattr('state', 'is_number')θ map('attribute='state')。 %} {% 如果 linkqualities | 长度 > 0 %} {{{(linkqualities | sum / linkqualities θ length)round(1)} {{(linkqualities | sum / linkqualities Ω length){ { {(linkqualities | sum / linkqualities θ length)。% 其他 其它 %} 0 {% Endif 的 %}

我添加了一个传感器来计算传感器的数量。

姓名: "number of sensor LinkQ" unique _id: Sensor.number _sensors _linkq 状态: >- {% 设置 lq _sensors = state.sensor | selectattr('entity _id', 'search', '_linkquality')$) | 列表 %}{{LQ _sensors | count }} 图标: MDI:signal-variant unit_of_measurement : 『传感器』

我添加了一个传感器来计算错误设备的数量。

姓名: "错误中的 LinkQ 传感器数量" 唯一 _id: Sensor.number _sensors _linkq _ 错误状态: >- {% 设置 lq _sensors = state.sensor | selectattr('entity _id', 'search', '_linkquality')$')| selectattr('state', 'in', ['unavailable', 'unknown', 'None'])) 列表 %}{{LQ _sensors | count }} 图标: MDI:alert-circle unit_of_measurement: 『传感器』

我在主仪表板上添加了一个指示器来报告错误的数字。

首先,此模板在错误 / yy 中显示 xx

姓名: "ZigBee _unreachable _synthese" 唯一 _id: Sensor.zigbee _reachable _synthese 状态: {state('sensor.number_de _sensors _linkq _en _error')}/{ state('sensor.number_de _sensors _linkq')} } 图标: mdi:alert-circle

在我的图片元素中,我补充说:

类型: 条件条件: 条件: 国家实体: Sensor.number _de _sensors _linkq _en _en 错误状态 _ 不是: "0"元素: 类型: custom:button-card 实体: Sensor.zigbee _reachable _synthese 图标: MDI:zigbee show_name: false show_state : 真实风格: 顶部: 5% 左: 5% 变换: 翻译(-50)%, -50%风格: 州 : 颜色: 红色 - font-weight : 700 - font-size : 16px 图标: 颜色: 红宽度: 20px - 高度: 20px卡: border-radius: 999px - 填充: 4px 6px - 背景: 透明 - 盒子阴影: 无

此块用于在仪表板计划中显示一个小红色指示器"Zigbee in error" 仅 当至少有一个有问题的传感器时。

这是图片元素卡中的一个条件元素: 它只显示其内容,当 sensor.number _sensors _linkq _en _ 错误与"0"不同(因此,如果至少有一个传感器无法到达或链接质量错误)。

当条件为真时,它会显示一个自定义:按钮卡基于 sensor.zigbee _unreachable _synthese,其中可能包含"3 in error"或类似的文本。

按钮放置在飞机左上角(5) % / 5 %以变换为中心: 翻译(-50)%, -50%)具有透明的背景,没有阴影,只保留Zigbee图标和文本。

Zigbee图标和状态的样式为红色,粗体和大小为16 px,具有边框半径: 999px给一个贴片/标签的外观,使它成为一个谨慎但清晰可见的视觉警告,只要有传感器在错误。

找出谁错了

要查看错误设备列表,以下是必要的代码。

模板声明

姓名: "错误中的 LinkQ 传感器数量" 唯一 _id: Sensor.number _sensors _linkq _ 错误状态: >- {% 设置 lq _sensors = state.sensor | selectattr('entity _id', 'search', '_linkquality')$')| selectattr('state', 'in', ['unavailable', 'unknown', 'None'])) 列表 %}{{LQ _sensors | count }} 图标: MDI:alert-circle unit_of_measurement: 『传感器』 - 名称: single _id "linkquality Sensor List in Error": Sensor.liste _sensors _linkquality _error 状态: >- {% 设置 lq _sensors = state.sensor | selectattr('entity _id', 'search', '_linkquality')$')| selectattr('state', 'in', ['unavailable', 'unavailable', 'unknown', 'None'])map('regex _replace', 'sensor \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)_linkquality 。$',\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ %} {% 设置计数 = lq _sensors | 长度 %} {% 如果计数=0 %没有 {\displaystyle }% Elif count <= 5 %} {{ LQ _sensors | join(', ')} { { LQ _sensors | join(', ')} { { LQ _sensors | join(', ')} { {LQ _sensors | join(', ')% 其他 其它 %} {{ LQ _sensors[:5] | join(', ')~ ' + ' ~ count } {% Endif 的 %} 属性: 伯爵: >- {% 设置 lq _sensors = state.sensor | selectattr('entity _id', 'search', '_linkquality')$')| selectattr('state', 'in', ['unavailable', 'unavailable', 'unknown', 'None'])map('regex _replace', 'sensor \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)_linkquality 。$',\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ %}{{LQ _sensors | length }} 完整 _list: >- {% 设置 lq _sensors = state.sensor | selectattr('entity _id', 'search', '_linkquality')$')| selectattr('state', 'in', ['unavailable', 'unavailable', 'unknown', 'None'])map('regex _replace', 'sensor \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)_linkquality 。$',\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ %} {{ LQ _sensors | join('')'', ')default('None')}} 图标: mdi:alert-circle

在Dasboard上,总是在画面中

类型 : 图片元素图像: /local/house/1920x1000/off_0800.png 元素: 类型: 自定义:mod-card 卡 : 类型 : 实体名称: 错误实体中的 ZigBee 传感器: 类型: custom:template-entity-row entity : Sensor.liste _sensors _linkquality _en _error name : 列表状态: > {% 设置 s = state('sensor.liste _sensors _linkquality _en _error') %} {% 如果s不在['未知','unavailable', ''] %{{ s.replace(',', '\\\\\\\n')} { { s.replace(',','\\\\\\\n')} { { s.replace(',','\\\\\\n')} {s.replace('% 其他 其它 %没有 {\displaystyle }% Endif 的 %风格: 顶部: 80% 左: 75% 宽度 : 450px 的

✅ 简单 总结 ( 3 个 基本 块 )

1. Zigbee2MQTT: 激活 last_seen

先进: Last_seen : ISO_8601 _ 本地

2. Zigbee2MQTT: 在HA中默认启用(可选但方便)

device_options : HomeAssistant: Last_seen : 启用_by_default : 真正的链接质量: 启用_by_default : 真实 的

3. 家庭助理: 未在DB中注册这些实体

记录器: 不包括: entity_globs : 传感器*_last _seen - sensor.*_linkquality

它每天都在改变什么

  • 我立刻看见了 弱区域(链接质量低)我知道要加强什么(路由器、位置、通道等)。
  • 我完全知道 当美人鱼停止说话时(最后一次看到),所以我不再『假设』。
  • 我有一个健康的数据库。 (在一直移动的传感器上没有不必要的历史记录)。



需要澄清吗? 问题?

此讨论(如果仍然开放)是可用的:

https://forum.hacf.fr/t/retex-je-surveille-visuellement-mon-reseau-zigbee-linkquality-last-seen/76732

我在仪表板上检索我的Withings健康数据

我将Withings与Home Assistant整合在一起

我决定有一天将我的Withings设备(我的连接量表和血压监测仪)直接集成到家庭助理中,以便在家庭自动化中实时监测我的健康状况。

作为一个初学者,你可能想知道: 如何让我的规模与家庭自动化系统进行通信?

不要惊慌,我一步一步地告诉你这次冒险,就好像你在我身边一样,解释每一次点击和每一个原因。

添加 Withings 集成

我开始在我的浏览器上打开Home Assistant。 我 访问 设置 > 设备和服务 > 集成 > 添加集成.

在搜索栏中,我键入"Withings"并选择官方集成。

家庭助理然后问我一个客户端ID和一个秘密客户 - 我会从Withings得到的秘密代码。

这就像注册一个独家俱乐部,这样两个系统都可以聊天。

Withings 集成到 Home Assistant

我研究文件

在潜水前,我阅读了家庭助理提供的文档。

它告诉我从哪里得到这些著名的钥匙: Withings开发者门户网站

对于初学者来说,这是至关重要的 - 想象一下试图打开一扇没有钥匙的门! 文件明确: 方向 方向 Withings Developer Dashboard 的.

Withings 整合的文档

访问Withings开发者门户网站

我 点击 的 Link 并登上了开发商的主页。 我 选择 公共 云 因为这是像Home Assistant这样的集成模式 - 不需要复杂的私有服务器。 然后我登录我的个人Withings帐户,一个链接到我的健康设备。

开发者主页 Withings

登录Withings帐户

我创建我的新应用程序

一旦登录,我点击 创建一个新的应用程序. 我填写表格的基本信息:

 

创建新的应用程序 Withings

申请 创建 表格

权限 应用 Withings

我保存并检索钥匙

我验证了创造。 Withings 生成我的 客户 ID (公共)和 秘密 客户 (秘密,永远不要被分享!)

『测试』按钮可能在此阶段显示错误 - 这是正常的。

创建 Withings 的应用程序

Withings 按钮测试错误

错误测试按钮

客户 ID 和 Secret Withings

我使用密钥配置 Home Assistant

回到 Home Assistant,我将客户端 ID 和 Client Secret 粘贴到集成字段中。

我正在验证。 立即,它将我重定向到Withings以允许访问。

Key Configuration in Home Assistant 家庭助理

授权 Withings

调整外部重定向URL

默认情况下,Withings试图回到 http://homeassistant.local:8123, 但是,这个本地链接无法从Withings服务器(离家很远)访问。 我犯了一个典型的错误:

本地 URL 错误 withings

本地连接错误

我回到我的Withings应用程序,编辑重定向URL,使用我的外部访问通过Nabucasa

我保存并重新启动配置。 胜利!

URL Nabucasa Withings

成功连接

我欢迎我的设备和配置文件

连接后,Home Assistant 会自动检测我的设备: "我的数据","我的平衡"和"我的张量表"。

每个显示为具有重量,血压,电池等的传感器。

为了清晰起见,我重命名: "Lionel Health"用于我的全球数据,"Balance"和"Tensiometer"。

请注意,平衡和张量计通常只有一个有用的传感器: 电池...

检测 Withings 设备

实体 家庭 助理 Withings

设备重命名

平衡 电池 传感

电池 变速 器 传感 器

我添加家庭资料

对于这个家庭,我添加了以下配置文件: 我的独立女儿(单独的个人资料>16岁),我的另一个女儿(<16岁)和我妻子的帐户。

家庭助理列出一切整齐。

注意: 电池可以产生不必要的重复,我已经停用了这些传感器以避免数据垃圾邮件。

家庭 简介 Withings

避免陷阱的提示

  • 强制外部URL : 始终使用 Nabucasa 或公共反向代理。
  • 禁用重复 : "平衡/感应计"设备仅用于电池。 避免重复并禁用不需要的东西。

我自定义我的仪表板

一旦我弄清楚了该怎么做……简单。

 

 

有用的参考资料

如果你阻止,社区会帮助:

现在我的健康数据实时显示在家庭助理 - 准备好有趣的自动化,如警报,如果我的体重起飞!

我正在测试烟雾探测器Zigbee US E8

我的目标

一旦出现第一场烟雾,我需要监测我的房子是否有火灾风险。

Zigbee 烟雾 检测 器 我们 E8 非常适合这项任务,它是3款Zigbee设备的一部分。 为了在他们之间做出决定,我做了一个比较:

数据 The Data of the E8 的 在Zigbee2MQTT和家庭助理中启用准确的警报,例如警报器,推送通知和自动通风。

因此,我家的安全以简单和有效的方式得到了加强。

该设备符合欧洲标准EN14604自动烟雾探测器(DAAF),以及CE和RoHS认证,确保其符合欧洲安全标准。

光电 烟雾 检测 器 我们 E8 ZigBee通过检测空气中的烟雾来检测火灾,并在达到一定浓度阈值后立即触发可听到和发光的警报。 它专为住宅建筑而设计,其单源检测室可防止灰尘,昆虫或水分引起的误报。

内部『迷宫』设计允许快速火灾检测,同时限制不良触发器。 该箱子由防火塑料制成,具有光泽的表面。 阅读 更多

我正在测试新的Sonoff Zigbee系列: ZB2GS,ZB2GS-L和ZBDIM

今天,我带你一步一步地完成2025年底发布的Sonoff Zigbee系列模块。 什么是"Sonoff Zigbee模块"? 让我从一开始就解释一切,就好像我们坐在一张桌子旁边喝咖啡一样。

想象一下: 你有一个平庸的墙壁开关,打开你的客厅灯。 有了其中一个模块,这个开关就变成了 智 能 智. 你可以从智能手机上打开它,说"Alexa,关掉厨房",或者"忘记5分钟后关掉汽车"。 到处都没有电缆,没有火车的WiFi: 是 ZigBee 的, 一个特殊的家庭自动化无线电超级稳定(如WiFi,但专用,范围为每个模块10到30米,并自动扩展到『网状』 - 每个模块中继其他模块的信号,就像通过这个词的朋友链一样)。

这些模块是小型电子盒(长39毫米,宽45毫米,厚17毫米)。 是你 躲在后面 您现有的开关,无需更改可见按钮或重做电。 它们每个费用在15至25欧元之间,在10分钟内拧紧(两个螺丝,相/黑线+中性/蓝色或不取决于型号),并使用。 家 助理 (哈,小型PC或Raspberry Pi上的免费软件,集中您的整个智能家居)。

阅读 更多