1. home
smart
home
Heimautoma-sierung
mit
OSGi
Thomas
Eichstädt-‐Engelen
2. Über
mich
• Senior
Consultant
bei
innoQ
Deutschland
• Schwerpunkt
Java,
Eclipse,
RCP
• Hobby:
Heimautoma-sierung
• CommiIer
bei
openHAB
seit
Ende
2010
3. Begriffsbes-mmung
• Gebäudeautoma-sierung
– Industrie-‐
und
Zweckbauten
– Ziel:
Energie-‐
und
Personaleinsparung
• Heimautoma-sierung
– Teilbereich
der
Gebäudeautoma-sierung
– Wohnbauten
– Ziel:
Komfort,
Sicherheit,
Energieeinsparung
– bezieht
auch
„fachfremde“
Bereiche
mit
ein
• SmartHome
– Automa-sierung
und
Vernetzung
von
Hauselektrik,
Elektrogeräten
und
Unterhaltungselektronik
– Autarke
Ak-on
und
Reak-on
(Szenarien)
– Trennung
von
Sensorik
und
Aktorik
– Nicht
der
Kühlschrank
der
selbst
bestellt
4. Szenarien
• Licht
gedimmt
einschalten
• Lichts-mmung
kontextabhängig
wählen
• anwesenheitsabhängige
Türklingel
• Alarm
melden
• Einschalten
der
Klima/Heizung
wenn
nö-g
• Ausschalten
wenn
Klima/Heizung
nö-g
• „Alles
Aus“
bei
Verlassen
des
Hauses
• Einschalten
der
Weihnachtsbeleuchtung
aber
Ausschalten,
wenn
Last
steigt
• Warnung
bei
Regen,
wenn
Dachfenster
geöffnet
• Balkonbewässerung
nach
WeIer
oder
Kalender
• Zisterne
füllen,
wenn
leer
10. Projektdetails
• ini-aler
checkin
MiIe
Juni
2010
• Hos-ng
bei
Google-‐Code
(Mercurial)
• GPL
V3
• Java,
Eclipse,
OSGi,
Maven/Tycho,
P2
• Jenkins
bei
CloudBees
• gut
gepflegtes
Wiki,
Issueliste
unvollständig
• zwei
ak-ve
Commiter
(Kai
Kreuzer,
TEE)
• wenige
Unit-‐Tests,
dafür
Review
aller
checkins
11. Mo-va-on
• Automa-sierungsregeln
• Integra-on
von
Haus-‐
und
Mul-mediasteuerung
• Visualisierung
• Ablösung
von
Misterhouse
• Stabilität
• Konfigurierbarkeit
für
Nicht-‐Programmierer
• Spielwiese
für
Java
/
Eclipse
/
OSGi
Technologien
• Ersatz
für
die
Modelleisenbahn
12. Item
• eindeu-ger
Name
• haben
Typ
(z.
B.
Switch,
Dimmer,
Number
etc.)
• haben
einen
Status
• können
spezifische
Kommandos
akzep-eren
• spezielle
Group
Items
• können
dynamisch
zur
Laufzeit
geändert
werden
14. Binding
• bindet
Items
an
reale
Hardware
• ist
op-onal
verfügbar
(OSGi
Bundle)
• für
jeweils
eine
konkrete
Hardware
bzw.
ein
Interface
oder
Protokoll
• Verbindung
mit
dem
Event
Bus
• „Übersetzung“
der
Kommandos
und
Statusupdates
zwischen
Event
Bus
und
Hardware
21. Sitemap
• enthält
Seiteninhalt
• Seite
besteht
aus
Liste
von
Widgets,
die
mit
Items
assoziiert
werden
• enthält
einfache
Naviga-onsstruktur
(durch
Verschachtelung)
• Item-‐Gruppen
verlinken
zu
dynamisch
erstellten
Unterseiten
(per
default)
• Default
kann
„überschrieben“
werden
• Es
kann
viele
Sitemaps
geben
23. User
Interface
I
• Webapplika-on
• bildet
mit
CSS
und
JavaScript
iPhone-‐App
nach
• Webapplika-on
registriert
sich
als
OSGi
HIpService
• Nutzt
integrierten
JeIy
(OSGi
Bundle)
HTTP
Server
• Vorteil:
kein
getrennter
Prozess
sondern
integraler
Bestandteil
von
openHAB
(Run-me)
25. Regeln
• Engine
ist
Jboss
Drools
Expert
• Basiert
auf
Rete-‐Algorithmus
• Regeln
können
gewichtet,
gruppiert
und
dynamisch
ak-viert
oder
deak-viert
werden
• Drools
unterstützt
u.a.
Timer
und
Kalender
• Regelsyntax
MVEL
und
Java
28. Fazit
• Automa-sierung
erfordert
Integra-on
• leichte
Konfigurierbarkeit
auch
für
Nicht-‐
Programmierer
(openHAB
Designer)
• leichte
Erweiterbarkeit
für
Programmierer
(modulare
Architektur)
• aktuelle
Technologien
(OSGi/Equinox
über
Xtext,
Drools
und
Maven
Tycho)
• neIe
Leute
im
Projekt
:-‐)