『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 26170|回复: 31

[基础教程] 小白必看-一站式学习homeassistant的配置-以彩云天气s项目...

  [复制链接]

1

主题

26

帖子

145

积分

论坛分享达人

积分
145
金钱
118
HASS币
0
QQ
发表于 2017-8-14 18:00:18 | 显示全部楼层 |阅读模式
本帖最后由 高家伟 于 2018-11-10 20:15 编辑

    1.我所发布的关于彩云天气的教程是旧版本的Homeassistant和彩云天气,最近我上去看,发现现在homeassistant和彩云天气都已经经过了好几个版本的更新,许多地方有了变更。所以那一个教程现在只可以参考,完全照做是不行的了。

   2.由于我最近在准备一个非常重要的考试,已经很久没有在关注homeassistant和彩云天气了,我的那个也已经没有再维护了,对于新版本的两个我都没有熟悉过,甚至老版也都快遗忘了,所以很抱歉不能为您解惑了。


有很多人加我QQ好友问问题,我很开心能给大家解惑,但我QQ用的实在太少(因为我论坛上的也不多,所以回帖我也很少看,最好发邮件),往往好几天都不上,不能及时回复,所以大家有问题最好给我发邮件,我能回的快一些。另外,大家在问问题的时候,最好能把你的配置文件也一起发过来,要不然我很难知道问题出在哪里。

我的邮箱是[email protected]

很多网友的问题其实是因为做的太心急,导致漏了某些步骤,所以大家问问题之前,最好是自查一下有没有哪个步骤漏掉了。


刚刚入门homeassistant没几天,刚开始的时候,对于homeassistant一窍不通,只能在论坛里看着大神们做的项目干瞪眼,后来翻遍了论坛的教程贴,而且自我觉得英语还行,啃了一点官方文档以及英文教程后,总算是对于homeassistant的各种基础配置有了点认识,于是便想到了自己当初苦于没有新手友好的教程的苦恼心情,就自己写了一篇这个来让后来者更好的学习入门.


先介绍下自己的水平,非计算机相关专业,有一点python的自学基础(水平大概是能够看得懂别人的程序但自己写不出来).之前对yaml一无所知.


建议大家在看完了这一篇之后(没基础直接看会打击很大),学习下下面这个帖子里面的内容,就能够进步很大了

瀚思彼岸HomeAssistant教程综合导航贴-新手必看!

https://bbs.hassbian.com/thread-370-1-1.html


(出处: 『瀚思彼岸』» 智能家居第一站)



下面我们开始解释教程:

首先看一下安装我的根目录下的文件(我的因为配置过,多了一些文件,有差异不必担心) 1.png

选中的两个是最基础的配置文件,如果你不需要太多的高级应用或者DIY应用,只需要配置这两个就可以了.但是由于我们今天要安装彩云天气S,其他的都会一一介绍.

首先是configuration.yaml这个是最基础的配置

homeassistant:
  # Name of the location where Home Assistant is running
  name: Home
  # Location required to calculate the time the sun rises and sets
  latitude: 39.9289
  longitude: 116.3883
  # Impacts weather/sunrise data (altitude above sea level in meters)
  elevation: 51
  # metric for Metric, imperial for Imperial
  unit_system: metric
  # Pick yours from here: [url=http://en.wikipedia.org/wiki/List_of_tz_database_time_zones]http://en.wikipedia.org/wiki/List_of_tz_database_time_zones[/url]
  time_zone: Asia/Shanghai
  # 汉化
  #customize: !include customize.yaml
  packages:
    !include_dir_named packages 

# Show links to resources in log and frontend
#introduction:

# Enables the frontend
frontend:

# Enables configuration UI
config:

http:
  # Uncomment this to add a password (recommended!)
   api_password: 123
  # Uncomment this if you are using SSL/TLS, running in Docker container, etc.
   base_url: example.duckdns.org:8123

# Checks for available updates
# Note: This component will send some information about your system to
# the developers to assist with development of Home Assistant.
# For more information, please see:
# [url=https://home-assistant.io/blog/2016/10/25/explaining-the-updater/]https://home-assistant.io/blog/2016/10/25/explaining-the-updater/[/url]
updater:
  # Optional, allows Home Assistant developers to focus on popular components.
  # include_used_components: true

# Discover some devices automatically
discovery:

# Allows you to issue voice commands from the frontend in enabled browsers
conversation:

# Enables support for tracking state changes over time
history:

# View all events in a logbook
logbook:

# Track the sun
sun:

# Weather prediction
sensor:
  - platform: yr
  

  - platform: template
    sensors:
      solar_angle:
        value_template: '{{ states.sun.sun.attributes.elevation }}'
        friendly_name: 'Sun angle'
        unit_of_measurement: 'degrees'
      sunrise:
        value_template: '{{ states.sun.sun.attributes.next_rising }}'




    ### 系统状态 ###
  - platform: systemmonitor
    resources:
      - type: memory_use_percent
      - type: processor_use
      - type: last_boot      
      - type: memory_free
  

# Text to speech
tts:
  - platform: google

android_ip_webcam:
  - host: 192.168.1.105:8080
group: !include groups.yaml
automation: !include automations.yaml
我们先学着添加一个官方的components,这是homeassistant有的,不需要其他设备,通过这个来学习最基础的信息.
2.png
找到system-monitor
3.png
事实上,我们只要将方框里给出的代码粘贴到sensor下面就行了.注意:由于原始的configuration.yaml中就有sensor这一类,所以最上面的sensor不要再重复粘贴了,否则的话会报错,另外,由于yaml格式对于对齐有着严格的要求,一定要保证对齐.
但是你会发现我的文件里面有两个例子里面没有的,这个你往下翻就知道了,例子只给了功能的一部分,其他的需要你自己选择.
配置完了这个之后,我们重新启动homeassistant
4.png
点击右下角的status,在右面的界面就可以找到我们刚才配置的四个''传感器''.这时候主页还是什么都没有.



接下来我们就要学习怎么将传感器添加到主页了-配置group文件
首先要在configuration.yaml中添加这样一行group: !include groups.yaml
有的系统一开始是没有group文件的需要我们自己建,这里我推荐用神器notepad++建立文件,并且是以utf-8无boom格式保存.
千万不要用Word新建文件!!!wps也不行!!!

default_view:
    view: yes
    entities:
        #电脑情况
        - group.machine_info
 
machine_info:
    view: no
    entities:
        - sensor.last_boot
        - sensor.cpu_use
        - sensor.ram_free
        - sensor.ram_use


这时候你再重启,主页就有了这几个内容.
如果想将欢迎页面去掉,只需要在configuration中将introduction注释掉.
这样最基础的配置就学完了.



下面讲解彩云天气S的安装:
彩云天气s项目地址:传送门
首先下载文件,解压将压缩包里面的两个文件夹原封不动的移动到.homeassistant/下面
5.png
接下来就是package的使用
6.png
在configuration.yaml里面添加上图中的最后一行
这样,以后所有的包直接放到上面的packages文件夹里面就可以使用了.
下面的内容引用自彩云天气s

本帖最后由 lidicn 于 2017-8-14 16:05 编辑


彩云天气S是彩云天气的终极形态
之前发布了[教程]分钟级天气预报【彩云天气】组件更新Beta2 https://bbs.hassbian.com/thread-686-1-1.html
存在几个痛点:
  • 不能按照你的要求更新天气数据,只能通过扫描时间调整获取数据的频率。
  • 固定获取home的经纬度【因为我懒得写这个变量】,少了预测某人设备头顶上下雨几率的可能【我也看不懂这是啥意思】。
  • 扫描时间设得过小,apikey消耗过快。设得过大,又失去了实时预测的作用。【总之一个字:穷


彩云天气S完美解决了以上痛点。

简单介绍下原理:
  • 将天气数据(json格式)的采集独立分离出来,使用下载文件的方式获取数据。CaiyunweatherS.py只负责处理本地下载好的数据。
  • 下载数据用的是Downloader2服务,【因官方提供的不支持自定文件名】https://home-assistant.io/components/downloader/  修改出支持自定文件名的Downloader2
  • 调用Downloader2服务下载天气数据json文件的时候可以传递经纬度 apikey等变量。


使用方法:
下载文件解压放入相应文件夹。
在caiyunweathers.yaml里找到以下代码【第76行】
script:
  download_caiyundata:
    sequence:
      - service: downloader2.download_file
        data_template:
          url: [url=https://api.caiyunapp.com/v2/]https://api.caiyunapp.com/v2/[/url]这里填你的彩云apikey/{{states.zone.home.attributes.longitude}},{{states.zone.home.attributes.latitude}}/forecast
          filename: forecast.json
      - delay: 00:00:03
      - service: downloader2.download_file
        data_template:
          url: [url=https://api.caiyunapp.com/v2/]https://api.caiyunapp.com/v2/[/url]这里填你的彩云apikey/{{states.zone.home.attributes.longitude}},{{states.zone.home.attributes.latitude}}/forecast
          filename: realtime.json


{{states.zone.home.attributes.longitude}}应该要设置了zone才有,没有的话直接填写你所在地经纬度也行。
url: https://api.caiyunapp.com/v2/这里填你的彩云apikey/113.234,22.123/forecast

downloader2:
  download_dir: downloads



download_dir是下载文件夹的路径,需要自己去新建 ,这里是/home/homeassistant/.homeassistant/downloads [树莓派hassbian]
第一次使用会因为downloads/文件夹下面没有 forecast.json realtime.json这两个文件,你的天气界面会一片unknown。更新下天气数据就会正常。【更新按钮在即时天气第一栏】
更新天气就用脚本更新,可自行设置变量来调用,可写自动化来更新。【这部分教程就不写了】。
注意:按照上面的内容设置完成后,大部分人就可以用了,但是还是有少数人不能够正常的使用,那是因为一些文件的路径出错了.需要按照下面的方法更改.如果你不是在账户名为homeassistant账户下安装的,你会得到以下错误提示
WARNING:custom_components.sensor.CaiyunweatherS:File or data not present at the moment: forecast.json
WARNING:custom_components.sensor.CaiyunweatherS:File or data not present at the moment: realtime.json

这时候你需要将packages文件夹中的caiyunweathers.yaml中的第8,9行修改为
      forecastpath: /home/你的账户名/.homeassistant/downloads/forecast.json
      realtimepath: /home/你的账户名/.homeassistant/downloads/realtime.json

其他平台的参考这个方法修改文件路径即可.

安装好了之后,你会发现status界面多了一大堆传感器,你只需要按需调用即可,调用方法看上面的设置group的教程.







评分

参与人数 1金钱 +7 收起 理由
lidicn + 7 很给力!

查看全部评分

回复

使用道具 举报

219

主题

1287

帖子

7945

积分

超级版主

Rank: 8Rank: 8

积分
7945
金钱
6628
HASS币
86

教程狂人论坛风云人物突出贡献

发表于 2017-8-14 18:07:19 | 显示全部楼层
刚开始的时候,我也摸索了很久啊。
回复

使用道具 举报

1

主题

26

帖子

145

积分

论坛分享达人

积分
145
金钱
118
HASS币
0
QQ
 楼主| 发表于 2017-8-14 18:25:12 | 显示全部楼层
lidicn 发表于 2017-8-14 18:07
刚开始的时候,我也摸索了很久啊。

现在中文内容还多一点,你那时候更不好摸索.
回复

使用道具 举报

4

主题

266

帖子

2529

积分

金牌会员

Rank: 6Rank: 6

积分
2529
金钱
2263
HASS币
0
发表于 2017-8-14 18:25:51 | 显示全部楼层
感谢分享
回复

使用道具 举报

30

主题

997

帖子

4153

积分

论坛元老

Rank: 8Rank: 8

积分
4153
金钱
3151
HASS币
0

活跃会员

发表于 2017-8-14 18:54:44 | 显示全部楼层
挺详细的
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16412
金钱
11666
HASS币
45
发表于 2017-8-14 20:13:22 | 显示全部楼层
非常认真的教程贴,直接最高权限!感谢楼主,以后多交流!
回复

使用道具 举报

1

主题

26

帖子

145

积分

论坛分享达人

积分
145
金钱
118
HASS币
0
QQ
 楼主| 发表于 2017-8-14 21:47:06 | 显示全部楼层
Jones 发表于 2017-8-14 20:13
非常认真的教程贴,直接最高权限!感谢楼主,以后多交流!

哈哈哈,谢谢啦
回复

使用道具 举报

35

主题

533

帖子

2895

积分

金牌会员

Rank: 6Rank: 6

积分
2895
金钱
2362
HASS币
0
发表于 2017-8-17 00:09:25 | 显示全部楼层
楼主,按照教程弄完后,提示我“Unable to find component downloader2”没找到这个组件。
文件夹里没看到有downloader2.py这个文件,是需要自己写这个文件吗?
回复

使用道具 举报

35

主题

533

帖子

2895

积分

金牌会员

Rank: 6Rank: 6

积分
2895
金钱
2362
HASS币
0
发表于 2017-8-17 00:36:00 | 显示全部楼层
lidicn老师已经给了答案~
回复

使用道具 举报

0

主题

73

帖子

393

积分

中级会员

Rank: 3Rank: 3

积分
393
金钱
320
HASS币
0
发表于 2017-8-30 12:46:01 | 显示全部楼层
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 01:29 , Processed in 0.122105 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表