Skip to content

Instantly share code, notes, and snippets.

@willwhui
Last active November 27, 2017 09:03
Show Gist options
  • Save willwhui/a476c48a28841f7d33b5aee7385935e8 to your computer and use it in GitHub Desktop.
Save willwhui/a476c48a28841f7d33b5aee7385935e8 to your computer and use it in GitHub Desktop.
hass config file notes
@willwhui
Copy link
Author

willwhui commented Oct 17, 2017

必读:https://home-assistant.io/docs/configuration/yaml/

configuration.yaml中的component, entity概念:写法1

sensor: <------------------ 这是在定义一个entity的集合。此集合包含的都是type为sensor的components。
  - platform: mqtt <------- '-':这是在定义一个具体的entity。platform:每个组件都要有的key,它表明当前实体使用哪一个服务平台
    state_topic: "home/bedroom/temperature" <-- state_topic是mqtt这个平台规定的一个key
    name: "MQTT Sensor 1" <------------------------- name:entity name。如果需要单独控制这个entity,那么必须定义这个name
  - platform: mqtt <------- 第二个entity
    state_topic: "home/kitchen/temperature"
    name: "MQTT Sensor 2"
  - platform: rest
    resource: http://IP_ADDRESS/ENDPOINT

switch: <-----------另一个entity集合,其component type是switch
  - platform: vera
  • 注意:不同的platform决定了可以使用哪些属性。比如platform rest没有state_topic属性。

configuration.yaml中的component, entity概念:写法2

media_player livingroom: <------ 这里开始定义一个entity。 media-player: 是component类型。livingroom:是name
  platform: mpd
  server: IP_ADDRESS

media_player kitchen:      <------ 这里开始定义第二个entity
  platform: plex

camera 1:
  platform: generic

camera 2:
  platform: mjpeg

configuration.yaml中的Grouping Devices(设备编组)概念

group:     <---- 开始定义一些编组啦(编组集合)
  living_room: light.table_lamp, switch.ac <-- 开始定义个一个编组。living_room是组名。接着是多个entity ID
  bedroom:     <---- 另一种编组定义方式。bedroom是组名,下含一些entity ID。
    - light.bedroom  <---- 一个entity ID
    - media_player.nexus_player   <---- 一个entity ID

更高级的用法:https://home-assistant.io/components/group/

  • 注意:被include的文件,不要再出现"group:",不然是错误的配置:就像yaml的第一篇文章中说的,include的作用可以看作是将被引用文件的内容插入进来。

configuration.yaml中的entity ID概念

由上可见,entity ID = component-type.entity-name

  • component type,是开发者预先定义的
  • entity name,是用户根据每个设备的情况定义的
    比如上面的media_player.nexus_player:
  • media_player是component type
  • nexus_player是entity name
  • entity name在用来生成id的时候,其中的特殊字符(空格,括号等等)会被自动转换成下划线
  • 可以在开发工具的state页面里面看到所有的entity ID

@willwhui
Copy link
Author

willwhui commented Oct 17, 2017

有的时候用到另外一种写法:

  • 比如上面链接面 https://home-assistant.io/docs/configuration/yaml/ 关于input_select的例子提到:"Here threat is the name of the input_select and the values for it are everything nested below it."
    其中多个select的写法并不以'-'符号开头。

不知道为什么像input_select这种component要与众不同。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment