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;

Paper UI üzerinde Apple HomeKit entegrasyon eklentisini 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;

Eve uygulaması karşılama sayfası

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ı;

Evimize bir isim verelim

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

Ağımız taranarak OpenHAB cihazımız tespit edilecektir

Gelen listeden openHAB’ı seçerek devam edelim.

IMG_1656

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;

IMG_1657

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

IMG_1658

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;

IMG_1659

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

IMG_1660

Uygulama OpenHAB’ı tanıyarak sisteme ekleyecektir;

IMG_1670

Ev tanımlamamız tamamlandı;

IMG_1662

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

IMG_1671

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

IMG_1672

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;

IMG_1673

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;

HomeKit yardımıyla Siri üzerinden OpenHAB nesnelerinize erişebilirsiniz

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir