
使用 ESPHome 和 Home Assistant 读取家庭水表
我想写这篇文章, 长期以来,我一直在寻找一个好的解决方案, 稳定可靠… 当然, ESPHome 有答案. 在这篇文章中,我们将了解如何读取普通水表的耗水量, 我们走吧, 我们家里的那个; 并使用 Home Assistant 进行可视化.
多年来,这个话题一直让我感到好奇, 了解消耗量, 在这种情况下,家里的水, 我们在家中对水的消耗和使用量. 我一直在使用带有摄像头和 OCR 文本识别的解决方案, 但… 这不是一个有效的解决方案, 它有它的弱点,错过的不仅仅是一把游乐场霰弹枪. 使用几个月后,我可以向您保证,最可靠的方法是使用感应式接近传感器和 ESP8266 或 ESP32.
为什么? 好吧,不管你有什么原因, 了解消耗, 尝试保存, 检测泄漏, 因为您可以…
![]() |
![]() |
井, 总, 最后证明,我们有一种非常简单的方法来读取仪表的读数, 我们可以使用接近传感器来做到这一点, 特别是 LJ18A3-8Z/BX NPN (只需 10 欧元多一点). 水表, 他们通常有一个小轮盘赌轮盘, 这个轮盘赌轮盘旋转并有一个小磁铁,我们可以在每次旋转时检测到它. 每一次, 每个脉冲等于 1 升.
![]() |
![]() |
所以, 我们将 LJ18A3-8Z/BX 接近传感器通过 ESP 连接到我们的电路板, 无论是 ESP8266 还是 ESP32, 然后我们将传感器粘到所述水表旋转器. 明显地, 在你敲击任何东西之前, 我们将事先使用冰箱😉中的磁铁对其进行测试接线非常简单,看起来像这样, 棕色电缆到 VIM, 蓝色到 GND,黑色到数据 GPIO, 我的案例是 D21.
如果我们还没有这样做, 在我们的开发板上,我们将安装 ESPHome 固件,以便能够轻松地将其集成到 Home Assistant 中. 安装 ESPHome 的最简单方法是从 Home Assistant 本身安装, 添加新设备 (如有必要,我们将发布此 How To). 创建设备后,我们将以下配置添加到开发板中:
传感器: - 平台: pulse_counter pin: 21 update_interval : 6S 名称: "水脉冲" ID: pulso_agua - 平台: pulse_meter pin: 21 名字: "水脉冲计" unit_of_measurement: "升/分钟" 图标: "MDI:水" 总: 名字: "总水" unit_of_measurement: "升" - 平台: 模板名称: "㳁" ID: flujo_agua accuracy_decimals: 1 unit_of_measurement: "升/分钟" 图标: "MDI:水" Lambda 表达式: 返回 (ID(pulso_agua).州 * 10); update_interval: 6s
有了这个,我们将能够知道“水的脉搏”, “总水”’ 和“水流”. 这将花费你很长时间 2 在 Home Assistant 中添加卡片的分钟数, 我把他们的代码留给你,以防它对你有任何用处:
类型: 习惯:Apexcharts-Card 标头: 显示: 真实标题: 耗水量 - 最后一刻 show_states: false 系列: - 实体: sensor.total_agua名称: 豪华型: 区域不透明度: 0.7 颜色: 蓝色group_by: 期间: 1它对我有用: 平均 graph_span: 1h update_interval: 5分钟
然后在 Home Assistant 上, 如果我们想存储数据进行统计并了解每小时的用水量, 每天, 每月或每年, 我们应该直接在 Home Assistant 配置文件中创建以下 Utility Meters (configuration.yaml):
utility_meter: consumo_agua_horario: 名字: "耗水量 - 时间表" 源: sensor.total_agua循环: 每小时consumo_agua_diario: 名字: "耗水量 - 日常" 源: sensor.total_agua循环: 每日consumo_agua_mensual: 名字: "耗水量 - 每月" 源: sensor.total_agua循环: 每月consumo_agua_anual: 名字: "耗水量 - 年刊" 源: sensor.total_agua循环: 每年
以及用于可视化此数据的卡片, 我给你留下一个例子:
类型: 习惯:Apexcharts-Card 标头: 显示: 真实标题: 耗水量 - 上个月 show_states: false 系列: - 实体: sensor.consumo_agua_diario名称: 升型: 列不透明度: 0.7 颜色: 蓝色group_by: 期间: 1D 函数: 最大graph_span: 30d update_interval: 5分钟
我希望它对您有用, 从现在到今年年底,我打算发表其他文章,这些文章不仅从家里的水表获取读数, 否则, 电费, 气体… 照常, 祝您取得更大的成功! 拥抱,