openHAB2 Raspberry
beginner’s walkthrough – (Using Raspberry Pi 3 with openHAB2 and Z-Wave, WiFi
LED, Samsung TV and YahooWeather bindings for a home automation project)
Contents
Is openHAB2 the right choice for my home automation project?
A few words about the 2 in openHAB2:
Minimal setup of the controller:
Additional hardware for optional setup of the controller
with 7” Raspberry display:
Z-Wave sensors, switches and actuators
Chapter 3: Raspberry hardware and Raspbian OS installation
General information about Raspberry interfaces and GPIO
pins:
Preparing MicroSD card - writing Raspbian image to MicroSD
card (PC required):
Connecting the hardware to the Raspberry
Optional: Installation of 7” Raspberry display and display
case:
Display installation pictures:
Chapter 4: Raspbian basic configuration
Starting up Raspberry or the first time – Raspbian PIXEL
desktop
Basic terminal commands and functions:
Initial configuration of Raspbian
Optional: Change display orientation
Check the IP address of the Raspberry:
Optional Raspberry settings and configuration:
Check partition size on MicroSD card:
Create a Desktop icon and link it to a application
Enabling remote SSH access for root user:
Optional: Raspbian PIXEL screensaver (xscreensaver)
Configuration of xscreensaver:
Optional: Start Chromium Web server on Raspbian boot
Select the start URL for Chromium web browser:
Chapter 5: Setting up Raspbian for access via PC
Connect to the Raspberry terminal your windows system using,
KiTTY or PuTTY:
Optional: Connect to the Raspberry file system from your
windows system using WinSCP:
Optional: Generic samba user setup
Chapter 6: Installation of openHAB2 on Raspberry
Common openHAB2 service commands:
openHAB2 configuration for the samba server:
openHAB2 Privileges for Common Peripherals
Adding openhab user to groupds dialout an tty
Granting java environment access to serial ports
Chapter 7: Installation of Eclipse Smart Home Designer
Installation guide for windows (Eclipse Smart Home Designer
and Java Runtime Environment):
Chapter 8: Initializing openHAB2 (finally: first startup)
Chapter 10: General information about configuring openHAB2
Chapter 10: Configuring openHAB2 using PAPER UI
General process of adding new things to the configuration
Adding local things connected via network (IP)
Adding Things using YamahaReceiver Binding:
Adding Things using Samsung TV Binding:
Adding Things using WiFi LED Binding:
Adding online things connected via network (IP)
Adding Things using YahooWeather Binding:
Adding things connected via Z-Wave controller
Adding Z-Wave things using HABmin UI
For details documentation on the Z-Wave Binding usage in HABmin
consult:
The concept of Things, Channels, Items and Links
Creating the required items for my project
Now go on creating the items according to the list below
Chapter 11: Creating a dashboard for your home automation
project
Creating the myfirstrule.rules file
Basic tips for debugging rules
Creating an item the see the value of a variable of a rule
online
Creating a virtual switch on HABPANEL to use it in a rule
Further Rule examples based on this home automation project:
Switching ON/OFF switches based on luminance reading of the
multisensory
1st Draft |
This is the initial
version of the document with any feedback of the community. This version was
written with the focus on initial hardware and software setup which should
already have a good consistency. The openHAB2
configuration and real home automation part still needs some work done! Anyway this part
will be the part where you have to apply individual changes and go to the
forum for further help since no home automation project is similar to
another. You will find not
all the bindings utilized and not all the things added to the openHAB2
configuration of the used testbed system since I am building the testbed
system again from scratch. So in some places you find pictures missing or
description not being completed. I am also using a
parallel system (my current live home automation system) to check different
hardware configuration, especially when it comes to the displays or to Z-Wave
controllers. Testbed system: Raspberry Pi 3 MicroSD Sandisk
Ultra 32GB Power supply goobay
3,1A USB Mouse basic logitech USB Keyboard basic
Microsoft qwertz German layout Display HDMI
connection to 24” computer display Case no name incl.
ventilation Z-Wave controller UZB
Z-Wave PLUS USB stick by Z-Wave.Me Live home automation system: Testbed system: Raspberry Pi 3 MicroSD no name 16GB Power supply no name
3,1A incl. cable swith Bluetooth Keyboard
Rapoo Bluetooth Keyboard qwertz German layout Display 7” Raspberry
display Case premium case
for Raspberry Pi 7" Touch-Display (the closed version) Z-Wave controller Aeotec
by Aeon Labs Z-Stick Gen5 Live Z-Wave devices: Z-Wave Fibaro Double
Switch 2 Z-Wave Aeotec by
Aeon Labs ZW100 Multisensor Z-Wave Aeon Labs
ZW088 Z-Wave Key Fob, Gen5 Z-Wave NodOn Smart
Plug |
2nd
Drafty |
Bugfixing (mostly
typos) Minor rearranging to
content Major changes in -
Chapter 11: Creating a dashboard for your home automation project -
Chapter 12: Creating rules Further input in -
Section “Shopping list” -
Section “Adding local things connected via network (IP)” -
Chapter 12: Creating rules |
Be aware that openHAB2 is an OPEN home automation solution which is
strongly living from a very supportive community. If you want to have a plug
and play solution with supplier guaranteed service level and a high likeliness
that all the features are working and all the hardware is compatible, you might
be better off in getting a ready to use home automation kit including the
designated controller (like e.g. devolo or homematic IP). Consider this
especially if you are planning to do safety related automation or emergency
detection like fire alarm.
If you, on the other hand, are willing to spend a few hrs/days in
learning how to do a little installation and coding yourself and have no
problems with the service level of a Raspberry Pi 3 (it is not as failsafe as
other controllers) you might find a perfect environment with openHAB2 for your
low cost, very flexible and continuously improving home automation environment.
This tutorial is targeting beginners like me to get a step by step
guideline to get all the things installed. Since I am no coding expert and have
no experience in Raspberry and Raspbian I am trying to go through the things
step by step, so you should be able to get everything done, even without
exactly having to go into all the details. That is one of the reasons I am also
using the graphical GUI PIXEL for Raspbian since I thing it makes it easier for
the beginners to get started (and you might want to use PIXEL anyway when you
are using the Raspberry 7” display as interface for your home automation
controller)
This tutorial is also based on having
a Windows PC to support the setup process. You might be able to completely
do it without the support of an extra PC, if you can get a MicroSD card with a
pre-installed Raspbian OS and use the display options (the Raspberry 7” display
or HDMI Display) for the Raspberry.
DISCLAIMER:
This
tutorial might contain some typos, errors or ways of setting up, which can be
done in a better way. I am just reflecting my process of starting from scratch
and slowly working my way through hundreds of online tutorials, manuals, forum
threads etc. and on the way, highlighting the issues I had in getting things
working. There will be no guarantee that the given instructions are working for
your project as well.
Anyway I hope this tutorial will help some beginners to enjoy home
automation with openHAB2.
The 2 in openHAB2 is important! The tutorial is based on the openHAB2
and will not go into all the details of the old version.
You just have to be aware, that a lot of online documentation is still
for the openHAB version and will not
be applicable for openHAB2!
So the best thing is always to go to the official webpage of openHAB2
and start from there, and only if you really can’t find the information or the
link there, go to google and search for other solutions. I was always using the
search setting (last year) so it was more likely to the results considering
openHAB2 and not openHAB.
As mentioned before, I am basing this tutorial on the graphical GUI of Raspbian
named PIXEL so the shopping list is also containing parts for this optional
setup:
Raspberry
Pi 3 |
|
MicroSD
card 16GB (minimal to have some buffer for the future) Make sure you have the
right card reader to plug the MicroSD card into your computer! |
|
Designated
Raspberry power supply (min. 2,5A 5V, I recommend 3A) Do not use other USB chargers since insufficient power supply (shown
in GUI as lightening symbol in the upper right corner) will result in serious
issues like e.g. Bluetooth not working) A cable switch might be a good
thing since you might have to hard-reset your Pi in the early days more often
and the Pi itself does not have a power switch |
|
USB
Mouse |
|
USB
Keyboard |
|
HDMI
cable (full size to whatever your display needs) |
|
Ethernet
cable (optional, if you not want to use WiFi to connect the Raspberry to your
gateway) |
|
Raspberry
case (optional, will not be needed
if you are going for the 7” Raspberry display setup) |
|
Display
with HDMI input ( optional, will not
be needed if you are going for the 7” Raspberry display setup) |
|
(I found it very useful to have one permanent GUI interface mounted on
your controller, you can also use this touchscreen interface directly to
interact with your home automation):
Raspberry
Pi 7" Touch-Display |
|
Premium
case for Raspberry Pi 7" Touch-Display (closed version) often sold in
bundle with Touch-Display, should be available in black, white and
transparent This
is a very good case if you want to place the controller on a table or counter
since it is protecting the Raspberry from the back. |
|
Alternative: Cases for Raspberry
Pi 7" Touch-Display. You will find a wide range of other cases. The open
versions might give you a better access to the Pi GPIO pins or for changing
SD card. Please
consider: since you can rotate the image of the GUI on the display you can
also choose to switch from landscape to portrait orientation |
|
Bluetooth
keyboard (optional, since the optional on screen touch keyboard for Raspbian
PIXEL was not working without errors, I decided to go for a Bluetooth
keyboard which makes the typing much easier) |
|
If you want to use the Z-Wave technology for your home automation
project you have to have one Z-Wave controller connected to your Raspberry
NOTE: Be aware that the details
serial numbers or item names may vary since you have to always make sure to use
the hardware which is allowed in your country!
Aeotec
by Aeon Labs Z-Stick Gen5 Pros: -
Allows offline inclusion of Z-Wave devices which
makes it very easy since you only have to take the stick to the mounted
device, not the entire Raspberry Cons: -
Including battery powered devices into openHAB2
requires a special process (see tutorial) |
|
Alternative: UZB Z-Wave PLUS
USB stick by Z-Wave.Me Pros: -
Cheapest controller Cons: -
For inclusion, the controller has to be plugged into
the Raspberry, so for mounted devices like wall switches , you have to take
the Raspberry in close proximity of the device or do the inclusion before you
mount the switch inside the wall |
|
NOT REALLY an Alternative: RaZberry2 Z-Wave
Plus Daughter Card for Raspberry Pi Home Automation (not plug and play compatible with optional setup of the controller
with 7” Raspberry display!) Pros: -
will be mounted directly on the Raspberry so it is
not using a USB port Cons: -
will be mounted directly on the Raspberry which is
blocking the GPIO pins for e.g. the Display power supply or additional
cooling fans, so you have to manually solder the power wires at the back of
the razberry -
is using the i/o port of the Raspberry Pi 3 on board
Bluetooth, so a lot of additional configuration is needed to get the razberry
and the Bluetooth running in parallel. -
most expensive controller |
|
NOTE: Be aware that the details
serial numbers or item names may vary since you have to always make sure to use
the hardware which is allowed in your country!
Since I am doing a German based home automation project you may find
that some Z-Wave devices are not sold in your required country configuration (
e.g. Z-Wave NodOn Smart Plug not available e.g. in the US)
Z-Wave
Fibaro Double Switch 2, Z-Wave Plus Smart Switch (comes at almost the same
costs than the single switch and gives you 2 channels. Only reason to go for
single switch is you need the full power range of the single switch since the
double switch has slightly lower range) NOTE:
This switch is designed to be installed in the electrical power wiring of
your home (inside a distributor case). In some countries this may only be
allowed to be done by special trained staff (insurance and/or law). |
|
Aeotec
Multi-Sensor 6 ZW100-C - Z-Wave Plus |
|
Z-Wave
Aeon Labs ZW088 Z-Wave Key Fob, Gen5 |
|
Z-Wave
NodOn Smart Plug (not available e.g. in the US) |
|
NOTE: if you want to by other Z-Wave
devices always make your they are listed in the Z-Wave device list of the
openHAB2 Z-Wave binding to make sure they are supported correctly in the
context of openHAB2:
http://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list
A lot of things you are using at home are already connected to your LAN
and can be integrated into your openHAB2 home automation project if the right
binding is available for that device.
You can find an overview on http://docs.openhab.org/addons/bindings.html
NOTE: Be aware that not all the
bindings to include devices are already included in the stable version of
openHAB2 and may require a manual installation of a so called snapshot version
of the binding (how to install snapshot bindings is explained later in this
tutorial since we will need it for the WiFi LED controller)
WiFi
XCSOURCE Magic UFO-WiFi LED-Controller Type LD382 (other brand names might
work as well, but you have to make sure it is Type LD382, LD382A or LD686) REMARK:
I was using a WiFi controller on purpose since: -
it is only about half the price of a Z-Wave WiFi
controller -
you can control the device as well via smart phone
(like light to music feature of the app) But
some things you have to be aware of using WiFi LED instead of Z-Wave LED: -
you have to have a WiFi network to which your
Raspberry and your WiFi LED controller is connected -
you have to manually install a beta / snapshot
version of openHAB2 or manually install the WiFi LED Binding on top of the
package based installation of openHAB2 (see tutorial) |
|
RGB
LED stripe incl. power supply 12V DC bundle While
you can buy the stripe and the power supply bundle separately, most of the
times the bundle will come at the same price or even cheaper. The included
power supply plug should directly fit into the power inlet socket of the WiFi
controller. REMARK:
It also allows you to attach the stripe without soldering since you can just cut
the cable of the RGB bundle controller and use it to connect the LED stripe
to the WiFi controller. |
|
Optional:
White LED stripe Since
the WiFi LED-Controller is allowing you to at additionally control plain
colour LED stripe (or in case of controller type LD686 even two) you might want to get
an additional strip in e.g. plain white to create ab clear white
illumination. NOTE:
You might be fine with just the stripe if you already got the power supply
with the RGB stripe |
|
Optional
(in my case it was already there and I just included it into my project): Yamaha
Receiver RX-V581 |
|
Optional
(in my case it was already there and I just included it into my project): Samsung
TV Details MISSING NOTE: Even when the
binding is not officially supporting your TV you might be lucky |
|
My tutorial is using a MS-Windows windows machine for the PC part (You
should be able to get it done with Mac or Linux PCs as well, but you have to go
online to look up the differences and do some adaptions on the tutorial e.g.
mounting the Raspberry file system to PC)
The
latest Raspbian (Raspberry OS)
image You
have to download the “Raspbian Jessie with PIXEL - Image with PIXEL desktop
based on Debian Jessie” since this tutorial is using PIXEL |
https://www.Raspberrypi.org/downloads/Raspbian/ |
Etcher (to write the Raspbian
image to the SD-Card) |
|
Eclipse Smart HomeDesigner (optional but
strongly recommended for easy editing of OpenHAB2 configuration files; incl.
syntax highlighting) You
have to choose the right version for your PC |
https://www.openhab.org/downloads.html |
To use
Eclipse Smart HomeDesigner you need Java
Runtime Environment JRE (if not already installed on your PC) |
|
PuTTY or KiTTY portable to
access the Raspberry console from your PC |
https://portableapps.com/apps/internet/kitty-portable |
WinSCP portable to access Raspberry
file System directly from your PC (might become obsolete if you use a SAMBA
server on your Raspberry, see tutorial) |
How to download software will be explained in the tutorial, but as a
reference you will use
openHAB2 Package repository
based installation or manual installation (be aware that the file locations on
the Raspberry will be different based on which kind of installation you choose)
Samba server(for access of Raspberry
files from Windows machine; needed for Eclipse Smart HomeDesigner)
xscreensaver (optional if you are
using the display setup, to easy control screen blackening or screen savers)
Download latest Raspbian
Release (*.zip file) to a Windows folder |
|
Extract *.zip file
to receive *.img file |
|
Use Etcher to write
image to a MicroSD card
|
|
|
|
Connect
keyboard and mouse to the USB ports |
|
Insert
the MicroSD card (pins facing the circuit board) |
|
Connect
Raspberry with display using HDMI ( optional, will not be needed if you are going for the 7” Raspberry display
setup) |
|
Connect
the Raspberry with Ethernet cable to your gateway (optional) |
|
Connect
the power supply to the micro USB power input Make sure that you have
everything plugged in and the Raspberry is clear of any metal items since
this step is already powering up your Raspberry. |
|
The full tutorial will be found on:
https://www.element14.com/community/docs/DOC-78156/l/Raspberry-pi-7-touchscreen-display
and a clip on YouTube:
https://www.youtube.com/watch?v=tK-w-wDvRTg
Remark: I had an issue with
plugging in the power supply to the micro USB power input on the circuit board
of the display (like shown in the video). The Raspberry was still showing me
the low power symbol (lightening symbol on the upper right corner)
SOLUTION: I had to plug in the power
supply to the micro USB power input on the Raspberry itself. The display is now
powered via the jumper cables. The standard display case is also allowing for
both micro USB power inputs to be used.
NOTE: If the image on the display is
having the wrong orientation, you can rotate the image by changing the
configuration of Raspbian (see tutorial section Initial configuration of Raspbian)
Step 1 |
|
Step 2 |
|
Step 3 |
|
Step 4 |
|
Step 5 |
|
Step 6 |
|
Step 7 |
The
two other path cables (green and yellow can be ignored) |
Step 8 |
Assembly
of the standard display. (Make sure you have inserted the MicroSD card since
you won’t have access to the slot as soon as you mounted the case!) Just
pull the back plate off the case, insert the display including the mounted Raspberry
(make sure that the path cables and the display cables are not crushed
between case and board), tighten it with the 4 screws and put the back plate
into place Here
is a good clip on YouTube: https://www.youtube.com/watch?v=wpSxibZOmoo |
Since this tutorial is focussing on using the PIXEL GUI here are a few
basic tips
Raspberry start-up screen
PIXEL basic desktop (including the programs used in this tutorial) not
unlike other PC OS desktops:
network
configuration Bluetooth
configuration Terminal Applications menu (incl. access to
configuration) File manager Web browser
NOTE: If you are working
with the 7” Raspberry display setup you might need to flip/rotate the display
orientation. Just check the section” Optional: Change display orientation”
later in this chapter
NOTE: As soon as you have connected
the Raspberry to the network you might find it easier to open the Terminal
remotely using PuTTY. This also allows you to directly paste command lines from
this tutorial into the Terminal. (Right click in PuTTY terminal is pasting the
content of the clipboard into the terminal)
The full list can be found on:
https://www.Raspberrypi.org/documentation/linux/usage/commands.md
help |
Is
showing you basic commands |
sudo othercommand |
is
allowing you to run other commands as super user aka root user |
ls -la |
Shows
the files in a directory incl. additional information |
cd cd cd .. cd directory cd /directory/directory |
Is
changing the shell working directory. It can
be used with attributes: No
attribute => working directory is changed to user root directory. working
directory is changed to directory one level above working
directory is changed to the named directory inside the current
directory working
directory is changed to the directory defined by the full path /directory/directory . |
nano filename (sudo
nano filename) |
Is
stating a basic editor in the terminal to open or create a simple text or
configuration file, mostly you have to add a sudo if you want to be able to
write the files with root user rights. Closing the editor is done by ctrl+x
and then choosing whether you want to save your changes or not |
|
|
|
|
|
|
|
|
|
|
The following steps make sure, that basic Raspbian configuration is
done.
NOTE: There may be many tutorials in
how to set-up and configure Raspbian and going into more details about user
rights and other Raspbian features. This tutorial is showing the way which
worked for my project aiming to run openHAB2 on the Raspberry.
Since this tutorial is using the PIXEL GUI I always refer to the PIXEL
way of configuring and only go back to the terminal way (text only) if it is
required.
The 1.st thing you want to do is changing the localisation settings to
make sure your keyboard layout and WiFi settings are matching.
NOTE: Do not change the password
before you have changed the keyboard layout since you might put in a different
password than you expect (e.g. US qwerty vs. German qwertz results in “Raspberrz”
instead of “Raspberry”)
Open Raspberry
Pi Configuration Application
menu -Preferences --Raspberry
Pi configuration |
|
Go to
tab Localisation |
|
Select
Locale, Timezone, Keyboard and WiFi Country Locale: choose your
language and country Timezone: choose timezone Keyboard: choose keyboard
language and specific keyboard layout WiFi
Country:
choose country specific WiFi settings |
|
Accept
the reboot |
|
If you are working with the 7” Raspberry display setup you might need to
flip/rotate the display orientation for specific cases
Open
Terminal |
|
Open
boot config.txt file in nano editor |
sudo
nano /boot/config.txt |
Add
the line at the bottom of the file: (This
will flip the display orientation) |
lcd_rotate=2 |
Optional:
You can choose from different angles 0 degrees rotation or 90 degrees rotation or 180
degrees rotation or 270
degrees rotation or horizontal
flip or vertical
flip |
display_rotate=0 or display_rotate=1 or display_rotate=2 or display_rotate=3 or display_rotate=0x10000 or display_rotate=0x20000 |
Exit
and save the file |
<ctrl+x> <y> <Enter> |
Reboot
the Raspberry for the changes to take effect |
sudo reboot |
This is important to secure your standard Raspberry user “pi” before you
connect the Raspberry to the network.
NOTE: Make sure you have changed the
keyboard layout to your requirements before change the password.
Open Raspberry
Pi Configuration Application
menu -Preferences --Raspberry
Pi configuration |
|
Go to
tab System and select Change Password (Remark: you might not have the option
Expand Filesystem as shown in the picture) |
|
Enter
initial (for standard user “pi” it is “Raspberry” and your new password |
Raspberry yourpassword yourpassword |
This is required for the communication to the PC (SSH) and to the Z-Wave
stick (Serial)
Open Raspberry
Pi Configuration Application
menu -Preferences --Raspberry
Pi configuration |
|
Go to
tab Interfaces |
|
Enable
SSH (to access the Raspberry via Network) Enable
Serial (to enable Serial Port for Z-Wave controllers) |
SSH:
Enable Serial: Enable |
Either by
plugging in a Ethernet cable or by connecting to a WiFi network:
Click on the network symbol |
3 lines and 2 red crosses if no
connection is available |
Select WiFi network: |
yourwifi |
Enter WiFi password |
yourwifipassword |
To do so you have to check the IP address of the Raspberry in the
terminal
Start
terminal by clicking on the icon |
|
use
the command |
ifconfig |
Result:
the terminal shows you the ip configuration and the IP addresses for the
different connections |
Ethernet
cable: eth0
xxx.xxx.xxx.xxx or WiFi: wlan0 xxx.xxx.xxx.xxx |
NOTE: You might want to set your IP
address of the Raspberry to static, if you get problems with the lease time
setting of your gateway (IP address is changing whenever you reconnect to the
network)
Raspbian is proving online updates so make sure that you have the latest
installed before you go further in the configuration.
Start
terminal by clicking on the icon |
|
use
the command (be
aware that the upgrade function will take several minutes to complete if you
run it for the first time) |
sudo
apt-get update sudo
apt-get upgrade |
The following settings and configuration is just for additional
information and might not be needed to setup openHAB2. Some of the settings and
configuration might still be useful.
Make sure Raspbian is using the full capacity of the MicroSD card
(normally while starting up Raspbian for the first time, it is done
automatically and the Raspberry will restart automatically):
Open
Terminal |
|
use
the command |
sudo fdisk -l |
Result:
the terminal shows you the partition size of the two partitions on the MicroSD
card summing up to the total capacity |
Example
for 16 GB: |
If the
capacity is not completely used (e.g. you were using not a plain Raspbian
image) you have to expand the partitions manually in the terminal
configuration |
|
Start
terminal configuration with command |
sudo raspi-config |
Select
Option (Be aware that the option numbers might change in newer Raspbian
releases) |
7 Advanced Options |
Select
Option |
A1
Expand Filesystem Prompt
will tell you that the file system has been increased |
Now
select to exit the configuration |
<Finish> |
Allow
reboot |
<Yes> |
To be able to create a Icon you have to first create a *.desktop file
NOTE: This example is creating the
desktop icon for the user “pi”
Open
Terminal |
|
Go to
the directory desktop for your “pi” user |
cd /home/pi/Desktop |
Create
a specific desktop file using nano editor |
sudo nano yourdesktopfile.desktop |
Enter
parameters into the file accordingly Name: YourShortcutName Comment:
Your Shortcut Comment Icon: YourIcon.png Application
for shortcut: YourShortcutApp |
Desktop
Entry] Name=YourShortcutName Comment=Your Shortcut Comment Icon=/usr/share/pixmaps/YourIcon.png Exec=/usr/bin/YourShortcutApp Type=Application Encoding=UTF-8 Terminal=false |
Exit
and save the file |
<ctrl+x> <y> <Enter> |
Since by default the “root” disabled it can’t be used. You might want to
enable it for certain purposes like e.g. enabling the root user for samba file
server to get full access to the directories from a PC (see chapter setup samba
server)
NOTE: There is a reason for the “root”
being disabled! Enabling the user is allowing full access to the Raspbian and
therefore creating a security risk. Please always consider whether you really
want to enable this user!
Open
Terminal |
|
Since
the user already exists you just have to set the password NOTE:
you can also use the command to change the password later on |
sudo passwd root |
Just
enter twice the new password for the “root” user |
rootpassword rootpassword |
NOTE: There is a reason for the “root”
not being enabled for SSH! Enabling the user for SSH is allowing full remote
access to the Raspbian and therefore creating a significant security risk.
Please always consider whether you really want to enable this user for SSH!
Open
Terminal |
|
Open
sshd.config file in nano editor |
sudo
nano /etc/ssh/sshd_config |
Find
the section # Authentication in the file |
#
Authentication: LoginGraceTime
120 PermitRootLogin
without-password StrictModes
yes |
And
change the PermitRootLoing line to |
PermitRootLogin yes |
Exit
and save the file |
<ctrl+x> <y> <Enter> |
Reboot
the Raspberry for the changes to take effect |
sudo reboot |
If you are working with the 7” Raspberry display setup you might want to
use a screensaver as well.
Open
Terminal |
|
Install
xscreensaver and some additional screen saver themes |
sudo
apt-get install xscreensaver xscreensaver-data-extra xscreensaver-gl-extra <y> |
I am showing an example configuration which is first switching on a
screensaver and then turning off the display completely.
Open Screensaver
Preferences Application
menu -Preferences --Screensaver |
|
Configure
Display Modes Mode: <Only One Screen
Saver> Screensaver:
<Barcode> Blank
After: <5> minutes Cycle After:
<0> minutes NOTE:
This is just a sample configuration selecting one screensaver after 5 minutes |
|
Configure
Advanced Display
Power Management <check> Power Management
Enabled Standby
After <10> minutes Suspend
After <10> minutes Off
After <10> minutes <check>
Quick
Power-off in Blank Only Mode (Display Power Management) NOTE:
This is just a sample switching off the screen after 10 minutes |
|
Close the
Screensaver Preferences |
|
Open
Terminal |
|
Open
the autostart configuration file with nano editor |
sudo
nano /home/pi/.config/lxsession/LXDE-pi/autostart |
Add
the lines at the end of the file (ignoring error dialogs) |
@unclutter @chromium-browser --noerrdialogs |
Optional
parameters: --kiosk
(for full screen mode. NOTE: to exit full screen mode you have to press
“Alt+F4” on the keyboard of the Raspberry, so you have to have a keyboard
installed to exit this mode!) --incognito
(for incognito mode of the browser) http://yoururl.com
(for selecting the URL directly in the configuration file. NOTE: selecting
the URL via Chromium settings might be easier) |
@chromium-browser
--noerrdialogs --kiosk --incognito http://yoururl.com |
Exit
and save the file |
<ctrl+x> <y> <Enter> |
Check
if the browser is coming up after reboot |
sudo reboot |
NOTE: You can also select the URL in the autostart file, but using the
browser functionality is giving you a simpler access (no terminal) and you can
check the result without rebooting
Open Chromium
and go to the Settings (3
bullets icon) |
|
Select
in the On start-up chapter the option <check> Open a specific
page or set of pages And click
on the link <Set pages> to enter the requested start URL |
|
Enter
the requested start URL http://yoururl.com <OK> your URL Now
Chromium is allowing you to enter an additional URL which you can ignore |
|
ptional:
If you have completed your openHAB2 configuration and want to use HABPANEL as
GUI you can just use the URL or even start specific pages in the HABPANEL GUI
(just use the URL shown in the browser when you access the HABPANEL page) -
NOTE: If you are linking to pages hosted on the same raspberry, most likely
ou will receive an error message since on startup the service has not started
up. Just refresh the page after a few minutes. |
http://xxx.xxx.xxx.xxx:8080/start/index |
Open KiTTY or PuTTY
on your PC |
|
Enter Hostname (pi@
in front of the IP is giving the user you want to use for connecting, in this
case the standard user “pi”), Port and Connection type Select Open to
launch the terminal |
Hostname: pi@xxx.xxx.xxx.xxx Port:22 Connection type: SSH <Open> |
Optional save the
session |
Saved session yoursessionname <Save> |
On first connection
an security alert is coming which you have to accept |
Yes |
Now a terminal
window is opening on our PC asking you to enter the “pi” user password |
yourpassword |
The terminal window
is now starting up in the user home directory |
|
You can now use the
PC terminal window the same way you us the terminal on the Raspberry itself |
|
NOTE: The connection can only access the rights of
the Raspberry user. So the standard user “pi” will not have the writing rights
for multiple directories. For full
access you have to use the user “root” (user needs to be enabled since it is
disabled in standard setup, procedure shown later in the tutorial), but
enabling this user for SSH access is opening up a significant security risk, so
it is recommended to use as Raspberry based Samba server for full access to
specific directories (shown later in the tutorial).
Open WinSCP on your
computer |
|
Select: New Site Select File
protocol: SCP Enter Host name: xxx.xxx.xxx.xxx Enter port: 22 Enter User name: pi
(standard user with limited access to the file system) Enter Password for
“pi” |
File protocol: SCP Host name: xxx.xxx.xxx.xxx Port: 22 User name: pi Password yourpassword |
Optional save the
Session |
<Save> |
WinSCP is launched
showing the windows directory on the left side and the “pi” user home
directory of the Raspberry on the right side of the window |
|
To have
access to the Raspberry file system using the PC file explorer (it is needed to
run Eclipse Smart Home Designer your PC) you have to setup a Samba server on
the Raspberry first.
NOTE: You
can also follow the alternative instructions for a openHAB2 centric
installation at: http://docs.openhab.org/installation/linux.html#network-sharing
Open Terminal |
|
Make sure Raspberry
is updated (optional) |
sudo apt-get update |
Download samba
server to Raspbery (confirm with enter) |
sudo apt-get install
samba samba-common-bin <Enter> |
Open the samba
server configuration file in nano editor |
sudo nano
/etc/samba/smb.conf |
Go to the end of the
file and add following lines |
[RaspberryPiDirectories] comment = Your full
access to Raspberry Pi directories path = / read only = no |
Optional Change the
workgroup name if needed, otherwise uncomment and enable WINS support in the
section |
# Windows Internet
Name Serving Support Section: # WINS Support -
Tells the NMBD component of Samba to enable its WINS Server # wins support = no wins support = yes |
Exit and save the
file |
<ctrl+x> <y> <Enter> |
Check the syntax of
the samba configuration file. Result: there should
be no error message(red) in the prompt |
testparm <Enter> |
Now you have to
restart the services to reload the config file |
sudo systemctl
restart smbd.service sudo systemctl
restart nmbd.service |
Make sure that the
services are running again without errors |
sudo systemctl
status smbd.service sudo systemctl
status nmbd.service |
sudo systemctl
status smbd.service sudo systemctl
status nmbd.service |
Check if all the
services are running |
sudo systemctl
restart smbd.service sudo systemctl
restart nmbd.service |
Restart the samba
services |
sudo systemctl stop
smbd.service sudo systemctl stop
nmbd.service |
Manually stop the
samba services |
sudo smbpasswd -d sambausr |
If needed: disable a
user for samba |
sudo smbpasswd -e sambausr |
If you need to
enable a user for samba |
NOTE: Skip this section if you only want to use
samba for openHAB2
Create a special
user sambausr for the samba server so you not have to use
the root or pi user to allow access to the directories on the Raspberry |
sudo adduser sambausr |
You have to enter
your password sambausrpassword and optional information you can just leave
empty and finally save with y |
Adding user
`sambausr' ... Adding new group
`sambausr' (1001) ... Adding new user
`sambausr' (1001) with group `sambausr' ... Creating home
directory `/home/sambausr' ... Copying files from
`/etc/skel' ... Enter new UNIX
password: Retype new UNIX
password: passwd: password
updated successfully Changing the user
information for sambausr Enter the new value,
or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y |
Map the user for
Samba with |
sudo smbpasswd -a sambausr |
Enter the password sambausrpassword |
New SMB password: Retype new SMB
password: Added user sambausr. |
NOTE: Instead of allowing the sambausr to have full access on the Raspbian
file system to some specific folders by applying the chown command, you might consider enable the root user and use the root user
to connect to the Raspberry from the file system (see chapter Optional Raspberry
settings and configuration). But be aware that enabling the “root” user is
creating a security risk!
Map the user for
Samba with |
sudo smbpasswd -a root |
Enter the password rootpassword |
New SMB password: Retype new SMB
password: Added user root. |
NOTE: Skip this section if you only want to use
samba for openHAB2
One time map the Raspberry
folder to a windows drive (in this case Z) enter in the CMD Prompt (just put CMD in the search of Windows 10 to open the command prompt) |
net use Z: \\xxx.xxx.xxx.xxx\RaspberryPiDirectories
/user:sambausr sambausrpassword /persistent:no |
Persistent map the Raspberry
folder to a windows drive (in this case Z) enter in the CMD Prompt (just put CMD in the search of Windows 10 to open the command prompt) |
net use Z: \\xxx.xxx.xxx.xxx\RaspberryPiDirectories
/user:sambausr sambausrpassword /persistent:yes |
You can also create
a simple *.bat file for easy double clicking. Open the editor by
just putting notepad in the search of Windows 10 Enter the line Save as yourmapping.bat |
net use Z: \\xxx.xxx.xxx.xxx\RaspberryPiDirectories
/user:sambausr sambausrpassword /persistent:no |
This
tutorial is only focussing on the package repository installation of the stable
version and only on the add-ons for the listed hardware. All other
installations are described on the openhab.org site installation for Linux: (http://docs.openhab.org/installation/linux.html#package-repository-installation) For the Raspbian you have to go
for the “Apt Based Systems” part of it.
Open Terminal |
|
First, add the
openHAB2 bintray repository key to your package manager and allow Apt to use
the HTTPS Protocol |
wget -qO -
'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo
apt-key add - sudo apt-get install
apt-transport-https |
I choose the stable
Official (Stable) build The stable builds
contain the latest official release with tested features. |
echo 'deb
https://dl.bintray.com/openhab/apt-repo2 stable main' | sudo tee
/etc/apt/sources.list.d/openhab2.list |
Next, resynchronize
the package index: |
sudo apt-get update |
Now install openHAB2
with the following command: |
sudo apt-get install
openhab2 |
Optional but
recommended: When you choose to install an add-on, openHAB2 will download it
from the internet on request. If you plan on disconnecting your machine from
the internet, then you will want to also install the add-ons package. |
sudo apt-get install
openhab2-addons |
Since we were
installing the stable version, we have to manually add the binding WIFILED
used for the WiFi LED controller manually to the system. First you have to
change to the add-ons directory. Than you have to
download the latest version of the binding directly from the online
repository NOTE: Later, this
binding will not be available in the PAPER UI GUI under the Add-ons/Bindings
tab, but will show up in the configuration/bindings tab (note here) |
cd
/usr/share/openhab2/addons sudo wget
https://openhab.ci.cloudbees.com/job/openHAB2-Bundles/lastSuccessfulBuild/org.openhab.binding%24org.openhab.binding.wifiled/artifact/org.openhab.binding/org.openhab.binding.wifiled/2.1.0-SNAPSHOT/org.openhab.binding.wifiled-2.1.0-SNAPSHOT.jar (but here!) |
If everything went
well, you can start openHAB2 and register it to be automatically executed at
system startup. |
sudo systemctl start
openhab2.service sudo systemctl
status openhab2.service sudo systemctl
daemon-reload sudo systemctl
enable openhab2.service |
sudo systemctl status openhab2.service |
Shows the status of
openHAB2 |
sudo systemctl start openhab2.service |
Start the service of
openHAB2 |
sudo systemctl stop openhab2.service |
Stops the service of
openHAB2 |
sudo systemctl restart openhab2.service |
Restarts the service
of openHAB2 |
sudo apt-get purge openhab2 sudo rm /etc/apt/sources.list.d/openhab2.list |
This commands
uninstall openHAB2 from your Raspbian |
This is
required to grant the PC based Eclipse Smart Home Designer access to the
requested configuration folder on your Raspbian.
The shares are
configured to be not open for guests nor to the public. Let’s activate the
“openhab” user as a samba user |
sudo smbpasswd -a openhab |
Enter the password openhabpassword |
New SMB password: Retype new SMB
password: Added user openhab. |
Be aware, that
creating and later using a specific user will ensure that permissions are honoured.
Make sure, the “openhab” user has ownership and/or write access to the openHAB2
configuration files. This can be accomplished by executing: |
sudo chown -hR
openhab:openhab /etc/openhab2 |
Restart the samba
service to allow the changes to be utilized |
sudo systemctl
restart smbd.service |
One time map the Raspberry
folder to a windows drive (in this case Z) enter in the CMD Prompt (just put CMD in the search of Windows 10 to open the command prompt) |
net use Z: \\xxx.xxx.xxx.xxx\RaspberryPiDirectories
/user:openhab openhabpassword /persistent:no |
Optional: Persistent
map the Raspberry folder to a windows drive (in this case Z) enter in the CMD Prompt (just put CMD in the search of Windows 10 to open the
command prompt) NOTE: Now every time
you boot up your PC it will try to connect to the Raspbian samba server. |
net use Z: \\xxx.xxx.xxx.xxx\RaspberryPiDirectories
/user:openhab openhabpassword /persistent:yes |
Optional: You can
also create a simple *.bat file for easy double clicking. Open the editor by
just putting notepad in the search of Windows 10 Enter the line Save as yourmapping.bat |
net use Z: \\xxx.xxx.xxx.xxx\RaspberryPiDirectories
/user:openhab openhabpassword /persistent:no |
An openHAB2
setup will often rely on hardware like a modem, transceiver or adapter to
interface with home automation hardware. Examples are a Z-Wave, Enocean or
RXFcom USB Stick or a Raspberry Pi add-on board connected to the serial port on
its GPIOs. In order to allow openHAB2 to communicate with additional
peripherals, it has to be added to corresponding Linux groups. The following
example shows how to add Linux user openHAB2 to the often needed groups dialout and tty. Additional
groups may be needed, depending on your hardware and software setup.
Open Terminal |
|
Enter command (This is adding the openhab user to the group dialout) |
sudo adduser openhab dialout |
Enter command (This is adding the openhab user to the group tty) |
sudo adduser openhab tty |
Optional: Enter
command (f you are looking
to enable sound privileges for openHAB2, it will also be necessary to add
openHAB2 to the “audio” group.) |
sudo adduser openhab audio |
Open Terminal |
|
Change to directory |
cd /etc/default/ |
Open openhab2 file
in nano editor |
sudo nano openhab2 |
Change the text from
(nothing between the “”) To (something
between the “”) |
EXTRA_JAVA_OPTS="" EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyUSB0:/dev/ttyS0:/dev/ttyS2:/dev/ttyACM0:/dev/ttyAMA0" |
Exit and save the
file |
<ctrl+x> <y> <Enter> |
Make sure the
changes take effect by rebooting the Raspberry |
sudo reboot |
(Optional
but strongly recommended for easy editing of openHAB2 configuration files;
incl. syntax highlighting)
The
complete installation guide can be found on : http://docs.openhab.org/installation/designer.html#setup
Download the Windows
64 bit version |
http://eclipse.org/downloads/download.php?file=/smarthome/releases/0.8.0/eclipsesmarthome-incubation-0.8.0-designer-win64.zip |
Optional: Download
the 32 bit version since there are reports about the “stable” 64 bit version
running not stable |
http://eclipse.org/downloads/download.php?file=/smarthome/releases/0.8.0/eclipsesmarthome-incubation-0.8.0-designer-win.zip |
Optional, but not
recommended for beginner: Download a snapshot version |
https://github.com/eclipse/smarthome/blob/master/docs/documentation/community/downloads.md#designer-builds |
Unzip the downloaded
file to a destination of your choice |
yourpcdrive:\yourdestionation\eclipsesmarthome |
Download the offline
Java Runtime Environment. Go to the java
homepage download section Select “See all Java
downloads” Or directly go to: Download the 64bit
version (something like jre-8u131-windows-x64.exe ) or the 32bit depending on
your system |
(https://java.com/en/download/manual.jsp) |
Install the Java
Runtime Environment to the Eclipse Smart Home Designer folder Start the Java
installer Select on the first
screen “Change destination folder” Change the folder to
\jre inside your Eclipse Smart Home Designer folder yourpcdrive:\yourdestionation\eclipseSmart Homesince this is the loaction your
Eclipse Smart Home Designer is expecting the JRE. NOTE: This is now
delivering you a “portable” version of the Eclipse Smart Home Designer which
just can be copied/moved to different locations or machines without the need
of reinstalling. |
<Install> <Change> yourpcdrive:\yourdestionation\eclipsesmarthome\jre |
Execute the SmartHome-Designer.exe |
yourpcdrive:\yourdestionation\eclipsesmarthome\SmartHome-Designer.exe |
Link the Eclipse
Smart Home Designer to the configuration folder on your Raspberry NOTE: Make sure that
you have mapped the samba drive before (see openHAB2 setup for the samba
server) If you have chosen a
different drive letter in the mapping, just replace the Z: |
Z:\etc\openhab2 |
Eclipse Smart Home
Designer should now recognize the file structure inside the configuration
folder and augment the different folders with different icons |
|
To open the
openHAB2 you have to access the web GUI with a browser on your PC or directly
from your Raspberry, depending on your setup.
The URL
will be http://xxx.xxx.xxx.xxx:8080/start/index filling in the IP of your Raspberry
First the GUI will
ask you to select the initial setup configuration. This will install a
standard set of GUIs in openHAB2 |
|
After a few minutes
of installation the standard openHAB2 start GUI will come up, showing you the
icons for the pre-installed GUIs: <BASIC UI> <PAPER UI> <HABPANEL> |
|
Now you are
ready for the configuration of your home automation project in openHAB2!
Make sure
to double check with the official website of openHAB2 since in the end this is
where you will find the correct answers if something in this tutorial is not
working:
As a start
you should read the beginners tutorial form beginning to end so you understand
the basic concept of things, items, rules etc. and how they are mend to work
together;
http://docs.openhab.org/introduction.html
One of the
most important things I had to learn is that there is also an openHAB (no 2)!
So here are a few things if found out to be considerable if you are using
openHAB2:
-
Always
make sure, that you are looking at the right version of openHAB when it comes
down to documentation, since a lot of older online documentation is refereeing
to the openHAB (no 2). When a few things might be done the same/similar way in
openHAB2, other things have changed and will not work in openHAB2
-
You
will also encounter two different ways of storing configuration in openHAB.
o
In
openHAB (no 2).configuration was stored in files only
o
In
openHAB2 you can still use the files, but also can use database storage for
certain typs when you do the configuration with PAPER UI. This now might lead
to some confusion since you will not be able to change e.g. items in PAPER UI
which were configured using a text file. Also you would not have the correct syntax
highlighting in the Eclipse Smart Home Designer is expecting file configuration
only an items configured in PAPER UI will show up as errors.
o
But
be aware that some configuration in openHAB2 still has to be done via text file
like e.g. rules. You might find already some progress in the snapshot release
of openHAB2, but I decided to base this tutorial on the stable release with
limited functionality in PAPER UI database
-
Regularly
check the website of openHAB2 for news since a lot of new features are expected
to be implemented.
-
Meanwhile
be not afraid to go and sign up the openHAB community: https://community.openhab.org and ask your questions there. I got
replies to my problems within days, sometimes even within hrs. There is also a
designated area for beginners.
Since the
online documentation is mostly referring to PAPER UI GUI I will try to stick to
this GUI as long as possible.
-
HABmin
GUI will be needed for some Z-Wave
installation
-
HABPANEL
GUI will be used to create the final user frontend for this project
NOTE: Since
you will be regularly starting and switching the GUIs I highly recommend
creating quick links in your browser for each GUI
Start PAPER UI |
http://xxx.xxx.xxx.xxx:8080/paperui/index.html#/inbox/search |
Select -Add-ons --Bindings and install the
Bindings: <Samsung TV
Binding> <YahooWeather
Binding> <YamahaReceiver
Binding> <Z-Wave Binding> |
|
Result: The icons of the
bindings should change to blue The install option
should change to uninstall (sometimes you have
to reload the page if the update is not coming up for a few minutes) NOTE: Since in my
project case, the Yamaha Receiver is already connected to the same network
than my Raspberry, I do already get a message in the inbox which is telling
me, that a new thing was found |
|
Select -Add-ons --User Interfaces and install the User
Interface HABmin which we will need
for some Z-Wave stuff |
|
Result: HABmin GUI is
installed |
|
NOTE: If
you can add new things to openHAB2 depends on whether they are connected to the
network (if you use IP), whether they are included in the Z-Wave network of the
Z-Wave controller or whether your Raspberry is online if you use online sourced
like YahooWeather
Since in my project
case, the Yamaha Receiver is already connected to the same network than my Raspberry,
I do already get a message in the inbox which is telling me, that a new thing
was found Now just click on
the blue icon with the check mark to add this thing |
|
You can now change
the name of the thing if you want to |
<ADD AS THING> |
If the thing is not
found automatically, you have to add it using the blue add icon (+) to manually
add a thing. |
<(+)> |
This will now show
you all the installed Bindings which can be used to add more things. NOTE: You should
find all bindings there which we installed in the step Installing Add-ons. Additionally you
will find the <WiFi
LED Binding>, which
we manually installed in “Chapter 6: Installation of openHAB2 on Raspberry”
since this is a snapshot Binding which we managed manually |
|
NOTE: Make sure that the device is connected to the Raspberry
network via IP.
The thing should
come up automatically in you inbox as soon as you connect it to the network |
|
You can now change
the name of the thing if you want to You can also change
the name of the thing if you are planning to run with your own naming
convention |
<ADD AS THING> |
Optional: Select in
your PAPER UI inbox the add blue add icon (+) Search for the thing
manually using the YamahaReceiver Binding |
<(+)> |
Switch to -Configuration --Things tab and check
whether the now thing is available. The green icon
online next to the name is indicating that openHAB2 is connected to the thing
and information can be exchanged |
|
The thing should
come up automatically in you inbox as soon as you connect it to the network |
Picture MISSING |
|
You can now change
the name of the thing if you want to and add the thing. |
Picture MISSING <ADD AS THING> |
|
Optional: Select in
your PAPER UI inbox the add blue add icon (+) Search for the thing
manually using the Samsung TV Binding |
<(+)> |
|
Switch to -Configuration --Things tab and check
whether the now thing is available. The green icon
online next to the name is indicating that openHAB2 is connected to the thing
and information can be exchanged |
Picture MISSING |
The thing should
come up automatically in you inbox as soon as you connect it to the network |
<(+)> |
You can now change
the name of the thing if you want to and add the thing. |
<ADD AS THING> |
Optional: Select in
your PAPER UI inbox the add blue add icon (+) Search for the thing
manually using the Samsung TV Binding |
<(+)> |
Switch to -Configuration --Things tab and check
whether the now thing is available. The green icon
online next to the name is indicating that openHAB2 is connected to the thing
and information can be exchanged |
|
NOTE: Make sure the Raspbian does have online access
pages.
Select in your PAPER
UI inbox the add blue add icon (+) |
<(+)> |
Select the Binding <YahooWeather Binding> |
|
Select the thing <Weather Information> |
|
Now you have to
configure the thing In this case you
have to enter the WOEID which is a 32-bit reference identifier of the
location you want to see the weather information for. You can look up the
WOEID on e.g. In this case we
choose Berlin WOEID: 638242 More information on
WOEID on: https://en.wikipedia.org/wiki/WOEID |
638242 |
Then just add the
thing by clicking on the blue check icon |
<(+)> |
Switch to -Configuration --Things tab and check
whether the now thing is available. The green icon
online next to the name is indicating that openHAB2 is connected to the thing
and information can be exchanged |
|
NOTE: first you have to connect the Z-Wave
controller as a thing. After this you will use HABmin to further include things
into the Z-Wave network. These things should show up automatically in the inbox
of PAPER UI.
Select in your PAPER
UI inbox the add blue add icon (+) |
|
Select the Binding <Z-Wave Binding> |
|
Select the thing <Z-Wave Serial Controller> |
|
Now you have to
configure the thing In this case you
have to enter the serial Port of the Z-Wave controller The standard port
where the UBS-Z-Wave controller should come up it: /dev/ttyACM0 |
/dev/ttyACM0 |
Then just add the
thing by clicking on the blue check icon |
<(+)> |
Switch to -Configuration --Things tab and check
whether the now thing is available. The green icon
online next to the name is indicating that openHAB2 is connected to the thing
and information can be exchanged |
|
To include
further devices into your Z-Wave network and make the available as openHAB2
things you have to use the HABmin inclusion functionality.
Please also
consult the online documentation for general information about Z-Wave : https://github.com/openhab/org.openhab.ui.habmin/wiki/ZWave-Device-Installation
Start HABmin Direct URL: http://xxx.xxx.xxx.xxx:8080/habmin/index.html#/home The select the
Things tab -Configuration --Things HABmin will show you
all the things which are available in PAPER UI as well |
|
To start the
inclusion in HABmin you have to select the add thing icon of HABmin (magnifying
glass) |
|
Then select the
Z-Wave binding |
|
This now is
triggering the inclusion mode of your Z-Wave controller |
|
Now you have to put
your Z-Wave devices in inclusion mode to be detected for online detection (applicable when
using UZB Z-Wave PLUS USB stick by Z-Wave.Me as a Z-Wave controller |
Please refer to the Z-Wave
devices manual how to put them in inclusion mode |
Optional: Using the Aeotec
by Aeon Labs Z-Stick Gen5 which is allowing for offline inclusion Since this Z-Wave
controller stick is allowing for offline inclusion, you have to unplug the
stick before you start the inclusion on HABmin and use the inclusion button
on the stick to start the inclusion mode inclusion mode of your Z-Wave
controller The plug in the
stick again do the HABmin inclusion. You do not have to put your Z-Wave
devices again in inclusion mode. |
Please refer to the Aeotec by Aeon Labs Z-Stick Gen5
documentation for further details |
And when a device is
found it will be listed Just select the
<Add> button to include this device as a thing for openHAB2 NOTE: some devices
may come up as “unknown device”.
You can still add the device and “cure” the information later. The normal reason
for this is that the device was not able to finish the communication with
HABmin during the inclusion process This might be very
likely for battery powered devices since the will go to sleep mode after a
certain amount of time. To cure this you just have to manually wake up the
device (see device manual) multiple times (up to 10 times) before the
communication is completed and the device is recognized as a proper thing in
HABmin ATTENTION: Using the
Aeotec by Aeon Labs Z-Stick Gen5
almost every battery powered item will come up as “unknown device” since in the timespan you include the battery
device to the stick and you do the HABmin inclusion after you plugged the
stick back in will be to long an most of the devices will go back to sleep.
You might prevent this by manually waking up the device again just seconds
before you start the inclusion on HABmin. The other reason is
that the device is not supported by the openHAB2 Z-Wave binding. You can
check the supported devices at: http://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list |
|
The newly added
thing should now be visible in the HABmin GUI things tab Now you can switch
to the PAPER UI and find the new things in the inbox or check the new things
in the things tab |
|
http://www.cd-jackson.com/index.php/openhab/habmin/10-habmin-zwave-binding-initialisation
Before we
start please read first the concept of Things, Channels, Items and Links which is
directly tanken from the openHAB2 User Manual page http://docs.openhab.org/concepts/index.html#things-channels-items-and-links
Things are
the entities that can be physically added to a system and which can potentially
provide many functionalities at once. It is important to note that things do
not have to be devices, but they can also represent a web service or any other
manageable source of information and functionality. Things provide their
functionality through a set of Channels. Channels are “passive” and can be
regarded as a declaration of a Thing, what it can offer. It is up to the
individual setup, which of the Channels are actively used through Items (see
below).
Items
represent (fine-grained) functionality that is used by applications - as user
interfaces or automation logic. Items have a state and they can receive
commands.
The glue
between Things and Items are Links. Links are associations between exactly one
Thing Channel and one Item. If a Channel is linked to an Item, it is “enabled”,
which means that the functionality that the Item represents is handled through
the given Channel. Channels can be linked to multiple Items and Items can be linked
to multiple Channels.
To
illustrate these concepts, take a two-channel actuator that controls two
lights:
The
actuator is the Thing. This might be installed in the electrical cabinet, it
has a physical address and needs to be setup and configured in order to be
used. The user is instead interested in the two lights, which are located at
different locations in his home. These lights are the desired functionality,
thus the Items and they are linked to the Channels of the actuator. A Link can
be regarded like a physical wire in this example.
The basic
process of in PAPER UI is explained on: http://docs.openhab.org/tutorials/beginner/configuration.html
Switch to -Configuration --Things and select the
KeyFob_Gen5 thing |
|
A list of all the
available channels of the thing will be shown |
|
Now click on the
blue icon in front of the channel number to link this channel to an item |
|
A link channel window
will come up Select the pull down
option for the item |
|
The next window
coming up will allow you to select already existing items or: In our case <+Create
new item…> |
|
The next window will
allow you to configure the item you want to link to the thing channel You can also change
the name of the item if you are planning to run with your own naming
convention Then select
<LINK> to create your new item |
|
Now the blue icon to
the left of the name will change (white dot in the center) By clicking on this
icon the channel will expand and show you the linked items to this cannel |
|
You can now find the
new item in -Configuration --Items |
|
Thing |
Channel |
Item |
KeyFob_Gen5 |
zwave:device:39e18a8c:node9:scene_number |
KeyFob_Gen5_SceneNumber |
Weather Information |
yahooweather:weather:c5d26906:temperature |
Yahoo_Temperature |
Weather Information |
yahooweather:weather:c5d26906:humidity |
Yahoo_Humidity |
Yamaha Receiver RX-V581 |
yamahareceiver:yamahaAV:9ab0c000_f668_11de_9976_00a0dedc57ff:power |
YamahaReceiverRXV581_Power |
Yamaha Receiver RX-V581 |
yamahareceiver:yamahaAV:9ab0c000_f668_11de_9976_00a0dedc57ff:volume |
YamahaReceiverRXV581_Volume |
Yamaha Receiver RX-V581 |
yamahareceiver:yamahaAV:9ab0c000_f668_11de_9976_00a0dedc57ff:mute |
YamahaReceiverRXV581_Mute |
Z-Wave Node 2:
FGS223 Double Switch 2 |
zwave:device:39e18a8c:node2:meter_watts |
DoubbleSwitch01_LeistungGesamt |
Z-Wave Node 2:
FGS223 Double Switch 2 |
zwave:device:39e18a8c:node2:switch_binary1 |
DoubbleSwitch01_Relais1 |
Z-Wave Node 3:
MSP-3-1-X1 Z-Wave Plus Micro Smart Plug ON/OFF |
zwave:device:39e18a8c:node3:switch_binary |
SchuKo01 |
Z-Wave Node 3:
MSP-3-1-X1 Z-Wave Plus Micro Smart Plug ON/OFF |
zwave:device:39e18a8c:node3:meter_watts |
SchuKo01_Leistung |
Z-Wave Node 6: ZW100 MultiSensor 6 |
zwave:device:39e18a8c:node6:sensor_relhumidity |
MultiSens_Luftfeuchte |
Z-Wave Node 6: ZW100 MultiSensor 6 |
zwave:device:39e18a8c:node6:sensor_temperature |
MultiSens_Temperatur |
Z-Wave Node 6: ZW100 MultiSensor 6 |
zwave:device:39e18a8c:node6:sensor_luminance |
MultiSens_Helligkeit |
HF-LPB100-ZJ200 |
wifiled:wifiled:F0FE6B314910:power |
HFLPB100ZJ200_Power |
HF-LPB100-ZJ200 |
wifiled:wifiled:F0FE6B314910:color |
HFLPB100ZJ200_Color |
HF-LPB100-ZJ200 |
wifiled:wifiled:F0FE6B314910:white |
HFLPB100ZJ200_White |
DUMMYTHING_SamsungTV |
Data missing |
DUMMYITEM_SamsungTV_Power |
Every User
Interface on openHAB2 is providing its own style of dashboards to control your
home automation project, display current item states and attribute values or
even include online information like web pages.
In our
configuration of openHAB2 you will have the choice of 4 different user
interfaces which can be selected
Start openHAB2 start
screen Direct URL: http://xxx.xxx.xxx.xxx:8080/ start/index Here you will now
find the GUIs: <BASIC UI> (requires setup
using textual *.sitemap files) <PAPER UI> (which were already
using to configure openHAB2) <HABPANEL> (this UI is all
about creating a dashboard) <HABMIN> (which we already
used for inclusion of Z-Wave devices) |
|
You can also install
more UIs in PAPER UI Add-ons
section: http://xxx.xxx.xxx.xxx:8080/paperui/index.html#/extensions on the tab <USER INTERFACES> |
|
Since this
is a beginner’s tutorial where I am trying to get things done using as less
textual coding as possible, I will not go into the details of creating a
dashboard for the BASIC UI since it requires the file based approach.
Tough you
might find that some specific requirements to a dashboard can only be solved
creating this textual sitemap configuration and using BASIC UI for displaying
your dashboard.
You can
find more information in how to setup and use BASIC UI on:
http://docs.openhab.org/configuration/sitemaps.html
The simplest
way of creating an interactive user interface is in just clicking on the <CONTROL>
tab to PAPTER UI. Now you should see all the items grouped by the things they
belong to.
You can
also easily create different tabs of things by adding <Location>
information to the thing in the thing tab:
NOTE: I had
issues in updating a few things, so it will be good to it while creating the
things
Now you
will have Control panel giving you various tabs with items grouped by their
things
Tab <OUTSIDE>
Standard
tab <OTHER>
The HABPANEL
UI is all about creation a dashboard for your home automation project.
Therefore you can not to do all the configuration work for openHAB2 in this UI.
The configuration hast to be done in the other UIs
Start HABPANEL http://xxx.xxx.xxx.xxx:8080/HABPANEL/index.html#/ It will come up a
complete blank panel asking you to start configuration |
|
|
You now can choose
to <Add new
dashboard> |
|
|
Create switches to control the Z-Wave switches Details MISSING |
Picture MISSING |
You can
find the standard documentation on:
http://docs.openhab.org/addons/uis/HABPANEL/readme.html
And once
again, since this is a beginner’s tutorial I can’t go into all the
possibilities of how to create a dashboard in openHAB2. So I will not go into
creating a dashboard in HABMIN. But be aware the HABMIN is providing a powerful
graphical way of creating dashboards you might want to have a look at.
You can
find the standard documentation on:
http://docs.openhab.org/addons/uis/habmin/readme.html
Since rules
can’t be configured using the PAPER UI (stable version) you now have to go to
the text files for now. For this part we will now use the Eclipse Smart Home Designer since it
creates at least some syntax highlighting.
REMARK: You
might find already some functionality about configuration of rules in the PAPER
UI snapshot versions so there will be some changes in the way of doing rules
more easily in the future. Also HABmin is providing some kind of graphical rule
engine.
Start Eclipse Smart Home Designer on
your PC Make sure you have
mapped the Raspbian samba drive to your PC and Start Eclipse Smart Home Designer is set to the
right folder in this samba drive (see Chapter 7: Installation of Eclipse
Smart Home Designer -: part launching first time) You should now the
augmented icons for the different folders If you check the
Rules folder you will only find a readme.txt file |
|
You need to create a
file with the ending .rules to store your rules there. The fastest way of
doing it is using the basic file management functionality of Eclipse Smart Home Designer Right click on the readme.txt
file and select copy |
|
Then right click
again and select Paste |
|
A new window will
ask you to enter a new file name. |
|
Change the file name
to myfirstrule.rules an press <OK> |
myfirstrule.rules <OK> |
A new file will
appear in the Rules folder showing the rule icon |
|
Now double click on
the file to open it and delete the old content to have a plain rule rile And save the rule
file again |
<ctrl+a> <del> <ctrlss> |
I will try
to give some basic rule examples to start with but you have to be aware:
DISCLAIMER:
I am no
coding expert at all and writing rules is still the most difficult part in my
home automation project (finding the right commands, the right syntax and so on),
so you might be better off using to other tutorials.
For the
standard rules documentation incl. the rule syntax please refer to the online
documentation:
http://docs.openhab.org/configuration/rules-dsl.html
You can
also find some rules samples on:
https://github.com/openhab/openhab1-addons/wiki/Samples-Rules
And maybe
some coding experts in the community will find the time to create a kind of an
openHAB2 compendium to make it easier the non-experts to do rules.
REMAKR:
Yes, I know there are plenty of online documentation sites available, but the
problem for me was the “plenty” part of it since I always had to go through
plenty different websites to finally get the syntax right and make the rule do,
what I wanted it to do.
We will use
the:
KeyFob_Gen5
to control
some items linked to
Z-Wave Node
2: FGS223 Double Switch 2
Z-Wave Node
3: MSP-3-1-X1 Z-Wave Plus Micro Smart Plug ON/OFF
Yamaha
Receiver RX-V581
DUMMYTHING_SamsungTV
HF-LPB100-ZJ200
(WiFi LED)
Just copy the code
to the right directly into your myfirstrule.rules file |
rule "KeyFob" when Item
ZWaveNode9ZW0884ButtonKeyfobGen5_SceneNumber received update then //Scene number 1 - Button 1 (up left) pressed
short if (ZWaveNode9ZW0884ButtonKeyfobGen5_SceneNumber.state
== 1) { //Swithing ON the items
DoubbleSwitch01_Relais1 and SchuKo01 sendCommand
(DoubbleSwitch01_Relais1, ON) sendCommand
(SchuKo01, ON) } //Scene number 2 - Button 1 (up left) pressed
long if (ZWaveNode9ZW0884ButtonKeyfobGen5_SceneNumber.state
== 2) { //Swithing OFF the items
DoubbleSwitch01_Relais1 and SchuKo01 sendCommand
(DoubbleSwitch01_Relais1, OFF) sendCommand
(SchuKo01, OFF) } //Scene number 3 - Button 2 (up left) pressed
short if (ZWaveNode9ZW0884ButtonKeyfobGen5_SceneNumber.state
== 3) { //Switching ON the items
YamahaReceiverRXV581_Power and DUMMYITEM_SamsungTV_Power sendCommand
(YamahaReceiverRXV581_Power, ON) sendCommand
(DUMMYITEM_SamsungTV_Power, ON) } //Scene number 4 - Button 2 (up left) pressed
long if (ZWaveNode9ZW0884ButtonKeyfobGen5_SceneNumber.state
== 4) { //Switching OFF the items
YamahaReceiverRXV581_Power and DUMMYITEM_SamsungTV_Power sendCommand
(YamahaReceiverRXV581_Power, OFF) sendCommand
(DUMMYITEM_SamsungTV_Power, OFF) } //Scene number 5 - Button 3 (up left) pressed
short if (ZWaveNode9ZW0884ButtonKeyfobGen5_SceneNumber.state
== 5) { //Switching ON the item HFLPB100ZJ200_Power sendCommand
(HFLPB100ZJ200_Power, ON) } //Scene number 6 - Button 3 (up left) pressed
long if (ZWaveNode9ZW0884ButtonKeyfobGen5_SceneNumber.state
== 6) { //Switching OFF the item HFLPB100ZJ200_Power sendCommand
(HFLPB100ZJ200_Power, OFF) } //Scene number 7 - Button 4 (up left) pressed
short if (ZWaveNode9ZW0884ButtonKeyfobGen5_SceneNumber.state
== 7) { //NOTE: since setting the color will influence
the dimming of the WHITE // so
if you want to set both values at the same time, always // set
color first and than //
set the dimming of WHITE //Changing the color of the item
HFLPB100ZJ200_Color to RED //openHAB2 is requesting the color to be set
in HSL code (Hue, Saturation, Lightness" or in openHAB terms
"HSBType" (Hue, Saturation, Brightness) //To convert RGB code to HSL code just go to
e.g. http://www.rapidtables.com/convert/color/rgb-to-hsl.htm sendCommand
(HFLPB100ZJ200_Color,(new HSBType("0,100,50"))) //Dimming the item HFLPB100ZJ200_White to 50% sendCommand
(HFLPB100ZJ200_White, 50) } //Scene number 8 - Button 4 (up left) pressed
long if (ZWaveNode9ZW0884ButtonKeyfobGen5_SceneNumber.state
== 8) { //NOTE: since setting the color will influence
the dimming of the WHITE // so
if you want to set both values at the same time, always // set
color first and than //
set the dimming of WHITE //Changing the color of the item
HFLPB100ZJ200_Color to GREEN //openHAB2 is requesting the color to be set
in HSL code (Hue, Saturation, Lightness" or in openHAB terms "HSBType"
(Hue, Saturation, Brightness) //To convert RGB code to HSL code just go to
e.g. http://www.rapidtables.com/convert/color/rgb-to-hsl.htm sendCommand
(HFLPB100ZJ200_Color,(new HSBType("120,100,50"))) //Dimming the item
HFLPB100ZJ200_White to 100% sendCommand (HFLPB100ZJ200_White, 100) } end |
Save the rule file. The rule should now
be available |
<crtl+s> |
Test it by
clicking through the buttons (pressed long and pressed short)
NOTE: When
working with rules for the WiFi LED be aware, that the controller is storing
the setting when you send the OFF command. So if you want you switch on the LED
with a different color you might be better off in setting the color to black
before switching off you if you switch on again the LED starts black and not in
the old color.
The
standard way of debugging a rule would be to use a logfile.
For simple
problems you might also be able to visualize the variables online by creation
item with the same type and posting the value of the variable inside the rule
If you are using a
variable in your rule initially set to |
var Number loop_counter = 0 |
Create the item Counter_Item with the same type: In PAPER UI switch
to -Configuration --Items And press the blue
icon (+) Enter Name Counter_Item Select Typ <Number> And confirm the
creation by clicking again on the blue icon (+) |
Counter_Item <Number> <(+)> |
Result: A new item called Counter_Item should be visible in
the item tab NOTE: Since this
Item is not linked to a thing it will not show up in the <Control> Tab to PAPER UI. |
|
Now enter a line
into your rule to post the value of the var to the Counter_Item |
postUpdate(Counter_Item,
loop_counter) |
To show the value on
a dashboard you have to use e.g. HABPANEL Start HABPANEL http://xxx.xxx.xxx.xxx:8080/HABPANEL/index.html#/ and select <Edit dashboards> in the upper right corner then <Add new
dashboard> enter the name Debug and <OK> |
Debug <OK> |
Now you should have
the dashboard <Debug> available in your HABPANEL Select the dashboard |
|
If you now hover
with your mouse right of the dashboard name the <Edit Debug>
icon will appear. Click on it to enter
the edit mode. |
<Edit Debug> |
The edit mode is
indicated by the two icons <Save>
and <Run> |
|
Now you have to <+ Add Widget> You have to use the <Dummy> widget to display numbers |
<+ Add Widget> <Dummy> |
The new Widget will
appear on your dashboard NOTE: you can easily
change the size of the widget by dragging the lower right corner. I will snap
to a predefined grid |
|
To edit the widget
you have to click on the 3 dots in the upper right corner of the widget and
select <Edit> |
<.> <Edit> |
In this window you
can change the name to Counter
Item Debug You
have to select the openHAB
item <Counter_Item> to link it to this widget. Optional
you can change font size, add a unit and format or add some icons. Now <Save> the widget. |
Counter Item Debug <Counter_Item> <Save> |
Now <Save> the dashboard and <Run> it. |
<Save> <Run> |
You will now see the
value of your rule variable displayed dynamically on your HABPANEL dashboard |
|
This switch
might come handy if you are debugging your rule while physically having no
access to the switch. Standing up and running to the switch might do you some
good when it comes down to fitness but surely is disturbing while developing
your rule
Create the item Dummy_Switch with the same type: In PAPER UI switch
to -Configuration --Items And press the blue
icon (+) Enter Name
Dummy_Switch Select Typ <Switch> And confirm the
creation by clicking again on the blue icon (+) |
Dummy_Switch <Switch> <(+)> |
Result: A new item called Dummy_Switch should be visible in
the item tab NOTE: Since this
Item is not linked to a thing it will not show up in the <Control> Tab to PAPER UI. |
|
Now replace the item
name of the physical_switch with the name of the Dummy_Switch |
physical_switch will become Dummy_Switch |
To use the Dummy_Switch on a dashboard you have to use
e.g. HABPANEL Start HABPANEL http://xxx.xxx.xxx.xxx:8080/HABPANEL/index.html#/ and select <Edit dashboards> in the upper right corner then <Add new
dashboard> enter the name Debug and <OK> |
Debug <OK> |
Now you should have
the dashboard <Debug> available in your HABPANEL Select the dashboard |
|
If you now hover
with your mouse right of the dashboard name the <Edit Debug>
icon will appear. Click on it to enter
the edit mode. |
<Edit Debug> |
The edit mode is
indicated by the two icons <Save>
and <Run> |
|
Now you have to <+ Add Widget> You have to use the <Button> widget to display numbers |
<+ Add Widget> <Button> |
The new Widget will
appear on your dashboard NOTE: you can easily
change the size of the widget by dragging the lower right corner. I will snap
to a predefined grid |
|
To edit the widget
you have to click on the 3 dots in the upper right corner of the widget and
select <Edit> |
<.> <Edit> |
In this window you
can change the name to Dummy
Switch ON/OFF You have to select
the openHAB item <Dummy_Switch> to link it to this widget. Optional you can select
display options and icons Now <Save> the widget. |
Dummy Switch ON/OFF <Dummy_Switch> <Save> |
Now <Save> the dashboard and <Run> it. |
<Save> <Run> |
You will now see the
Dummy_Switch Item be visualized by the Dummy Switch ON/OFF widget. The initial state
should be <Inactive> Just click on the
widget to change the state to <Active> |
|
The rule is
designed to switch on/off the Z-Wave Node 2: FGS223 Double Switch 2 based on
the illumination measured by the Z-Wave Node 6: ZW100 MultiSensor 6
The trigger
value is set to 10 LUX
To prevent
von switching on/off if the illumination is around 10 lumen and e.g. just a
cloud is casting a temporarily shadow, there is a counter included which is
measuring multiple times the illumination and only allows to triggering the
switch if there reading is consistently (10 times) above or below the trigger
value.
NOTE: Make
sure you have create the item Counter_Item since it’s used in the rule (see:
part “Creating an item the see the value of a variable of a rule online” in
this chapter).
REMARK:
This was done as some kind of coding and configuring HABPANEL exercise. You
might get the same result in just checking the reading in a less frequent
period, forget about the counter and just trigger the switch when the
illumination reading is above or below the trigger value.
You can
also use this Counter_Item to display some tendency whether your light is about
to switch ON/OFF depending on the value of the Counter_Item on your dashboard.
So if you play a little with the “knob” widget in HABPANEL it might look like
this:
Then you add some other readings
of your multissor, the wattage reading and trigger of your switch, a clock
widget and you have a complete dashboard of your real weather and let it
trigger your outside ligth.
You can
just add these lines at the bottom of your existing rule file or create a new
file in the same folder
var Number loop_counter = 0 rule "check_illumination" // using the loop_counter to ensure that it is // 10 times in a row darker/lighter before
triggering switch when // every x seconds "0/x" the value
is checked // 0/30 means every 30 sec the value is
checked Time cron "0/30 * * ? * * *" then // reset loop_counter if required (counter
outside -5 +5 range) if (loop_counter >= -5 && loop_counter <= 5){ // <= 10 is defining the LUX trigger value
when ligth is swiched ON/OFF if (MultiSens_Helligkeit.state
<= 10) { if (loop_counter > -5) { loop_counter = loop_counter -1 postUpdate(Counter_Item,
loop_counter) } else { if (DoubbleSwitch01_Relais1.state
== OFF) sendCommand
(DoubbleSwitch01_Relais1, ON) } } else if (loop_counter < 5) { loop_counter =loop_counter +1 postUpdate(Counter_Item,
loop_counter) } else { if (DoubbleSwitch01_Relais1.state
== ON) sendCommand
(DoubbleSwitch01_Relais1, OFF) } } else { loop_counter = 0 } end |
And save
the file
Markdown
for GitHub:
https://guides.github.com/features/mastering-markdown/
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
https://help.github.com/articles/working-with-advanced-formatting/
https://help.github.com/articles/basic-writing-and-formatting-syntax/