home assistant 配置microsoft todo(微软待办)同步
前提条件:
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_todoclient_id: e32da15d-9e6a-48c3-8781-69a2c43dd0a4client_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 桌面小部件上的应用)
效果预览:
在桌面上添加模板小部件
这是模板代码:
<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还原成你原本的值或者注释了。
总结
以上是生活随笔为你收集整理的home assistant 配置microsoft todo(微软待办)同步的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 楼距的计算
- 下一篇: 夺命雷公狗—玩转SEO---56---q