『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1001|回复: 8

[求助] hass 通过device_id获取device的friend_name 以及他的entities

[复制链接]

5

主题

30

帖子

81

积分

注册会员

Rank: 2

积分
81
金钱
51
HASS币
0
发表于 2022-3-1 10:41:27 | 显示全部楼层 |阅读模式
20金钱
我用下面的自动化,在接入设备的时候,拿到了设备的id,我想通过这个id,拿到这个设备的friend_name,以及这个设备有哪些entities,请问怎么做呢
alias: event_test
description: ''
trigger:
  - platform: event
    event_type: device_registry_updated
    context: {}
condition: []
action:
  - service: mqtt.publish
    data:
      topic: /event/test
      payload_template: '{{ trigger.event.data|to_json(ensure_ascii=False) }}'
mode: parallel
max: 20


回复

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11135
金钱
8028
HASS币
182
发表于 2022-3-1 11:41:56 | 显示全部楼层
{% set drive_id = "light.light_1" %}
{{ state_attr(drive_id, 'friendly_name') }}
Nero
回复

使用道具 举报

5

主题

30

帖子

81

积分

注册会员

Rank: 2

积分
81
金钱
51
HASS币
0
 楼主| 发表于 2022-3-1 12:25:56 | 显示全部楼层
{"action": "create", "device_id": "e916b22cb1f7a16907f2eed05c4b2598"}


您好,这是我接入设备时,MQTT收到的消息。
我没太明白您的 set那一行是什么意思
回复

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11135
金钱
8028
HASS币
182
发表于 2022-3-1 12:34:58 | 显示全部楼层
信息不足,不知道你想干嘛。
Nero
回复

使用道具 举报

5

主题

30

帖子

81

积分

注册会员

Rank: 2

积分
81
金钱
51
HASS币
0
 楼主| 发表于 2022-3-1 12:50:53 | 显示全部楼层
neroxps 发表于 2022-3-1 12:34
信息不足,不知道你想干嘛。

比如我接入了小米的空气净化器。
这个自动化会给我发送上面的数据,给我一个device_id。 QQ截图20220301124713.png
集成是这样子的,一个设备和他对应的一些实体。我想通过这个device_id,去拿到这个设备的friend_name,就是 “空气净化器”,还有这个设备对应的十三个实体

QQ截图20220301124955.png

回复

使用道具 举报

5

主题

30

帖子

81

积分

注册会员

Rank: 2

积分
81
金钱
51
HASS币
0
 楼主| 发表于 2022-3-1 12:53:23 | 显示全部楼层
neroxps 发表于 2022-3-1 12:34
信息不足,不知道你想干嘛。

我看到这个,但是我不知道怎么把他加到我这个自动化里
QQ截图20220301125240.png
回复

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11135
金钱
8028
HASS币
182
发表于 2022-3-1 12:58:34 | 显示全部楼层
首先你的数据是从哪里来的,应该如何导入到自动化里面。

然后就放到 device_attr里面获取 friendly_name
Nero
回复

使用道具 举报

5

主题

30

帖子

81

积分

注册会员

Rank: 2

积分
81
金钱
51
HASS币
0
 楼主| 发表于 2022-3-1 13:03:10 | 显示全部楼层
neroxps 发表于 2022-3-1 12:58
首先你的数据是从哪里来的,应该如何导入到自动化里面。

然后就放到 device_attr里面获取 friendly_name ...

device_registry_updated 是这个事件被触发了,然后我从这里trigger.event.data,拿到了device_id。
我可以加您VX聊吗,很感谢您帮我,15211066714,这是我的VX号
回复

使用道具 举报

5

主题

322

帖子

1345

积分

金牌会员

Rank: 6Rank: 6

积分
1345
金钱
1023
HASS币
0
发表于 2022-3-1 17:47:57 | 显示全部楼层
本帖最后由 netsnake 于 2022-3-1 17:50 编辑

按照n版所说:
{% set drive_id = "?" %}
{{ state_attr(drive_id, 'friendly_name') }}
将获得的id替换问号,应该就能获取friendly_name了
其它仔细看下面英文说明:
DEVICES
device_entities(device_id) returns a list of entities that are associated with a given device ID. Can also be used as a filter.
device_attr(device_or_entity_id, attr_name) returns the value of attr_name for the given device or entity ID. Not supported in limited templates.
is_device_attr(device_or_entity_id, attr_name, attr_value) returns whether the value of attr_name for the given device or entity ID matches attr_value. Not supported in limited templates.
device_id(entity_id) returns the device ID for a given entity ID or device name. Can also be used as a filter.

应该是:{{ state_attr(device_id, 'friendly_name') }} 返回friendly_name
{{  device_entities(device_id) }} 返回device_id下entity列表
完成
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-19 14:16 , Processed in 0.124600 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表