自用的的家庭物聯網開發筆記
環境部署好以後就是安裝homeassistant,這裡直接用pip安裝,安裝的過程中會各種error,開-v會發現2個錯誤,乙個是setuptools的(egg_info錯誤),另乙個是wheel的錯誤,對這幾個包公升級即可正常安裝了。
用putty或者其他的ssh工具連上路由器,執行安裝命令
#安裝所需依賴包
opkg update
opkg install python python3 python3-pip python3-dev python3-cryptography gcc make node-npm
pip3 install --upgrade setuptools
pip3 install --upgrade virtualenv
pip3 install --upgrade wheel #出現wheel錯誤時執行
安裝homeassistant
#建立虛擬環境
cd ~
virtualenv homeassistant
cd homeassistant
source bin/activate
pip3 install --upgrade homeassistant
安裝node-red,炒雞好用的圖形程式設計工具,有了這個你再也不會去摸homeassistant那蹩腳的指令碼了。
node-red 通過npm安裝,另外編譯過程中需要cc,還得在/usr/bin/下面建立乙個符號鏈結cc到gcc上面去。安裝中會報錯說找不到lpthread,因為這個函式在musl裡已經被打包進libc.so,編譯器肯定會找不到這個庫,需要執行ar建立乙個來欺騙編譯器通過。
ln -s /usr/bin/gcc /usr/bin/cc
ar -rc /usr/lib/libpthread.a
npm的官方源實在是太慢了,切換到阿里的映象上
npm config set registry --global
npm config set disturl --global
安裝node-red以及配套的homekit和homeassistant外掛程式。劃重點,這裡的--unsafe-perm很重要,不帶會出現各種permission denied。npm有個奇怪的邏輯,根據官方doc描述,如果用root使用者執行npm他會進行降權,結果許可權就會變成nobody造成目錄無法訪問。
npm install -g --unsafe-perm node-red
npm install -g --unsafe-perm node-red-contrib-homekit
npm install -g --unsafe-perm node-red-contrib-home-assistant
cd ~
source bin/activate
自此,路由器側所需的全部軟體包準備就緒。
1.hass啟動指令碼
#!/bin/sh /etc/rc.common2.node-red啟動指令碼# /etc/init.d service script for home assistant
start=99
pre_exec="source /root/homeassistant/bin/activate;"
hass_bin="hass"
pid_dir="/var/run"
pid_file="$pid_dir/hass.pid"
config_dir="/root/.homeassistant"
log_dir="/root/.homeassistant"
log_file="$log_dir/home-assistant.log"
flags="-v --config $config_dir --pid-file $pid_file --log-file $log_file --daemon"
start()
stop()
因為直接啟動node程式會存在無法守護的問題,所以實際上用了forever來啟動
npm install -g --unsafe-perm forever
system v init指令碼如下
#!/bin/sh /etc/rc.common
# /etc/init.d service script for node-red
# file name node-red
start=99
forever_bin="node /usr/bin/forever"
pid_file="/var/run/node-red.pid"
user_dir="/root/.node-red"
port=1880
flags="--userdir $user_dir --port $port"
restart()
start()
stop()
逆向工程 0x02
常用的彙編指令 指令示例 含義說明 movmov eax,ecx eax ecx 將ecx的值存入eax addadd eax,ecx eax ecx 將eax的值加上ecx的值 subsub eax,ecx eax ecx 將eax的值減去ecx的值 incinc eax eax 將eax的值加1...
招聘程式設計題0x02
python3 coding utf 8 在4x4的棋盤上擺滿了黑白棋子,黑白兩色的位置和數目隨機其中左上角座標為 1,1 右下角座標為 4,4 現在依次有一些翻轉操作,要對一些給定支點座標為中心的上下左右四個棋子的顏色進行翻轉,請計算出翻轉後的棋盤顏色。給定兩個陣列a和f,分別為初始棋盤和翻轉位置...
科協預招新0x02
恭喜大家通過了智慧型車的預招新 以下是第二次的小作業,希望在一月前上交相應學長。硬體部分在完成原理圖以及pcb設計後,聯絡學長,帶你去完成,一款從畫圖到成品都由你親手製作的腐蝕電路板,實現相應的功能。想想就有成就感 使用微控制器 51,32都可,不限制微控制器型別 分別實現功能。若對題目有疑問可以聯...