
OpenHAB 2 ve Siri: HomeKit entegrasyonu
Twitter takipçilerim hatırlayacaktır, bundan bir süre önce OpenHAB ile HomeKit entegrasyonuna dair bir ekran görüntüsü paylaşmıştım. Geçen zaman içerisinde detaylarını paylaşmaya fırsat bulamamıştım. Hazır OpenHAB 2 makalelerimi yayınlıyorken, bu konuya da değinmenin zamanı geldi. Twitter’dan bahsettiğim Apple HomeKit entegrasyonunu OpenHAB 1.x üzerinde gerçekleştirmiştim. Betaları arka arkaya yayınlanan OpenHAB 2 yakın zaman önce HomeKit binding’ini ekledi. Dolayısıyla güncel olan üzerinden anlatmak daha doğru olacaktır.
HomeKit, dolayısıyla da Siri, entegrasyonunun bir binding ile sunulması işleri oldukça kolaylaştırdı aslına bakarsanız. Aksi durumda bir kaç farklı uygulama kurulum ve yapılandırması ile karşı karşıya kalacaktır. OpenHAB 2’ye Paper UI, HABmin gibi arayüzler üzerinden ya da yapılandırma dosyası üzerinden HomeKit Integration eklentisini kurabiliriz.
PaperUI üzerinde Extensions ekranı Misc segmesinde bulacağınız HomeKit Integration girdisi yardımıyla eklentiyi kurabilirsiniz;

Yapılandırma dosyası üzerinden ilerlemek isterseniz conf/services klasörü altında yer alan addons.cfg dosyasında misc bölümüne homekit girdisini ekleyerek kurulumu yapabilirsiniz;
# A comma-separated list of miscellaneous services to install (e.g. "myopenhab") misc = homekit
Eklentinin kurulması ardından sıra geldi yapılandırmaya. HomeKit eklentisinin yapılandırma dosyası da yine conf/services klasörü altında olmalı. Favori text editörünüzle bu klasör altında homekit.cfg adıyla bir dosya oluşturarak aşağıdaki içeriği ekleyiniz;
org.openhab.homekit:port=9124 org.openhab.homekit:pin=XXX-XX-XXX org.openhab.homekit:networkInterface=192.168.1.3
Bu örnek yapılandırmada yer alan pin değerini sizin üreteceğiniz nümerik bir ifade ile değiştirmelisiniz. Üreteceğiniz pin değerinin hane sayısı yukarıdaki şekilde aynı kalmasına ve arasında – karakterinin bulunmasına dikkat ediniz. networkInterface değerinini de yine kendi sisteminizin koştuğu OpenHAB sunucusunun ip adresi ile değiştirmelisiniz.
Ipv6 desteği açık sistemlerde ip adresinin HomeKit tarafından tespit edilmesinda sıkıntı yaşandığından OpenHAB 2’yi başlatırken java parametreleri arasına java.net.preferIPv4Stack parametresini true değeri ile eklemeliyiz;
export JAVAOPTIONS="-Djava.net.preferIPv4Stack=true"
OpenHAB 2’nin her başlaması öncesinde bu parametreyi vermeniz gerektiğinde start.sh dosyasının içerisine eklenenizde yarar var.
Gerekli kurulum ve yapılandırma işlemleri ardından sisteminizi yeniden başlatmanızı tavsiye ediyorum.
Bu adımlar ardından OpenHAB tarafındaki ilk grup yapılandırmamız tamamlanmış oldu. Bir sonraki adımda OpenHAB’a hangi nesnelerin HomeKit tarafından ne şekilde kullanılabileceğini belirtmeliyiz. OpenHAB 2 HomeKit eklentisi HomeKit’e açılacak olan nesneleri tag mantığı ile bulabilmektedir. Nesnelere atadığımız tag’ler aynı zamanda OpenHAB nesne türü ile HomeKit nesneleri arasında bir eşleştirme yapılmasını da sağlayacaktır. Aralarında Lighting, Switchable, CurrentTemperature gibi sık kullanılanlarında da yer aldığı bu tag’ler hakkında detaylı bilgiyi HomeKit eklenti sayfasında bulabilirsiniz. Örnek olması adına evimde bulunan Hue ampullerinin kontrolünü sizinle paylaşacağım.
HomeKit yapılandırmasının anahtarı olan tagleme items dosyalarında yapılmalı. Aşağıda kendi geliştirdiğim RaspBee Binding üzerinden ulaştığım nesnelere dair items dosyasını bulabilirsiniz;
/* Işık grupları */ Group lights_all Group lights_salon (all) Group lights_koridor (all) /* Işık gruplar nesneleri */ Color light_salon "Tum Işıklar" Color light_salon "Salon" /* Salon Işıkları*/ Color light_salon_1 (lights_salon) { channel="raspbee:LCT001:1:salon1:color" } Color light_salon_2 (lights_salon) { channel="raspbee:LCT001:1:salon2:color" } Color light_salon_3 (lights_salon) { channel="raspbee:LCT001:1:salon3:color" } /* Salon Işıkları - HomeKit */ Dimmer light_salon_dimmer "Salon" Dimmer light_salon_1_dimmer "Salon 1" { channel="raspbee:LCT001:1:salon1:color_temperature" } Dimmer light_salon_2_dimmer "Salon 2" { channel="raspbee:LCT001:1:salon2:color_temperature" } Dimmer light_salon_3_dimmer "Salon 3" { channel="raspbee:LCT001:1:salon3:color_temperature" } /* Koridor Işığı */ Dimmer light_koridor "Koridor" (lights_koridor) { channel="raspbee:LWB006:1:koridor:brightness" }
Bu dosyaya Lighting tag’ini aşağıdaki şekilde eklemeniz yeterli;
/* Işık grupları */ Group lights_all Group lights_salon (all) Group lights_koridor (all) /* Işık gruplar nesneleri */ Color light_salon "Tum Işıklar" Color light_salon "Salon" /* Salon Işıkları*/ Color light_salon_1 (lights_salon) { channel="raspbee:LCT001:1:salon1:color" } Color light_salon_2 (lights_salon) { channel="raspbee:LCT001:1:salon2:color" } Color light_salon_3 (lights_salon) { channel="raspbee:LCT001:1:salon3:color" } /* Salon Işıkları - HomeKit */ Dimmer light_salon_dimmer "Salon" [ "Lighting" ] Dimmer light_salon_1_dimmer "Salon 1" ["Lighting"] { channel="raspbee:LCT001:1:salon1:color_temperature" } Dimmer light_salon_2_dimmer "Salon 2" ["Lighting"] { channel="raspbee:LCT001:1:salon2:color_temperature" } Dimmer light_salon_3_dimmer "Salon 3" ["Lighting"] { channel="raspbee:LCT001:1:salon3:color_temperature" } /* Koridor Işığı */ Dimmer light_koridor "Koridor" (lights_koridor) ["Lighting"] { channel="raspbee:LWB006:1:koridor:brightness" }
Items dosyamızı yukarıdaki şekilde düzenledikten sonra saklamanız yeterli olacaktır. Sıradaki adımlarımız IOS cihazımızda olacak. Bu yazıyı hazırladığım sırada henüz IOS içerisinde HomeKit cihaz veritabanını yönetecek varsayılan bir arayüz bulunmamaktaydı. İlerleyen zamanlarda böylesi bir destek eklenmediği sürece HomeKit veritabanını düzenleyebileceğiniz yardımcı programlar kullanmalısınız. Bunu için Elgato Eve ya da Smartlabs Insteon+ ve benzeri uygulamaları kullanabilirsiniz. Bu makale için ben tercihimi Elgato Eve’den yana kullanıyorum. Uygulamayı cihazımıza kurduktan sonra OpenHAB ile aynı ağ’da olduğumuza emin olarak (kablosuz ağa bağlı olarak) başlatalım;

Ekranda yer alan Add Accessory butonuna tıklayarak yapılandırmaya başlayabiliriz. İlk adımımız cihazımızın konumunu temsil eden bir isim vermek olmalı;

Uygulama ağımızı tarayarak bulduğu Apple HomeKit uyumlu cihazları size listeyelecektir;

Gelen listeden openHAB’ı seçerek devam edelim.

Bir sonraki adımda yapılandırma işleminde verdiğimiz pin numarası bize sorulacak. Gelen bilgilendirme Identify Accessory butonuna tıklayarak giriş ekranına geçmeliyiz. Öncesinde uygulama bizi onaylı bir aksesuar olmadığı konusunda uyaracaktır;

Bu uyarıyı Yine de Ekle butonuyla geçelim.

Son kullanıcının kolay kod girmesi adına HomeKit cihazlarının üzerinde pin bilgisi barkoda basılı olarak yer almaktadır. Bizim için böyle bir durum olmadığı için Kodu Elle Gir butonu ile giriş ekranına geçiyoruz;

Kodu girmemiz ardından cihazımız eklenmeye başlanacaktır;

Uygulama OpenHAB’ı tanıyarak sisteme ekleyecektir;

Ev tanımlamamız tamamlandı;

Sağ üst köşede yer alan Done butonuna basarak az önce oluşturduğumuz evimizin ana sayfasına gelebiliriz;

Bu ana sayfada yer alan Power butonu vasıtasıyla ışıklarımızı açıp kapatabileceğimiz ekrana geçiş yapabiliriz;

Ana ekranda yer alan Brightness butonu da bize ışığın tonunu ayarlayabileceğimiz ekranı açacaktır. Her iki fonksiyonileteye de hızlıca müdahale etmek isterseniz Home (Default Room) butonuna basmalısınız;

Gördüğünüz gibi açılan ekranda her iki işlemi de hızlıca yapabilirsiniz. Bu adımlar ardından Siri üzerinden OpenHAB nesnelerinize erişerek komut gönderebilir, durum sorgulaması yapabilirsiniz;
