图形化控制家居

HA有个很好的WEB界面,叫FLOORPLAN,本来也不想搞,觉得大不了就是多点击几下就可以实现效果,后来手痒还是动手把这块给加进来。

在酷家乐找不到现在住的房子的平面图,只好找来一张很模糊的平面图自己用PHTOSHOP把结构给描出来,用推荐的Inkscape免费软件把各种家电添加进去,设置好对象属性,就基本可以控制开关了。

Continue reading 图形化控制家居

Home Assistant设置自动开关灯光

大约两年前把家里控制灯光的开关换成通过博联RM PRO进行射频控制后,尽管可以手机一键开关所有灯光,不过我还是觉得麻烦,一直想做个进出门灯光开关的自动化,不过因为只有一个博联的S1C门磁装在外门,压根无法判断进出方向,因此也就无法根据人进出方向控制灯光的开关。

这次把一台旧的笔记本装上UBUNTU后把Home Assistant也整了进去,把现有的各类智能硬件都集成到HA进行统一控制,而无需在各个硬件制造商的应用间进行切换。考虑到博联S1C门磁放在外门控制不稳定,又买了个小米的网关和门窗传感器,小米的门窗传感器控制外门状态,而博联S1C控制内门状态(博联传感器隔一道内门就很不稳定)。

内外门都安装了门磁,那HA就可以清楚的知道人进出方向。出门时,内门先开(或者处于开的状态,但是要关上),外门先开后关;进门时,外门先开,再开内门,再关外门。

进门的情况很好处理,直接开启灯光。但是在通过内外门的开关顺序判断为出门的情况下,还需要判断家里是否还有人,那就只能通过新买的米家人体传感器(原来博联S1C也有一个人体传感器,摔了几次也很不稳定,只能抛弃不用)来判断,总共布置了5个米家传感器。同时因为传感器的状态改变间隔为2分钟,因此,出门关灯的操作就简单了,1)判断为出门后先延迟3分钟;2)再判断家里的人体传感器是否处于OFF状态,若是,则关闭全部灯光。

包括的硬件有

– 一台旧的的HP笔记本;
– 控制单火的初冠开关面板;
– 米家人体传感器;
– 一个米家门窗传感器;
– 一个博联S1C门窗传感器;
– 米家网关升级版;
– 博联射频控制RM PRO。

之前没有做DDNS和端口转发,HA只能在家里访问,这次这块也做了,实现外网随时随地访问(当然HP笔记本要处于开机状态),顺便安装LETSENCRYPT证书并设置NGINX的反向代理,实现TLS1.3。

附一下Automation配置文件。

 ###############
#回家打开餐厅灯光
###############
  - alias: back_light_on
    trigger:
      platform: state
      entity_id: binary_sensor.door_window_sensor_158d00027af45c
      from: 'off'
      to: 'on'
    condition:
      - condition: template
        value_template: "{% if states.binary_sensor.motion_sensor_158d0002c64383.state == 'off' and states.binary_sensor.motion_sensor_158d0002b5eff8.state == 'off'%}True{% else %}False{% endif %}"
#      - condition: state
#        entity_id: binary_sensor.door_window_sensor_158d000325fbdf
#        state: 'off'
      - condition: time
        after: '17:55:00'
        before: '22:50:00'
    action:
      service: switch.turn_on
      entity_id: switch.canting
###############
#出门后光灯
###############
  - alias: turn_off_when_leaving
    trigger:
      platform: state
      entity_id: binary_sensor.door_window_sensor_158d00027af45c
      from: 'on'
      to: 'off'
      for:
        minutes: 3
    condition: 
      - condition: template
        value_template: "{% if states.binary_sensor.motion_sensor_158d0002c64383.state == 'off'%}True{% else %}False{% endif %}"
      - condition: template
        value_template: "{% if states.binary_sensor.motion_sensor_158d0002b5eff8.state == 'off'%}True{% else %}False{% endif %}"
      - condition: template
        value_template: "{% if states.binary_sensor.motion_sensor_158d0002b5f0ca.state == 'off'%}True{% else %}False{% endif %}"
      - condition: template
        value_template: "{% if states.binary_sensor.motion_sensor_158d0002b5f069.state == 'off'%}True{% else %}False{% endif %}"
#    - condition: template
#        value_template: "{% if states.binary_sensor.motion_sensor_158d00023d7ea5_2.state == 'off'%}True{% else %}False{% endif %}"
#      - condition: template
#        value_template: "{% if states.binary_sensor.motion_sensor_158d0002468737.state == 'off'%}True{% else %}False{% endif %}"
      - condition: state
        entity_id: binary_sensor.door_window_sensor_158d000325fbdf
        state: 'off'
    action:
      service: switch.turn_off
      entity_id: switch.zongkaiguan