Homebridge - Siri ile Evinizi Kontrol Edin
Homebridge nedir?
Homebridge, iOS'deki Homekit API'ını kullanarak çalışan NodeJS tabanlı hafif bir sunucudur. Bu sunucu ile bir homekit cihazını taklit ederek bağlı cihazlarınızı iPhone üzerinden veya Siri ile kontrol edebilirsiniz. Ayrıca eklenti desteği de sunduğu için topluluk tarafından hazırlanmış eklentiler ile daha kullanışlı bir ortam hazırlayabilir yada kendiniz eklenti yazabilirsiniz. Mevcut eklentileri npm üzerinde 'homebridge-plugin' şeklinde aratarak bulabilirsiniz.
Homebridge NPM üzerinden dağıtıldığı için kurulumu oldukça basittir. NodeJS çalıştıran cihazlara kurulabilmektedir. Bunu Raspberry Pi gibi bir cihaza yükleyip kullanmak güç tüketimi açısından en mantıklı olanıdır. Ancak linux ve windows'a da kurulabilmektedir.
Homebridge Kurulumu
- Kurulum için NodeJS v4.3.2 veya üstü bir sürüm gereklidir.
- Linux için libavahi-compat-libdnssd-dev paketleri gereklidir. Bunun için :
sudo apt-get install libavahi-compat-libdnssd-dev - Homebridge yüklemesi: sudo npm install -g --unsafe-perm homebridge
- Eklenti yüklemek için: npm install -g <Eklenti Adı> . Eklentiler homebridge-* şeklinde ön ek ile başlar.
Windows ve Raspberry Pi için kurulum biraz daha farklı malesef. Raspberry Pi için kurulum yönergelerini Homebridge Github sayfasında bulabilirsiniz.
Windows'da kurulum için:
- GIT 2.8.3+ 64BIT: Git-2.15.0-64bit.exe
- Visual Studio Community 2017: Visual Studio Community
Kurulacak paketler: C++ ile Masaüstü Geliştirme, NodeJS Geliştirme, Python Geliştirme - Python 2.7.14 64 BIT: Python-2.7-64Bit
2'deki VS'den hariç bunu yine yüklemeniz gerekiyor. Tüm kullanıcılar için yükleyin. Varsayılan olarak "C:\Python27\" yüklemeniz tavsiye edilir. Yüklenecek paketlerden en altta 'add to path' seçeneğini de işaretlemeniz gerekmekte. - Open SSL 1.0.2 64BIT: Win64 OpenSSL v1.0.2o
Yükleme sırasında çıkan 'Copy OpenSSL DLLs' seçeneğinde “The OpenSSL binaries (/bin) directory” seçilmeli. - Nodejs v8.9.1 64BIT: node-v8.9.1-x64.msi
- Bonjour for Developers 3.0.0.10 gerekli. Bunun için ücretsiz Apple geliştirici hesabı açmalısınız. https://developer.apple.com/bonjour/ adresinden “Bonjour SDK for Windows” sonra “Bonjour SDK for Windows v3.0” seçeneğini ile indirin.
Yükledikten sonra cmd açıp 'SET BONJOUR_SDK_HOME' yazıp çalıştırın.
Şu şekilde çıkması lazım: "BONJOUR_SDK_HOME=C:\Program Files\Bonjour SDK\"
Eğer çıkmazsa ortam değişkenlerine bunu ekleyin. - Başlat menüsüne sağ tıklayarak Windows PowerShell(Yönetici)'yi açın ve:
npm install -g windows-build-tools (Bu biraz uzun sürebiliyor. sabırlı olun.)
npm install -g homebridge
Kurulumu yaptıktan sonra ~/.homebridge/ klasörüne config.json dosyası oluşturmanız gerekiyor. Bu dosya homebridge'in çalışması için gerekli ve içerisinde bağlı aksesuarları tanımlıyoruz. Yüklediğimiz eklentileri burada kullanıyoruz.
Benim kurduğum sistemde homebridge-htpp ve homebridge-http-temperature-humidity eklentilerini kullandım. İlk eklenti http-get ile basit anahtar görevinde açıp kapama yapmak için kullanılıyor. İkincisi de http-get ile sıcaklık ve nem ölçümünü almak için kullanılıyor.
Benim hazırladığım sistem için config.json dosyası: Config.json . Bunu "C:\Users\<kullanıcı adı>\.homebridge" içerisine config.json dosyası olarak atın.
Gelelim nasıl kontrol edeceğimize.. Tabiki Arduino ile. Arduino ile basit bir ethernet server hazırladım. Bu server girilen adreslere göre bir takım işlemler yapıyor.
Mesela " http://192.168.2.10:80/?1on " adresi açıldığında arduino 1.anahtarı açıyor. " http://192.168.2.10:80/?1off " açılırsa 1.anahtar kapanıyor. Aynı şekilde " http://192.168.2.10:80/temp " adresine istek yapıldığında istemciye " {"temperature": 17.00,"humidity": 64.00} " şeklinde sıcaklık ve nem bilgisini basıyor.
Kullandığım malzemeler:
- Arduino
- Arduino Ethernet Shield (ESP8266 ile WiFi da kullanılabilir)
- 2 kanallı Röle modülü
- DHT11 Sıcaklık ve Nem Sensörü
Bağlantılar şu şekilde:
- Ethernet Shield Arduinoya takılacak
- Röle kartının:
- VCC => Arduino 5V
- GND => Arduino GND
- IN1 => Arduino pin 5
- IN2 => Arduino pin 6
- DHT11 sensörünün:
- VCC => Arduino 5V ( Kodda Pin 8'i 5v a ayarladım. Oraya bağladım.)
- GND => Arduino GND
- Data => Arduino pin 7
Arduino kodlarına Buradan ulaşabilirsiniz. Kullanmak için DHT kütüphanesinin yüklü olması gerekmektedir. Kod içerisinde "ip" ve "gateway" kısımlarını kendi network ayarlarınıza göre yapmalısınız. Burada kullandığınız ip adresini yukarıda verdiğim "Config.json" dosyasındaki ip adreslerinin olduğu yerlere yazmalısınız. Siri'den veya uygulamadan homebridge'i açtığınızda buradaki url'lere istek atmakta ve arduino bu isteklere göre işlem yapmaktadır.
Homebridge'i çalıştırmak için konsolu açıp "homebridge" yazmamız yeterlidir. Sistemin çalışması için açılan bu komut ekranının kapanmaması gerekiyor. Komutu çalıştırdığınızda ekrana bir QR kod ve şifre çıkacaktır. iPhone'da Ev (Home) uygulamasını açıp aksesuar ekle diyerek ekrandaki QR kodu okuttuğunuzda iOS homebridge'i ve aksesuarlarını tanıyacaktır. QR kod okunmazsa oradaki şifre ile tanıtabilirsiniz. İster Ev uygulaması üzerinden ister başka uygulamalar üzerinden( Elgato Eve uygulamasını tavsiye ederim. Çok daha kullanışlı ve ek olarak bir çok özellik sunmakta. Bunun için ayrı bir inceleme yazmayı düşünüyorum. ) röleye bağladığınız ışıklarınızı kontrol edebilir, oda sıcaklığı ve nemi hakkında bilgi alabilirsiniz.
#TeknoEv #Homekit #homebridge #arduino #akıllıev #apple #iphone