家庭自动化:五区温度记录器搭建与未来趋势
五区温度记录器的搭建
温度集线器配置
在温度记录器的搭建中,首先涉及到温度集线器的配置。从相关配置图中可知,
room_id
实际上就是传感器 ID,后续需要在 Grafana 中将传感器 ID 映射到实际的房间 ID。同时,我们可以从安装在车库的 BMP280 温度传感器获取蓝牙传感器的湿度信息。温度集线器节点配置完成后,会呈现出特定的数据捕获和格式流程。
数据存储到 InfluxDB 数据库的配置
配置数据存储到 InfluxDB 数据库是关键步骤。具体操作如下:
1.
连接节点
:使用 Node - RED 中的
influxdb out
节点,将之前创建的两个流程的输出连接到该节点。
2.
配置参数
:
- 在
Name
字段填写友好名称
Temperatures
。
-
Measurement
字段填写
Temperature_sensors
,此为 InfluxDB 数据库中存储数据的表。
- 配置 InfluxDB 服务器:在
Server
下拉框中选择
Add new influxdb
,点击铅笔符号按钮,按以下信息填写:
- 服务器连接名称为
temperatures
。
-
Host
字段使用默认的 InfluxDB 服务器
localhost
,端口为
8086
。
-
Database
字段使用之前创建的
Temperatures
数据库。
- 用户名和密码分别为
your_name
和
your_password
,填写完成后点击
Add
按钮。
此时可能会出现
Error: A 401 Unauthorized error occurred: {"error":"authorization failed"}
错误,这是因为还未在 InfluxDB 中配置用户名和密码。
InfluxDB 数据库存储数据的配置
要在 InfluxDB 数据库中存储温度数据,需配置两个参数:
1.
InfluxDB 数据库
:回顾之前创建
Temperatures
InfluxDB 数据库的方法。
2.
访问数据库的用户
:具体步骤如下:
1. 打开
Settings | Add - ons | InfluxDB
,点击
OPEN WEB UI
按钮,打开 Chronograf 界面。
2. 在 Chronograf 侧边栏选择标题为
InfluxDB Admin
的皇冠图标。
3. 点击
Users
选项卡,再点击
+ Create User
按钮,在
Create User
窗口中,
User Name
字段填写
your_name
,
Password
字段填写
your_password
,然后点击
Create
按钮,创建用户。
4. 在后续屏幕中,点击
WRITE
和
READ
按钮,为
Temperatures
数据库设置读写权限。
5. 点击屏幕右上角的
Apply Changes
按钮,再点击
Exit
按钮。此时,
your_name
用户就拥有了对
Temperatures
数据库的读写访问权限。
完成上述配置后,返回 Node - RED 验证是否不再出现 401 错误。
使用 Grafana 展示 InfluxDB 数据
配置数据库源
-
点击 Home Assistant 侧边栏的链接打开 Grafana,点击 Grafana 配置菜单(齿轮图标),再点击
Data sources。 -
点击
InFluxDB数据源,将Name字段重命名为InFluxDB - Temperatures,确保Database字段为Temperatures,User和Password字段分别填写your_name和your_password,点击Save & test按钮,若数据库有数据,会显示datasource is working. 1 measurements found消息。
创建仪表盘和图表
创建一个仪表盘,显示四个图表:
Inside Temperature
、
Outside Temperature
、
Inside Humidity
和
Outside Humidity
。以创建
Inside Temperature
图表为例:
1. 点击侧边栏的
Dashboards
,选择
New | New dashboard
。
2. 点击
+ Add visualization
按钮,在
Query
选项卡中选择
InfluxDB - Temperatures
数据源。
3. 创建第一个查询,命名为
KID1
,各字段信息如下:
| 字段 | 信息 |
| — | — |
|
FROM
|
Temperature_sensors
|
|
WHERE
|
room_id = ATC6570e7
|
|
SELECT
|
field(temperature) mean()
|
|
GROUP BY
|
time(5m)
|
|
ORDER BY TIME
|
ascending
|
|
FORMAT AS
|
Time series
|
|
ALIAS
|
KID1_ROOM
|
4. 重复上述步骤,点击屏幕底部的
+ Query
按钮创建另外三个查询,各查询信息如下表:
| 查询名称 | WHERE | ALIAS |
| — | — | — |
|
KID2
|
Room_id = ATC969ab4
|
KID2_ROOM
|
|
Kitchen
|
Room_id = ATCad7637
|
KITCHEN
|
|
Master Bedroom
|
Room_id = ATC5d22d1
|
MASTER BEDROOM
|
5. 创建完查询后,将面板标题命名为
Inside Temperature
,点击屏幕右上角的
Save
按钮。
创建
Inside Humidity
图表时,重复上述步骤,仅将
SELECT
参数改为
field(humidity)
,面板标题改为
Inside Humidity
并保存。
创建与外部测量相关的图表(
Outside temperature
和
Outside Humidity
)时,同样点击
Add | Visualization
,使用以下参数:
| 图表类型 | FROM | WHERE | SELECT | GROUP BY | ORDER BY TIME | FORMAT AS | ALIAS |
| — | — | — | — | — | — | — | — |
|
Outside temperature
|
Temperature_sensors
|
room_id = ATC19F133
(后院),
room_id = garage
(车库) |
field(temperature) mean()
|
time(5m)
|
ascending
|
Time series
|
BACKYARD
(后院),
GARAGE
(车库) |
|
Outside Humidity
|
Temperature_sensors
|
room_id = ATC19F133
(后院),
room_id = garage
(车库) |
field(humidity) mean()
|
time(5m)
|
ascending
|
Time series
|
BACKYARD
(后院),
GARAGE
(车库) |
将创建的面板和图表标题分别命名为
Outside temperature
和
Outside Humidity
,点击
Save
按钮保存,每次保存后点击
Apply
按钮可查看图表或面板的创建和数据展示情况。最后,点击仪表盘设置(齿轮图标),将名称参数改为
YourHome Temperature
。
在 Home Assistant 中使用五区温度传感器
手动添加传感器
由于 Tasmota 的
setoption19 1
命令已弃用,需要手动在 Home Assistant 中添加温度传感器。Tasmota 使用 MQTT JSON 消息报告传感器数据,格式如下:
tele/ESP32_TEMPERATURE_HUB/SENSOR = {"Time":"2023-05-15T06:15:49","ATC19f133":{"mac":"a4c13819f133","Temperature":25.7,"Humidity":30.0,"DewPoint":6.8,"Battery":43,"RSSI":-82},"ATC969ab4":{"mac":"a4c138969ab4","Temperature":24.6,"Humidity":41.1,"DewPoint":10.5,"Btn":0,"Battery":34,"RSSI":-78},"TempUnit":"C"}
手动添加传感器的方法是编辑
configuration.yaml
文件,使用以下格式的语句从 MQTT JSON 消息中检索数据:
mqtt:
sensor:
- name: "Backyard Temperature"
state_topic: "tele/ESP32_TEMPERATURE_HUB/SENSOR"
value_template: '{{ value_json.ATC19f133.Temperature }}'
icon: mdi:thermometer-bluetooth
使用 Home Assistant 侧边栏的
File editor
插件将上述 YAML 代码添加到
configuration.yaml
文件中。需要创建五个这样的代码实例,以获取蓝牙传感器的所有五个温度测量值。完整的
Configuration.yaml
文件代码可在相关 GitHub 仓库中找到。
重启 Home Assistant
编辑完
configuration.yaml
文件后,使用
Developer tools | YAML
重启 Home Assistant,先点击
CHECK CONFIGURATION
按钮检查文件是否有问题,再点击
RESTART
按钮。
添加传感器到 Home Assistant 仪表盘
创建两个
Entities
卡片,一个用于
Inside Temperature
,另一个用于
Outside Temperature
,具体步骤如下:
1. 点击 Home Assistant 侧边栏的
Overview
,在 Home 仪表盘上,点击屏幕右上角的省略号(三个垂直点),选择
Edit Dashboard
选项,然后点击
+ ADD CARD
按钮。
2. 选择
Entities
卡片,按以下信息填写字段:
-
Inside Temperature 卡片
:
-
Title
:
Inside Temperature
-
Entity
:
Kid1_room Temperature
-
Entity
:
Kid2_room Temperature
-
Entity
:
kitchen Temperature
-
Entity
:
Master Bedroom Temperature
- 点击
SAVE
按钮保存卡片并添加到仪表盘。
3. 重复上述步骤,创建
Outside Temperature
卡片,
Title
为
Outside Temperature
,
Entity
为
Backyard Temperature
和
GarageTempPIR BMP280 Temperature
。添加完成后,点击屏幕右上角的
DONE
按钮。
如果要添加传感器的湿度数据,只需在
configuration.yaml
文件中添加五个更多的传感器实体,将
value_template
字段改为
value_json.sensor_id.Humidity
。
家庭自动化的新技术和趋势
使用语音助手
语音助手如 Amazon Alexa、Google Assistant 和 Apple Siri 在家庭自动化领域已广受欢迎。随着自然语言处理技术的进一步发展,用户能更有效地使用语音命令控制和与智能设备交互。在家庭中,不仅可以用语音助手播放音乐、回答问题,还能配置例程(如 Alexa 中的自动化),控制插头和灯光的开关。
大多数传感器和执行器与这些流行的语音助手兼容。对于 Tasmota 开源软件,可通过访问
Configuration | Configure Other
菜单,启用
Emulation
选项,根据选择的选项模拟商业智能插头或智能灯,使其能被语音助手检测和控制。
Home Assistant 通过名为
Assist
的间接功能支持语音助手。该功能于 2023 年 2 月发布,可在 Android 和 Apple 智能手机上使用设备的语音捕获功能。从 Home Assistant 2023.5.2 版本开始,可通过侧边栏菜单的选项
Settings | Voice Assistants
管理语音助手,目前使用 Nabu Casa 订阅可提供一个月的免费试用。
使用 AI 和机器学习
AI 和机器学习技术正越来越多地集成到家庭自动化系统中。这些技术使设备能够学习和适应用户偏好,预测需求并自动执行任务。AI 驱动的语音助手还能改善自然语言处理,提供更个性化的交互。
AI 和机器学习可以利用家庭中收集的数据信息,优化家庭基础设施,降低水电费,改善服务,让日常生活更轻松高效。例如,一个 AI 模型可以根据多年来夏季和冬季的设置偏好以及分布在房屋中的温度传感器数据,自动建议或控制房屋的温度。
有时会收到 Alexa 应用程序的建议,如根据用户在周末晚上 9 点左右在卧室看电视的习惯,建议打开智能插头以打开电视。虽然还需要更多数据来完善建议,但这已经是一个很好的示例。
另一种利用 AI 的方式是通过聊天机器人,如 ChatGPT。例如,向 ChatGPT 提出创建 Home Assistant 的 YAML 自动化的请求,它会以 YAML 代码形式响应。请求示例如下:
“Write a homeassistant automation in yaml that will use a motion sensor called master_bed to turn on a strip led light, but after midnight and up to 6:00AM. It has to be turned on for 1 minute and turned off after it. This automation should only run during the night time, unless it is disabled by a user button. This automation also should turn on a plug called coffeemachine if a motion sensor master_bed is detected and it is between 6:00 to 7:00AM.”
目前,Home Assistant 软件分发中尚未正式实现 AI 和机器学习算法,但数据会收集并存储在 Home Assistant Logbook 中,未来版本可能会根据日常例程分析数据并提出自动化建议。
智能手表交互
智能手表也是家庭自动化交互的一个趋势,不过书中未详细展开,大家可以期待其在家庭自动化中的更多应用。
综上所述,家庭自动化领域不断发展,新技术和趋势为用户带来了更便捷、智能的生活体验。无论是搭建五区温度记录器,还是利用语音助手、AI 和机器学习等技术,都能让家庭生活更加舒适和高效。
家庭自动化常见问题解答
在家庭自动化的实践过程中,人们常常会遇到一些问题,以下是一些常见问题及解答:
语音助手兼容性问题
- 问题 :我的传感器和执行器是否都能与语音助手兼容?
-
解答
:大多数传感器和执行器与流行的语音助手如 Amazon Alexa、Google Assistant 和 Apple Siri 是兼容的。对于使用 Tasmota 开源软件的设备,可通过启用
Emulation选项使其能被语音助手检测和控制。
AI 和机器学习应用问题
- 问题 :如何在 Home Assistant 中实现 AI 和机器学习的应用?
- 解答 :目前 Home Assistant 软件分发中尚未正式实现 AI 和机器学习算法,但数据会收集并存储在 Home Assistant Logbook 中。未来版本可能会根据日常例程分析数据并提出自动化建议。现阶段可以借助像 ChatGPT 这样的外部 AI 工具来获取自动化代码建议。
传感器添加问题
- 问题 :在 Home Assistant 中添加传感器时遇到问题怎么办?
-
解答
:如果在添加传感器时遇到问题,首先要确保
configuration.yaml文件的配置正确。可以使用Developer tools | YAML中的CHECK CONFIGURATION按钮检查文件是否有错误。如果是由于 Tasmota 的setoption19 1命令已弃用导致的问题,需要手动在configuration.yaml文件中添加传感器。
如何获取家庭自动化项目的创意
家庭自动化项目的创意来源广泛,以下是一些获取创意的途径:
日常观察
在日常生活中,留意自己的行为习惯和需求。例如,发现自己经常在晚上某个时间看电视,就可以考虑实现自动化控制电视的开关。像前面提到的 Alexa 根据用户看电视的习惯给出建议,就是基于对用户日常行为的观察。
参考他人经验
可以在论坛、社交媒体群组等平台上与其他家庭自动化爱好者交流,了解他们的项目和创意。还可以关注一些家庭自动化的博客和视频频道,获取最新的技术和项目案例。
利用 AI 工具
如 ChatGPT 这样的 AI 工具可以提供创意和解决方案。可以向它提出具体的需求,如创建 Home Assistant 的自动化代码,它会以代码形式响应,为项目提供参考。
家庭自动化的额外资源
为了深入了解家庭自动化,以下是一些可以参考的资源:
在线论坛
- Home Assistant 论坛 :这是一个专门讨论 Home Assistant 的社区,用户可以在这里分享经验、解决问题和获取最新信息。
- Reddit 家庭自动化板块 :汇聚了众多家庭自动化爱好者,有丰富的项目分享和技术讨论。
官方文档
- Home Assistant 官方文档 :包含了 Home Assistant 的详细使用说明和教程,是学习和使用 Home Assistant 的重要参考。
- InfluxDB 官方文档 :对于使用 InfluxDB 进行数据存储的用户,官方文档提供了数据库的安装、配置和使用方法。
书籍和教程
可以阅读一些关于家庭自动化的书籍和在线教程,系统地学习相关知识和技能。例如,一些介绍智能家居技术和编程的书籍,能够帮助用户深入理解家庭自动化的原理和实现方法。
总结
家庭自动化是一个充满潜力和创新的领域,通过搭建五区温度记录器,我们可以看到如何将传感器数据进行采集、存储和展示。同时,语音助手、AI 和机器学习等新技术和趋势的应用,为家庭自动化带来了更多的可能性和便利。
在实践过程中,我们可能会遇到各种问题,但通过参考常见问题解答、获取项目创意和利用额外资源,能够更好地推进家庭自动化项目。未来,随着技术的不断发展,家庭自动化将会更加智能、高效,为我们的生活带来更多的惊喜。
以下是一个简单的 mermaid 流程图,展示家庭自动化项目的基本流程:
graph LR
A[传感器数据采集] --> B[数据存储到 InfluxDB]
B --> C[使用 Grafana 展示数据]
C --> D[在 Home Assistant 中使用传感器]
D --> E[应用新技术和趋势]
希望大家能够积极参与家庭自动化项目,享受智能生活带来的便利和乐趣!
超级会员免费看

1160

被折叠的 条评论
为什么被折叠?



