amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 728|回复: 20

树莓派智能家居之HomeBridge:HomeAssistant

[复制链接]
发表于 2019-9-13 01:49:15 | 显示全部楼层 |阅读模式
本帖最后由 leon...... 于 2019-9-13 22:02 编辑

有了HomeBridge:HomeAssistant, 智能家居Homekit离我们很近

homebridge可以将一些苹果homekit不支持的硬件接入到homekit中,它是一个轻量的NodeJS服务(别问我NodeJS是什么,我也不知道 )。
HomeBridge支持很多插件,提供基本的桥来将一些智能家居厂商提供的第三方API接入HomeKit。
自从siri支持HomeKit设备,这意味着我们可以通过Homebridge,用siri来控制那些不支持HomeKit的设备。

开源地址 https://github.com/nfarina/homebridge
插件地址 https://www.npmjs.com/search?q=homebridge-plugin

ps : 建议安装前切换到阿里云镜像 mirrors.aliyun.com, 然后sudo apt update && sudo apt-get dist-upgrade

【】安装nodejs & npm
        《》先查看npm,node版本, 这二个工具的版本需要匹配
                npm -v
                node -v

        《》如果没安装,那么先进行安装
                sudo apt install nodejs
                sudo apt install npm [nodjs对应版本] 版本号查找见下面

        《》修改npm资源镜像链接,这样安装插件就会快很多
                npm config set registry http://registry.npm.taobao.org
                ps: 另外也可以安装cnpm(淘宝源)来代替npm

        《》如果提示npm对应的nodejs版本不匹配,< npm WARN npm npm does not support Node.js v10.15.2 >
                        可以使用这个方法修复。【或者也可以安装专用管理器nvm来管理npm/node的版本】
                - 进入网站:
                        https://nodejs.org/zh-cn/download/releases/

                - 查看对应的版本信息:
                        Node.js 10.15.2        Dubnium        2019-02-28        6.8.275.32        6.4.1        64

                - 如果是npm版本太旧,在这里先删除
                        npm uninstall -g npm

                - 然后安装正确的npm (版本号来自上面的版本信息查询,node1.15对应npm6.4)
                        sudo apt install npm 6.4.1
                        sudo npm install npm@6.4.1 -g


【】安装homebridge和插件(全局安装)
        sudo npm install -g --unsafe-perm homebridge

          安装一个检查CPU温度的插件用来测试
        sudo npm install -g homebridge-raspberrypi-temperature

【】生成配置文件
        ps : 将username换成你的树莓派地址,注意要大写。CTRL+S保存退出
  1. sudo nano /home/pi/.homebridge/config.json
复制代码

  1. {
  2.         "bridge":{
  3.                 "name":"RPI4 CPU",
  4.                 "username":"DC:A6:32:1B:45:6F",
  5.                 "port":52203,
  6.                 "pin":"520-20-520"
  7.         },

  8.         "description":"RPI4 IOT",

  9.         "accessories":[
  10.                 {
  11.                     "accessory":"RaspberryPiTemperature",
  12.                     "name":"Pi-CPU-Tem"
  13.                 }
  14.         ]
  15. }
复制代码


【】sudo reboot 重启一下树莓派,使用命令'homebridge'启动服务,这时会自动生成一个二维码:



打开IPHONE或IPAD的家庭APP,扫描二维码添加硬件,完成过在APP可以正确查询到温度了。


然后: “嘿 Siri, 家里的温度”



插件地址 https://www.npmjs.com/search?q=homebridge-plugin
可以在插件地址查找合适功能的插件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2019-9-13 01:49:16 | 显示全部楼层
本帖最后由 leon...... 于 2019-9-13 01:51 编辑

之前用python写了一个socket服务,https://www.amobbs.com/thread-5718136-1-1.html, 可以用浏览器接入树莓派来点播多媒体。

原来github上也有大佬使用类同方法构建了强大的功能,那就是Home Assistant。
Home Assistant 是一款基于 Python 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。
而且而且,太简单易用了

Home Assistant 以设备类型作为设备接入的参考及分类依据,目前支持以下类型:

Alarm - 警报
Automation - 自动化
Binary Sensor - 二进制传感器
Calendar - 日历
Camera - 摄像机
Climate - 气象
Cover - 屏障,如窗帘、车库门、卷帘门
DIY
Downloading - 下载工具
Energy - 能源
Fan - 风扇
Finance - 金融
Front End - 前端
Health - 健康
History - 历史记录
Hub - 中枢
Image Processing - 图像处理
Intent - 动机
Light - 灯具
Lock - 锁
Mailbox - 邮箱
Media Player - 媒体播放器
Notification - 通知推送
Organization - 组织
Presence Detection - 存在性监测
Remote - 遥控
Scene - 场景
Sensor - 传感器
Social - 社交媒体
Switch - 开关
System Monitor - 系统控制
Telegram chatbot
Text-to-speech - 文字转语音
Transport - 交通工具
Utility -
Vacuum - 吸尘器&扫地机
Voice - 语音
Weather - 天气
Other

可以从下面二张demo控制界面图来感受一下Home Assistant的魅力




安装之前先更新一下系统: sudo apt update && sudo apt dist-upgrade

【】HomeAssistant的安装非常简单:
        pip3 install homeassistant
        ps : Home Assistant 官方推荐使用 Python 虚拟环境安装 Home Assistant 以避免影响生产环境,虚拟环境方式的安装方法可上官网查询。
        ps : 依赖python3 python3-pip, 如果在虚拟环境,还需要python3-venv

【】检查一下homekit依赖:
        sudo apt install libavahi-compat-libdnssd-dev

【】如果在启动homekit时,出现cannot import name 'HKDF'...错误,那么需要更新pycryptodome
        sudo pip3 install pycryptodome

        完成相关安装后sudo reboot一下没有坏处
       
【】‘hass’  , 执行hass命令运行,非常漫长地等待..... hass在初始化过程,会自动连网下载依耐..... 漫长地等待
        如果pypi源安装太慢,可以更换国内镜像
  1. sudo nano /etc/pip.conf
  2. 增加一行 index-url = https://mirrors.aliyun.com/pypi/simple
  3. pip install pqi
  4. pqi ls
  5. pqi use aliyun
复制代码

        成功运行后,在局域网中的手机或电脑浏览器中输入:xx.xx.xx.xx/8032将连接到homeassistant web服务器,可以看到控制页面

【】开启配置文档configuration.yaml, yaml的语法和配置也是非常简洁易懂 (当然你也可以使用python语言来创作你的自动化程序)
        sudo nano ~/.homeassistant/configuration.yaml
        在配置中插入以下内容,记得将//中文注释删除,留意yaml对缩进空格的格式都有较高要求(向python看齐),否则使配置会报错

参考https://home-assistant.cc

  1. //我使用的DIY分类的插件rpi_gpio来构建了一个demo
  2. //首先,是显示来自yaho的实时天气
  3. weather:
  4. - platform: yweather
  5.    woeid: 2151849

  6. //然后,其于rpi_gpio,创建了二个传感器
  7. binary_sensor:
  8.   - platform: rpi_gpio
  9.     ports:
  10.       19: PIR Fan Office
  11.       26: PIR Bedroom

  12. // 也是基于rpi_gpio,创建了三个开关,可以看到第三个是控制一个指示灯(LED)
  13. switch:
  14.   - platform: rpi_gpio
  15.     ports:
  16.       16: Fan Office
  17.       20: Light Desk
  18.       21: Led

  19. //最后,连接到homekit, 直接使用default的配置信息,什么都不用填 :)
  20. homekit:
复制代码



【】‘hass’  , 执行hass命令将使用新配置执行homeassistant,在局域网中的手机或电脑浏览器中输入:xx.xx.xx.xx/8032将连接到web服务器,如下:

可以看到和我们的配置完全相同,点击按钮即可以控制树莓派的GPIO,并且GPIO状态在页面实时更新


【】当homekit插件启动后,在web页面会有一个通知,点击会出现homekit的连接Pin码,打开iphone家庭,使用新Pin码连接设备和配件:


【】最后:“嘿 Siri, 打开LED”


ps :zero跑homeassistant太困难了

ps :如果不出现homekit的pin码,可以尝试删除配置目录的.homekit.state再试

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2019-9-17 10:31:05 | 显示全部楼层
leon...... 发表于 2019-9-13 01:49
之前用python写了一个socket服务,https://www.amobbs.com/thread-5718136-1-1.html, 可以用浏览器接入树 ...

修改错误: Home Assistant 的访问地址是 ‘树莓派IP:8123’ ( 比如 http://162.20.10.9:8123/),  而不是之前说的8032
发表于 2019-9-13 07:11:31 | 显示全部楼层
前段时间看过一下,觉得homeassistant还是太臃肿了,不管是控制中心还是前段,乱七八糟一大堆东西,典型的open source 中前期形态,这个世界需要一个简介明快的方案,也许真的是现在的iot云方案(还没太多时间深入看)。

最意外的是homeassistant竟然没有android客户端,不知道现在有没有?
发表于 2019-9-13 07:41:40 来自手机 | 显示全部楼层
这个web管理端真强大
发表于 2019-9-13 08:39:36 | 显示全部楼层
哈哈哈,看过导通米家的。
发表于 2019-9-13 10:44:38 | 显示全部楼层
这么强大,这是app客户端,还是浏览器查看的。
发表于 2019-9-13 13:38:20 | 显示全部楼层
我还是用esp8266搞得,能支持homekit。这样简单点。
 楼主| 发表于 2019-9-13 14:53:22 来自手机 | 显示全部楼层
本帖最后由 leon...... 于 2019-9-13 14:54 编辑
Cocal 发表于 2019-9-13 07:11
前段时间看过一下,觉得homeassistant还是太臃肿了,不管是控制中心还是前段,乱七八糟一大堆东西,典型的o ...


是啊,太臃肿了,zero都跑不顺畅。不过它的功能确实强大
 楼主| 发表于 2019-9-13 16:54:13 来自手机 | 显示全部楼层
一号纵队 发表于 2019-9-13 10:44
这么强大,这是app客户端,还是浏览器查看的。

使用的是浏览器。
 楼主| 发表于 2019-9-13 17:02:20 来自手机 | 显示全部楼层
dxf5200 发表于 2019-9-13 13:38
我还是用esp8266搞得,能支持homekit。这样简单点。

那也挺不错的吖,我主要是还需要连接多媒体
发表于 2019-9-17 11:02:18 | 显示全部楼层
自己玩玩 可以  做项目生不如死
 楼主| 发表于 2019-9-17 11:04:13 | 显示全部楼层
3050311118 发表于 2019-9-17 11:02
自己玩玩 可以  做项目生不如死

就是自已玩玩,看样子你是有过痛苦经历
发表于 2019-9-17 11:04:52 | 显示全部楼层
我用domoticz  ,用在工程上也好几年了。

据说现在iobroker也挺热闹
发表于 2019-9-17 11:10:10 | 显示全部楼层
能否连到天猫精灵那些平台控制设备。之前用这个感觉可以SIRI蛮好的
发表于 2019-9-17 11:10:38 | 显示全部楼层
可以的,做了个ubuntu试了一下,可以用。
 楼主| 发表于 2019-9-17 11:13:30 | 显示全部楼层
wxws 发表于 2019-9-17 11:04
我用domoticz  ,用在工程上也好几年了。

据说现在iobroker也挺热闹

支不支持homekit ?  在PiZero上可以跑吗?
 楼主| 发表于 2019-9-17 11:20:07 | 显示全部楼层
Ray______ 发表于 2019-9-17 11:10
能否连到天猫精灵那些平台控制设备。之前用这个感觉可以SIRI蛮好的

不了解是否支持天猫精灵。HS支持接近1500种交互设备,很有可能包含天猫精灵。
就是看到它支持SIRI,支持HOMEKIT,正好也有一个旧的iphone和IPAD,打算基于这个深入玩一玩,据说没有树莓派,拿个旧手机一样跑得欢快,不过我还没有试。
发表于 2019-9-17 11:23:47 | 显示全部楼层
leon...... 发表于 2019-9-17 11:13
支不支持homekit ?  在PiZero上可以跑吗?

当然支持
https://www.domoticz.com/wiki/Main_Page

手机APP 我用:ImperiHome
支持ios,android.
 楼主| 发表于 2019-9-17 11:29:20 | 显示全部楼层
wxws 发表于 2019-9-17 11:23
当然支持
https://www.domoticz.com/wiki/Main_Page

多谢,扫描了一眼,看到也是基于HomeBridge,又多了一种选择
发表于 2019-9-17 15:46:08 | 显示全部楼层
这个有意思 找机会试一下
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-10-14 10:46

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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