meishild 发表于 2019-8-24 13:56:56

篇五扩展: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,然后刷新一下就可以了,这个选项只会在这个开发者模式下启用,关了不会启用的。 **

**顺序不可乱,特别新手,否则完全不知道问题出在哪里。**





sfjnjau 发表于 2019-8-24 14:13:58

大佬高产……xiao习……

602293544 发表于 2019-8-24 14:53:55

嘤嘤嘤嘤

ttbye 发表于 2019-8-24 15:37:51

全能贴,拜读!谢谢分享

lpswxu 发表于 2019-8-24 21:44:24

和风天气感觉还是有点问题,重启经常出不来,每次都要折腾一下如图所示,开始全没有(未截图),然后只有左边出现(图一),正常(图二)



meishild 发表于 2019-8-24 22:08:09

lpswxu 发表于 2019-8-24 21:44
和风天气感觉还是有点问题,重启经常出不来,每次都要折腾一下如图所示,开始全没有(未截图),然后只有左 ...

看控制台的错误

lpswxu 发表于 2019-8-24 22:24:08

是不是这个,我的坑太多了

lpswxu 发表于 2019-8-24 22:51:00

打开network,勾选Disable Cache。这个一直勾选吗?
现在重启了几次,都一次成功,没再出现问题了

meishild 发表于 2019-8-24 23:29:49

lpswxu 发表于 2019-8-24 22:51
打开network,勾选Disable Cache。这个一直勾选吗?
现在重启了几次,都一次成功,没再出现问题了 ...

那个无所谓 只有你的控制台调试打开着才会清理,最好开着,有问题打开刷新一下一般js问题就没了

holy745 发表于 2019-8-25 11:48:15

有了这些教程,就明白了很多了,谢谢分享
页: [1] 2 3 4 5 6
查看完整版本: 篇五扩展:hass插件配置入门,学会找问题