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

 找回密码
 立即注册
查看: 1658|回复: 5

[求助] 小白求助YAML+Jinja

[复制链接]

18

主题

271

帖子

2224

积分

论坛DIY达人

积分
2224
金钱
1948
HASS币
20
发表于 2023-7-17 16:47:21 | 显示全部楼层 |阅读模式
本人小白,实在看不懂以下内容,望论坛友友们不吝赐教,万分感激。
type: entity-filter
entities:
  - light.bed_light
  - light.ceiling_lights
  - light.kitchen_lights
state_filter:
  - 'on'
card:
  type: markdown
  content: |
    The lights that are on are:
    {% for l in config.entities %}
      - {{ l.entity }}
    {%- endfor %}

    And the door is {% if is_state('binary_sensor.door', 'on') %} open {% else %} closed {% endif %}.
主要问题:
1.   l 是个什么鬼?从何而来?是个什么数据类型?
2.   config.entities是个什么鬼?config从何而来?是个什么数据类型?
3.   ”for l in config.entities“这个循环是个什么机理?循环靠什么终止呢?
小白对HA文档,如同看天书,费力费力。想咨询以下如何有效的学习呢?
回复

使用道具 举报

22

主题

622

帖子

2817

积分

金牌会员

Rank: 6Rank: 6

积分
2817
金钱
2195
HASS币
0
发表于 2023-7-17 16:56:07 | 显示全部楼层
AI解答  方可解君愁
回复

使用道具 举报

18

主题

591

帖子

4344

积分

元老级技术达人

积分
4344
金钱
3718
HASS币
182
发表于 2023-7-17 17:00:22 | 显示全部楼层
建议学习一门面向对象的计算机语言,比如python,简单易懂。这些都是触类旁通的,你学完了通过猜就能猜到。

这个卡片,就是输出一段Markdown文字卡片:有哪些灯(灯的范围由entity-filter确定)是开着的,门是开或是关
回复

使用道具 举报

18

主题

271

帖子

2224

积分

论坛DIY达人

积分
2224
金钱
1948
HASS币
20
 楼主| 发表于 2023-7-17 17:18:43 | 显示全部楼层
louis_lee 发表于 2023-7-17 17:00
建议学习一门面向对象的计算机语言,比如python,简单易懂。这些都是触类旁通的,你学完了通过猜就能猜到。 ...

谢谢回复。其功能我是知道的,但想灵活应用就需要对其搞清楚才行。其实任何编程语言,看一看大抵能猜出几层意思,即便有不懂之处也能有的放矢的寻找答案。HA文档让人困惑的是,例子中突然蹦出来些变量,且没有详细解释,头大呀。
回复

使用道具 举报

18

主题

591

帖子

4344

积分

元老级技术达人

积分
4344
金钱
3718
HASS币
182
发表于 2023-7-17 17:30:57 | 显示全部楼层
本帖最后由 louis_lee 于 2023-7-17 17:36 编辑
polisher 发表于 2023-7-17 17:18
谢谢回复。其功能我是知道的,但想灵活应用就需要对其搞清楚才行。其实任何编程语言,看一看大抵能猜出几 ...

面向对象的编程语言学习,可以解决大部分问题。
比如,如果从python的角度来看你提的问题:
1. l是迭代器变量,不需要提前声明,在循环中表示从list或其他顺序结构中的元素,从第一个元素起步,随着循环逐步指向下一个元素。l的类型为后边list中元素的类型,这里后边的list是config.templates,里边的元素是light.xxxx,也就是说l的类型为“对象”,即object(或继承于此的class)
2.config即为保存此配置文件的对象,config的数据类型为对象,config.entities是list<对象>。这部分内容从文档中确实找不到,需要读ha源文件了解
3. 其实在1中已经回答了这个问题
回复

使用道具 举报

18

主题

271

帖子

2224

积分

论坛DIY达人

积分
2224
金钱
1948
HASS币
20
 楼主| 发表于 2023-7-17 21:42:02 | 显示全部楼层
louis_lee 发表于 2023-7-17 17:30
面向对象的编程语言学习,可以解决大部分问题。
比如,如果从python的角度来看你提的问题:
1. l是迭代器 ...

感谢您耐心讲解,犹如醍醐灌顶,顿时豁然开朗。
系统的学习对于小白来说并非有效,最难得的就是得到您这种针对性的指点,毕竟在解决实际问题的过程中学习,才是普通人的最佳方式。
再次感谢您的指教。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-28 20:56 , Processed in 0.288705 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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