篇五扩展:hass插件配置入门,学会找问题
本帖最后由 meishild 于 2019-8-24 21:00 编辑目录:https://bbs.hassbian.com/thread-8041-1-1.html
被问了太多插件配置的问题,我统一先写个五的扩展把。
# 篇五扩展:hass插件配置入门,学会找问题
我发现很多新手配置插件一顿骚操作,然后发现不是这有问题就是那有问题,所以我们先写一下到底怎么配置插件,我用一个常用的插件做说明hf-weather。
## 带有界面插件配置
### hf-weather
大家可以直接选择原作者(https://github.com/cnk700i/ha_mo ... e/master/hf_weather) ,或者我改过增加uv并修改bug的版本, (https://github.com/meishild/hass ... e/master/hf-weather) 不过有一点注意,两个版本不兼容,因为我改了底层参数,如果修改版本尽量完整重新来一遍。
#### 安装插件
基本上插件如果仅仅是后台组件的,就是没有定制化页面的一般只有custom_components目录,如果有前端的基本都需要改动www,这个目录。\n我们先把插件下载下来。
我比较懒的上传,所以我直接安装hass.io里的 `SSH & Web Terminal` 插件,然后通过这个插件直接用git把代码拉下拉,大家可以用smb协议或者其他上传方式,用 `Configurator` 也可以一个一个上传上去,这两种通过hass.io安装的插件都属于系统插件,只是针对更方便的方式进行控制hass。
装好ssh,配置一下密码在启动,并且密码要复杂一点,否则无法启动的。
```python
{
"ssh": {
"username": "admin",
"password": "admin1A!",
"authorized_keys": [],
"sftp": false,
"compatibility_mode": false,
"allow_agent_forwarding": false,
"allow_remote_port_forwarding": false,
"allow_tcp_forwarding": false
},
"web": {
"ssl": false,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
},
"share_sessions": true,
"packages": [],
"init_commands": []
}
```
启动成功,进入web ssh界面
我们进入 `cd /config` ,然后下载插件。
```python
git clone https://github.com/meishild/hass-custom-components.git
ls -al
# 如果你安装过插件应该有custom_components这个目录,那就只需要复制对应插件目录就可以了.
cp -r hass-custom-components/hf-weather/custom_components/hf-weather custom_components/
# 如果和我一样空的那就连着custom_components目录一起复制
cp -r hass-custom-components/hf-weather/custom_components ./
插件复制好了,先重启hass,否则一会配置会报错,提示插件不存在。
```
重启好了,我们先配置yaml。
> 注意不管什么插件yaml一定需要配置,我们都先配置这个。
> 主要一下这个appkey,和风天气有两种key,一种来自官方,一种来自京东云,不能互相通用。
因为这个插件需要appkey的,所以需要按照[https://wx.jdcloud.com/market/datas/26/10610](https://wx.jdcloud.com/market/datas/26/10610),这个地址申请key,注册账号然后申请一下key。
我正常都会配置secret配置来隐藏密码一类的,但新手完全不明白那我们就两个都给把。
name:名字就随意了。\nlocation:支持local_ip,根据ip获取,101.21.221.31,指定ip以及22.25,114.1667指定经纬度三种方式。\nappkey:就是你获取的key
```python
# https://wx.jdcloud.com/market/datas/26/10610 # api平台申请的key
weather:
- platform: hf_weather
name: !secret hf_weather_name
location: !secret hf_weather_location
appkey: !secret hf_weather_appkey
```
```python
# https://wx.jdcloud.com/market/datas/26/10610 # api平台申请的key
weather:
- platform: hf-weather
name: 'myhome'
location: 'local_ip' #
appkey: 'appkey'
```
如果需要拆分天气信息的加上如下配置:
`weather.myhome` 这个代表是你天气的实体名,如果不知道就后配置,先重启,在去实体信息里找。
```python
# 拆分天气
- platform: template
sensors:
weather_current_temp:
friendly_name: "当前温度"
unit_of_measurement: '°C'
value_template: "{{ state_attr('weather.myhome', 'temperature') }}"
weather_current_uv:
friendly_name: "当前紫外线强度"
value_template: "{{ state_attr('weather.myhome', 'uv')['uv'] }}"
weather_current_rain:
friendly_name: "当前下雨概率"
unit_of_measurement: '%'
value_template: "{{ state_attr('weather.myhome', 'forecast')['probable_precipitation'] }}"
weather_today_max_temp:
friendly_name: "今天最高温度"
unit_of_measurement: '°C'
value_template: "{{ state_attr('weather.myhome', 'forecast')['temperature'] }}"
weather_today_min_temp:
friendly_name: "今天最低温度"
unit_of_measurement: '°C'
value_template: "{{ state_attr('weather.myhome', 'forecast')['templow'] }}"
```
保存,然后重启hass,注意每次插件配置好先重启,如果报错看错误,如果没有去看状态。
如果没什么问题,启动就能看到天气了,原生的样式,并且在状态里能看到信息。
**所有的插件只要是hass用的不知道装没装好都先来状态里看一下。**
- **如果状态没有插件就有问题没装好。**
- **如果状态正常展示一类的没有就是你展示没配置好。**
- **先配置插件正常了在去研究展示**
那这个插件自带样式,我们配置样式.
#### 配置样式
先去webssh里把www目录建好,有的就不用了。
```python
cd /config
mkdir www
cp -r hass-custom-components/hf-weather/www/custom-lovelace ./www
```
**如果从来没有配置www这个目录是要重启hass的**,然后配置页面上的lovelace组件。
`概览` --> `右上角三个点`--> `配置ui`--> `右上角三个点`--> `原始编辑器`
在title上面配置resources:
```python
resources:
- type: module
url: /local/custom-lovelace/hf-weather-card/hf-weather-card.js
- type: module
url: /local/custom-lovelace/hf-weather-card/hf-weather-more-info.js
```
然后保存,点插退出到正常,这里很多人不知道怎么看配置成功了没有,我们打开浏览器的监控。
chrome: `右键` --> `检查`--> `network` 然后**刷新**页面,就能看到一大堆加载,我们在里面找找这两个js文件是不是加载了。
- all里完全找不到就是配置错误没加载。
- 红色就是文件不存在检查路径。
好了如果这个都好了加载正常了,那我们在切换到原始编辑器下,配置如下内容。
```python
resources:
- type: module
url: /local/custom-lovelace/hf-weather-card/hf-weather-card.js
- type: module
url: /local/custom-lovelace/hf-weather-card/hf-weather-more-info.js
title: myHome
views:
- badges: []
cards:
- entity: weather.jia
type: weather-forecast
- type: 'custom:hf-weather-card' # card类型
entity: weather.myhome # entityid
mode: daily # hourly按小时天气预报、daily按天天气预报,不设置则同时显示
title: 天气 # 标题,不设置则使用entity的friendly_name
icons: /local/custom-lovelace/hf-weather-card/icons/animated/# 图标路径,不设置则采用cdn,结尾要有"/"
path: default_view
title: Home
```
这里注意如果实体配置错误是没有任何数据的,实体不知道去开发者工具里找。
配置好了,这是发现怎么是一片白呢。
我们看看控制台有没有报错。
这里显示sunObj这个对象没有state这个类型,这是什么,原来这个插件依赖了hass的默认日落,如果不配置这个信息是展示不出来的,我们去yaml里打开sun。
打开yaml配置添加:
```python
sun:
```
重启hass。
好了正常了,这个插件的mode可以配置不同的展示方式,both、daily。
# 总结一下:
- **不管你配置什么插件,都先配置yaml,先保证数据层面插件是正常的,并且能在开发者工具里看到数据。**
- **只要是前端插件,很多都依赖三方的model,需要先配置,是否配置成功就是看js是否有加载。**
- **都配置好了在配置展示。**
- **如果你是升级插件,特别是修复js级别的,需要清理浏览器缓存,简单的清理就是打开network,勾选Disable Cache,然后刷新一下就可以了,这个选项只会在这个开发者模式下启用,关了不会启用的。 **
**顺序不可乱,特别新手,否则完全不知道问题出在哪里。**
大佬高产……xiao习…… 嘤嘤嘤嘤 全能贴,拜读!谢谢分享 和风天气感觉还是有点问题,重启经常出不来,每次都要折腾一下如图所示,开始全没有(未截图),然后只有左边出现(图一),正常(图二)
lpswxu 发表于 2019-8-24 21:44
和风天气感觉还是有点问题,重启经常出不来,每次都要折腾一下如图所示,开始全没有(未截图),然后只有左 ...
看控制台的错误 是不是这个,我的坑太多了
打开network,勾选Disable Cache。这个一直勾选吗?
现在重启了几次,都一次成功,没再出现问题了 lpswxu 发表于 2019-8-24 22:51
打开network,勾选Disable Cache。这个一直勾选吗?
现在重启了几次,都一次成功,没再出现问题了 ...
那个无所谓 只有你的控制台调试打开着才会清理,最好开着,有问题打开刷新一下一般js问题就没了
有了这些教程,就明白了很多了,谢谢分享