18
Eclipse@Home - Home Automation in Practice Kai Kreuzer Empowering the SmartHome openHAB

openHAB @ ECE2011

Embed Size (px)

Citation preview

Page 1: openHAB @ ECE2011

Eclipse@Home - Home Automation in Practice

Kai Kreuzer

Empowering the SmartHome

openHAB

Page 2: openHAB @ ECE2011

Agenda

•Why?

•What?

•Live Demo•Q&A Session

Page 3: openHAB @ ECE2011

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

Page 4: openHAB @ ECE2011

Why?

Page 5: openHAB @ ECE2011
Page 6: openHAB @ ECE2011
Page 7: openHAB @ ECE2011
Page 8: openHAB @ ECE2011
Page 9: openHAB @ ECE2011
Page 10: openHAB @ ECE2011
Page 11: openHAB @ ECE2011

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 =~ /^[\'\"]/) {

Page 12: openHAB @ ECE2011

What?

Page 13: openHAB @ ECE2011

The Open Source Project openHAB.org

• GPLv3, hostet at Google Code (Mercurial DVCS)• Continuous Integration Server (Jenkins) at CloudBees.com

OSGi-based RuntimeEclipse RCP

Configuration Tool

Jetty

EMFXtext/Xbase 2.0

DeclarativeServices

EventAdmin

Maven3/Tycho

JBoss Drools

JAX-RS/Jersey

Page 14: openHAB @ ECE2011

Concept of openHAB Event Bus

KNX Binding

RS-232 Binding

Bluetooth Binding

MPD Binding

KNX

Blue

tooth

RS-2

32

MPD

openHAB Event Bus

Comm

ands

Statu

s Upd

ates

Comm

ands

Statu

s Upd

ates

Comm

ands

Statu

s Upd

ates

Comm

ands

Statu

s Upd

ates

...

openHABItem Registry

Comm

ands

Statu

s Upd

ates

Automation Logic

User Interface

openHAB Console

openHAB Logging

Comm

ands

Statu

s Upd

ates

Comm

ands

Stateful Services

Page 15: openHAB @ ECE2011

Features

• Bindings for:• KNX• One-Wire• RS-232• Bluetooth• HTTP In/Out• Exec (Command line)

• NTP (Network Time Protocol)

• Wake-on-LAN• AVM Fritz!Box• Network-Health• MPD (Music Player Deamon)

• User Interfaces:• Smartphone UI• Console via XMPP• Google Calendar Events• REST-API

• Rule Actions:• Mails via SMTP • XMPP / Jabber Notifications• Prowl-Notifications• Text-to-Speech• Soundfile / Stream Player• Volume Control

Page 16: openHAB @ ECE2011

Live Demo

Page 17: openHAB @ ECE2011

openHAB.org – Outlook

Version 0.9.0 by end of 2011:• Xbase powered rule engine• Asterisk binding• VDR binding• REST server push (Atmosphere)

Roadmap:•HTML5 based tablet UI• Persistence (database support)• Charts, gauges, meters• ...

Page 18: openHAB @ ECE2011

Questions?