leon...... 发表于 2019-9-13 01:49:15

树莓派智能家居之HomeBridge:HomeAssistant

本帖最后由 leon...... 于 2019-9-13 22:02 编辑

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

homebridge可以将一些苹果homekit不支持的硬件接入到homekit中,它是一个轻量的NodeJS服务(别问我NodeJS是什么,我也不知道{:lol:} )。
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 版本号查找见下面

        《》修改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保存退出
sudo nano /home/pi/.homebridge/config.json

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

      "description":"RPI4 IOT",

      "accessories":[
                {
                  "accessory":"RaspberryPiTemperature",
                  "name":"Pi-CPU-Tem"
                }
      ]
}

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



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


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



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

leon...... 发表于 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 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。
而且而且,太简单易用了{:cry:}

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源安装太慢,可以更换国内镜像
        sudo nano /etc/pip.conf
增加一行 index-url = https://mirrors.aliyun.com/pypi/simple
pip install pqi
pqi ls
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

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

//然后,其于rpi_gpio,创建了二个传感器
binary_sensor:
- platform: rpi_gpio
    ports:
      19: PIR Fan Office
      26: PIR Bedroom

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

//最后,连接到homekit, 直接使用default的配置信息,什么都不用填 :)
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再试

leon...... 发表于 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

Cocal 发表于 2019-9-13 07:11:31

前段时间看过一下,觉得homeassistant还是太臃肿了,不管是控制中心还是前段,乱七八糟一大堆东西,典型的open source 中前期形态,这个世界需要一个简介明快的方案,也许真的是现在的iot云方案(还没太多时间深入看)。

最意外的是homeassistant竟然没有android客户端,不知道现在有没有?

littlebadbay 发表于 2019-9-13 07:41:40

这个web管理端真强大

沉默胜过白金 发表于 2019-9-13 08:39:36

哈哈哈,看过导通米家的。

一号纵队 发表于 2019-9-13 10:44:38

这么强大,这是app客户端,还是浏览器查看的。

dxf5200 发表于 2019-9-13 13:38:20

我还是用esp8266搞得,能支持homekit。这样简单点。

leon...... 发表于 2019-9-13 14:53:22

本帖最后由 leon...... 于 2019-9-13 14:54 编辑

Cocal 发表于 2019-9-13 07:11
前段时间看过一下,觉得homeassistant还是太臃肿了,不管是控制中心还是前段,乱七八糟一大堆东西,典型的o ...

是啊,太臃肿了,zero都跑不顺畅。不过它的功能确实强大

leon...... 发表于 2019-9-13 16:54:13

一号纵队 发表于 2019-9-13 10:44
这么强大,这是app客户端,还是浏览器查看的。

使用的是浏览器。

leon...... 发表于 2019-9-13 17:02:20

dxf5200 发表于 2019-9-13 13:38
我还是用esp8266搞得,能支持homekit。这样简单点。

那也挺不错的吖,我主要是还需要连接多媒体

3050311118 发表于 2019-9-17 11:02:18

自己玩玩 可以做项目生不如死

leon...... 发表于 2019-9-17 11:04:13

3050311118 发表于 2019-9-17 11:02
自己玩玩 可以做项目生不如死

就是自已玩玩,看样子你是有过痛苦经历

wxws 发表于 2019-9-17 11:04:52

我用domoticz,用在工程上也好几年了。

据说现在iobroker也挺热闹

Ray______ 发表于 2019-9-17 11:10:10

能否连到天猫精灵那些平台控制设备。之前用这个感觉可以SIRI蛮好的

xstt 发表于 2019-9-17 11:10:38

可以的,做了个ubuntu试了一下,可以用。

leon...... 发表于 2019-9-17 11:13:30

wxws 发表于 2019-9-17 11:04
我用domoticz,用在工程上也好几年了。

据说现在iobroker也挺热闹

支不支持homekit ?在PiZero上可以跑吗?

leon...... 发表于 2019-9-17 11:20:07

Ray______ 发表于 2019-9-17 11:10
能否连到天猫精灵那些平台控制设备。之前用这个感觉可以SIRI蛮好的

不了解是否支持天猫精灵。HS支持接近1500种交互设备,很有可能包含天猫精灵。
就是看到它支持SIRI,支持HOMEKIT,正好也有一个旧的iphone和IPAD,打算基于这个深入玩一玩,据说没有树莓派,拿个旧手机一样跑得欢快,不过我还没有试。

wxws 发表于 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.

leon...... 发表于 2019-9-17 11:29:20

wxws 发表于 2019-9-17 11:23
当然支持
https://www.domoticz.com/wiki/Main_Page



多谢,扫描了一眼,看到也是基于HomeBridge,又多了一种选择{:victory:}

thorn 发表于 2019-9-17 15:46:08

这个有意思 找机会试一下

mypear 发表于 2019-12-9 16:22:05

大牛,一些WIFI LED是否可以接入?

leon...... 发表于 2019-12-9 23:07:44

mypear 发表于 2019-12-9 16:22
大牛,一些WIFI LED是否可以接入?

应该是可以的,你可以上官网查看支持的设备列表。

GameOfThrone 发表于 2019-12-10 14:14:57

实在太重。。。
有没有300M ARM9 就能跑得起来的。

leon...... 发表于 2019-12-10 15:18:53

GameOfThrone 发表于 2019-12-10 14:14
实在太重。。。
有没有300M ARM9 就能跑得起来的。

那就直接用ESP来鼓捣。。。

duxingkei 发表于 2020-2-21 11:51:52

wxws 发表于 2019-9-17 11:04
我用domoticz,用在工程上也好几年了。

据说现在iobroker也挺热闹

第一次听说domoticz   ,看起来也蛮好的,有空玩玩

wyn20007 发表于 2020-2-21 12:21:58

挺不错的

饭桶 发表于 2020-2-21 14:57:42

好玩      

zhiyuanzhitian 发表于 2020-5-16 10:39:47

HomeBridge 。。。mark。。。
页: [1]
查看完整版本: 树莓派智能家居之HomeBridge:HomeAssistant