天猫精灵接入HomeAssistant【智能家居技能接入】

最近随着天猫精灵的铺开,很多人会问,天猫精灵支持连接小米设备吗,天猫精灵能控制小米网关吗?答案是无法直接控制,因为小米毕竟不会把自己的设备开放给小爱的直接竞争对手天猫精灵,如果开放了,小爱以后怎么在圈里混?
但是!!可以间接控制,通过 天猫精灵–HomeAssistant–小米设备,完成控制。

先放视频吧:

视频打不开的自己点视频链接看吧

 

写在前面,方案有几个硬性要求:
1.homeassistant公网可以访问,并有你自己的设备
什么?不知道HomeAssistant是什么?
搞技术的请直接访问 https://home-assistant.io/
不搞技术的可以看看这篇文章了解一下:智能家居初体验。 还是不明白的话那就请自己搜索HomeAssistant了解一下了,如果这一点不搞明白建议您可以不要往下读了。我所有的内容都是基于已搭建好HomeAssistant的基础上写的,如果没部署请先去部署好再继续看帖子。(瀚思彼岸是目前国内最大的HomeAssistant技术交流论坛,不懂的人可以先去学习了解下,在上面可以找到各路大佬助你入坑HomeAssistant!!)

2.php+mysql或者相似的环境

3.该方式目前只能自己搭自己用


小白们如果上述条件1、2不具备,又想完美接入天猫精灵怎么办?

 

请移步这篇文章(当然这个方案也依赖条件1,如果不具备也不用往下看了)–>>Hassbian论坛官方技能接入

有问题,可以微博留言,关注转发就是支持,谢谢!!

另外如果你自己有能力搭建服务,不希望将自己的ha账号托管给论坛,那么请继续往下看,自助搭建的方案也可以帮助你完成HomeAssistant接入天猫精灵。

 


由于论坛毕竟处于公益类型,没有过多的资源支持,所以在使用公共技能的时候可能会出现延时等问题,所以我提供自己搭建天猫网关的方法,供各位自行搭建。

 

先发一张架构简图

6月10日更新了网关代码,由于此次改动较多,需要更新的人需要重建数据库,建议将老代码和数据库、天猫平台上的技能全部删掉重来,这样不会有冲突。

1.下载Oauth2和网关PHP代码

查看自己的php版本:
执行php -v
PHP 5.3.3 (cli) (built: Mar 22 2017 12:27:09)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
PHP 5.3.3即为你的php版本。根据版本选择下面对应的方案
php5.3.9以下版本可以直接执行:
mv tmall-bot-x1/* .
php版本在5.3.9(包含5.3.9)以上的人请执行下列操作:
mv tmall-bot-x1/* .

2.数据库建表

进入你的mysql数据库新建一个数据库,并在mysql执行下列建表命令

CREATE TABLE oauth_clients ( client_id VARCHAR(80) NOT NULL, client_secret VARCHAR(80) NOT NULL, redirect_uri VARCHAR(2000) NOT NULL, CONSTRAINT client_id_pk PRIMARY KEY (client_id));

CREATE TABLE oauth_access_tokens (access_token VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, user_id VARCHAR(255), expires TIMESTAMP NOT NULL,scope VARCHAR(2000), CONSTRAINT access_token_pk PRIMARY KEY (access_token));

CREATE TABLE oauth_authorization_codes (authorization_code VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, user_id VARCHAR(255), redirect_uri VARCHAR(2000) NOT NULL, expires TIMESTAMP NOT NULL, scope VARCHAR(2000), CONSTRAINT auth_code_pk PRIMARY KEY (authorization_code));

CREATE TABLE oauth_refresh_tokens ( refresh_token VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, user_id VARCHAR(255), expires TIMESTAMP NOT NULL, scope VARCHAR(2000), CONSTRAINT refresh_token_pk PRIMARY KEY (refresh_token));

CREATE TABLE oauth_users (username VARCHAR(255) NOT NULL, password VARCHAR(2000), first_name VARCHAR(255), last_name VARCHAR(255), CONSTRAINT username_pk PRIMARY KEY (username));

CREATE TABLE oauth_scopes (
scope VARCHAR(80) NOT NULL,
is_default BOOLEAN,
PRIMARY KEY (scope)
);

CREATE TABLE IF NOT EXISTS `oauth_devices` ( `id` int(11) NOT NULL AUTO_INCREMENT,`user_id` varchar(255) NOT NULL,`deviceId` varchar(255) NOT NULL, `deviceName` varchar(255) NOT NULL, `jsonData` text NOT NULL, `devices` TEXT NOT NULL, `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `del` int(11) NOT NULL DEFAULT '0',`virtual` INT NOT NULL DEFAULT '0',`zone` VARCHAR( 255 ) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2;

CREATE TABLE user_data (
id bigint not null auto_increment,
user_id VARCHAR(255) NOT NULL,
homeassistantURL VARCHAR(255) NOT NULL,
homeassistantPASS VARCHAR(255) NOT NULL,
user_name VARCHAR(255) NOT NULL,
email VARCHAR(255),
expires TIMESTAMP NOT NULL,
fromwhere VARCHAR(20) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY inx_user_id(user_id)
);

 

然后再新建账号和密码(XXXXXXclientid、XXXXXXsecret自己随便设,要记住后面填到天猫开放平台里)

INSERT INTO oauth_clients (client_id, client_secret, redirect_uri) VALUES (“XXXXXXclientid”“XXXXXXsecret”,https://open.bot.tmall.com/oauth/callback);

3.修改配置文件

请按照你自己的数据库配置修改 homeassistant_conf.php

4.在天猫开放平台新建技能


用你的淘宝账号在https://open.bot.tmall.com登陆,新建技能
技能类型选择智能家居,上传图片和一些描述(因为技能无法发布,这里叫什么你随意)


账户授权链接  https://yourhost.com/authorize.php
ClientID         XXXXXXclientid
Client Secret XXXXXXsecret
XXXXXXclientid、XXXXXXsecret为前面自己设置的)
Access Token URL  https://yourhost.com/token.php
开发者网关地址        https://yourhost.com/gate.php
(上面所有yourhost.com 替换成你自己网站的域名)


配置好了之后点击下一步,真机测试下面点开启真机测试,之后就可以在下放看到H5的配置页面。

点击账户配置,会跳转到之前配置的账户授权连接 https://yourhost.com/authorize.php
当然,我这里写的非常简单,只做了一个确认按钮。

授权成功之后,如果没有报错,则天猫平台的页面会显示出你当前的设备列表(gate.php中配置的设备)。同时手机天猫精灵客户端也可以看到这些设备了。看到默认的设备列表说明这部ok了。
————————————————————————————————————————
这里如果出现:”Oauth token 返回不正确,请检查”或”参数值内容错误。,三秒后返回设备列表“

请修改Oauth2-PHP-Server的相关文件。
将oauth2-server-php/src/OAuth2中的Server.php中 ‘require_exact_redirect_uri’ => true,
修改为
‘require_exact_redirect_uri’ => false,
(require_exact_redirect_uri参数改为false)
————————————————————————————————————
凭借code获得token后即表示授权成功后你就可以看到你已经配置的设备列表

 

5.配置自己的设备列表

配置设备的方法现在已整合论坛的代码,支持多虚拟设备(传感器)
在这里修改你的hass地址和密码:你的域名/information.php
在这里管理你的设备列表:你的域名/discovery.php

因为将原有的账号体系去掉,所以第一次访问时看到登录按钮,点击即可通过。
完成hass域名密码配置后只要确认功能没问题,就可以把目录下的/information.php、discovery.php add.php等文件改成别的名字,比如information.php.back 这样避免外人通过这个页面拿到你的hass密码或者操做你的页面。

然后没有然后了,愉快的加你的设备吧!

添加设备请注意:

1.多个同一位置的传感器请使用虚拟设备,虚拟传感器的设备id需要手工加一个后缀

2.关于设备类型和名称:deviceType(设备类型)选择你实际操控时,想让天猫精灵控制的设备名。比如你以‘冰箱’的形式操作这个设备,那这里就选择‘冰箱’,控制的时候叫  天猫精灵打开[位置]的冰箱。deviceName(设备名称)这个位置虽然留空让你填写,但请一定填写成更设备类型一样的名字!!! 必须一样听明白没?这里不按要求写,天猫精灵不听指令不要来找我。这是天猫的要求,如果想改别名,直接在天猫精灵app里就可以改。

3.关于操作和属性

    actions(支持的操作)操作action主要用于确定该设备支持哪些操作,可以根据ha里的功能进行判断后添加

设置音量           命令:把(客厅)的(电视的)音量调到80%【范围0-100】

设置颜色               命令:把(客厅)的(落地灯)调成(白色)

设置亮度               命令:把(客厅)的(吸顶灯)亮度调到(80)【范围0-100】

打开                      命令:打开(厨房)的(窗帘)

关闭                      命令:关闭(卫生间)的(吊灯)

声音按步长调大     命令: (客厅)的(电视)大点声 (仅media_player支持)

声音按步长调小     命令: (客厅)的(电视)小点声(仅media_player支持)

下一首或下一台   命令: (客厅)的(电视)下一台(仅media_player支持)

上一首或上一台   命令: (客厅)的(电视)上一台(仅media_player支持)

频道选择               命令:   把(电视、机顶盒)调到 (浙江卫视、中央一台)

我要看中央一台、浙江卫视(只有一台可调台设备是才可以这么用)

(仅media_player支持)

暂停、继续          命令:(餐厅)的(扫地机器人)暂停(media_player、vacuum)

设置模式               命令:(卧室)的空调调成制冷模式、送风模式、制热模式、除湿模式(climate)

设置温度               命令:(次卧)的空调温度设置为 25度

风速调整                命令:(主卧)的空调风速调为(1档、2档、3档)

查询温度

查询亮度

查询湿度

查询pm2.5

查询电源开关

properties(支持的属性状态)主要用于传感器和设备状态,需要查询的设备请选择对应的属性

电源状态     (客厅)的(吸顶灯)开着呢嘛?
PM2.5        (客厅)的(传感器)的(PM2.5)是多少?
湿度         (客厅)的(传感器)的(湿度)是多少?
温度         (客厅)的(传感器)的(温度)是多少?
亮度         (客厅)的(传感器)的(亮度)是多少?

——-1月8日   新增灯光颜色控制
——-6月1日   电视相关控制,同时整合多传感器查询、配置管理页面
——-6月10日   电视相关控制,新增空调(climate支持)

按照我的代码部署的人,后续所有更新只需要更新不同分支里这两个文件即可
gate.php
aligenies_request.php
add.php
addVirtualDevice.php

php5.3.9以下选择master分支
php版本在5.3.9(包含5.3.9)以上选择php5.3分支

 

进阶篇,群晖DSM 非docker部署homebridge

看了homebridge的介绍,觉得很给力有木有,拉低接入homekit的成本有木有?
但是问题来了,我的群晖不支持docker怎么办?
市面上所有的文档都是群晖docker部署,或者是树莓派部署?
有群晖为什么还要单独买一个树莓派??多此一举嘛,所以,没有docker的同学们赶快上车了!!!
首先我说一句用的是ds261j, 看到这里同款的苦于没有docker的同学们,激不激动?
1.部署chroot
2.安装基础软件
3.安装homebridge及相关插件
4.常用插件
5.群晖后台启动

有问题微博联系 http://weibo.com/1147593092/profile

1.部署chroot
参考树莓派的部署方案,首先群晖要能装软件,但群晖套件里就只有那么几个软件,查阅各种资料之后发现了群晖可以按下面的方式安装第三方套件,而且套间里有牛逼的debian chroot,
群晖安装 apt-get

登录到DSM—“套件中心”—“设置”—“套件来源”—点击“新增”

在弹出的界面中填入以下地址,并确定。
这样第三方套件地址就添加好了

安装debian chroot

 

ssh到启动自己的nas上,执行:
sudo /var/packages/debian-chroot/scripts/start-stop-status chroot

懂的人后面应该就不用我说了,哈哈。

 

2.chroot装好后那我们就可以正式的安装homebridge基础 环境了

安装基础依赖的软件,另外由于我们是通过chroot环境安装基础软件,所以后续所有安装执行操作都要在chroot环境下完成,启动脚本除外,执行下面的命令就可以切换到root环境:

sudo /var/packages/debian-chroot/scripts/start-stop-status chroot

 切换到root后执行基础软件的安装

apt-get update
apt-get install libavahi-compat-libdnssd-dev
apt-get install avahi-daemon avahi-discover libnss-mdns libavahi-compat-libdnssd-dev
apt-get install update-alternatives
apt-get install git make
apt-get install g++

安装nodejs,这里我是下载的最新的nodejs 8.0.0,由于我的系统是群晖armv7,所以安装下面的版本,其他版本请在node官网上找对应版本。

wget https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-armv7l.tar.gz
tar xJvf node-v6.11.0-linux-armv7l.tar.xz
sudo mkdir -p /volume1/@appstore/debian-chroot/var/chroottarget/opt/node/
sudo mv node-v6.11.0-linux-armv7l/* /volume1/@appstore/debian-chroot/var/chroottarget/opt/node/
sudo /var/packages/debian-chroot/scripts/start-stop-status chroot
update-alternatives --install "/usr/bin/node" "node" "/opt/node/bin/node" 1
update-alternatives --install "/usr/bin/npm" "npm" "/opt/node/bin/npm" 1

安装python


apt-get install python2.7
export PYTHON=/usr/bin/python2.7

 

3.安装homebridge


npm install -g --unsafe-perm hap-nodejs
npm install -g --unsafe-perm node-gyp
npm install -g --unsafe-perm homebridge

 

期间遇到的各种错误,及其解决方案:

未找到python执行文件,需要将你的python目录添加到path环境变量中,例如我这里装的是python,就要添加对应的执行文件到path里,可以通过直接在命令行中输入python检查是否配置成功

export PYTHON=/usr/bin/python2.7
这个错误是网络问题,遇到这种情况重试即可,如果反复都不可以就试着清空缓存再试。始终不行的话你就要先研究下科学上网的方法,这里不做赘述。
清理缓存方法:

npm cache clean -f

遇到最恶心的错误,相信50%的人在完成上面复杂的工序之后,开心的执行homebridge命令会遇到下面的问题,我吭哧吭哧研究了2个礼拜,几乎翻遍的github,之前一直没找到方法,甚至被逼到换windows平台去部署homebridge,但最后还是卡在了这个坑爹的错误上!!!what a fuck!!! 但好在功夫不负有心人,终于研究明白这个错误了,请往下看。

Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

┌────────────┐
│ 031-45-154             │
└────────────┘ 
/usr/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:56 dns_sd.DNSServiceRegister(self.serviceRef, flags, ifaceIdx, name, ^ Error: dns service error: unknown at new Advertisement (/usr/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:56:10) at Object.create [as createAdvertisement] (/usr/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:64:10) at Advertiser.startAdvertising (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Advertiser.js:43:30) at Bridge.Accessory._onListening (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:555:20)
首先遇到错检查一下这几个包是否都已经正确安装

apt-get install avahi-daemon avahi-discover libnss-mdns libavahi-compat-libdnssd-dev
上面那个错误的主要就是因为dbus-daemon、dbus、avahi-daemon这三个个东西没启动对,解决思路是启动homebridge前吧这三个进程都重启,对原因就是这么简单!

dbus-daemon --system
/etc/init.d/dbus restart
service avahi-daemon start
启动homebridge前重启上面进程,homebridge是不是就可以欢快的跑起来了呢??
4.常用插件
我这里简单整理了一下:
博联科技 homebridge-broadlink-rm
小米网关 homebridge-aqara
论坛里的空气质量插件 homebridge-airnow
ip摄像头插件 homebridge-camera-ffmpeg
5.群晖后台启动
最后,由于我们的homebridge是跑在nas上的,怎么让他在后台启动呢?
chroot环境下的启动脚本

#!/bin/bash
# LANCEMENT DES SERVICES DBUS, AVAHI, HOMEBRIDGE
# RUNNING DBUS, AVAHI AND HOMEBRIDGE SERVICES
export N_PREFIX="$HOME/n"; [[ :$PATH: == *":$N_PREFIX/bin:"* ]] || PATH+=":$N_PREFIX/bin"
rm -r /var/run && rm -r /var/lock && ln -s /run /var/run && ln -s /run/lock /var/lock && rm /run/dbus/*
dbus-daemon --system
/etc/init.d/dbus restart
service avahi-daemon stop
service avahi-daemon start
#avahi-daemon -D
/root/n/lib/node_modules/homebridge/bin/homebridge
nas用户态的启动脚本

#!/bin/sh
#
# Put this file in your path homebridge.sh

case "$1" in

stop)
echo "Stop Homebridge …"
pkill -f homebridge
;;

start)
nohup chroot /usr/local/debian-chroot/var/chroottarget su - root -c "/root/.homebridge/run.sh" >>/volume1/1.log 2>>/volume1/2.log &
;;

restart)
$0 stop
sleep 1
$0 start
;;

status)
ps | grep homebridge
return $?
;;

*)
echo "usage: $0 { start | stop | restart | status}" >&2
exit 1
;;

esac

 

最后到群晖控制台中添加计划任务:

 

 

进阶篇,智能家居初体验:homekit、homebridge、HomeAssistant都是干啥的?

从装修房子到买家电装安防,到入坑homebridge和homeassistant,再从homebridge的基于iphone siri的语音控制,到通过天猫精灵控制家电,这一段时间也算是接触了很多智能产品和设备,同时自己对只能家居的理解也更进一步。那我也基于最近一段时间的学习,完整的总结一下。

还是把之前录的效果放一下吧,哈哈:

从全局上看,我认为智能家居有几个阶段:

   设备数字网络化—-远程控制—-自动化控制—-语音控制—-‘贾维斯’

第一阶段最简单,设备肯定要通电并把物理的信号转换成数字信号,比如温湿度传感器,摄像头,电子门锁,体感设备,门磁,遥控器,联网之后,也就是到了第二阶段,互联后可以不依赖物理开关控制,能通过某种信号控制,这里的控制渠道可能有很多:红外、射频、蓝牙、网络… 再然后我们可以对这些互联可以远程控制的设备设置一些联动的逻辑,也就是现在所说的自动化控制,比如:检测到有人就播放一段语音、十二点音箱自动播放广播、人回家时关闭窗帘打开灯… 再然后我们可以通过智能音箱语音完成一些指令或者基于AI的对答,再然后可能就是像钢铁侠里贾维斯那样的超级管家,能像人一样有一定的思维逻辑的自动化处置!

目前市面上看到的产品其实并算不上智能家居,或者说仅仅是做到了前三个阶段:传感器数据采集以及指令的下发,还有一些简单的自动化,距离真正的“智能”还有很大差距。最近的频频发布的智能音箱目前也只是实现了语音控制,距离真正的智能管家,还是有很大的差距的。我这里讲的“智能”主要是现状下的一些产品。


一.智能家居是什么,能干什么?

就我自己了解到的情况,我把智能设备(物联设备)分为两类:

一类是信息采集器,摄像头、门磁、温度计、湿度计、霾表、红外传感器、烟感、水感等等。用来收集环境数据。

一类是控制器,灯、开关、窗帘盒、插座、锁、空调、用来执行某种动作。

而把采集器和控制器协调在一起,执行远程操控或是根据不同条件设置不同的动作,就成了现在所谓的智能家居系统。目前基本形成了 采集器+控制器+网关 组成了一套完整的智能家居系统的模式。

二.智能家居系统

    由于技术上的没有完全统一的协议,再加上一些厂商的封闭思维,不同厂商间的采集器和控制器是不通用的,都需要去配置各个家自己的中控系统及app,所以目前想把家里的全套东西都配置好你可能要在一个手机里装N个app,家里也是要接各种网关设备,或者一步到位全买这一个厂商的全套产品。

控制系统有两种,一种是开放平台,一种是封闭平台。就如字面意思,国外比较多的是统一软件协议然后各家做各家的硬件,然后由统一的控制平台来完成智能控制,比如HomeAssistant、Domoticz、Google Home、homekit(虽然homekit算不上真正意义的开放…但他开放了统一的协议标准);对比国内,目前多数是自己管自己,平台之间互不兼容,想做到智能就要买我家的全套设备才行。

三.封闭平台(这里只说国内的)

LifeSmart、阿里智能、萤石云:这些属于封闭的平台,都由各个智能设备厂商自己独立建立的中控app,只能控制自己旗下或者联盟内的产品及设备,无法“跨界”联动。

博联boardlink,米家:基本属于半开放的状态,支持部分系统的相互联动。

LifeSmart,是国内的智能家居品牌,主打智能家居控制,缺少家电类的覆盖,品质较高但相对的价格也比较贵。

阿里智能,依托阿里强大的整合能力组成了很大范围的联盟,目前在大小家电范围覆盖的较广,但在门磁、传感器类比较缺乏。

萤石云,海康威视旗下的品牌,做监控起家,主打安防类,门磁、人体传感器、声光水传感器的场景及联动比较丰富,但比较遗憾的是他没有家居类的设备。

 

博联boardlink,博联以红外和射频遥控作为切入点,可以与大部分红外和射频设备联动,目前也在搞自己的平台,但他的远程遥控器处于半开放的状态,可以对接很多三方的平台以及多数的智能音响,如:天猫精灵、Amazon Echo。

米家,小米在智能家居这块布局很早,以比较高的性价比取得了比较大的覆盖量和认可。目前也处于一种半开放的状态,可以支持对接三方平台。

以我自己家举例,如果按我自己的想法去实施的话我可能需要下面四个厂商的产品,(手机里同时装四个app、家里装四个网关,而且他们之间还不能相互控制)

小米          霾表、空气净化器、灯、插座

博联科技  红外控制 FR射频控制

阿里智能  空调、冰箱(家电类)、插座

萤石          摄像头、门磁、红外、烟感(安防类)

What a fuck??!!

四.开放平台

开放中控平台: HomeAssistant、Domoticz、Homekit

Homekit 是苹果推出的智能家居平台, 并在iOS 10开始默认在手机“家庭”APP中集成,可以通过apple内置的siri完成语音控制,但无法通过其他app或者android手机控制。目前接入homekit的厂商并不是很多,而且价格偏贵。亮点在于siri控制和苹果比较高的产品质量,准确的说他应该也属于封闭平台,但为什么要把他放在开放平台?请往后看homebridge部分。

 

HomeAssistant 是一款开源的智能家居平台详细介绍见其官网:https://home-assistant.io ,需要运行在python3的环境下,可以通过网页和手机客户端完成控制。目前看功能方面要比homekit强大很多,因为其开源的原因,可定制性较强,受到比较多开源爱好者的喜欢。支持通过网页或者android手机app、iOS手机app的控制;支持各种复杂条件的自动化动作(满足X情的条件下,做Y);语音控制方面,支持与类似亚马逊的Echo的智能系统的控制。

 

Domoticz 也是类似的智能家居平台详见官网http://www.domoticz.com/,相比来说界面比较丑,与HomeAssistant一样支持通过网页或者android手机app、iOS手机app控制;支持各种复杂条件的自动化动作(满足X情的条件下,做Y);语音控制方面,支持与类似亚马逊的 Echo的智能系统的控制。

 
 

homebridge

最后要强烈介绍一下homebridge,它由前homekit程序员创建,用nodejs编写,用于更多让更多无法接入homekit的产品接入homekit平台,程序开源,有各个兴趣组提供不同的插件,以兼容不同的智能设备,像桥一样把三方的设备与homekit连接在一起,让他们能在iOS里被Siri控制。有了它就可以将HomeAssistant与Domoticz中的智能设备引入到homekit中,由siri统一控制。

五.如何搭建这样的开放平台

前面文章提到过HomeKit 的优势在于iOS原生自带、Siri支持中文,还有苹果对高品质的把控。你可以告诉 Siri 我回家了,早上好等这样的文字激活你设置好的场景,还是可以直接从控制中心看到和控制你所有支持的设备,比起其他第三方智能家居 App 使用体验都更佳。 

懂技术的同学可以直接到下面的地址按项目中的方式部署

Homebridge项目地址:https://github.com/nfarina/homebridge

下面两篇文章里我将介绍如何搭建一套完整的智能家居系统。完成以下的操作,你需要一个永不关机(或者你需要的时候不关机的)Mac、Windows 或 Linux 设备,恩,简单说就是要有一台服务器,这里比较多的人选择使用树莓派,有的人在家里的NAS中安装,因为我已经有一台群晖的nas了,所以我选择在nas上完成安装

入门篇,智能家居基本情况

目前市面上看到的产品其实并算不上智能家居,或者说仅仅是做到了传感器数据采集以及指令的下发,距离真正的“智能”还有很大差距,而我这里讲的主要是现状下的一些产品。

就我自己了解到的情况,我把智能设备(物联设备)分为两类:

一类是信息采集器,摄像头、门磁、温度计、湿度计、霾表、红外传感器、烟感、水感等等。用来收集环境数据。另一类是控制器,灯、开关、窗帘盒、插座、锁、空调、用来执行某种动作。

而把采集器和控制器协调在一起,根据不同条件设置不同的动作,就成了现在所谓的智能家居系统。但是由于技术上的不成熟没有统一的协议或者一定程度上厂商的封闭思维,不同厂商间的采集器和控制器是不通用的,都需要去配置各个家自己的中控系统及app,所以目前想把家里的全套东西都配置好你可能要在一个手机里装N个app,家里也是要接各种网关设备。

以我自己家举例,如果按我自己的想法去实施的话我可能需要下面四个厂商的产品,(手机里同时装四个app、家里装四个网关,而且他们之间还不能相互控制)

小米          霾表、空气净化器、灯、插座

博联科技  红外控制 FR射频控制

阿里智能  空调、冰箱(家电类)、插座

萤石          摄像头、门磁、红外、烟感(安防类)

WHAT THE FUCK??!!