OpenHAB

Vikipedi, özgür ansiklopedi

open Home Automation Bus (openHAB)
Geliştirici(ler)Kai Kreuzer
Güncel sürüm2.2.0 / 22.01.2017
Önizleme sürümü2.1.0-SNAPSHOT
Programlama diliJava 7'den itibaren
İşletim sistemiLinux, Windows, Mac OS X, Unix, Solaris,OpenBSD, FreeBSD
PlatformJVM
TürBina otomasyonu
LisansEclipse Kamu Lisansı (EPL)
Resmî sitesiwww.openhab.org
Kod deposu Bunu Vikiveri'de düzenleyin

openHAB (open Home Automation Bus) java'da yazılmış olup, bina otomasyonunda kullanılan bileşenleri üretici ve iletişim protokolü gözetmeden bir platformda birleştiren yazılım çözümüdür. Bununla birlikte herhangi bir işletim sistemine bağlı olmaksızın ek bağlantılarla yeni teknolojilerle ve protokollerle geliştirile bilinir. openHAB eclipse kamu lisansı (EPL) altında ve açık kaynak (Open Source) olarak geliştiriliyor. openHAB'ın kullanıcı arayüzleri internet tarayıcısını, Android'i ve Apple iOS'i destekler.

OpenHAB "Duke’s Choice Award 2013" ödülüne layık görülmüştür.[1]

Yazılım mimarisi[değiştir | kaynağı değiştir]

openHAB projesi aşağıdaki bölümlere ayrılmıştır

  • openhab-runtime: eylemleri gerçekleştiren sunucu işlemi.
  • openhab-designer: Eclipse tabanlı, kullanımı kolay konfigürasyon arayüzü.

openHAB Runtime[değiştir | kaynağı değiştir]

openHAB Runtime OSGi Frameworkü (Equinox) ye gömülü bir OSGi demetlerinden oluşan paketdir. Yazılımı tamamen java ile gerçekleştiği için bir JVM gerektirir. OSGi tabanlı yazılımı, yüksek derecede modüler mimari sunduğundan, çalışırken ek fonksiyonlar eklenip çıkartıla bilinir.

Haberleşme[değiştir | kaynağı değiştir]

openHAB'ın iki tane iç iletişim kanalı vardır:

  • Bir tane eşzamansız (asenkron) Event Bus
  • Bir tane Item Repository

Event Bus[değiştir | kaynağı değiştir]

Event Bus openHAB'ın sunduğu temel hizmetidir. Durum bilgisi içermeyen bütün bundleler, öteki bundlelere etkinliklerin (events) durumu hakkında bilgi verir. Bütün "Protokoll Bindingler" reel fiziki donanımların bağlantılarıdır ve haberleşmeyi "Event Bus" üzerinden gerçekleştirir. Burada teknik taban olarak "OSGi EventAdmin Service" kullanılmaktadır.

Item Repository[değiştir | kaynağı değiştir]

openHAB durum bilgisi içeren fonksiyonlar için "Item Repositoryu" sunmaktadır. "Item Repository" Event Busa bağlı olarak çalışır ve böylelikle Item'lerin (öğelerin) mevcut durumunu takip edebilmesini sağlar. Bu sayede istenildiğinde "Item Repositoryu" kullanılarak bir Itemin (öğenin) o anki mevcut durumunu sorgulama olanağını sunar. Örneğin bu durum bilgilerini visualize ederek sonradan mantıksal değişiklikler veya Persistence (depolama) hizmetine sunulma amacıyla kullanılabilinir. Böylelikle bağlantısı olmayan ve kendi mevcut durumunu kendinde kaydetme zorunluluğunda olan hizmetleri önler ve bunu bir merkezi hizmet olarak sunar.

Sitemap[değiştir | kaynağı değiştir]

openHAB jenerik konfigüre edilebilinen "Sitemap" adında bir kullanıcı arayüzüne sahiptir. "Sitemap" çeşitli sayfaların veya kullanıcı arayüzlerin (UI) içeriğini tanımlamak için bir ağaç yapısında (Tree - graph theory) sıralanmış widgetlerden oluşur. Widgetler bir Item'in mevcut durumu, grafiği veya şalteri olabilir. Ayrıca birkaç farklı "Sitemap" tanımlamalarda olabilir. Örneğin bu bir mobil cihaz veya başka bir gösterge opsiyonlu olabilir.

Item UI Providers[değiştir | kaynağı değiştir]

"Item UI Providers" dinamik bir bicimde kullanıcı arayüzü (UI) oluşturma olanağı sağlar. Item- ve grup- tanımları widgetin görünümünü konfigüre etmeyi ve böylelikle buradan dinamik bir bicimde Sitemapleri oluşturmayı sağlar. Bir kullanım örneği olarak daha önce "Sitefilede" önceden bir gruba deklare edilmiş bir grubun tüm elemanlarını göstermesi gibi.

openHAB Designer[değiştir | kaynağı değiştir]

"openHAB Designer" bir EclipseRCP yazılımı olup "openHAB runtime" yi kolay konfigüre etmek için geliştirilmiştir. İçinde gerekli konfigürasyon dosyalarını oluşturmak için bir editör barındırır. Editörün sözdizimi denetimi, otomatik tamamlama ve bağlama özgü işaretleme gibi özellikleri vardır.

Desteklenen Teknolojiler[değiştir | kaynağı değiştir]

Bindings[değiştir | kaynağı değiştir]

OSGi platformu modüler mimari yapısı nedeniyle, platformu yeni teknolojilerle esnek bir bicimde geliştirmeye izin verir. Böylece fonksiyonelliği, "Bindinglerle" (bağlantılarla) kolayca dahil ve adapte edilebilir. Aşağıdaki "Bindinglerle" şu anda kullanılabilir:

Asterisk, Bluetooth, Comfo Air, CUPS, digitalSTROM, DMX512, EnOcean, Epson Projector, Exec (Execute Command), Fritz!Box, Fritz AHA, HDAnywhere, Heatmiser, Homematic, HTTP, IHC / ELKO, INSTEON Hub, KNX, Koubachi, MAX!Cube, MiLight, Modbus TCP, MPD, MQTT, Netatmo, Network Health, Nibe Heatpump, Nikobus, Novelan/Luxtronic Heatpump, NTP, One-Wire, Onkyo AV Receiver, Open energy monitor, OpenPaths, OpenSprinkler, OSGi Configuration Admin, Philips Hue, Piface, Pioneer AV receiver, Plugwise, PLCBus, PulseAudio, RFXCOM, Samsung TV, Serial, SNMP, Squeezebox, System Info, Somfy URTSI II, Sonos, TCP/UDP, Swegon ventilation, TinkerForge, Tivo, VDR, Wake-on-LAN, Z-Wave

Bazı özellikler "Binding" yerine kısmen konfigürasyon olarak geliştirilmiştir. Bunlar:

Persistence[değiştir | kaynağı değiştir]

"Persistence Service" bir "Itemin" mevcut durumunu depolamayı sağlar. Böylelikle, değişiklikleri görselleştirile bilinir, eski veriler sorgulana bilinir ya da sistemi yeniden çalıştırırken (rebootlarken) durum verilerini geri yüklene bilinir.

Şu anda aşağıdaki "Serviceler" sunulmaktadır:

  • db4o - bir Java Object veritabanı
  • rrd4j - bir round-robin veritabanı RRDtool'un Java versiyonu
  • MySQL - bir MySQL veritabanı arayüzü
  • Open.Sen.Se - bir Internet-of-Things (IoT) platformu
  • logging using Logback - "Itemin" mevcut durumunu bir log dosyasına esnek bir söz dizimi tanımıyla yazar

Arayüzler[değiştir | kaynağı değiştir]

Kullanıcı Arayüzleri[değiştir | kaynağı değiştir]

  • Classic UI - klasik bir internet arayüzü
  • Apple iOS Client
  • Android Client - HABDroid openHAB için bir Open Source Android kullanıcı arayüzüdür
  • GreenT UI
  • CometVisu22 Mart 2015 tarihinde Wayback Machine sitesinde arşivlendi.

OSGi konsolü[değiştir | kaynağı değiştir]

openHAB OSGi konsolu üzerinden de kontrol edilebilinir. Konsole komutları "Eventbuse" göndererek bir "Itemin" statüsünü değiştirir ya da mevcut durumunu öğrenebilirsiniz. Örneğin:

  ---openHAB commands---   	openhab send <item> <command> - Bir "Item" için bir komut gönderir (Örneğin: ışığı aç)   	openhab status <item> - Bir "Itemin" mevcut durumu sorgulamak için   	openhab say <sentence to say> - TTS Speech-Engine kullanarak mesajı konuşarak iletme 
Jabber Konsol

XMPP Instant Messaging konsolü[değiştir | kaynağı değiştir]

openHAB XMPP (Jabber Instant Messenger) ile uzaktan erişimi destekler. Böylelikle bir Jabber hesabi ile bina otomasyonuyla komutlar göndermek için sohbet edebilirsiniz. Bu komutlar OSGi konsolunda kullandığınız komutlardır.

Google Takvim konsolü[değiştir | kaynağı değiştir]

openHAB komutlarını göndermenin bir başka yolu da Google Takvim'de ilgili bir giriş aracılığıyla zaman kontrollüdür.

REST-API[değiştir | kaynağı değiştir]

RESTful arayüzü ile diğer sistemlerle iletişime geçmek için openHAB açık bir arayüz oluşturur.

myopenHAB[değiştir | kaynağı değiştir]

myopenHAB adındaki bulut hizmetini (Cloud-Service) port açmadan ya da DynDNS kayıtı yapmadan uzaktan erişim sağlayarak yönetir ve HABDroid adındaki Android uygulamanızla bildirimler alabilirsiniz.(şu an myopenHAB2 Şubat 2017 tarihinde Wayback Machine sitesinde arşivlendi.

Dış bağlantılar[değiştir | kaynağı değiştir]

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ 2013 Duke's Choice Awards blogs.oracle.com 2 Şubat 2017 tarihinde Wayback Machine sitesinde arşivlendi. ve Oracle.com 15 Mart 2014 tarihinde Wayback Machine sitesinde arşivlendi.