智能家庭改造计划

目标

序号 内容 状态
1. 了解当前温湿度,提前准备是否使用空调暖气 CHECK
2. 床头灯的远程控制,via手机、遥控器联动 CHECK
3. ios 安卓 电脑多平台通用,同时hb ha CHECK
4. lg g pad旧物利用,作为控制终端使用 CHECK
5. 室内机apk 部署于lg g pad上 CHECK
6. 树莓派作为主控隐藏化 CHECK
7. 改造家庭局域网络,分析mesh网络与电力猫差别 CHECK
8. 修复电力猫dns错误 CHECK //Newifi问题
9. 路由器多功能 CHECK
10. 目前的灯光控制优化,增加射频遥控器控制已有射频开关 需购博联rm pro POSTPONED

现状

  1. 已有树莓派,安装stretch后docker下安装hassio+homebridge插件

  2. 智能装备有

米家:

  • 网关二代 * 1
  • 温湿度传感器 * 2
  • 开关 //20180325购入
  • zigbee版插座 //20180325购入

yeelight:

  • 床头灯蓝牙版

射频遥控开关:

  • 单火线版 * 2 (不同品牌)

射频电源插座:

  • 单品牌 * 2 (遥控器不灵,需要配对,//已修复、原因为电池导片生锈导致接触不良,铲掉即可,但其中一个插座配对无效)

控制终端:

  • intel nuc 6i5syh
  • lg g pad v500 android
  • iphone7、 iphone6p、ipad mini4
  • maybe galaxy s7 and iphone7p

输入输出设备:

  • 罗技k380、thinkpad蓝牙鼠标、magic mouse2、magic keyboard(g6)、罗技mk270
  • dell u2415h 23.8寸显示器
  • sharp 47寸电视
  1. 网络架构
  • 主路由器: 电信光猫、 Tenda千兆电力猫(pw3)
  • 从路由器:Tenda千兆电力猫(pa3)*2
    -- 设备均下挂于Tenda下
  • 外网访问: TeamViewer(nuc, raspberry pi3b, yoga book, iPad mini 4) 、Ngrok内网穿透(natapp)用于DiskStation( File, Video, Audio)、Nat123(备用访问) 、FRP、域名
  • 内网访问: ds-nuc( DiskStation), Desktop-nuc( NUC)

规划

计划

1. 总体计划

2. 待购清单

设备 参考价格
broadlink rm pro 140
米家空调伴侣升级版 199
客厅柜式空调 3p ???
mesh路由器 1000以内
墙内火线开关 68一个

3. 下一步目标

  1. 树莓派备份 DONE!

  2. 树莓派wifi固定ip DONE!

  3. 树莓派yeelightbt整合入HA PARTIALLY DONE! yeelightbt整合入PYTHON,且可被HA识别。运行出错。

  4. Homebridge插件yeelight 链接床头灯 DONE!

  5. 开关控制温奶器电源 DONE!

  6. 备案 done!20180404

  7. FRP双开 done!

  8. 续费cvm done! //2019-04-04 10:02 到期

  9. HA、HB重复识别问题配置解决 DONE!

  10. 验证开关HB可用 DONE!

  11. 修正rsync文件较大问题 目前可用,4g仅多80mb。可能是docker问题 DONE!

  12. 开搞平板电脑,刷机。弄台能刷机的电脑Done x81s

  13. 部署lg驱动,备份win7 DONE!

  14. 研究降级及root done!

  15. 刷第三方rom,选择aosp还是第三方 lineageOS 7.1.2 done!

  16. 尝试安装室内机 done!

  17. 研究室内机是否可用

  18. nuc远程开机 done!

  19. HA接入yeelightbt,使用custom_components,自己开发

  20. 学习nodejs编程方法,本地编译及调试yeelight_ble

3.2 操作记录

20180327

  • 购买腾讯cvm7天试用

  • 购买1年域名

  • 小米插座zigbee版、小米无线开关到货并连接上网关。触发可用。距离网关较远(卧室-客厅)//20180329, 改为卧室-小房间,经两日验证,关门后信号无法识别。需要稳定性还是放在一个房间或者仅隔一面墙。

  • 新增设备对HA识别需要重启HA服务,HB可自动识别

  • 新购入的micro hdmi、thinkpad 蓝牙鼠标、罗技k380已经部署在yogabook上。蓝牙鼠标有较明显延迟 //经x220 mac os验证为yogabook问题。//20180329 经yogabook驱动自动加载后修复该问题。

  • 部署frp 成功映射部分端口,提供服务有dsm、rdp、photo、ssh

参考:十分钟配置frp
简要步骤:

  1. 登陆64位linux服务器ssh
  2. 获取frp,最新版本
    参考语句

wget >https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_amd64.tar.gz

  1. 解压

tar -zxvf frp_0.16.1_linux_amd64.tar.gz

  1. 进入解压目录cd frp_0.16.1_linux_amd64
  2. 配置服务端(公网服务器)

[common]
bind_port = xxxx #与客户端绑定的进行通信的端口
vhost_http_port = xxxx #访问客户端web服务自定义的端口号

  1. 后台启动

nohup ./frps -c ./frps.ini &

  1. 配置客户端(略)
  2. 在客户端启动frpc -c ./frpc.ini

20180327

  1. frp双开、cvm1年
  2. 备份rpi,挂载ftp,策略:
  • 本地img镜像
  • 备份完成后复制到ftp目录中(nas上)

20180329

  1. 备份脚本验证后得出结论:所需空间比df -P大得多。(实际恢复出来没那么多)
  2. 正在尝试恢复。恢复成功! 实际占用空间比原计划多一些
  3. 验证脚本成功,修订脚本完成!脚本地址:rpi-bk.sh
    先执行sudo apt-get -y install rsync dosfstools parted kpartx exfat-fuse
    使用前确定挂载路径(U盘、移动硬盘、本地)、再重启后运行脚本

经验:

  • 使用curlftpfs无法加载ftp 上img文件,不能加载为读写,仅只读
  • 备份实际空间变化出入较大,比率由1.2->1.5

20180330

  1. 树莓派上设置静态ip成功(备用镜像,待运行镜像设置),设置方法:
  • 右键无线图标选择wireless and wired network settings
  • 设置ssid以及wlan0的固定ip,其他留空。勾选Automatically configure empty options
  • 重启树莓派
    注: 实际修改的文件为/etc/dhcpcd.conf , 末尾增加了如下内容

interface wlan0
inform 192.168.x.xx
SSID xxxx
inform 192.168.x.xx

  1. HA、HB重复识别问题配置解决
  • 使用HB的话,在HA的customize.yaml中将状态中的设备id的homebridge_hidden设为true:

group.all_switches:
  homebridge_hidden: true

  • 使用HA的话, 在HB的config.json 中"MiAqaraPlatform"下的defaultValue进行修改:

"defaultValue": {
#这个序列号在HOMEKIT中可查询到
  "xxx": {
     "PlugBase_Outlet": {
       "disable": true
     }
   }

  1. 验证HB可以控制小米插座,并可模拟出单击、双击(未验证)

  2. 小米插座使用HA,在HB中识别为开关,改为插座的方法:

switch.plug_xxx:
  homebridge_switch_type: outlet

20180402

  1. yeelight床头灯接入ha尝试(python-yeelightbt)。目前支持HA的yeelight插件仅发现 python-yeelightbt。测试后命令行可用。docker下不知道该如何安装,目前在pyhton虚拟环境成功安装。步骤如下:
  • 基于mossbian 0.3.1安装
  • 修改homeassistant密码及添加sudoers权限

sudo su
visudo
homeassistant ALL=(ALL:ALL) ALL
保存退出
passwd homeassistant
exit

  • 进入虚拟环境

sudo su -s /bin/bash homeassistant
cd /srv/homeassistant
source bin/activate

  • 安装yeelightbt

sudo apt-get install python-pip libglib2.0-dev git build-essential
sudo pip3 install construct==2.9.25
pip3 install --no-binary :all: bluepy
cd ~
git clone https://github.com/rytilahti/python-yeelightbt
cd python-yeelightbt
python3 setup.py build
sudo python3 setup.py install
cd /usr/local/lib/python3.5/dist-packages/
寻找bluepy目录,在目录下有bluepy-helper
sudo setcap cap_net_admin,cap_net_raw+eip bluepy-helper

  • 测试是否安装正常

yeelightbt scan或者sudo yeelightbt scan
以上步骤可以获取mac地址

  • 将yeelightbt添加入HA
  • sudo mkdir -p /home/homeassistant/.homeassistant/custom_components/light
  • sudo cp ~/python-yeelightbt/custom_components/light/yeelight_bt.py /home/homeassistant/.homeassistant/custom_components/light
  • 设置HA下的configuration.yaml

light:
  - platform: yeelight_bt
    devices:
      Bedside:
        mac: 'f8:24:41:xx:xx:xx'

20180403

  • 安装nodejs 使用国内源
  • 更换apt-get源

sudo leafpad /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
sudo leafpad /etc/apt/sources.list.d/raspi.list
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui

  • 添加nodesource配置

curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -

  • 替换源

sudo leafpad /etc/apt/sources.list.d/nodesource.list
https://deb.nodesource.com/node/替换为https://mirrors.tuna.tsinghua.edu.cn/nodesource/deb_9.x/
sudo apt-get update

  • 安装nodejs

sudo apt-get install -y nodejs

  • 替换npm源

npm config set registry https://registry.npm.taobao.org

  • mossbian 下使用hassbian-config安装homebridge

sudo hassbian-config install homebridge

20180404

  • 挂载ntfs
  • 安装ntgs-3g

sudo apt-get install ntfs-3g

  • 查看移动硬盘

sudo fdisk -l

  • 创建挂载点

sudo mkdir -p /mnt/ntfs

  • 挂载硬盘

sudo mount -t ntfs-3g /dev/sda1 /mnt/ntfs

  • 查看系统版本

lsb_release -a

hassbian-config安装的homebridge相关配置

Running as: homebridge
Configuration dir: /home/homebridge/.homebridge/
Start service: sudo systemctl start homebridge.service
Stop service: sudo systemctl stop homebridge.service

Restart service: sudo systemctl restart homebridge.service - You have to do this when changing configuration.
Service status: sudo systemctl status homebridge.service
View Log: sudo journalctl -f -u homebridge

20180404

  • Yeelight床头灯成功接入HB,步骤:
  • 切换至homebridgey用户并加入sudoer
  • 安装环境

sudo apt-get install libbluetooth-dev libudev-dev
Go to your node_modules folder
(You can find it by using by npm -g root)
sudo npm install -g --unsafe-perm noble
会出现err,可无视optional dependence,usb等
sudo apt-get install libcap2-bin
Run following command:
sudo setcap cap_net_raw+eip $(eval readlink -fwhich node)
Run following command:
sudo hciconfig hci0 up
sudo hciconfig hci0 reset

  • 安装 homebridge-re-yeelight-ble

sudo npm install -g homebridge-re-yeelight-ble

  • 配置config.json

"platforms": [
  {
    "platform": "ReYeelightBLEPlatform",
    "defaultValue": {
      "f8:24:41:e9:xx:xx": "Bedside Lamp"
    }
  }
]

  • 重启Homeassistant

sudo systemctl restart [email protected]

20180409

  • 完成部署刷机电脑,win7环境。临时解决接口问题
  • 报废a7jr

20180410

  • 将frp部署至树莓派,自启动方法树莓派程序开机自启动方法总结,摘录:

使用systemctl设置服务
在/usr/lib/systemd/system/ 下新建文件frp.service

sudo nano /usr/lib/systemd/system/frp.service

如果目录system不存在,请自行创建:

sudo mkdir /usr/lib/systemd/system/

frp.service文件内容如下:

[Unit]
Description=frp
[Service]
Type=oneshot
ExecStart=/home/pi/frp/frpc -c /home/pi/frp/frpc.ini
[Install]
WantedBy=multi-user.target

这里直接指定启动文件的路径,无法指定到pi用户执行,所以只能在root用户下执行。

  • 设置服务自启动:

sudo systemctl enable frp.service

  • 查询状态:

sudo systemctl start frp.service

  • root lg g pad 8.3 刷入recovery和android 7.1.2
    具体参见lg g pad文档
  • 室内机apk安装至lg g pad等待测试

20180411

  • nuc成功远程开机
    需将win10的快速启动关闭,关闭方法:设置 -> 系统 -> 电源和睡眠 -> 其他电源设置 -> 选择电源按钮的功能 -> 更改当前不可用设置 -> 取消“启用快速启动”

20180412

  • x81s休眠情况下远程唤醒成功
    方法:在网络适配器中配置以太网卡->电源管理->取消 允许计算机关闭此设备以节约电源、 勾选 允许此设备唤醒计算机、勾选 允许幻数据包唤醒计算机
    高级中 唤醒数据包 启用

  • 增加外网唤醒页面,可远程唤醒网段内所有设备

20180416

  • mesh网络观点:没有ac+ap好。现有状态下可以分步实施。准备部署aimesh。已购入r6300v2,支持刷机成aimesh
    下一步准备根据5g情况分析是否合适aimesh

20180501

  • 手动更新HOMEASSISTANT

sudo systemctl stop [email protected]
sudo su -s /bin/bash homeassistant
source /srv/homeassistant/bin/activate
pip3 install --upgrade homeassistant
exit
sudo systemctl start [email protected]
查看日志:sudo journalctl -u [email protected] -f
重启:sudo systemctl restart [email protected]

  • 设备追踪
  1. asus-merlin只开了telnet。所以protocol填telnet,登录成功。参考device_tracker
  2. 更新时间>3分钟

你可能感兴趣的:(智能家庭改造计划)