İçeriğe atla

OpenHAB

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

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

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

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

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

Event Bus

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

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

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

"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

"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

Bindings

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

"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

Kullanıcı Arayüzleri

  • 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ü

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ü

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ü

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

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

myopenHAB

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

Kaynakça

  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.

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Eclipse (yazılım)</span>

Eclipse, açık kaynak kodlu ve özgür bir tümleşik geliştirme ortamıdır (IDE). Ana odak noktası Java ve Java ile ilişkili teknolojiler olsa da, esnek yapısı sayesinde C ve Python gibi farklı diller için de kullanılmaktadır.

<span class="mw-page-title-main">Web 2.0</span>

Web 2.0, O'Reilly Media tarafından 2004'te kullanılmaya başlayan bir sözcüktür ve ikinci nesil internet hizmetlerini - toplumsal iletişim sitelerini, vikileri, iletişim araçlarını, folksonomileri- yani internet kullanıcılarının ortaklaşa ve paylaşarak yarattığı sistemi tanımlar. Kelimenin tam anlamı tartışmaya açıktır, Tim Berners-Lee gibi teknoloji uzmanları da kelimenin manasını sorgulamıştır.

<span class="mw-page-title-main">Android</span> Mobil işletim sistemi

Android, Google ve Open Handset Alliance tarafından, cep telefonları, tabletler ve televizyonlar için geliştirilmekte olan, Linux tabanlı, özgür ve ücretsiz bir işletim sistemidir. Sistem açık kaynak kodlu olsa da, kodlarının ufak ama çok önemli bir kısmı Google tarafından kapalı tutulmaktadır. Google tarafından ücretsiz sunulmasının sebebi, sistemin daha hızlı ve çabuk gelişmesi, birçok popüler marka tarafından kullanılması ve bu sayede reklamlarının daha fazla kişiye ulaşmasını sağlamaktır. Google, Android sistemi üzerinde çalışan Google Play marketteki oyun ve uygulamalar üzerinde aldığı reklamları yayınlayarak para kazanmaktadır. Android'in desteklenen uygulama uzantısı ".apk"dır.

Google Developers Google'ın yazılım geliştirme araçları ve platformları, uygulama programlama arayüzü (API'ler) ve teknik kaynaklar sitesidir. Site, Google'ın geliştirici ürünlerini kullanan geliştiriciler için tartışma grupları ve bloglar dahil olmak üzere Google geliştirici araçlarının ve API'larının kullanımına ilişkin belgeler içerir. Google Haritalar, YouTube, Google Workspace ve diğerleri gibi Google'ın neredeyse tüm popüler tüketici ürünleri için sunulan API'ler vardır. Google, çoğunlukla web geliştiricileri için web API'leri olmak üzere çeşitli API'ler sunar. API'ler, Google Haritalar, Google Earth, Google AdSense, Adwords, Google Apps ve YouTube dahil olmak üzere popüler Google tüketici ürünlerini temel alır. Google Veri API'leri, programcıların Google hizmetlerinden veri okuyan ve yazan uygulamalar oluşturmasına olanak tanır. Şu anda bunlar arasında Google Analytics, Blogger, Google Base, Google Books, Google Takvim, Google Code, Google Earth, Google Notebook API'leri bulunmaktadır.

<span class="mw-page-title-main">Qt (çalışma alanı)</span>

Qt, birden çok platformu destekleyen bir grafiksel kullanıcı arayüzü geliştirme araç takımıdır. Genellikle GUI programları geliştirmek için kullanılsa da gelişmiş kütüphanesi GUI bileşenlerinin dışında birçok araç içermektedir. Qt, en çok KDE masaüstü ortamında, Opera ağ tarayıcısında ve Skype anlık mesajlaşma programlarında kullanılmasıyla bilinir.

<span class="mw-page-title-main">Android Honeycomb</span>

Android Honeycomb veya Android 3.0–3.2.6 "Honeycomb" Android sürümünün Google tarafından geliştirilen 8. versiyonudur. Sürümün ismi "petek" anlamındadır. İlk 3.0 versiyonu 22 Şubat 2011 yılında yayımlandı. Sürümle beraber, Motorola Xoom adlı tablet tanıtıldı. Bundan önce sunulmuş sürümler yalnızca akıllı telefonlar için uyumlu idi. Bununla, ilk kez Android işletim sistemi tabletlere yol açtı. Sürüm Linux kernel 2.6.36 bazında hazırlanmıştır. Android Honeycomb yalnızca tabletler için tasarlanmış ve sadece tabletlerde bulunan tek Android sürümüdür. Android 3.0 Honeycomb, tabletlere özel geniş ekranı ve holografik kullanıcı arayüzü ile büyük ilgi topladı.

<span class="mw-page-title-main">Android Eclair</span> Android işletim sisteminin versiyonu

Android Eclair veya Android 2.0-2.1 Eclair Android sürümünün Google tarafından geliştirilen beşinci versiyonudur. Sürümün ilk 2.0 versiyonu 26 Ekim 2009 yılında tanıtılmıştır. Bu sürüm Android Donut sürümünden 1 ay sonra tanıtıldı. Sürüm Android Donutun modernleşmiş versiyonu idi. Donut gibi Linux kernel 2.6.32 sürümünde kuruldu (üretildi). Sürüme "Ekler" ismi verildi. Android 2.0 Éclair, Microsoft Exchange Server e-posta desteği dahil diğer mail hizmet sağlayıcılarına da destek vermeye başladı. HTML5 ve Bluetooth 2.1 desteği kazandırıldı. Daha hızlı mesajlaşmak için klavyede bir takım iyileştirmeler yapan Google, kamera uygulamasına flaş desteği, dijital zoom, sahne modları, renk efektleri ve makro odak modları ekledi.

<span class="mw-page-title-main">Android Ice Cream Sandwich</span> android işletim sisteminin 4. ana sürümü

Android Ice Cream Sandwich veya Android 4.0 - 4.0.4 "Ice Cream Sandwich", Android sürümünün Google tarafından geliştirilen 9. versiyonudur. Sürümün ilk 4.0 versiyonu 19 Ekim 2011 yılında tanıtılmıştır. Sürüm Galaxy Nexus telefonu ile birge sunulmuştur. Sürüm Linux kernel 3.0.1 bazında yaratılmıştır. Sürüme Ice Cream Sandwich ismi verildi.Android Honeycomb yalnızca tablet bilgisayarlar için, daha öncekiler yalnızca akıllı telefonlar için sürülmüştür. Google "Ice Cream Sandwich" sürümü ile ilk kez olarak aynı anda hem tablet, hem de akıllı telefonlar için uyguladı. Bu sistemde ilk kez HIG sistemi bulundu. Android 4.0 "Holo" kod adlı yeni bir görünümünü ve Roboto adlı yeni bir yazı tipi olan harf karakteri tanıttı.

<span class="mw-page-title-main">Android Jelly Bean</span> Android sürümünün Google tarafından geliştirilen, 2012de tanıtılan 10. sürümü

Android Jelly Bean veya Android 4.1-4.3.1 Jelly Bean, Android sürümünün Google tarafından geliştirilen 10. versiyonudur. Sürümün ilk 4.1 versiyonu 9 Temmuz 2012 yılında tanıtılmıştır.Sürüm Linux kernel 3.0.31 bazında yaratıldı ve ona "Jelly Bean" ismi verildi. İlk kez 27 Haziran 2012 yılında Google I/O konferansında yeni sürüm hakkında ilk bilgiler duyuruldu. İşletim sistemi daha yumuşak ve daha duyarlı olması için tasarlanmış performans iyileştirmeleri, yeni aksiyon düğmeleri ve diğer iç değişiklikleri ile bildirim sistemindeki iyileştirme üzerinde duruldu. Sürümle beraber Asus tarafından üretilen Nexus 7 tableti ve Nexus Q medya oynatıcı meydana çıkardı.

<span class="mw-page-title-main">Android KitKat</span> android işletim sisteminin 4.4 sürümü

Android KitKat veya Android 4.4 - 4.4.4 KitKat Android sürümünün Google tarafından geliştirilen 11. sürümüdür. Sürümün ilk 4.4 sürümü 31 Ekim 2013 yılında kullanıcılara tanıtılmıştır. Sürüm Linux kernel 3.10 bazında yaratıldı.

<span class="mw-page-title-main">Android Nougat</span> Android işletim sisteminin yedinci ana sürümü

Android 7.0 - 7.1.2 "Nougat" Android sürümünün Google tarafından geliştirilen 14. versiyonudur. Yeni sürümün daha önceki kod adı Android N oldu. 9 Mart 2016 tarihinde önce mevcut Nexus cihazları için fabrika görüntüleri ile bir geliştirici önizlemesi olarak yeni "Android Beta Programı" ile piyasaya sürüldü. Versiyon API level 24'te oluşturulmuştur. Resmen ilk olarak Google Nexus cihazları için güncelleme almakla, 22 Ağustos 2016 tarihinde serbest bırakıldı. LG V20, Nuga ile piyasaya çıkan ilk akıllı telefon oldu.

<span class="mw-page-title-main">Android Auto</span> Android işletim sisteminin araç sürümü

Android Auto, Google tarafından geliştirilen bir akıllı telefon projeksiyon standardı ve Android işletim sisteminde çalışan mobil cihazların sağladığı gösterge ünitesidir. Android Auto Google I/O 2014'te, 25 Haziran 2014 tarihinde ilan edildi. Android Oto mobil uygulaması 19 Mart 2015 tarihinde yayımlandı. Standart sürücülere, GPS haritalama / navigasyon, müzik çalma, SMS, telefon ve web araması üzerinde kontrol sunar. Ses komutları ile güvenli sürüş sağlamak için ellerle serbest çalışmasının vurgulanmasına rağmen, dokunmatik ekran ve düğme kontrollü gösterge ünitesi görüntülemesi de desteklenecektir. Uyumlu uygulamalar Google Haritalar, Google Play Müzik, Spotify, Songza, Stitcher Radio, iHeartRadio ve TuneIn, MLB at Bat içerir. Mart 2017 yılında arabalar için özel olarak tasarlanmış işletim sistemi, Android Automotive sistemi de sunuldu.

<span class="mw-page-title-main">Google Fuchsia</span>

Fuchsia, şu anda Google tarafından geliştirilen açık kaynaklı bir işletim sistemidir. Proje, Ağustos 2016'da resmi bir duyuru yapılmaksızın kendi kendine barındırılan bir git şeklinde göründüğünde halk tarafından tanındı. Kaynak belgelerinde adın arkasındaki neden "Pembe + Mor == Fuşya " olarak tanımlanmaktadır. Linux çekirdeğini temel alan, daha önce Google tarafından geliştirilen Chrome OS ve Android gibi işletim sistemlerinin aksine, Fuchsia, mineral adını taşıyan Zircon adlı yeni bir mikro çekirdeğe dayanıyor.

Cocoa Touch Apple' tarafından yapılan iOS, Apple Watch için watchOS ve dördüncü nesil Apple TV için tvOS üzerinde çalışan yazılım programlarını oluşturmak için bir UI Kullanıcı arayüzü çerçevedir. macOS üzerinde mevcut değildir. Cocoa Touch iPhone, iPod Touch ve iPad için iOS işletim sisteminin bir soyutlama katmanını sağlar.

<span class="mw-page-title-main">Android yazılımı geliştirme</span>

Android yazılım geliştirmesi Android işletim sistemi için yeni uygulamaların oluşturulduğu süreçtir. Uygulamalar genellikle Android yazılım geliştirme kiti (SDK) kullanılarak Java programlama dilinde geliştirilir; ancak diğer geliştirme ortamları da mevcuttur. Google, Android uygulamaları Kotlin, Java ve C++ dilleri kullanılarak Android yazılım geliştirme kiti (SDK) kullanılarak yazılabilir" ve diğer dilleri kullanmak da mümkün olduğunu belirtiyor. Go, JavaScript, C, C++ veya Assembly gibi Java sanal makinesi (JVM) dışı tüm diller, muhtemelen kısıtlı API desteğiyle araçlar tarafından sağlanabilecek JVM dil kodunun yardımına ihtiyaç duyar.

HIG uygulama geliştiricilerine bir dizi öneriler sunan yazılım geliştirme belgeleridir. Amaç, uygulama arayüzlerini daha sezgisel, öğrenilebilir ve tutarlı hale getirerek kullanıcıların deneyimini iyileştirmektir. Kılavuzların çoğu, belirli bir masaüstü ortamında uygulamalar için ortak bir görünüm ve his tanımlamakla sınırlanır. Kılavuzlar belirli politikaları numaralandırır. Politikalar bazen insan-bilgisayar etkileşimi çalışmalarına dayanmaktadır, ancak çoğu platform geliştiricileri tarafından seçilen keyfi sözleşmelere dayanmaktadır.

<span class="mw-page-title-main">One UI</span> Samsung tarafından tasarlanan ve Samsungun önceki arayüzlerine kıyasla daha kolay bir kullanım sağlayan arayüz.

One UI, Samsung Electronics tarafından Android cihazları için geliştirilen bir yazılım yerleşimidir. Samsung Experience ve TouchWiz'in ardından, geniş ekranlı akıllı telefonların tek elle kullanılmasını kolaylaştırmak için özel optimizasyonlarla daha da kolaylaştırılacak şekilde tasarlanmıştır. Samsung'un 2018'deki geliştirici konferansında tanıtıldı ve ilk olarak Samsung firmware güncellemelerinin bir parçası olarak Android P ile tanıtıldı.

Flutter, Google tarafından oluşturulan açık kaynaklı bir UI yazılım geliştirme kitidir. Android, iOS, Windows, Mac, Linux ve web için uygulamalar geliştirmek için kullanılıyor. Flutter'ın ilk sürümü "Sky" olarak biliniyordu ve Android işletim sisteminde çalışıyordu. Flutter ilk olarak 2015 Dart geliştirici zirvesinde tanıtıldı. Tanıtımında sabit bir şekilde saniyede 120 FPS çalışan uygulamalar geliştirilebileceği belirtildi. 4 Aralık 2018'de Flutter 1.0, Flutter Live etkinliğinde ilk "kararlı sürüm" olarak yayımlandı. 11 Aralık 2019'da Flutter Interactive etkinliğinde Flutter 1.12 yayımlandı.

<span class="mw-page-title-main">Samsung Galaxy A10</span> Samsung tarafından üretilen akıllı telefon

Samsung Galaxy A10, Samsung Electronics tarafından Samsung Galaxy A serisinin bir parçası olarak geliştirilmiş, Android işletim sistemini kullanan bir akıllı telefondur. Cihaz, Mart 2019'da satışa çıkarılmıştır. Cihazda; Android 9 Pie işletim sistemi, One UI kullanıcı arayüzü, 32 GB dahili depolama ve 3400 mAh batarya bulunur. Cihaz, Galaxy J4'ün halefi ve Samsung Galaxy A11'in selefidir.

<span class="mw-page-title-main">Nullsoft Scriptable Install System</span>

Nullsoft Scriptable Install System (NSIS), Winamp'ın yapımcıları Nullsoft tarafından desteklenen Microsoft Windows için komut dosyasıyla çalışan bir kurulum sihirbazı hazırlama aracıdır. NSIS, başta zlib lisansı olmak üzere, özgür yazılım lisanslarının bir kombinasyonu altında yayımlanır. Amazon, Dropbox, Google, Ubisoft, FL Studio, BitTorrent ve McAfee gibi kullanıcılarla, InstallShield gibi ticari özel mülk ürünlere yaygın olarak kullanılan bir alternatif haline geldi.