HomeAssistant(5) - HelloMorningStar/HomeAssistant GitHub Wiki
纪念一下当前的界面
准备花点时间改变一下,画出房型图
要点:
1)自定义ha-floorplan.html页面文件,配合SVG格式图片floorplan.svg,将图片中的可视化设备赋予系统设备的实例ID,达到关联控制的目的。
2)2D/3D(可以先从2D入手学习,据说3D有一些问题:角度固定导致设备显示问题;灯具的显示控制问题;SVG本身的局限性,不支持三位物体的描述)
3)使用工具:Inkscape(sketchup可以吗?)
4)安装项目:需要修改的文件floorplan.yaml(设备配置)/floorplan.svg(平面图片文件)/floorplan.css(显示效果样式文件)
5)显示方式:
侧边栏
panel_custom: - name: floorplan sidebar_title: Floorplan sidebar_icon: mdi:bulletin-board url_path: floorplan config: !include floorplan.yaml
状态卡片
homeassistant: customize: binary_sensor.floorplan: custom_ui_state_card: floorplan config: !include floorplan.yaml binary_sensor: - platform: mqtt state_topic: dummy/floorplan/sensor name: Floorplan group: zones: name: Zones entities: - binary_sensor.floorplan
6)Floorplan初始界面:有默认图,需要我们自己在floorplan.yaml中加入设备
安装floorplan Jump to floorplan
在configuration.yaml加入以下配置:
panel_custom: - name: floorplan sidebar_title: 我的家 sidebar_icon: mdi:home config: !include floorplan.yaml
HomeAssistant的http组件会将配置目录中www目录中的文件映射为前端可以访问的local静态文件。panel_custom组件根据其配置项提供服务。
制作2D图,使用inkspace,图标和阴影的ID设置成HomeAssistant中实体的ID,将文件保存为floorplan.svg去覆盖源文件。
配置floorplan.yaml文件
动态的样式和作为状态卡配置(略过)
制作3D图
去sweet home 3d官方网站下载
安装sweet home 3d
最终在homeassistant使用效果
1,SWEET HOME 3D制作 房型3D图,导出SVG格式
2,INK SPACE 制作2D图,导出兼容格式(由于iPad是ios10.3.3,高版本无需兼容格式)
3,别忘记了!!!floorplan.yaml文件把图上的entities添加上(时间久了容易忘记)
Whirlpool WVC-L1496Y说明书要求充电4小时拔下充电器,我考虑利用智能插座根据功率的变化自动定时切断电源。
利用automation
(trigger) if socket get power is not zero, will trigger for 4 hours
(condition) ?:
(action) Turn off the socket after 4 hours
#xiaomi_socket get power - alias: xiaomi_socket_get_power initial_state: true trigger: platform: numeric_state entity_id: switch.plug_158d000153de1f # Optional value_template: '{{ state.attributes.load_power }}' # At least one of the following required above: 10 # below: 25 for: # seconds: 5 hours: 4 condition: action: service: homeassistant.turn_off entity_id: - switch.plug_158d000153de1f
以上实现充电4小时自动关闭电源,但是没有实现插上充电器自动开启电源(好像关闭socket后可以检测的参数不够)
attributes中只有这些参数返回,如果自动关闭电源后in_use和load_power就为0了,也就是说插上充电器时没有可以检测的参数返回?
in_use: 1
load_power: 13.96
power_consumed: 1019928
battery_level: 100
friendly_name: 充电插座
icon: mdi:power-socket
充满后状态值的变化,说明吸尘器自己的充电管理可以断电,无需用插头开关控制(说明书的描述并不妥当)
in_use: 0
load_power: 0
power_consumed: 1019959
battery_level: 100
friendly_name: 充电插座
icon: mdi:power-socket
本次充电用了0.031KW/h
以上白忙活了,那么就联动一下网关灯改变颜色表示充满电了吧(目前我还不会设置网关灯的颜色,这里暂时用开关代替)
- alias: xiaomi_socket_in_use initial_state: true hide_entity: true trigger: platform: numeric_state entity_id: switch.plug_158d000153de1f value_template: '{{ state.attributes.in_use }}' above: 0 condition: action: service: homeassistant.turn_on entity_id: light.gateway_light_286c0788b4c4 #网关灯 - alias: xiaomi_socket_not_in_use initial_state: true hide_entity: true trigger: platform: numeric_state entity_id: switch.plug_158d000153de1f value_template: '{{ state.attributes.in_use }}' below: 1 condition: action: service: homeassistant.turn_off entity_id: light.gateway_light_286c0788b4c4 #网关灯
后续判断改为load_power比in_use好一些,吸尘器充满电后,对后续的涓流充电(功率在3W以下,这里阀值设为5)我并不关心。
改进后:
#xiaomi_socket in_use - alias: xiaomi_socket_in_use initial_state: true hide_entity: true trigger: platform: numeric_state entity_id: switch.plug_158d000153de1f # value_template: '{{ state.attributes.in_use }}' value_template: '{{ state.attributes.load_power }}' # above: 0 above: 5 condition: action: service: homeassistant.turn_on data_template: entity_id: light.gateway_light_286c0788b4c4 #网关灯 brightness: 25 # color_name: red rgb_color: [255,0,255] - alias: xiaomi_socket_not_in_use initial_state: true hide_entity: true trigger: platform: numeric_state entity_id: switch.plug_158d000153de1f # value_template: '{{ state.attributes.in_use }}' value_template: '{{ state.attributes.load_power }}' # below: 1 below: 5 condition: action: service: homeassistant.turn_on data_template: entity_id: light.gateway_light_286c0788b4c4 #网关灯 brightness: 25 color_name: green