24、家庭自动化:五区温度记录器搭建与未来趋势

家庭自动化:五区温度记录器搭建与未来趋势

五区温度记录器的搭建

温度集线器配置

在温度记录器的搭建中,首先涉及到温度集线器的配置。从相关配置图中可知, 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 数据

配置数据库源
  1. 点击 Home Assistant 侧边栏的链接打开 Grafana,点击 Grafana 配置菜单(齿轮图标),再点击 Data sources
  2. 点击 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[应用新技术和趋势]

希望大家能够积极参与家庭自动化项目,享受智能生活带来的便利和乐趣!

在数字化环境中,线上票务获取已成为参各类活动的主要途径。随着公众对热门演出需求的增长,票源往往在开放销售后迅速告罄,导致普通消费者难以顺利购得所需票券。为应对这一挑战,部分技术开发者借助编程手段构建了自动化购票辅助程序,旨在提升用户成功获取门票的概率。本文将以一个针对特定票务平台设计的自动化工具为例,系统阐述其设计理念、技术组成及具体实施流程。 秀动网作为国内知名的演出及体育赛事票务销售平台,因活动热度较高,常出现访问拥堵、瞬时抢购压力大等现象,使得常规购票过程面临困难。因此,开发一款能够协助用户更有效完成票务申购的辅助工具具有实际意义。 该工具主要具备以下几项关键功能:持续监控目标平台的票务信息更新;在票务释放时自动执行选座、添加至购物车及提交订单等系列操作;集成一定的异常处理机制,以应对网络延迟或服务器响应异常等情况。 在技术实现层面,选用Python作为开发语言,主要基于其语法简洁、标准库第三方资源丰富,适合快速构建功能原型。同时,Python在网络通信浏览器自动化方面拥有如requests、selenium等成熟支持库,为程序实现网页交互数据抓取提供了便利。 开发过程主要包括以下环节:首先解析目标网站的页面结构,明确可通过程序操控的网页元素路径;随后编写监控模块,实时检测新票务信息的上线并及时触发后续操作;接着模拟用户操作流程,包括自动填写个人信息、选择座位偏好、完成购物车添加等步骤,并通过行为模拟降低被平台反爬虫机制识别的可能;最终实现订单自动提交,并在成功购票后向用户发送通知。 此外,该工具提供了可配置的操作界面,允许用户根据个人需求设定抢票时间、目标活动类型及座位选择等参数,从而在提升使用体验的同时,减少对票务平台服务器资源的非必要占用。 需指出的是,尽管此类工具能提高购票效率,但其使用可能涉及违反平台服务协议或相关法规的风险。各票务销售方通常对自动化抢票行为设有明确约束,因此开发使用者均应遵守相应规定,确保技术应用的合法性。 综上所述,该基于Python的票务辅助工具是针对特定场景设计的自动化解决方案,通过技术手段改善用户购票体验,但同时也强调必须在法律平台规则框架内合理使用此类技术。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值