树莓派智能家居之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: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-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 前段时间看过一下,觉得homeassistant还是太臃肿了,不管是控制中心还是前段,乱七八糟一大堆东西,典型的open source 中前期形态,这个世界需要一个简介明快的方案,也许真的是现在的iot云方案(还没太多时间深入看)。
最意外的是homeassistant竟然没有android客户端,不知道现在有没有? 这个web管理端真强大 哈哈哈,看过导通米家的。 这么强大,这是app客户端,还是浏览器查看的。 我还是用esp8266搞得,能支持homekit。这样简单点。 本帖最后由 leon...... 于 2019-9-13 14:54 编辑
Cocal 发表于 2019-9-13 07:11
前段时间看过一下,觉得homeassistant还是太臃肿了,不管是控制中心还是前段,乱七八糟一大堆东西,典型的o ...
是啊,太臃肿了,zero都跑不顺畅。不过它的功能确实强大 一号纵队 发表于 2019-9-13 10:44
这么强大,这是app客户端,还是浏览器查看的。
使用的是浏览器。 dxf5200 发表于 2019-9-13 13:38
我还是用esp8266搞得,能支持homekit。这样简单点。
那也挺不错的吖,我主要是还需要连接多媒体 自己玩玩 可以做项目生不如死 3050311118 发表于 2019-9-17 11:02
自己玩玩 可以做项目生不如死
就是自已玩玩,看样子你是有过痛苦经历 我用domoticz,用在工程上也好几年了。
据说现在iobroker也挺热闹
能否连到天猫精灵那些平台控制设备。之前用这个感觉可以SIRI蛮好的 可以的,做了个ubuntu试了一下,可以用。 wxws 发表于 2019-9-17 11:04
我用domoticz,用在工程上也好几年了。
据说现在iobroker也挺热闹
支不支持homekit ?在PiZero上可以跑吗? Ray______ 发表于 2019-9-17 11:10
能否连到天猫精灵那些平台控制设备。之前用这个感觉可以SIRI蛮好的
不了解是否支持天猫精灵。HS支持接近1500种交互设备,很有可能包含天猫精灵。
就是看到它支持SIRI,支持HOMEKIT,正好也有一个旧的iphone和IPAD,打算基于这个深入玩一玩,据说没有树莓派,拿个旧手机一样跑得欢快,不过我还没有试。 leon...... 发表于 2019-9-17 11:13
支不支持homekit ?在PiZero上可以跑吗?
当然支持
https://www.domoticz.com/wiki/Main_Page
手机APP 我用:ImperiHome
支持ios,android.
wxws 发表于 2019-9-17 11:23
当然支持
https://www.domoticz.com/wiki/Main_Page
多谢,扫描了一眼,看到也是基于HomeBridge,又多了一种选择{:victory:} 这个有意思 找机会试一下 大牛,一些WIFI LED是否可以接入?
mypear 发表于 2019-12-9 16:22
大牛,一些WIFI LED是否可以接入?
应该是可以的,你可以上官网查看支持的设备列表。 实在太重。。。
有没有300M ARM9 就能跑得起来的。 GameOfThrone 发表于 2019-12-10 14:14
实在太重。。。
有没有300M ARM9 就能跑得起来的。
那就直接用ESP来鼓捣。。。 wxws 发表于 2019-9-17 11:04
我用domoticz,用在工程上也好几年了。
据说现在iobroker也挺热闹
第一次听说domoticz ,看起来也蛮好的,有空玩玩 挺不错的 好玩 HomeBridge 。。。mark。。。
页:
[1]