openHAB @ KNX Stammtisch NRW1. openHAB
Empowering the SmartHome
Thomas
Eichstädt-‐Engelen
2. Über
mich
• Verheiratet,
1
Tochter
• Senior
Consultant
bei
innoQ
Deutschland
• Schwerpunkt
Java,
Eclipse,
RCP
• Hobby:
HeimautomaHsierung
• CommiIer
bei
openHAB
seit
Ende
2010
3. Projektdetails
• iniHaler
checkin
MiIe
Juni
2010
• HosHng
bei
Google-‐Code
(Mercurial)
• GPL
V3
• Java,
Eclipse,
OSGi,
Maven/Tycho,
P2
• Jenkins
(CI)
bei
CloudBees
• gut
gepflegtes
Wiki,
Issueliste
unvollständig
• zwei
akHve
Commiter
(Kai
Kreuzer,
TEE)
• wenige
Unit-‐Tests,
dafür
Review
aller
checkins
5. Items
mit
Bindings
/* Gruppen */!
Group Alles!
Group:Switch:OR(ON, OFF) !Licht
! !"Licht [(%d)]“ !(Alles)!
Group
! ! ! ! !Bad ! !"Bad“
! ! !(Alles)!
/* Badezimmer */!
Switch Licht_Bad_Decke ! !"Deckenlicht“ ! ! ! !(Bad, Licht) { knx=„2/0/5“ }!
Switch Licht_Bad_Spiegel ! !"Spiegellicht“ ! ! ! !(Bad, Licht) { knx=„6/0/3“ }!
Number Temperatur_Bad! ! !"Temperatur [%.1f °C]" <temp> !(Bad)!
Switch Heizung_Bad ! ! !"Heizung" <heating> ! ! !(Bad)!
Rollershutter Rollladen_Bad
! !"Rollladen“ ! ! ! !(Bad)!
Contact Fenster_Bad ! ! !"Fenster [%s]“ ! ! ! !(Bad)
! !!
/* Wetter */!
Number Aussentemperatur ! !"Außentemperatur [%.1f °C]“! !<temp> !{ onewire=„28.xxx“ }!
Number Wind ! ! ! !"Windgeschwindigkeit [%.1f m/s]“!<wind>!
Number Helligkeit ! ! !„Helligkeit [%.0f Lux]“ ! !<sun>!
/* Status */!
Switch Anwesend ! ! ! !<present> ! ! !{ bluetooth="EC9B5BC453E6“ }!
/* MPD */!
Dimmer Mpd_Bad ! ! ! !"Musik“ ! ! ! ! !(DG_Bad) !{ knx="4/0/20, 4/1/20,
!4/2/20", mpd="ON:bad:play, OFF:bad:stop, INCREASE:bad:volume_increase, ! ! !
!DECREASE:bad:volume_decrease, PERCENT:bad:volume" }!
9. Features
Oberflächen
Bindings
• Smartphone
UI
• Bluetooth
• Console
via
XMPP
• Exec
/
ComandLine
• Google
Calendar
Events
• REST
• AVM
Fritzbox
• HTTP
AkHonen
• KNX
• Mails
via
SMTP
• MPD
• XMPP
/
Jabber
• Networkhealth
• Prowl
• TTS
• NTP
• Soundfile
/
Stream
Player
• RS-‐232
• Volume
Control
• WoL
• 1-‐Wire
10. Beispielregel
rule Doorbell!
when!
!Item Doorbell changed to ON!
then!
!var devices = BTDevices.state.toString.split(",");!
!val visitors = devices.map(device|transform(!
! !"MAP", "bluetooth.map“,!
! !device.trim)).filter(d|!d.empty).toList;!
!val greeting = visitors.size > 0 ?!
! !visitors.head + " is at the door." : "";!
!if (Presence.state==ON) {!
! !playSound("doorbell.mp3");!
! !Thread::sleep(1000);!
! !say(greeting.toString);!
!} else {!
! !send(„me@jabber.org“, „Dorbell! “ +!
! ! !greeting.toString);!
!}!
end!
11. Ausblick
• Vereinfachte
Rule-‐Engine
(0.9.0)
• Charts,
Gauges,
Meters
• REST
Server
Push
(Atmosphere)
• Persistenz
(Datenbankanbindung)
• iPad-‐Visualisierung
(„Sencha
Touch“?)
• Security
auf
Client/Device
Ebene
• AnwesenheitssimulaHon
• Neue
Bindings
(APC/SNMP,
Asterisk,
DMX512,
Easyident/RS485,
VDR)
Aktuelle
Feature-‐Liste:
hIp://code.google.com/p/openhab/issues/list?can=2&q=label%3AFeature