欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

home assistant 配置microsoft todo(微软待办)同步

发布时间:2024/5/14 编程问答 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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还原成你原本的值或者注释了。

# homeassistant: # internal_url: http://localhost:8123

总结

以上是生活随笔为你收集整理的home assistant 配置microsoft todo(微软待办)同步的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。