3. About Me
• Principal Software Engineer at
Temenos in Lausanne, Switzerland
• Eclipse Enthusiast since 2006,
doing Model Driven Development
with Eclipse RCP
• Home Automation as a hobby
• founded openHAB.org in 2010
11. sub html_sub {
my ($data, $sub_required) = @_;
return unless $data;
my ($sub_name, $sub_arg, $sub_ref);
$data = '&' . $data if $data and $data !~/^&/; # Avoid & character in the url ... messes up Tellme
$data =~ s/=&+$//; # Goofy wapalizer (http://www.gelon.net) appends this??
# Save ISMAP data: xyz(a,b)?1,2 -> xyz(a,b,1,2)
if ($data =~ /^(.+))?(d+),(d+)$/) {
$data = "$1,xy=$2|$3)";
}
# Allow for &sub1 and &sub1(args)
if ((($sub_name, $sub_arg) = $data =~ /^&(S+?)((.*))$/) or
(($sub_name) = $data =~ /^&(S+)$/)) {
$sub_arg = '' unless defined $sub_arg; # Avoid uninit warninng
# $sub_ref = &{$sub_name}; # This does not work ... code refs are always auto-created :(
# if (defined $sub_ref) {
# Check for authorization
if (($Authorized or $Password_Allow{"&$sub_name"} and $Password_Allow{"&
$sub_name"} eq 'anyone')) {
# If not quoted, split to multiple argument according to ,
# $sub_arg = "'$sub_arg'" if $sub_arg and $sub_arg !~ /^['"]/; # Add quotes if needed
unless ($sub_arg =~ /^['"]/) {
13. The Open Source Project openHAB.org
• GPLv3, hostet at Google Code (Mercurial DVCS)
• Continuous Integration Server (Jenkins) at CloudBees.com
Eclipse RCP
OSGi-based Runtime
Configuration Tool
EMF
EventAdmin Xtext/Xbase 2.0
Declarative JBoss Drools
Services
Jetty Maven3/Tycho
JAX-RS/Jersey
14. Concept of openHAB Event Bus
Stateful Services
Automation Logic openHAB
openHAB openHAB
User Interface Item Registry Console Logging
Status Updates
Status Updates
Commands
Commands
Commands
openHAB Event Bus
Status Updates
Status Updates
Status Updates
Status Updates
Commands
Commands
Commands
Commands
KNX
Binding
RS-232
Binding
Bluetooth
Binding Bluetooth
MPD
Binding
...
RS-232
KNX
MPD
15. Features
• User Interfaces: • Bindings for:
• Smartphone UI • KNX
• Console via XMPP • One-Wire
• Google Calendar Events • RS-232
• REST-API • Bluetooth
• HTTP In/Out
• Rule Actions: • Exec (Command line)
• Mails via SMTP • NTP (Network Time Protocol)
• XMPP / Jabber Notifications • Wake-on-LAN
• Prowl-Notifications • AVM Fritz!Box
• Text-to-Speech • Network-Health
• Soundfile / Stream Player • MPD (Music Player Deamon)
• Volume Control