智能家庭改造計劃

目標

序號 內容 狀態
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 home-assistant@homeassistant.service

20180409

  • 完成部署刷機電腦,win7環境。臨時解決接口問題
  • 報廢a7jr

20180410

使用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
After=network.target
[Service]
Type=simple
ExecStart=/home/pi/frp/frpc -c /home/pi/frp/frpc.ini
Restart=on-failure
RestartSec=5
[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 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
查看日志:sudo journalctl -u home-assistant@homeassistant.service -f
重啟:sudo systemctl restart home-assistant@homeassistant.service

  • 設備追蹤
  1. asus-merlin只開了telnet。所以protocol填telnet,登錄成功。參考device_tracker
  2. 更新時間>3分鐘
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容