适用人群
无外网、需要依赖内网穿透或者其他第三方服务器连接家里的HA服务器;
跟我一样有外网IP但是开发商的宽带在网络连通性上很坑爹的人群(我家里宽带虽然本身有外网IP,但是运营商的问题导致联通和电信网络没法连接回家里的路由器),这种情况应该很少见,除非你也在天津、用天房宽带(租用铁通线路)、然后跟客服怎么说都不明白、偶尔分配的IP又是全网通的情况。
组件配置
官方说明:https://www.home-assistant.io/components/icloud/
跟群友交流过这个组件一些问题,最近想重新配置一下lovelace,既然最近玩了位置追踪,索性一劳永逸,用第三方服务器解决我自己的位置追踪问题,分享一下基于个人浅显使用的经验。
PS:我一直以为开启二次验证了之后这个就不能用,结果是我不识字(以前没看懂谷歌翻译的话)。
官方组件配置:
device_tracker:
- platform: icloud
username: 你的appleID
password: 你的密码
account_name: 随便定义
max_interval: 40 ##根据官方文档和自己的需求定义
gps_accuracy_threshold: 500 ##根据官方文档和自己的需求定义
一点提示
配置完以上信息以后,重启HA之后,会在HA的WEB界面出现一条通知,有朋友不注意看,一定要注意:
第一次通知是让你选择发送验证码的设备(请输入0或者1或者2。。。),第二次才是输入你该设备接收到的六位验证码。
第一次通知是让你选择发送验证码的设备(请输入0或者1或者2。。。),第二次才是输入你该设备接收到的六位验证码。
第一次通知是让你选择发送验证码的设备(请输入0或者1或者2。。。),第二次才是输入你该设备接收到的六位验证码。
然后你就可以在状态界面输入上面你定义的”account_name“、筛选出来你”查找我的iPhone“APP里面的设备了。
再来一点
icloud组件获取到的设备电量信息比较奇葩,会有很多位小数,如果你需要下一步操作,需要自己新建一个电量的sensor,不然这个电量的属性会占用很长的空间,可以利用template模板,示例一下:
sensor:
- platform: template
sensors:
xxxx_battery_state_format:
unit_of_measurement: '%'
value_template: "{{state_attr('device_tracker.xxxxxxxxxxx', 'battery')|float|round(2)}} "
homeassistant:
customize:
sensor.xxxx_battery_state_format:
friendly_name: 电量信息
icon: mdi:battery-80
hidden: false
Lovelace配置(secondaryinfo-entity-row)示例
这样再用secondaryinfo-entity-row组件配置一些信息显示就会好很多(不好的我就不截图了,小数点位数很多就是了)
贴一下简单配置,card-modder本身我也没做好,将就一下:
- type: custom:card-modder
style:
# --paper-card-background-color: rgba(92,119,130, 0.5) #修改卡片背景颜色
# --paper-item-icon-color: Gainsboro #gold #white #修改图标颜色:白色
# --primary-text-color: Black #white #Black #white #修改标题颜色:白色
# --secondary-text-color: Black #Gainsboro #修改次一级文字颜色
-webkit-backdrop-filter: blur(10px) #给上一层增加模糊滤镜
backdrop-filter: blur(50px) #给上一层增加模糊滤镜
border-radius: 3px #圆角
color: Black #white #修改文字颜色:白色
card:
type: entities
title: 我们一家
show_header_toggle: false
entities:
- type: section
label: 位置追踪
- entity: person.XXXXX
name: 儿子呢
type: "custom:secondaryinfo-entity-row"
secondary_info: >-
模块电量:[[ sensor.gps02_power.state ]] ,位置:[[ sensor.gps02_nidili.state ]] 。
- entity: person.xxxxxxxxxxxxxxxxxxx
name: 爸爸呢
type: "custom:secondaryinfo-entity-row"
secondary_info: >-
手机电量:[[ sensor.xxxxxxxxxxxxxxxxxxx_battery_state_format.state ]]% ,位置:[[ sensor.gps02_nidili.state ]] 。
- entity: person.xxxxxxxxxxxxxxxxxxx
name: 妈妈呢
type: "custom:secondaryinfo-entity-row"
secondary_info: >-
手机电量:[[ sensor.xxxxxxxxxxxxxxxxxxx_de_iphone_battery_state_format.state ]]% , 位置:[[ sensor.gps03_nidili.state ]] 。
- type: section
label: 信息推送
- entity: input_text.send_text_message_me
icon: mdi:cellphone-text
name: 给爸爸发消息
- entity: input_text.send_text_message_wife
icon: mdi:cellphone-text
name: 给妈妈发消息
- type: section
label: 设备监测
- entity: device_tracker.xxxxxxxxxxxxxxxxxxx
icon: mdi:cellphone-iphone
name: XXXXX
type: "custom:secondaryinfo-entity-row"
secondary_info: "<b style='colorarkGray'> 电量: [[ sensor.xxxxxxxxxxxxxxxxxxx_battery_state_format.state ]]%, \
状态: [[ device_tracker.xxxxxxxxxxxxxxxxxxx.attributes.battery_status ]], \
电量:[[ if(device_tracker.xxxxxxxxxxxxxxxxxxx.attributes.battery < 50%, '不足', '超过') ]] 一半。</b>"
今天是六一儿童节,祝小朋友们节日快乐。