速度之上 发表于 2017-12-19 23:51:40

基于HomeBridge的HomeKit & Siri智能家电树莓派桥接器

本帖最后由 ky123 于 2018-1-31 14:13 编辑

感谢E络盟官方提供的助赛基金。
1 首先说下什么是桥接器
飞利浦推出过一套很出名的HUE智能灯泡套装,价格巨高无比,如下图所示




三个灯泡+一个桥接器售价高达上千元
这里面的桥接器的主要作用就是负责连接灯泡
统一将灯泡进行连接,然后只有桥接器连接到路由器上
可以减轻路由器负载(路由器从好几个连接点变成一个桥接器连接

2 再说说什么是Homebridge

这是前苹果员工通过逆向工程将HomeKit反编译出来的,可以将一些不支持HomeKit的产品接入HomeKit中
HomeKit的智能家居产品都价格高昂,而HomeBridge可以运行在Linux路由器中
从而可以将一些支持型号的家电接入HomeKit中,也可以写入树莓派中,接入HomeKit中
(比如米家系列、博联等生态链的产品

3 项目需要准备的设备

1)树莓派
2)树莓派配套的相关电源、SD卡等
3)路由器,emmm,比如蒲公英路由器(滑稽
4)小米台灯

4 项目内容展示

http://v.youku.com/v_show/id_XMzI0NTcxNTAzMg==.html
Siri语音调节灯的亮度



5 项目实施

首先烧录树莓派镜像
这里不详细介绍了
有一个细节
有些树莓派的镜像默认情况下并不开启SSH
然而又没屏幕和鼠标键盘,就没法登陆树莓派
在烧写完镜像之后,打开SD卡(盘名应该是boot
右键新建个文本文件就行,然后改名为SSH
同时删掉.txt后缀,再插上网线就能正常SSH登录树莓派了sudo apt-get update
sudo apt-get upgrade首先更新一下软件sudo apt-get install nodejs
sudo apt-get install build-essential
sudo apt-get install libavahi-compat-libdnssd-dev然后安装一下nodejs和相关依赖包文件sudo npm install -g homebridge
sudo npm install -g homebridge-aqara安装homebridgesudo npm install -g homebridge-yeelight安装yeelight,米家的灯都是基于yeelight的,所以这里要安装一下yeelightsudo vi /homebridge/config.json编辑一下配置文件{
    "bridge":
      {
      "name": "RPIbridge",
      "username": "CC:22:***:E3:CE:30",
      "port": 51826,
      "pin": "031-45-154"
          },
   "platforms":
[
{
    "platform": "Aqara",
    "sid": ["2e6f7c3c2b1a"],
    "password": ["********"]
}
]
}2e6f7c3c2b1a填路由器mac地址(不要写冒号
***********指的是路由器密码





打开yeelight手机app的第三方控制
不然树莓派无法控制小米台灯

配置完成后运行一下试试

输入命令行homebridge



在putty中会显示二维码,扫一下就可以添加



完成后如上图
编辑一下名字,小米台灯即可



在底部控制中心可以拉出来控制面板



用Siri试一下能否正常运行




在putty中可以看到树莓派送达小米台灯的指令

到此已经可以正常运行了

下面配置一下开机自启动
不然每次都要输入homebridge命令sudo vi /etc/init.d/homebridge设置开机自启动脚本#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:   $remote_fs $syslog
# Default-Start:   2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

dir="/home/pi"
cmd="DEBUG=* /usr/bin/homebridge"
user="pi"

name=`basename $0`
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"

get_pid() {
    cat "$pid_file"
}

is_running() {
    [ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}

case "$1" in
    start)
    if is_running; then
      echo "Already started"
    else
      echo "Starting $name"
      cd "$dir"
      if [ -z "$user" ]; then
            sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
      else
            sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
      fi
      echo $! > "$pid_file"
      if ! is_running; then
            echo "Unable to start, see $stdout_log and $stderr_log"
            exit 1
      fi
    fi
    ;;
    stop)
    if is_running; then
      echo -n "Stopping $name.."
      kill `get_pid`
      for i in {1..10}
      do
            if ! is_running; then
                break
            fi

            echo -n "."
            sleep 1
      done
      echo

      if is_running; then
            echo "Not stopped; may still be shutting down or shutdown may have failed"
            exit 1
      else
            echo "Stopped"
            if [ -f "$pid_file" ]; then
                rm "$pid_file"
            fi
      fi
    else
      echo "Not running"
    fi
    ;;
    restart)
    $0 stop
    if is_running; then
      echo "Unable to stop, will not attempt to start"
      exit 1
    fi
    $0 start
    ;;
    status)
    if is_running; then
      echo "Running"
    else
      echo "Stopped"
      exit 1
    fi
    ;;
    *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
esac

exit 0创建完成后要给开机自启动脚本足够的权限sudo chmod 755 /etc/init.d/homebridge
sudo update-rc.d homebridge defaults至此,支持开机自启动的“基于HomeBridge的HomeKit & Siri智能家电树莓派桥接器“项目便完成了

页: [1]
查看完整版本: 基于HomeBridge的HomeKit & Siri智能家电树莓派桥接器

Baidu
map