前提条件:
1.home assistant 系统有HACS。
2.有微软账号。
3.知道怎么编辑configuration.yaml文件。
操作:
第一步(添加插件)
在HACS添加仓库镜像 https://github.com/black-roland/homeassistant-microsoft-todo
,类别为 “集成”(integration)
添加完后,在商店搜索Microsoft To Do
第二步(添加配置)
在HACS配置文件中,添加或修改配置如下
homeassistant:
internal_url: http://localhost:8123
# 配置microsoft_todo 的API接口参数。
calendar:
- platform: microsoft_todo
client_id: e32da15d-9e6a-48c3-8781-69a2c43dd0a4
client_secret: "wPk8Q~mbyOeqar~tK1TWIFAz~BoeVOQ4FEUg9bQo"
注意internal_url 前面有空格,不懂得可以百度yaml格式。
此处引入端口映射
localhost我们都知道,是本机地址,无法访问的,所以我们还需要在自己的windows电脑上运行netsh interface portproxy add v4tov4 listenport=8123 connectaddress=[home assistant在浏览器中访问的IP地址] connectport=[home assistant在浏览器中访问的端口]
例子:netsh interface portproxy add v4tov4 listenport=8123 connectaddress=192.168.1.100 connectport=8123
指的是我们原本访问的http://192.168.1.100:8123 ,通过映射后 我们就可以通过http://localhost:8123
第三步(应用配置)
一定要重启home assistant,重启完后,点击通知
会提示configurator
这个时候就可以看点击蓝色的configure文字,将会弹出配置对话框
点击link Microsoft To Do account
,将会打开微软登录页面,剩下的就不用说了吧,操作到如下页面提示登录成功就可以把这个登录窗口给叉了。
叉完以后,再回到配置Microsoft To Do对话框,
点击I AUTHORIZED SUCCESSFULLY
按钮,没有反应多点几次,多点几次肯定还没有反应,我们点击左侧的日历
就会出现我的日历
下的Tasks,如果登录失败,就不会出现这个这个。由于我点击了3次I AUTHORIZED SUCCESSFULLY
按钮,就有3份tasks
,这个时候不怕,多等15分钟以后,就只有1份了。
第四步(开发参数查询)
在开发者工具里面,搜索calendar
关键字,可以得到几个实体,这个实体是通过microsoft To Do分类自动生成的。
第五步(源码优化)
不优化的可以跳过。
由于home assistant 的to do插件是15分钟的轮询时间,对于玩机人员来说肯定是太久了,所以可以修改源码,
文件路径为custom_components\microsoft_todo\calendar.py
,修改行数大概为第64行,
把MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=15)
修改为MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=1)
这样就可以把轮询时间修改为1分钟了
修改源码需要重启hass.
第六步(在home assistant 仪表盘上的应用)
type: markdown
content: |-
{% for task in state_attr('calendar.ren_wu', 'all_tasks') -%}
- {{ task }}
{% endfor %}
title: To Do
第七步(在android app 桌面小部件上的应用)
效果预览:
在桌面上添加模板小部件
这是模板代码:文章来源:https://www.toymoban.com/news/detail-440281.html
<font color="#face"><b>待办列表</b></font>
<font color="#8470FF">
{% if state_attr('calendar.ren_wu', 'all_tasks') %}
{% for task in state_attr('calendar.ren_wu', 'all_tasks') -%}
<br>
{{loop.index}}. {{ task }}
{% endfor %}
{% else%}
<br>
----------------------
<br>
这里很干净呀!
<br>
卡片更新时间:{{now().year}}-{{"%02d"% now().month}}-{{"%02d"%now().day}} {{"%02d"% now().hour}}:{{"%02d"%now().minute}}:{{"%02d"%now().second}}
{%endif %}
</font>
---------------------------------------------------------------------------------------
疑惑解答
1.为什么要用映射的方式使用localhost访问hass呢?
因为我的microsoft应用注册的限制,无法对其他IP地址添加http类型的重定向。
在授权完成,todo 插件能够正常获取到数据了后,就可以把homeassistant.internal_url还原成你原本的值或者注释了。文章来源地址https://www.toymoban.com/news/detail-440281.html
# homeassistant:
# internal_url: http://localhost:8123
到了这里,关于home assistant 配置microsoft todo(微软待办)同步的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!