openHAB Empowering the SmartHome
Thomas Eichstädt-‐Engelen
Über mich
• Verheiratet, 1 Tochter • Senior Consultant bei innoQ Deutschland
• Schwerpunkt Java, Eclipse, RCP • Hobby: HeimautomaHsierung
• CommiIer bei openHAB seit Ende 2010
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
openHAB EventBus
Kai Kreuzer – www.openhab.org
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" }!
Architektur I -‐ Designer
User Interface – iPod/iPhone
User Interface – iPad
Features Oberflächen • Smartphone UI • Console via XMPP • Google Calendar Events • REST
AkHonen • Mails via SMTP • XMPP / Jabber • Prowl • TTS • Soundfile / Stream Player • Volume Control
Bindings
• Bluetooth
• Exec / ComandLine
• AVM Fritzbox • HTTP
• KNX
• MPD
• Networkhealth
• NTP • RS-‐232
• WoL
• 1-‐Wire
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(„[email protected]“, „Dorbell! “ +!! ! !greeting.toString);!!}!
end!
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
Vielen Dank!
Fragen?
Top Related