好好学习天天向上篇——每日诗词
介绍
我的Home Assistant中有许多每日系列的sensor,本来是每天早上的时候会自动tts播放,后来由于tts的设备故障,导致就只存在于UI界面中了。
这一篇简单介绍一下每日诗词的sensor如何获取的
外观展示
照例,展示效果先,最终添加到UI中的效果如下图
数据源
首先,我是在https://www.jinrishici.com/ 的网站中,通过调用api获取的内容,这个具体可以参考api文档,返回的结果类似
{
"status":"success",
"data":{
"id":"5b8b9572e116fb3714e71714",
"content":"坐见幽州骑,长驱河洛昏。",
"popularity":33600,
"origin":{
"title":"后出塞五首",
"dynasty":"唐代",
"author":"杜甫",
"content":[
"男儿生世间,及壮当封侯。",
"战伐有功业,焉能守旧丘?",
"召募赴蓟门,军动不可留。",
"千金买马鞍,百金装刀头。",
"闾里送我行,亲戚拥道周。",
"斑白居上列,酒酣进庶羞。",
"少年别有赠,含笑看吴钩。",
"朝进东门营,暮上河阳桥。",
"落日照大旗,马鸣风萧萧。",
"平沙列万幕,部伍各见招。",
"中天悬明月,令严夜寂寥。",
"悲笳数声动,壮士惨不骄。",
"借问大将谁,恐是霍嫖姚。",
"古人重守边,今人重高勋。",
"岂知英雄主,出师亘长云。",
"六合已一家,四夷且孤军。",
"遂使貔虎士,奋身勇所闻。",
"拔剑击大荒,日收胡马群。",
"誓开玄冥北,持以奉吾君!",
"献凯日继踵,两蕃静无虞。",
"渔阳豪侠地,击鼓吹笙竽。",
"云帆转辽海,粳稻来东吴。",
"越罗与楚练,照耀舆台躯。",
"主将位益崇,气骄凌上都:",
"边人不敢议,议者死路衢。",
"我本良家子,出师亦多门。",
"将骄益愁思,身贵不足论。",
"跃马二十年,恐辜明主恩。",
"坐见幽州骑,长驱河洛昏。",
"中夜间道归,故里但空村。",
"恶名幸脱免,穷老无儿孙。"
],
"translate":null
},
"matchTags":[
"华北",
"幽州"
],
"recommendedReason":"",
"cacheAt":"2023-05-25T21:31:00.971959"
},
"token":"XXX",
"ipAddress":"XXX",
"warning":null
}
添加sensor
有了数据源,就可以在Home Assistant中将它变成一个sensor,因为它这个api有用到token,为了固定token,需要先添加一个sensor来获取token,再通过token获取每日诗词内容
添加token sensor
通过command_line的方式,去调用每日诗词的接口获取token
在sensor.yaml中添加:
- platform: command_line
command: >
curl
--request GET ## 请求方式
"https://v2.jinrishici.com/token" ## 接口地址
value_template: '{{value_json["data"]}}' ## 要获取的返回值中的内容
name: sentence_token
scan_interval: 43200 ## 更新频率
添加每日诗词
有了token之后,使用token来获取每日诗词的内容,ha可以直接通过rest的方式添加sensor,无需写代码了
在sensor.yaml中添加如下内容:
- platform: rest
name: 每日诗词
method: GET
resource: https://v2.jinrishici.com/sentence
headers:
X-User-Token: >-
{% if states.sensor.sentence_token %} ## 注意 这里取上一步添加的sensor内容
{{ states("sensor.sentence_token") }}
{% else %}
zAhKTbFyUVrQb0odkP2vdmirMLTIVvGY ## 没有值就给一个固定的
{% endif %}
value_template: '{{value_json["status"]}}'
json_attributes_path: $.data ## 取返回值中的字段
json_attributes:
- status
- errMessage
- id
- content
- origin
- warning
scan_interval: 3600
每日诗词sensor
编辑完后,记得重启Home Assistant,之后可以在开发者工具-状态-实体中多出一个sensor
配置UI
有了sensor,我们可以用markdown卡片添加到uI中了,具体可以参考我之前到文章,这里不再赘述
添加后到效果如之前效果图展示
总结
Home Assistant支持多种方式添加sensor,欢迎各位小伙伴折腾
ps 本人还有各种每日系列,看受欢迎程度,陆续更新
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~



即墨烟花笑
校验提示文案
即墨烟花笑
校验提示文案