Setelah memahami konfigurasi Items dari tutorial konfigurasi Openhab sebelumnya, sekarang saatnya memahami cara konfigurasi Things, Bridge dan Channels yang merupakan representasi dari layer fisik dalam sistem Openhab. Cara konfigurasi yang diterangkan disini adalah dengan menggunakan metode tekstual atau text file sama seperti konfigurasi Items sebelumnya.
Thing
Sebuah thing dapat didefinisikan dengan sintaks sebagai berikut:
Thing <binding_id>:<type_id>:<thing_id> "Label" @ "Location" [ <parameters> ]
Keterangan
- Thing: keyword yang mendefinisikan baris tersebut apakah sebuah thing atau bridge. Jika mendifinisikan sebuah bridge maka keyword Thing diganti dengan Bridge
- binding_id: id binding
- type_id: id jenis thing
- thing_id: id dari thing
- Label: label dari thing (opsional)
- Location: lokasi dari thing (opsional)
- parameters: parameter konfigurasi dari thing
- binding_id:type_id:thing_id membentuk UID dari thing
Thing network:device:webcam "Webcam" @ "Ruang Tamu" [ hostname="192.168.1.10", timeout="5000", ... ]
Baris di atas adalah konfigurasi thing untuk sebuah webcam yang ditempatkan pada ruang tamu dengan id binding network, id jenis device, id thing webcam dengan label Webcam dan konfigurasi hostname atau ip address 192.168.1.10. UID dari thing di atas adalah network:device:webcam.
Konfigurasi Bridge
Bridge adalah tipe khusus dari thing yang berfungsi sebagai jembatan penghubung antar thing. Sebagai contoh sebuah bridge yang berisi konfigurasi MQTT dibutuhkan agar thing lain dapat terhubung ke broker MQTT.
Dari skenario rumah pak Budi yang telah digambarkan pada tutorial sebelumnya, dapat kita lihat bahwa semua lampu terhubung ke saklar otomatis yang berbasis wifi. Saklar otomatis tersebut menggunakan protokol MQTT untuk berkomunikasi dengan controller Openhab. Kita dapat mendefinisikan bridge untuk binding MQTT sebagai berikut:
Bridge mqtt:broker:mymbroker [ host="192.168.100.32", secure=false, username="MyUserName", password="MyPassword"]
Baris di atas berisi konfigurasi untuk koneksi MQTT yang berupa host, username dan password dengan id binding mqtt, id jenis broker dan id bridge mybroker. UID dari bridge di atas adalah mqtt:broker:mymqttbroker.
Semua saklar wifi yang akan terhubung ke Openhab harus menggunakan bridge di atas. Sebagai contoh, thing saklar lampu kamar tidur utama dapat dikonfigurasikan sebagai berikut:
Thing mqtt:topic:mybroker:Sonoff_Tx_MasterBedroom (mqtt:broker:mybroker) "Saklar Lampu Kamar Tidur Utama" @ "Kamar Tidur Utama"
Baris konfigurasi thing di atas menunjukkan konfigurasi thing yang terpisah dari konfigurasi bridge. Dan thing tersebut dapat terhubung ke bridge mqtt:broker:mymqttbroker dengan mereferensikan UIDnya dalam tanda kurung. Id dari thing saklar lampu kamar tidur utama di atas adalah mymqttbroker:Sonoff_Tx_MasterBedroom. Perhatikan ada tambahan id bridge di depannya.
Penulisan konfigurasi bridge dan thing dapat digabung sebagai berikut:
Bridge mqtt:broker:mybroker [ host="192.168.100.32", secure=false, username="MyUserName", password="MyPassword"] {
Thing topic Sonoff_Tx_MasterBedroom "Saklar Lampu Kamar Tidur Utama" @ "Kamar Tidur Utama"
Thing topic Sonoff_Tx_Kitchen "Saklar Lampu Dapur" @ "Dapur"
}
Dari cara penulisan konfigurasi di atas, menghasilkan UID thing pertama mqtt:topic:mybroker:Sonoff_Tx_MasterBedroom dan thing kedua mqtt:topic:mybroker:Sonoff_Tx_Kitchen. Kedua cara penulisan konfigurasi di atas sama saja, tergantung preferensi mau pilih yang mana.
Konfigurasi Channel
Biasanya konfigurasi channel tidak diperlukan karena secara otomatis dibuat oleh binding berdasarkan deskripsi jenis thing. Namun untuk beberapa binding tertentu, konfigurasi channel secara manual bisa dilakukan seperti MQTT Generic Thing Binding yang kita gunakan dalam seri tutorial ini.
Sebagai contoh, kita gunakan saklar ganda otomatis untuk lampu garasi dan lampu taman dari skenario rumah pak Budi.
Thing mqtt:topic:mybroker:Sonoff_Tx_Outside (mqtt:broker:mymqttbroker) "Saklar Lampu Luar" @ "Ruang Tamu" {
Channels:
Type switch : switch1 [ stateTopic="sonoff/stat/POWER1" , commandTopic="sonoff/cmnd/POWER1", on="1", off="0"]
Type switch : switch2 [ stateTopic="sonoff/stat/POWER2" , commandTopic="sonoff/cmnd/POWER2", on="1", off="0"]
}
Dari konfigurasi di atas, saklar ganda dengan UID mqtt:topic:mybroker:Sonoff_Tx_Outside memilki dua channel saklar, id switch1 untuk lampu garasi dan id switch2 untuk lampu taman. Parameter stateTopic adalah topic mqtt untuk status saklar dengan nilai untuk menyala (on) adalah 1 dan mati (off) adalah 0. Sedangkan parameter commandTopic adalah topic mqtt untuk menyalakan dan mematikan lampu. UID untuk masing-masing channel di atas adalah mqtt:topic:mybroker:Sonoff_Tx_Outside:switch1 dan mqtt:topic:mybroker:Sonoff_Tx_Outside:switch2 .
Dari skenario rumah pak Budi, berikut konfigurasi untuk semua things yang ada:
Bridge mqtt:broker:mybroker [ host="192.168.100.32", secure=false, username="MyUserName", password="MyPassword", port=1883] {
Thing topic Sonoff_Tx_Outside "Saklar Lampu Luar" @ "Ruang Tamu" {
Channels:
Type switch : switch1 [ stateTopic="sonoff/stat/POWER1" , commandTopic="sonoff/cmnd/POWER1", on="1", off="0"]
Type switch : switch2 [ stateTopic="sonoff/stat/POWER2" , commandTopic="sonoff/cmnd/POWER2", on="1", off="0"]
}
Thing topic Sonoff_Tx_Livingroom "Saklar Lampu Ruang Tamu" @ "Ruang Tamu" {
Channels:
Type switch : switch1 [ stateTopic="sonoff/stat/POWER" , commandTopic="sonoff/cmnd/POWER1", on="1", off="0"]
}
Thing topic Sonoff_Tx_MasterBedroom "Saklar Lampu Kamar Tidur Utama" @ "Kamar Tidur Utama" {
Channels:
Type switch : switch1 [ stateTopic="sonoff/stat/POWER" , commandTopic="sonoff/cmnd/POWER1", on="1", off="0"]
}
Thing topic Sonoff_Tx_Bedroom "Saklar Lampu Kamar Anak" @ "Kamar Anak" {
Channels:
Type switch : switch1 [ stateTopic="sonoff/stat/POWER" , commandTopic="sonoff/cmnd/POWER1", on="1", off="0"]
}
Thing topic Sonoff_Tx_Kitchen "Saklar Lampu Dapur" @ "Dapur" {
Channels:
Type switch : switch1 [ stateTopic="sonoff/stat/POWER" , commandTopic="sonoff/cmnd/POWER1", on="1", off="0"]
}
Thing topic Sonoff_Tx_Bathroom "Saklar Lampu Kamar Mandi" @ "Kamar Mandi" {
Channels:
Type switch : switch1 [ stateTopic="sonoff/stat/POWER" , commandTopic="sonoff/cmnd/POWER1", on="1", off="0"]
}
}
Menghubungkan Item
Item dapat dihubungkan ke channel secara otomatis melalui discovery ataupun secara manual baik melalui PaperUI mapun dari konfigurasi tekstual. Sebuah channel dihubungkan ke item lalu keyword channel pada konfigurasi item.
Sebagai contoh, untuk menghubungkan thing saklar lampu ruang tamu ke item lampu ruang tamu, konfigurasinya adalah sebagai berikut:
Switch FF_LivingRoom_Light "Lampu" <light> (FF_LivingRoom, gLight) {channel="mqtt:topic:mybroker:Sonoff_Tx_Livingroom:switch1"}
Konfigurasi lengkap untuk item dan channel dari rumah pak Budi sebagai berikut:
Group Home "Rumah Budi" <house>
Group OU "Luar" <garden>
Group FF "Lantai Satu" <firstfloor>
Group OU_FrontYard "Taman Depan" <lawnmower> (Home, OU)
Group OU_Garage "Garasi" <garage> (Home, OU)
Group FF_LivingRoom "Ruang Tamu" <sofa> (Home, FF)
Group FF_MasterBedroom "Kamar Tidur Utama" <bedroom_red> (Home, FF)
Group FF_Bedroom "Kamar Tidur Anak" <bedroom> (Home, FF)
Group FF_Kitchen "Dapur" <kitchen> (Home, FF)
Group FF_Bathroom "Kamar Mandi" <bath> (Home, FF)
Switch OU_Garage_Light "Lampu" <light> (OU_Garage, gLight) {channel="mqtt:topic:mybroker:Sonoff_Tx_Outside:switch1"}
Switch OU_FrontYard_Light "Lampu" <light> (OU_FrontYard, gLight) {channel="mqtt:topic:mybroker:Sonoff_Tx_Outside:switch2"}
Switch FF_LivingRoom_Light "Lampu" <light> (FF_LivingRoom, gLight) {channel="mqtt:topic:mybroker:Sonoff_Tx_Livingroom:switch1"}
Switch FF_MasterBedroom_Light "Lampu" <light> (FF_MasterBedroom, gLight) {channel="mqtt:topic:mybroker:Sonoff_Tx_MasterBedroom:switch1"}
Switch FF_Bedroom_Light "Lampu" <light> (FF_Bedroom, gLight) {channel="mqtt:topic:mybroker:Sonoff_Tx_Bedroom:switch1"}
Switch FF_Kitchen_Light "Lampu" <light> (FF_Kitchen, gLight) {channel="mqtt:topic:mybroker:Sonoff_Tx_Kitchen:switch1"}
Switch FF_Bathroom_Light "Lampu" <light> (FF_Bathroom, gLight) {channel="mqtt:topic:mybroker:Sonoff_Tx_Bathroom:switch1"}
Group:Switch:OR(ON, OFF) gLight "Lampu" <light> (Home)
Tahap selanjutnya adalah menyimpan konfigurasi file thing di atas pada direktori konfigurasi openhab. Untuk Openhabian raspberry, konfigurasi terletak pada direktori /etc/openhab2/things.
- Login ke dalam server openhab menggunakan ssh
- Simpan file konfigurasi thing ke dalam direktori /etc/openhab2/things
- Gunakan format nama file namafile.things. Perhatikan untuk konfigurasi thing menggunakan ekstensi .things. Sebagai contoh kita gunakan nama file default.things.
- Masuk ke dalam web konfigrasi Paper UI openhab http://ipaddress:8080
- Masuk ke dalam menu Configuration -> Things.
- Semua thing di atas akan tampil ada halaman konfigurasi tersebut seperti gambar di bawah ini
Oke, sampai disini kita telah miliki konfigurasi untuk items, things, bridge dan channels untuk rumah Pak Bud. Langkah selanjutnya adalah membuat konfigurasi sitemap.
Zulfi Lazuardi says
apa ada kelanjutannya kah tutorial Openhab ini?? kayanya di kita belum ada yang banyak bahas soal Openhab ya pak? misalnya kalo ingin mengetahui suhu air kolam dan data nya bisa di lihat beberapa waktu kebelakang, apa bisa dengan aplikasi ini?
lorenz says
Saat ini blm lanjut lg mas, hehe. Iya di sini masih jarang yang bahas Openhab. Untuk history data selama datanya disimpan di database harusnya bisa mas.