Halo semuanya! Akhirnya, perombakan di apartemen telah berakhir, dan dalam hubungan ini saya ingin berbagi dengan Anda proyek Smart Apartment yang diimplementasikan dengan kemampuan dasar mengendalikan pencahayaan, memanaskan pemanas di bawah lantai, mengontrol suhu dan kelembaban kamar, serta barang lainnya. Bagian deskriptif akan dibuat dalam bentuk manual (lebih mudah untuk menyatakannya atau sesuatu).

Peralatan
Mengingat kenyataan bahwa, pada prinsipnya, saya ingin merakit semua otomatisasi pada keputusan eksekutif dan perangkat kontrol yang siap pakai, namun keputusan bulat dibuat (dalam satu orang), untuk menggunakan daftar peralatan ini:
Server Manajemen - Raspberry Pi 3 + OpenHAB 2 - 1pc (3000 gosok.)
Pengontrol multifungsi - MegaD-2561 - 1pc (3480 gosok.)
Unit eksekutif dengan 14 output relai - MegaD-14-R - 1pc (4480 rubel)
Sensor suhu dan kelembaban DHT22 (AM2303) - 4 pcs (1960 gosok.)
Sensor suhu 1-Wire DS18B20 tahan air - 2pcs (180 gosok.)
Catu daya 12V DR-60-12 - 1pc (1420 gosok)
Housing untuk sensor Dsen-Box - 4pcs (1000 rub.)
Tablet untuk mengelola dan menampilkan parameter - sudah ada (3000-10000r.)
Sebagian besar daftar dapat dibeli di ALI.
Pendahuluan
Salah satu prinsip dasar pengoperasian sistem otomasi adalah operasi tanpa gangguan dan redundansi fungsi. Artinya, bahkan jika semua otomatisasi rendah saat ini terbakar ke neraka, kita seharusnya tidak kehilangan fungsi mengendalikan pencahayaan dan perangkat eksekutif penting lainnya. Dengan demikian, solusi kontrol pencahayaan akan diimplementasikan pada apa yang disebut "sistem walk-through" yaitu. sakelar (sakelar) di ruang akan dilewati, dan peran sakelar kedua (sakelar) akan dimainkan oleh relay di unit eksekutif MegaD-14-R. Asalkan, tentu saja, bahwa gulungan itu sendiri tidak terbakar, kita tidak akan kehilangan fungsionalitas jika unit otomatisasi gagal. Oleh karena itu, melalui semua switch Legrand Etika 2-pass dan 2-key dipasang di semua kamar (terlihat bagus dibandingkan dengan Valenoy).
Koneksi
Sensor suhu dan kelembaban DHT22 dipasang di dalam kotak Dsen-Box pada ketinggian sekitar 2 meter dari lantai di setiap kamar. Jangan lupa bahwa apartemen dirombak dan semua kabel dengan hati-hati diletakkan dari perisai ke lokasi sensor dan perangkat.
Kabel dipasang hampir di mana-mana oleh SFTP 4x2x0.5 terlindung. Sensor suhu DS18B20 dipasang pada saat pemasangan pemanas di bawah lantai.



Kami memasang perangkat MegaD di dasbor, pasangkan dengan kabel asli 34pin dan sambungkan ke jaringan Ethernet. Kami pergi ke antarmuka web di 192.168.0.14/sec. Di bagian "config", atur alamat yang diinginkan atau biarkan secara default, pastikan untuk menentukan alamat server Openhab (kami akan mencari tahu nanti ketika kami menyebarkan gambar Openhab pada raspberry atau menulisnya segera, dan mengubahnya di raspberry). Kami menghubungkan semua sensor dan kabel dari switch sesuai dengan jalur yang sama.


Dalam pengaturan port pada perangkat MegaD, atur jenisnya (OUT - jika ini adalah relay, IN atau Dsen - jika input sensor). Jika Anda menunjukkan jenis yang benar pada port sensor yang terhubung, maka kami akan segera melihat bacaan saat ini.

Server
Kami mengumpulkan server. Kasing raspberry terbuat dari catu daya yang gagal untuk pemasangan yang nyaman di rel din (tentu saja ada kasing khusus untuk ini, tetapi ini bukan tentang kita)))). Jangan lupa menempel flash drive USB dan kabel Ethernet secara alami.
Agar tidak tersiksa dengan instalasi, saya memutuskan untuk mengunduh gambar
OpenHabian yang telah selesai - seluruh proses instalasi dan konfigurasi server dijelaskan secara rinci di sana dan bermuara pada penggelaran gambar ke flash drive, meluncurkan raspberry dan menunggu 15-45 menit. (ya panjang) pada konfigurasi pertama. OpenHab siap berangkat!
Jika kami tidak ingin mengubah apa pun dalam konfigurasi server (cara membuka bagian pengaturan dijelaskan secara rinci di openhab.org), maka kami terhubung ke Openhabianpi
openhabianpi : 8080, pilih antarmuka grafis Paper UI dan mulai pahat semua yang Anda butuhkan.

Kustomisasi
Binding
Pertama, Anda perlu menghubungkan server OH (openhab) dan MegaD. Integrasi peralatan di server, menggunakan protokol dan aturan yang ditentukan oleh peralatan, dilakukan dengan menggunakan file yang sudah jadi, yang disebut "Bindings". Unduh pengikatan terbaru untuk peralatan
MegaD . Kami menjatuhkannya (Anda dapat menggunakan WinSCP) ke folder / srv / openhab2-addons di server, jadi kami akan melihat ini mengikat di UI Kertas "Bindings".
Lebih jauh dalam "Kotak Masuk" kita membuat adaptor server Bridge MegaD Incoming, itu seperti jembatan virtual komunikasi antara server dan peralatan. Kami menuliskan port yang diinginkan (alamat dan port server harus terdaftar di "Konfigurasi" perangkat MegaD itu sendiri).

Hal-hal
Setelah membuat jembatan, kami, juga di bagian "Kotak Masuk", membuat "MegaD Binding Things". "Hal" yang terpisah - ini adalah bagaimana perangkat fisik tertentu didefinisikan pada server, baik itu sensor atau relay, yang dengannya kita akan berinteraksi dengan bantuan jembatan yang dibuat. Di dalamnya, kami secara khusus meresepkan alamat IP perangkat MegaD, kata sandi untuk akses dan port perangkat (ini adalah port input tempat sensor terhubung atau port output untuk kontrol perangkat).
Untuk distribusi yang mudah berdasarkan lokasi, di bidang "Lokasi" menunjukkan di mana ada - aula, dapur ... Setelah membuat "Benda" ini, mereka akan muncul di "Konfigurasi / Benda". Kami masuk ke "Hal" yang dibuat dan dengan mengklik pada jenis yang diinginkan (kami harus menentukannya di pengaturan port perangkat MegaD) kami melampirkannya ke "Item" membuat "Buat item baru" baru.

Item
"Item" yang diambil secara terpisah - di server dan di antarmuka grafis, ini adalah elemen yang sama yang bertindak sebagai tombol kontrol atau data output dari sensor dan fitur lainnya.
Kolom "Nama" harus berupa alfabet Latin yang berkelanjutan, tetapi "Label" dinamakan apa yang kita inginkan. Dalam pengaturan "Item", Anda perlu menentukan jenisnya (jika itu adalah relay, lalu - SWITCH, jika sensor, lalu - NUMBER, dll.
Jika kami ingin menggabungkan Item-s tertentu ke dalam grup (ini sebagian besar diperlukan untuk distribusi yang nyaman dan melihat dalam aplikasi seluler atau menggunakan antarmuka UI Dasar), maka dalam bidang "Grup" menunjukkan grup yang diinginkan, yang pertama-tama harus dibuat di bagian "Item" menentukan jenis "Grup". Setelah manipulasi ini, kita akan melihat "Item" yang sangat dibuat di bagian "Control" dari Paper UI dan jika semuanya dilakukan dengan benar, maka ketika Anda mengklik "Item" yang dibuat dari tipe "Switch", perangkat yang terhubung (MegaD relay) akan mengklik.
Kami melakukan tindakan serupa untuk semua sakelar dan sensor, menamainya dengan benar, dan mengaturnya.

UI
Sekarang semua ini, tentu saja, bekerja dengan baik, tetapi tidak indah dan tidak nyaman.
Kami mengambil tablet, pergi melalui browser
openhabianpi : 8080, pilih Habpanel GUI dan mulai menyesuaikan agar sesuai dengan kebutuhan Anda.
Klik pada roda pengaturan di sudut kanan atas, klik pada "Pengaturan lanjutan" dan buat pengaturan yang diperlukan (tema, nama ...) di sisi kiri pengaturan, kemudian setelah membuat antarmuka selesai, Anda perlu menyimpannya "Simpan konfigurasi saat ini ke konfigurasi panel baru" .
Kami kembali dari pengaturan, gunakan slider untuk memilih jumlah kolom ubin yang diperlukan dalam antarmuka dan klik "Tambahkan dasbor baru". Dalam pengaturan ubin, tentukan skema warna dan ikon tampilan. Dengan ubin ini, kami akan menentukan lokasi atau grup perangkat kami (misalnya, dalam kasus saya, ini adalah kamar).
Selanjutnya, setelah membuat lokasi, pergi ke sana dengan mengklik ubin dan di atas, di sebelah nama ubin, klik pada pensil, kami akan mengatur ubin yang dibuat dalam sistem "Item". Di sudut kanan atas, klik "Tambahkan widget baru". Pilih jenis ubin yang Anda inginkan (ketika Anda mengarahkan kursor ke atas kursor, akan muncul pertanyaan) "Beralih" jika itu adalah saklar, "Dummy" jika itu adalah sensor ... dll. Dalam pengaturan ubin yang dibuat kami mengikatnya ke sistem "Item" yang ada dan menyesuaikan tampilan - ikon, warna, ukuran ... Setelah membuat semua ubin "item" yang diperlukan, klik "Jalankan" di sudut kiri, sehingga menyimpan pengaturan dan memulai mode tampilan. Inilah cara kami membuat antarmuka Habpanel untuk diri kami sendiri. Setelah mengonfigurasi, jika dilakukan di Chrome, sangat nyaman untuk menambahkan halaman Habpanel ke desktop tablet dari pengaturan browser.


Aturan
Aturan (aturan) - aturan (skrip) yang sama untuk menerapkan logika fungsi satu perangkat atau interaksi antara beberapa.
Kami menyadari kontrol otomatis tudung di kamar mandi.
Untuk melakukan ini, kita harus membuat "Item" virtual dari jenis "Number" di sistem di mana kita akan mencatat nilai-nilai tingkat kelembaban yang kita butuhkan. "Item" lain dari tipe "Switch" untuk memicu kontrol kelembaban otomatis. Nah, sebenarnya aturan itu sendiri, yang akan memproses nilai kelembaban yang diperoleh dari sensor di kamar mandi, periksa dengan nilai yang ditentukan dari pengaturan kami dan kontrol kap.
Untuk membuat aturan, kita perlu membuat file dengan ekstensi .rules dengan konten javascript di folder di server / etc / openhab2 / rules. Berikut adalah contoh kontennya:
Auto_air.rulesaturan "Auto_air"
kapan
Item Hum_H_T_sens menerima pembaruan
lalu
jika
(Hum_H_T_sens.state> Set_hum.state && Air_H_T_switch.state == OFF && Set_auto_air.state == ON) {
Air_H_T_switch.sendCommand (ON)
}
lain
jika
(Hum_H_T_sens.state <Set_hum.state && Air_H_T_switch.state == ON && Set_auto_air.state == ON) {
Air_H_T_switch.sendCommand (OFF)
}
akhir
Sebenarnya, Anda perlu menampilkan "Item-s" yang dibuat pada layar dasbor di Habpanel. Untuk pengaturan "Item" dari tingkat kelembaban, terapkan jenis "Slider".
Bagan
Fitur bagus lain dari sistem ini adalah pengumpulan statistik data ke dalam basis data dan ditampilkan dalam grafik.
Buat gambar! Pertama, Anda perlu mengkonfigurasi database.
Secara default, OpenHab menawarkan kerja dengan basis data Rrd4j, tapi saya tidak bisa mengkonfigurasinya secara normal. Karena itu, saya mulai menggunakan MySQL (entah bagaimana lebih akrab).
Untuk bekerja dengan database, Anda harus menginstal add-on di sistem. Di tab "Addons" dari Paper UI, di bagian "Persistence", pilih MySQL Persistence (instal).
Basis yang kami buat sekarang mengkonfigurasi.
Untuk melakukan ini, kita harus membuat file (jika tidak ada) di folder di server: /etc/openhab2/persistence/mysql.persist, di mana kita harus menentukan strategi pengumpulan data (seperti jam, harian, mingguan ...) dan tentukan "Item" yang mana โDengan referensi strategi mana yang akan disimpan. Sebagai contoh, ini isinya:
mysql.persist// strategi kegigihan memiliki nama dan definisi dan disebut di bagian โItemโ
Strategi {
// jika tidak ada strategi yang ditentukan untuk item di bawah ini, daftar default akan digunakan
everyMinute: "0 * * * *?"
every5Minutes: "0 * / 5 * * *?"
everyHour: "0 0 * * *?"
everyDay: "0 0 0 * *?"
default = everyChange
}
/ *
* Setiap baris dalam bagian ini ditentukan untuk barang mana, di mana strategi (IEs) harus diterapkan.
* Anda dapat mendaftar item tunggal, gunakan "*" untuk semua item atau "groupitem *" untuk semua anggota grup
* item (tidak termasuk item grup itu sendiri).
* /
Barang {
// simpan semua elemen sekali sehari dan kembalikan dari database saat startup dengan setiap perubahan
// *: strategy = everyChange, everyDay, restoreOnStartup
// Selain itu, semua nilai suhu dan cuaca disimpan setiap jam
Weather_Temperature, Temp_H_LR_sens, Temp_H_BR_sens, Temp_H_T_sens, Temp_H_KT_sens, TP_H_H_sens, TP_H_KT_sens, Weather_Humidity, Hum_H_LR_sens, Hum_H_BR_sens, Hum_H_T_sens, Hum_H_KT_sens: strategi = everyminute, RestoreOnStartup
}
Setelah membuat file, sistem sudah akan mulai mengumpulkan data. Kita perlu mengkonfigurasi dashboard Habpanel untuk menampilkan grafik.
Kami kembali ke Habpanel GUI, pergi ke lokasi yang diinginkan dan menambahkan widget baru dengan memilih tipe "Charts". Sebut seperti yang kita inginkan, "Ketik" pilih "n3-line-chart (interaktif)", "Penyedia layanan" - mysql, "Periode" - periode tampilan hari (D). Pada tab "Seri" - kita lampirkan "Item" yang kita butuhkan. Dan voila! kami mendapatkan jadwal yang indah!

Nah, inisiatif murni kemudian - kita memasang tablet di dinding! O_o, untuk ini saya mengambil dua kartu magnetik dengan format em-marin (yang sangat tipis) dan merekatkan dua magnet neodymium di tepi kartu (Uhu). Kami memasang platform semacam itu dengan magnet pada pita dua sisi (baik tipis) di bagian belakang tablet dan di dinding. Ngomong-ngomong, sebelumnya di dalam soket, catu daya MeanWell 5V dipasang, dengan kabel microUSB. Tablet di dinding!

Saya minta maaf atas kekhasan presentasi materi (saya belum pernah menulis yang seperti ini sebelumnya). Jika postingan itu setidaknya sama populernya, berikut ini, saya akan menjelaskan fitur pengaturan aplikasi seluler. Saya harap ini berguna. Semua rumah pintar)))