步驟1:Raspbian設置
*** **** raspbian初始設置*******(假設所有用戶均為pi)
將語言設置為美國英語
擴展文件系統
(可選)高級-》重命名主機
sudo apt-get update
sudo apt-get upgrade
******* raspbian可選NTP更新*******
sudo apt-get install ntp
cd 。.
sudo nano etc/ntp.conf
使用以下命令更新ntp.conf文件。
# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
# pick a different set every time it starts up. Please consider joining the
# pool:
# server 0.debian.pool.ntp.org iburst
# server 1.debian.pool.ntp.org iburst
# server 2.debian.pool.ntp.org iburst
# server 3.debian.pool.ntp.org iburst
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
******* raspbian可選,重命名主機*********
sudo nano /etc/hosts
使用更改來更新文件
127.0.1.1 YOURPINAME
是raspberrypi(默認)
sudo nano /etc/hostname
使用更改來更新文件
YOURPINAME
sudo /etc/init.d/hostname.sh
******* raspbian可選靜態地址*********
(我發現這是需要準確性的,不太可靠。建議您通過家庭路由器為Pi分配一個靜態地址。)
sudo nano /etc/network/interfaces
使用所做的更改更新文件
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
#address XXX.XXX.XXX.XXX
#netmask XXX.XXX.XXX.XXX
#gateway XXX.XXX.XXX.XXX
#network XXX.XXX.XXX.XXX
#broadcast XXX.XXX.XXX.XXX
wpa-ssid YOURSSID
wpa-psk YOURSSIDPASSWORD sudo service networking restart
******* raspbian可選wifi訪問*********
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
使用chang更新文件es
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1 network={
ssid=“YOURSSID”
psk=“YOURSSIDPASSWORD”
proto=RSN
key_mgmt=WPA-PSK
pairwise=TKIP
auth_alg=OPEN
} sudo reboot
步驟2:OpenHAB設置
******* openHAB安裝*******
有關這些步驟的詳細信息,請點擊此處。
sudo mkdir /opt/openhab cd /opt/openhab
sudo wget https://bintray.com/artifact/download/openhab/bin.。.》》
(檢查當前版本)
sudo unzip distribution-1.7.1-runtime.zip sudo rm distribution-1.7.1-runtime.zip
cd addons/
sudo wget https://bintray.com/artifact/download/openhab/bin.。.
sudo unzip distribution-1.7.1-addons.zip
(這些是我指的附件。以后可以刪除未使用的附件)
sudo rm distribution-1.7.1-addons.zip cd 。. sudo cp configurations/openhab_default.cfg configurations/openhab.cfg
讓我們根據這篇文章將openHAB設置為自動運行。此代碼中的默認用戶為“ Ben”。但是,我從未設置過用戶,并且在我們的安裝中也沒關系。
cd /opt/openhab sudo nano /etc/init.d/openhab
(通過粘貼到文件中添加此代碼。)
#! /bin/sh
### BEGIN INIT INFO
# Provides: openhab
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: OpenHAB Daemon
### END INIT INFO
# Author: Thomas Brettinger
# Do NOT “set -e”
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC=“Open Home Automation Bus Daemon”
NAME=openhab
DAEMON=/usr/bin/java
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
ECLIPSEHOME=“/opt/openhab”;
HTTPPORT=8080
HTTPSPORT=8443
TELNETPORT=5555
#RUN_AS=ben
# get path to equinox jar inside $eclipsehome folder
cp=$(find $ECLIPSEHOME/server -name “org.eclipse.equinox.launcher_*.jar” | sort | tail -1);
DAEMON_ARGS=“-Dosgi.clean=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djetty.port=$HTTPPORT -Djetty.port.ssl=$HTTPSPORT -Djetty.home=$ECLIPSEHOME -Dlogback.configurationFile=$ECLIPSEHOME/configurations/logback.xml -Dfelix.fileinstall.dir=$ECLIPSEHOME/addons -Djava.library.path=$ECLIPSEHOME/lib -Djava.security.auth.login.config=$ECLIPSEHOME/etc/login.conf -Dorg.quartz.properties=$ECLIPSEHOME/etc/quartz.properties -Djava.awt.headless=true -jar $cp -console ${TELNETPORT}”
# Exit if the package is not installed
[ -x “$DAEMON” ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && 。 /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
。 /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (》= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
。 /lib/lsb/init-functions
#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --make-pidfile --pidfile $PIDFILE --chuid $RUN_AS --chdir $ECLIPSEHOME --exec $DAEMON --test 》 /dev/null \
|| return 1
start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --chuid $RUN_AS --chdir $ECLIPSEHOME --exec $DAEMON -- $DAEMON_ARGS \
|| return 2
# Add code here, if necessary, that waits for the process to be ready
# to handle requests from services started subsequently which depend
# on this one. As a last resort, sleep for some time.
return 0
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL=“$?”
[ “$RETVAL” = 2 ] && return 2
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ “$?” = 2 ] && return 2
# Many daemons don‘t delete their pidfiles when they exit.
rm -f $PIDFILE
return “$RETVAL”
}
#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
do_stop
sleep 1
do_start
return 0
}
case “$1” in
start)
log_daemon_msg “Starting $DESC”
do_start
case “$?” in
0|1) log_end_msg 0 ;;
2) log_end_msg 1 ;;
esac
;;
stop)
log_daemon_msg “Stopping $DESC”
do_stop
case “$?” in
0|1) log_end_msg 0 ;;
2) log_end_msg 1 ;;
esac
;;
status)
status_of_proc “$DAEMON” “$NAME” && exit 0 || exit $?
;;
#reload|force-reload)
#
# If do_reload() is not implemented then leave this commented out
# and leave ’force-reload‘ as an alias for ’restart‘。
#
#log_daemon_msg “Reloading $DESC” “$NAME”
#do_reload
#log_end_msg $?
#;;
restart|force-reload)
#
# If the “reload” option is implemented then remove the
# ’force-reload‘ alias
#
log_daemon_msg “Restarting $DESC”
do_stop
case “$?” in
0|1)
do_start
case “$?” in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
#echo “Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}” 》&2
echo “Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}” 》&2
exit 3
;;
esac
:
sudo chmod a+x /etc/init.d/openhab sudo update-rc.d openhab defaults sudo nano etc/rc.local
(通過粘貼到文件中添加此代碼。某些行可能已經存在,因此請粘貼缺少的內容)
# By default this script does nothing.
# By default this script does nothing.
sudo /opt/openhab/start.sh
fbset -xres 16 -yres 16 -vres 16 -depth 8
/opt/vc/bin/tvservice -o
# Print the IP address
_IP=$(hostname -I) || true
if [ “$_IP” ]; then
printf “My IP address is %s ” “$_IP”
fi
exit 0
******* openHAB可選演示安裝開始*******
sudo wget https://github.com/openhab/openhab/releases/download/v1.6.2/distribution-1.6.2-demo-configuration.zip
cd /opt/openhab sudo unzip distribution-1.6.2-demo-configuration.zip sudo rm distribution-1.6.2-demo-configuration.zip sudo chmod +x start.sh sudo 。/start.sh
去檢查一下。
http://192.168.X.XXX:8080/openhab.app?sitemap = demo 。..(使用您的Pi的IP地址)
步驟3:綁定和您的第一個開關
******* openHAB可選Samba安裝**** ***
(用于輕松訪問配置文件。CATION-您具有刪除/修改的root權限)
sudo apt-get install samba samba-common-bin sudo nano /etc/samba/smb.conf # Change this to the worgroup/NT-domain name your Samba server will part of
workgroup = YOURWORKGROUP
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
wins support = yes
#add to the last line
[OpenHAB]
comment = OpenHAB
path = /opt/openhab
browseable = Yes
writeable = Yes
only guest = no
create mask = 0777
directory mask = 0777
public = no
force user = root sudo smbpasswd -a pi
(將密碼設置為所需的任意值)
您現在應該可以從PC(通過LAN)訪問openHAB目錄。
******* openHAB設計器*********
下載并按照安裝說明進行操作。
https://bintray.com/artifact/download/openhab/bin/。..
通過samba通過網絡文件夾訪問openHAB配置文件夾。
[查看圖像]
******* openHAB zwave綁定*********
轉到此處獲取有關zwave網絡的更多信息http://www.vesternet.com/resources/technology-ind 。..
sudo nano /opt/openhab/configurations/openhab.cfg
查找標題為 Z-Wave Binding”的部分。
您只需激活2個屬性(通過刪除前面的#)即可。
zwave:port 是Z-Wave控制器的端口。如果您有raZberry,則為/dev/ttyAMA0 。 USB記憶棒將為/dev/ttyUSB0 。
zwave:healtime 是每天進行網絡修復的時間。您可能可以將其保留為2(2AM)。
cd /opt/openhab sudo wget sudo unzip habmin.zip sudo rm habmin.zip
將您的z波設備添加到網絡中,然后根據需要進行關聯。
http://192.168.2.100:8080/habmin/(您的IP)
[查看圖片]
示例項目
調光器test_dimmer2“調光器2 [%d %%]”(zwave){zwave =“ 11”}
聯系Door_Switch“門傳感器[%s]”(zwave){zwave =“ 10: command = switch_binary,respond_to_basic = true“}聯系Door_Alarm”門防拆[%s]“(zwave){zwave =” 10:command = alarm“}
Number Door_Battery”門電池[%d %%]“”(zwave ){zwave =“ 10:command = battery”}
******* openHAB設置您的第一個站點*********
轉到打開openHAB Wiki并閱讀。
摘要:
項-是家庭自動化網絡中每個節點的列表。向網絡添加內容時,從此處開始。
持久性-允許您記錄輸入。規則-通常是一個(如果是-然后是那個)真正使您回家自動化的規則。
腳本-我不使用這些
站點地圖-這是您通過web訪問openHAB的主頁。您可以有多個。
Transform-允許您將每個節點提供的文本更改為您的首選項。
讓我們設置zwave調光器(下面引用的文件附在這篇文章中)
確認在openhab.cfg文件中啟用了zwave綁定。我們之前做了這個。
確認已安裝zwave附加組件。我們做了耳環。
\\ YOURPI \ OpenHAB \ addons \ org.openhab.binding.zwave-1.7.1
將新節點與zstick關聯。說明在這里。
從openHAB管理界面(habmin)獲取節點信息。這是較早安裝的。
http://XXX.XXX.XXX.XXX:8080/habmin/(在您的pi上)
您可能需要基于以下內容分配“關聯組”和“配置參數”在您的節點上。調光器通常不需要這樣做。
獲取節點號。在我的情況下11個
[請參見圖片]
對項目列表中的節點進行編碼
\ OpenHAB \ configurations \ items \ HAB.items(我正在命名此HAB。隨著我們的前進,您會看到。)
將以下行添加到openhab
Dimmer light_living_dimmer “Living Rm Dimmer [%d %%]” (all,zwave,lights) { zwave= “11” }
Dimmer-是節點類型
light_living_dimmer-是節點的名稱。我按類型命名所有項-位置-特異性
“ Living Rm Dimmer [%d %%]”-是出現在GUI(瀏覽器或應用程序)中的名稱和值
滑塊-是圖標。在這種情況下,幻燈片可讓您通過GUI
(所有,zwave,燈光)調整亮度-這些是組。它們有助于在站點地圖上顯示多個項目(通過組)。它們還有助于一次將規則應用于多個項目。
這些組也必須在Dimmer行下的openhab HAB.items中列出
Group all
Group zwave
Group lights
{zwave =“ 11”}-告訴openHAB它與zwave節點11接口。
將該項目添加到您的站點地圖中
\ OpenHAB \ configurations \ sitemaps \ HAB.sitemap
將以下幾行添加到站點地圖中
sitemap HAB label=“My openHAB”
{ Frame label= “Switches” icon= “light_switch” { Group item= lights label=“Lights” icon=“light_switch”
}
}
在這種情況下,“燈光”組中的所有項目都將顯示在這個框架中。您也可以單獨添加項目。
讓我們設置一個基于簡單cron(時間)的規則
\ OpenHAB \ configurations \ rules \ HAB.rules
我使用http://www.cronmaker。 com/來延長計劃時間
繼續并添加一些庫和規則。
import org.openhab.core.library.types.*
import org.openhab.core.persistence.*
import org.openhab.model.script.actions.*
import java.lang.Math
import org.openhab.core.library.types.DecimalType rule “Trigger Turn Light up to 75% at 1900”
when
Time cron “0 0 19 1/1 * ? *”
then
sendCommand(light_living_dimmer , 75)
}
end rule “Trigger Turn Light off at 2200”
when
Time cron “0 0 22 1/1 * ? *”
then
sendCommand(light_living_dimmer , 0)
}
end
僅此而已。玩得開心!
步驟4:Raspbian可選USB音頻
我無法使用openHAB通過USB運行音頻。如果可行,請在評論中發布解決方案。
Syba USB 2.0外部虛擬7.1環繞聲卡適配器
我可以讓Pi與USB音頻配合使用。對于openHAB來說,這將是無效的。可能是Java問題?
弄清楚您的芯片組
首先要使Raspi 關閉/關閉(執行干凈操作)。關閉!),然后插入USB聲卡。
登錄后,鍵入 dmesg |。 grep cm109 查看啟動消息。如果您使用的是 CM109 芯片組
圖像1
,則應該看到關于 cm109 的幾行,或者如果什么都沒有出現,嘗試 dmesg | grep 耳機,您將看到 C-Media USB耳機設置驅動程序。這表示其為 CM耳機
圖片2
,或者如果未顯示任何內容,請嘗試 dmesg | grep C-Media ,您會看到一些C-Media注釋,但沒有提及cm109驅動程序。這表示其 CM108
圖像3
CM耳機類型
類型 dmesg 查看啟動消息。您應該會看到許多關于 C媒體USB耳機套件
圖片4
的信息,如果您鍵入 lsusb ,您應該會看到對 C-Media Electronics音頻適配器的引用,但沒有提及 CM108 ,并且VID/PID為0x0d8c:0x00c
Image 5
沒什么特別的事情要做!歡呼!繼續進入“更新ALSA配置”部分
更新alsa選項
先備份
sudo cp /etc/modprobe.d/alsa-base.conf /etc/modprobe.d/alsa-base-1.conf
我們將進行編輯帶有
sudo nano /etc/modprobe.d/alsa-base.conf
的音頻系統配置文件,但除了最新的Raspbian版本外,請查找以下內容:
#options snd-usb-audio index=0
將其更改為:
options snd-usb-audio index=0
注意,我們在行的開頭刪除了#。
對于最新的Raspbian版本,請查找以下行:
options snd-usb-audio index=-2
在這種情況下沒有要刪除的#號,只需將索引從-2更改為0:
options snd-usb-audio index=0
圖像6
就是這樣!現在,使用 sudo reboot 重新啟動并再次登錄,您可以通過runnig使用揚聲器測試進行測試
speaker-test -c2 -D hw:0,0
這會產生白噪聲通過聲卡上的左右“揚聲器”。發出聲音后,請嘗試播放帶有音頻的音頻文件(對于WAV文件,不是MP3)
aplay /usr/share/scratch/Media/Sounds/Animal/Bird.wav aplay /usr/share/sounds/alsa/Front_Center.wav
如果要播放音樂,您可以嘗試
sudo apt-get install mpg123 mpg123 http://voxsc1.somafm.com:8882
如果您想按命令播放MP3,請查看本教程,其中涵蓋了如何進行設置
耳機vs音頻卡
別忘了,您在Pi上仍然擁有內置的耳機插孔,現在稱為卡1 (不是默認的卡0 )
圖片7
如果您想再次通過該插孔玩游戲,請用-指定卡1 D hw:1,0 代替 -D hw:0,0
speaker-test -c2 -D hw:1,0
責任編輯:wv
-
Zwave
+關注
關注
0文章
8瀏覽量
12116 -
raspbian
+關注
關注
0文章
17瀏覽量
4264
發布評論請先 登錄
相關推薦
評論