My Home (0x00)

2018-03-04  本文已影响172人  游城十代2dai

0x00 主题

对于智能家居, 我使用过几款设备, 像是空调, 墙壁开关, 电暖气, 扫地机器人

但是, 这些不能满足我的一点就是我都要下载他们自己的 APP 才能够使用, 后来比较喜欢买阿里智能可以支持的设备, 因为选择比较多, 而且由阿里统一管理, 很不错

后来, 由于我使用的是苹果手机, 算是一个果粉, 不能使用 HomeKit 来控制我的智能硬件, 总感觉是一种遗憾, 再加上 lifesmart 的设备价格贵的要死, 更是一种遗憾了, 只憾自个为啥没有钱😂

经过搜索了解到 HomeBridge 俗称 HB, 通过 HB 又了解到 HomeAssistant 俗称 HA, 通过这两个就可以把一些非苹果认可的硬件接入 HomeKit, 深入了解才发现并不是所有的都可以, 这里面有很多坑, 我还只是个入门

0x01 设备需求

  1. 永不关机的系统,建议树莓派 3
  2. TF卡, 容量的话我建议16g
  3. 制作系统所用工具, Mac 选择 ETCHER, Win 选择 Win32DiskImager
  4. 还有就是能够接入的只能硬件(小米的占了绝大多出)

0x02 我参考的相关链接


0x03 我的安装

购买了树莓派, 将树莓派的散热片和风扇安装好, 这些都是单独买的, 我感觉长期跑的服务器还是要有这些的

这条线就是风扇
散热片安装位置

硬件组装好之后就是安装系统了

系统我选择的是 Hassbian 镜像安装

  https://github.com/home-assistant/pi-gen/releases/
sudo systemctl enable install_homeassistant.service
sudo systemctl start install_homeassistant.service
sudo systemctl stop home-assistant@homeassistant.service

sudo su -s /bin/bash homeassistant

source /srv/homeassistant/bin/activate

pip3 install --upgrade homeassistant

exit

sudo systemctl start home-assistant@homeassistant.service
用户名:pi
密  码:raspberry
password
sudo dpkg-reconfigure tzdata
# 选Asia, 再选Shanghai即可, 然后查看下时间
date -R
# 停止HomeAssistant
sudo systemctl stop home-assistant@homeassistant.service
# 启动HomeAssistant
sudo systemctl start home-assistant@homeassistant.service
# 重新启动HomeAssistant
sudo systemctl restart home-assistant@homeassistant.service
# 查看HomeAssistant状态
sudo systemctl status home-assistant@homeassistant.service

0x04 工具

# 安装命令
sudo apt-get install -y samba

# 设置用户名密码
sudo smbpasswd -a pi # 这个 pi 就是用户名, 可以自己写

# 编辑配置文件
sudo nano /etc/samba/smb.conf  # 看个人习惯了, 有的喜欢用 vim, 新学的这个 nano 所以我都是用的 nano

# 粘贴下面的代码
[global]
netbios name = raspberrypi
server string = The Pi File Center
workgroup = WORKGROUP
hosts allow =
remote announce =
remote browse sync =

[HOME ASSISTANT]
path = /home/homeassistant/.homeassistant
comment = No comment
browsable = yes
read only = no
valid users =
writable = yes
guest ok = yes
public = yes
create mask = 0777
directory mask = 0777
force user = root
force create mode = 0777
force directory mode = 0777
hosts allow =

[PI]
path = /home/pi
comment = No comment
browsable = yes
read only = no
valid users =
writable = yes
guest ok = yes
public = yes
create mask = 0777
directory mask = 0777
force user = root
force create mode = 0777
force directory mode = 0777
hosts allow =
# 按键盘上的Ctrl+X键,输入 Y,保存退出
# 重启 Samba
sudo service smbd restart
# 安装
sudo apt-get install mosquitto

# 设置mqtt用户名 密码
sudo nano /etc/mosquitto/mosquitto.conf

# 插入在最后, 复制粘贴下面代码
allow_anonymous false
password_file /etc/mosquitto/pwfile

# 创建密码文件,举例用户名是 pi,输入两次你要设置的密码即可
sudo mosquitto_passwd -c /etc/mosquitto/pwfile pi

# 设置开机启动
sudo /etc/init.d/mosquitto enable
# 安装
sudo hassbian-config install mariadb

# 新建数据库
sudo mariadb -u root -p

# 按提示输入密码,然后新建数据表
# 下面可以直接复制到终端一次执行
# 但是复制前请修改成你自己要的数据库管理账号( pi )和密码( mima )
# 不然的话还要删除, 对于小白来说不好懂
CREATE DATABASE hass_db;
CREATE USER 'pi'@'localhost' IDENTIFIED BY 'mima'; 
GRANT ALL PRIVILEGES ON *.* TO 'pi'@'localhost';
FLUSH PRIVILEGES;
exit

# 在 configuration.yaml 增加下面代码 (请注意账号密码)
recorder:
    purge_interval: 2 #每两天执行一次清理,重启会重置
    purge_keep_days: 5 #历史数据保存的天数
    db_url: mysql://pi:mima@localhost/hass_db?charset=utf8

删除数据库命令为 mysqladmin -u root -p drop 数据库名称, 基本命令查看这个博客
还有那个配置文件, 通过 smb://树莓派 IP, 在 finder 中进行 cmd + k, 输入命令然后需要你输入账号密码, 这就是上一个工具 Samba 的作用, 进入后就能找到 HomeAssistant 硬盘, 然后里面就有 configuration.yaml

# 安装 Screen 和 Git
sudo apt-get install -y screen git

# 安装 NodeJS
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

# 安装依赖包 libavahi
sudo apt-get -y install libavahi-compat-libdnssd-dev

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

cd /usr/lib/node_modules/homebridge/

sudo npm install --unsafe-perm bignum

cd /usr/lib/node_modules/hap-nodejs/node_modules/mdns

sudo node-gyp BUILDTYPE=Release rebuild

# 安装一个 HomeBridge 的插件 HomeBridge-HomeAssitant
cd /

sudo npm install -g homebridge-homeassistant

# 先运行一次程序, 按理说是能成功的, 不成功就在装一遍, 16G 内存足够用了, 不用担心内存问题

homebridge

# 键盘输入 Ctrl+C 停止 homebridge 运行
cd /home/pi/.homebridge

sudo nano config.json

# 粘贴以下内容
{
  "bridge": {
    "name": "HomeKit",
    "username": "F4:0F:24:19:81:BA",
    "port": 51826,
    "pin": "123-45-678"
  },
  "platforms": [
    {
      "platform": "HomeAssistant",
      "name": "HomeAssistant",
      "host": "http://192.168.2.2:8123",
      "password": "你的密码",
      "supported_types": [
        "binary_sensor",
        "cover",
        "fan",
        "garage_door",
        "input_boolean",
        "light",
        "lock",
        "media_player",
        "rollershutter",
        "scene",
        "sensor",
        "switch",
        "climate",
        "script",
        "automation"
      ],
      "default_visibility": "visible"
    }
  ]
}

# 按键盘上的Ctrl+X键,输入 Y,保存退出
# 再次输入homebridge回车,检查运行有没有错误
# 没有问题的话就是成功了, 可以用自己的手机连一下 HomeKit 
# 设置 homebridge 自启动服务 (没有文件的提示可以不用管, 启动几次之后再执行一遍就可以了)
cd /

sudo useradd --system homebridge

sudo mkdir /var/homebridge
# 特别注意下面这个, 每次修改完 config.json 的时候都要执行, 然后重启 homebridge, 不然的话不能自启动成功
sudo cp ~/.homebridge/config.json /var/homebridge/
# 特别注意下面这个, 每次修改完 config.json 的时候都要执行, 然后重启 homebridge, 不然的话不能自启动成功
sudo cp -r ~/.homebridge/persist /var/homebridge

sudo chmod -R 0777 /var/homebridge

# 然后
cd /etc/default

sudo nano homebridge

# 粘贴以下内容

# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/homebridge

# If you uncomment the following line, homebridge will log more 
# You can display this via systemd's journalctl: journalctl -f -u homebridge
# DEBUG=*

# 然后
cd /etc/systemd/system

sudo nano homebridge.service

# 粘贴以下内容

[Unit]
Description=Node.js HomeKit Server 
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/lib/node_modules/homebridge/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

# 设置开机启动
cd /

sudo systemctl daemon-reload

sudo systemctl enable homebridge

# 重启树莓派
sudo reboot
#启动
sudo systemctl start homebridge
#重启
sudo systemctl restart homebridge
#查看状态
sudo systemctl status homebridge
#停止
sudo systemctl stop homebridge
#更新
sudo npm upgrade -g homebridge-homeassistant
#卸载
sudo npm remove -g homebridge-homeassistant


这是 My Home 的第一篇, 我也是刚刚入门, 还剩下最后一个设置 WiFi, 我们总不能一直给树莓派插着网线吧😁


sudo iwlist wlan0 scan 
结果
每一个 Cell 都是我们能查看的一个 WiFi, 其中 ESSID 就是 WiFi 名称, 记录下来
ps: 注意 这里搜到的 WiFi 都是可以用的, 千万不要因为知己知道 WiFi 名称就手动写上去, 因为我坑过, 忘记了硬件只支持 2.4G 信号网络, 不支持
5G 的, 当时弄不上去闹死心
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf  

# 在这个文件最后添加 WiFi 的名字和密码
network={  
    ssid="XXXX"  
    psk="XXXX"  
}  

# 这是最简单的写法了, 要是想写安全协议什么的也可以不影响什么, 最后重启你的 Raspberry
sudo reboot

单个 WiFi 的参考地址
多个 WiFi 的参考地址

PS: 移除 apt-get 的工具, 使用 sudo apt-get --purge remove 包名, 东西删除完成后执行 sudo apt autoremove 在清理一下, 关于简单的 apt-get 在这里有介绍

上一篇下一篇

猜你喜欢

热点阅读