资料介绍
描述
我想告诉你我在 Raspberry pi 上使用 Home Assistant(以下简称 HA)的一点经验。
当然,其中一个原因是希望从您的评论中了解我在实施此方案时“做错了什么”。
配置上述功能的方式有三种:“没有问题”、“短”和“独立”。在第一种情况下,您可以从网站https://ViaMyBox.com/downloadpage下载开发的图像
对于您的 Raspberry pi,您可以在已配置的表单中查看所有内容。在第二种情况下,您可以从站点或从 github 项目下载 zip,安装它,然后通过实用程序 (sudo via-setup.sh) 安装 HA docker 映像,以查看所有设置。最后,第三种方法是设置“一切都以你自己的方式”:从网站或 githab 项目或本教程中获取有用的东西。您将在文章末尾找到所有这些内容的链接。
假设您已经有一个正在运行的家庭助理 (HA)。在本文中,我们将只考虑创建 yaml 配置和描述导致特定操作的规则和条件的顺序方面。在我们的例子中,动作是“安全”模式的连接和脚本的触发,在运动传感器激活后 5 秒内开始拍照。因此,家庭助理通过邮件发送拍摄的照片。我不是 yaml 或为 Home Assistant 创建配置方面的专家,但按照工作示例,我得到了一个我想分享的工作配置。
我们将联系的所有文件,我将在文章末尾列出以方便考虑。我们只会谈论家庭助理。但是,如果您有任何问题 - 欢迎您!
最后,我的一切看起来像这样(红色突出显示了我们将在文章中考虑的内容):
自然,我使用树莓派作为平台。我的配置文件路径是 /usr/share/hassio/homeassistant/ 。您的配置文件的路径可能与我的路径不同。那时,我有 Home Assistant 0.101.3。我们会对这个目录下的配置文件感兴趣:configuration.yaml 和automation.yaml。
每次更改这些文件后,请务必记住,您需要在我们更改后检查配置,以了解其中可能出现的错误。这是在 Home Assistant 仪表板 -> 配置 -> 服务器控制 -> 检查配置中完成的。然后,在同一个地方,如果检查成功,我们会执行重新加载自动化和重新加载脚本。而且,如果有疑问,服务器管理会在同一选项卡中重新启动配置更新。
HC-SR501 运动传感器连接到 Raspberry pi GPIO 总线。有必要将三个接触线正确连接到 GPIO,我们将能够使用我们的传感器。传感器具有三个触点:电源 gcc (+)、零接地 (-)、控制触点(数据)。阅读 GPIO 的描述后,我将它们连接到我的树莓派,如下所示。我将 HC-SR501 连接到 GPIO 连接器:pir#2 – 5.5 vvcc;pin#26(13 行)——传感器的数据触点和 pin#6-GND (-)。
作为照片源,我将 USB 相机或 csi 相机与 mjpg-streamer 结合使用。毕竟,由您决定将哪个 bash 脚本附加到 HA。
现在让我们在 configuration.yml 中描述我们的传感器,比方说,通过命令行:
须藤纳米/usr/share/hassio/homeassistant/configuration.yaml
虽然使用带有winscp的notepad ++可能更方便..
让我们描述 HC-SR501 的设置顺序如下:
binary_sensor:
- platform: rpi_gpio
#name: HC-SR501
ports:
7: Sensor HC-SR501
invert_logic: false
应该注意的是,在描述与传感器控制(数据)触点的连接的行中的设置起到了重要的作用:pin#7
端口:
7:传感器HC-SR501
家庭助理有一个用于启用家庭安全功能的内置工具。让我们在我们的 configuration.yaml 中描述它,使用描述:https ://www.home-assistant.io/integrations/manual/
alarm_control_panel:
- platform: manual
name: Home Alarm
pending_time: 60
delay time 40
triggered:
pending_time: 0
code: 1234
这个设置意味着我们有 60 秒的时间离开家(在这个时间之后,警报会打开),还有 40 秒的时间来关闭它(使用密码 1234)当我们回家时。出于某种原因,你离开的时间总是比来的时间长。)
我们现在将描述在我们的 configuration.yaml 中触发运动传感器时启用和禁用摄影的机制(有关开关的更多信息 - 命令行平台可以在这里找到https://www.home-assistant.io/integrations/switch .command_line/):
- platform: command_line
switches:
start_stop_motion_rec_timelapse:
friendly_name: 'Record motion timelapse video'
command_on: 'curl http://localhost/start_mjpgstrm.php && curl http://localhost//rec-motion-mjpg.php'
command_off: 'curl http://localhost/stop_mjpgstrm.php && curl http://localhost/rec-motion-mjpg-stop.php'
在这里,我们将 command_on enable 和 command_off disable 命令链接到控制摄像机记录的脚本。在这种情况下,当您启用 command_on 时,会依次执行 2 个脚本。这将启动 mjpg-streamer 并开始在运动传感器上录制。通过 Raspberry pi 上工作站点的 php 文件访问 bash 脚本。为此,我设置了 nginx 和 web 访问,当通过浏览器以 http://<树莓派的 IP 地址>/start_mjpgstrm.php 访问时,应该执行我们的 php 脚本。
我们不考虑在本文中设置 Web 访问。显然,这并不安全,但由于我在 docker 上有 HA,我面临着一个事实,即我有一个孤立的 docker 环境。通过 php 访问我的网站,我可以看到操作系统的“外部世界”。docker 或 HA 大师可能有很多正确的解决方案。请写下来,知道会很有趣!
我将把这些脚本的列表留在文章下面,我们不再赘述。在本文中,我只想关注 Home Assistant 中一系列动作的形成。
所有这些都放在 start_stop_motion_rec_timelapse 对象中,这将是我们的视觉开关,当运动传感器被触发时,我们将使用它来管理照片的记录。
我们将能够在 Home Assistant-> Overview 选项卡中通过切换右上角的 Configure UI 配置模式的激活来可视化我们创建的这些对象
在浏览器中的“配置 -> 服务器控制”选项卡中预先重启 HA,以获取我们的 configuration.yaml。
接下来,选择浏览器窗口底部的黄色加号,单击实体卡并将我们创建的对象链接到地图。
对于我们的传感器,请选择传感器卡。它看起来像这样:
如图所示,第二个实体字段包含上述开关:switch.start_stop_motion_rec_timelapse。
它允许我们打开和关闭我们的运动传感器记录,无论是否启用了“家庭安全”功能。而且,一般来说,它应该在上述所有操作之后已经工作。
并且,相应地,我们添加了报警面板图:
这里还有一个有趣的地方。我使用 Home Assistant 作为 docker 容器。在这方面,我们脚本的路径将与脚本文件的实际路径不同。毕竟,容器内的文件结构是虚拟化的,并通过 docker 挂载的卷链接到实际的文件结构。例如,这看起来像这样: 容器内的路径:/config/scripts/ 操作系统内的路径:/usr/share/hassio/homeassiatnt/scripts。所以看看你的容器的设置,这些卷是如何在 Binds 字段中配置的。如果你那里有 HA。
sudo docker inspect homeassistant|less
当运动传感器被触发时,在警报被激活的那一刻:我希望除了我们开始拍摄快速照片(timelapsesnapshots)之外,我还会收到邮件中的警告和一张照片。我并行化了这些过程。在第一种情况下,照片记录(timelapsesnapshots)在传感器触发后的几秒钟内发生。为此,我运行 mjpg-streamer curl http://localhost/start_mjpgstrm.php ,启动 php:сurl http://localhost/rec-motion-mjpg.php。反过来,它运行 python 脚本 mov.py。所有描述的文件和捆绑包都可以通过链接在文章末尾找到。另一个脚本 takeSnapshotWebcam.sh 拍摄了一张我通过电子邮件发送的照片。我在我们的 configuration.yml 中这样描述这些脚本:
shell_command:
#start the script that generates a snapshot for the mailing list
take_snapshot_webcam: '/config/scripts/takeSnapshotWebcam.sh'
#starting our mjpg-streamer
start_mgpg_streamer: 'curl http://localhost/start_mjpgstrm.php'
#stopping mjpg-streamer
stop_mgpg_streamer: 'curl http://localhost/stop_mjpgstrm.php'
#start the script that generates snapshots for 5 seconds
start_motion_rec: 'curl http://localhost/rec-motion-mjpg.php'
#stop it
stop_motion_rec: 'curl http://localhost/rec-motion-mjpg-stop.php'
在描述我们的邮件对象的同一 configuration.yml 中:
notify:
- name: ha_sendmail
platform: smtp
#if mail is on gmail
server: smtp.gmail.com
port: 587
timeout: 15
#from whom we send
sender: user@gmail.com
encryption: starttls
username: user@gmail.com
password: passwd
#to whom we send (you can use one box and send it to yourself, why not)
recipient:
- user@gmail.com
sender_name: My Home Assistant
很重要的一点!为了让我们的 HA 能够连接和发送电子邮件(发件人字段),我们必须允许我们的 HA 服务在 gmail 上使用此邮箱。如何在此处执行此链接:https ://myaccount.google.com/lesssecureapps
此外,我们描述了在automation.yaml 中启用home_alarm 警报时的自动化机制本身:
#first action bundle (alias “triggered by sensor if security is enabled”
- alias: 'Trigger alarm while armed away'
#alias is triggered when the sensor is in the “on” position
trigger:
- platform: state
entity_id: binary_sensor.sensor_hc_sr501
to: 'on'
#provided that the security mode is enabled in the absence of people at home “armed away”
condition:
- condition: state
entity_id: alarm_control_panel.home_alarm
state: armed_away
#and then performs the action
action:
#Running mjpg-streamer (if disabled)
- service: shell_command.start_mgpg_streamer
#Running a script that records from the camera
- service: shell_command.start_motion_rec
#Change the visualization of our "Home security" card on the HA panel to the “alarm triggered” position
- service: alarm_control_panel.alarm_trigger
entity_id: alarm_control_panel.home_alarm
下一组条件和操作是在“安全”关闭时发送控制台消息并关闭我们的运动记录脚本。
- alias: 'Send notification when alarm is Disarmed'
trigger:
- platform: state
entity_id: alarm_control_panel.home_alarm
to: 'disarmed'
action:
- service: shell_command.stop_mgpg_streamer
- service: shell_command.stop_motion_rec
- service: persistent_notification.create
data:
message: The alarm is Disarmed at {{ states('sensor.date_time') }}"
最后,第三个链接——发送带有照片的电子邮件:
- alias: 'Send notification when alarm triggered'
trigger:
- platform: state
entity_id: alarm_control_panel.home_alarm
to: 'triggered'
action:
- service: persistent_notification.create
data:
message: Notification when alarm triggered. Motion sensor HC-SR501 detected.
- delay:
seconds: 4
#run our script for creating a single script
- service: script.webcam_snapshot
#and refer to the described object in configuration.yaml: notify.ha_sendmail
- service: notify.ha_sendmail
data:
title: 'Intruder alert'
message: '{{now().strftime("%H:%M %Y-%m-%d")}}:Notification when alarm triggered. Motion sensor HC-SR501 detected.'
data:
images:
#link to the script already made by the script.webcam_snapshot
- /config/camera/snapshot.jpg
请记住,在 yaml 文件中,行标记很重要,命令前的空格字符在形成代码块及其结构方面起着重要作用。通过 Home Assistant(以下简称 HA)配置 -> 服务器控制 -> 检查配置检查对 yaml 的所有更改
似乎都是。你的树莓派变成了优雅的东西!..)
这就是—工作 HA 自动化,由您自己配置!一定要把你的想法写给我!
而且,如果你读到最后,这里是承诺的链接:
图片和邮编:https ://viamybox.com/downloadpage
Github 项目:https ://github.com/viatc/viamybox
配置文件在此处描述:configuration.yaml、automation.yaml、takeSnapshotWebcam.sh、rec-motion-mjpg.php、mov.py
hc-sr501 ,家庭报警器,家庭助理,树莓派, видеорегистрация , датчик движения , подключение сигнализации , умный дом
- Raspberry Pi支持电视上的视频通话
- 使用Raspberry Pi的Motioneyeos网络摄像头运动检测
- 如何使用Raspberry Pi4摄像头和PIR传感器发送电子邮件
- Raspberry Pi Pico上的ADC采样和FFT
- 与Raspberry Pi接口的多个DS18B20温度传感器
- 带摄像头和PIR传感器的Raspberry Pi家庭安全系统
- 带有Raspberry Pi 4的传感器定时器
- Raspberry Pi 0 W带温度传感器和LCD
- 使用Raspberry Pi构建水位传感器
- Raspberry Pi和Arduino上的手写数字识别
- 可视频直播的Raspberry Pi网络控制机器人 14次下载
- 《爱上Raspberry Pi》中译版-电子书籍.pdf 0次下载
- Instant Raspberry Pi Gaming 6次下载
- Raspberry_Pi详解 15次下载
- raspberry_pi各版本差别 0次下载
- 5分钟内将Raspberry Pi Pico变成简单的示波器+波形发生器 1522次阅读
- 使用Raspberry Pi Pico W和MicroPython开发物联网应用 1673次阅读
- 用于测试项目的4个最佳树莓派Raspberry Pi模拟器 5985次阅读
- 如何通过Raspberry Pi设置CE电流监视器 2124次阅读
- 基于树莓派产品 Raspberry Pi微控制器板的优缺点 2710次阅读
- 如何从Raspberry Pi Pico的模数转换器捕获数据计算? 2580次阅读
- 基于Raspberry Pi Pico的GPIO引脚使用运动传感器 3838次阅读
- 基于在Raspberry Pi Zero W的基础上实现设计微型机器人 2106次阅读
- 微雪电子Raspberry Pi 3 Model主板简介 2873次阅读
- 微雪电子Raspberry Pi 3 Model扩展板简介 1512次阅读
- dfrobot微波运动传感器简介 2201次阅读
- 利用Raspberry Pi构建存储和虚拟化时间序列数据 884次阅读
- 一文了解Raspberry Pi 4各项性能跑分 2.9w次阅读
- 传感器在运动控制系统中起到了核心的作用 5150次阅读
- ISSCC上的最新图像传感器威廉希尔官方网站 1464次阅读
下载排行
本周
- 1使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 2Keysight B1500A 半导体器件分析仪用户手册、说明书 (中文)
- 19.00 MB | 4次下载 | 免费
- 3BT134双向可控硅手册
- 1.74 MB | 2次下载 | 1 积分
- 4一种新型高效率的服务器电源系统
- 0.85 MB | 1次下载 | 1 积分
- 5PR735,使用UCC28060的600W交错式PFC转换器
- 540.03KB | 1次下载 | 免费
- 6WTS-100(1.1) UWB 信标定位系统 彩页
- 540.48 KB | 1次下载 | 免费
- 7DV2004S1/ES1/HS1快速充电开发系统
- 2.08MB | 1次下载 | 免费
- 8MATLAB绘图合集
- 27.12 MB | 1次下载 | 5 积分
本月
- 1使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 2UC3842/3/4/5电源管理芯片中文手册
- 1.75 MB | 15次下载 | 免费
- 3DMT0660数字万用表产品说明书
- 0.70 MB | 13次下载 | 免费
- 4ST7789V2单芯片控制器/驱动器英文手册
- 3.07 MB | 11次下载 | 1 积分
- 5TPS54202H降压转换器评估模块用户指南
- 1.02MB | 8次下载 | 免费
- 6STM32F101x8/STM32F101xB手册
- 1.69 MB | 8次下载 | 1 积分
- 7TPS92682-Q1帧定义和示例
- 891.71KB | 6次下载 | 免费
- 8HY12P65/HY12P66数字万用表芯片规格书
- 0.69 MB | 6次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935119次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73807次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65987次下载 | 10 积分
评论
查看更多