Cara Membangun Rumah yang Cerdas dan Tidak Menjadi Gila

gambar

Perabotan cerdas, yang dengan sendirinya mengurus pesanan di rumah, harus dimiliki untuk hampir semua gambar futuristik. Bahkan, iklim yang mengatur diri sendiri, lampu nyala dan mati otomatis dan kontrol suara peralatan rumah tangga - semua ini dapat dikonfigurasi sekarang. Tapi itu akan membutuhkan sedikit pengalaman, pengetahuan dasar di bidang teknologi dan kadang-kadang pemrograman, serta seluruh lautan fantasi. Dalam kasus saya, saya melakukannya sehingga hanya fantasi yang cukup, tetapi hal pertama yang pertama ...

Saya menjadi tertarik pada gagasan "rumah pintar" sekitar lima tahun yang lalu. Awalnya saya membuat sistem paling sederhana. Dia mengendalikan cahaya di koridor dan kamar mandi dengan sensor gerak, tudung oleh sensor kelembaban, dan juga stasiun cuaca - pada saat itu semua orang tergila-gila pada mereka. Setiap kotak DIY harga diri harus membuat stasiun cuaca.

Pertama-tama, saya melengkapi apartemen dengan relay yang dikendalikan untuk secara otomatis menyalakan lampu di koridor dan kamar mandi. Itu tampak seperti ini: satu sensor berdiri di lorong, yang kedua di kamar mandi.

Jika seseorang pergi ke kamar mandi, maka sensor koridor mendeteksi gerakannya dan segera menyalakan lampu di koridor dan di kamar mandi. Pada saat yang sama, jika tidak ada yang memasuki kamar mandi, maka ini sudah diperbaiki oleh sensor yang terletak di dalam kamar mandi. Setelah 15 detik, lampu mati di sana. Jika seseorang memasuki kamar mandi, maka lampu di koridor mati setelah satu menit. 

Saya juga memikirkan kasus-kasus seperti itu jika seseorang berpikir terlalu banyak ketika duduk di "teman kulit putih" di kamar mandi (saya memiliki kamar mandi gabungan). Untuk ini, cahaya di kamar mandi dibagi menjadi dua kelompok. Satu dimatikan 3 menit setelah sensor di kamar mandi berhenti mendeteksi gerakan, yang lain setelah 5 menit. Jadi selama lebih dari lima menit untuk tetap tak bergerak di kamar mandi dalam cahaya tidak bekerja. Sangat disiplin. Namun, Anda selalu bisa menggerakkan tangan dan terus memikirkan hal-hal yang penting.

Sensor kelembaban juga berfungsi di kamar mandi, yang secara otomatis memulai tudung jika kelembaban melebihi 50%. Segera setelah ruangan berventilasi hingga 45% kelembaban, kap mesin dimatikan. 

Manajemen pergi - atau lebih tepatnya mencoba untuk pergi - melalui platform Arduino. 


Foto diambil dari situs web pabrikan

Segera, menjadi jelas bahwa platform ini tidak sepenuhnya tentang menciptakan rumah yang cerdas. Kerugian utama bekerja dengan Arduino adalah bahwa platform bekerja tanpa jaringan, dan tanpa itu, tidak ada ekosistem yang benar-benar bersatu yang dapat diperoleh. Tentu saja, saya bisa mengulang Arduino dan menambahkan dukungan jaringan, tetapi mengapa? Saya memilih jalur yang lebih sederhana dan mengubah platform ini ke yang lain. 

Setelah cukup bermain dengan Arduino, saya menghubungkan kembali rumah ke papan ESP-8266. Sebenarnya, ini adalah Arduino yang sama, tetapi dengan Wi-Fi + ukurannya lebih ringkas. Modul ini masih populer dengan produsen gadget untuk rumah pintar. 


Foto diambil dari Internet

Secara paralel, saya mencoba membuat rumah pintar menjadi lebih pintar. Misalnya, pecahkan masalah pemanasan di bawah lantai sepanjang waktu atau AC yang selalu menyala. Untuk ini, saya membeli termok WiFi China Beok. Mereka diperbolehkan mematikan pemanas lantai dari jarak jauh, tetapi harus melakukannya melalui aplikasi khusus di telepon. 

Saya memecahkan masalah remote control AC menggunakan emulator sinyal inframerah Broadlink RM Pro. Tidak ada yang rumit: Anda merekam sinyal dari panel kontrol AC ke emulator (mungkin ada teknik yang dikendalikan oleh remote control), dan kemudian pada ponsel Anda menekan tombol di aplikasi, dan emulator memainkan sinyal yang sebelumnya direkam. Untuk AC, saya mendapat kesempatan untuk menyalakan dan mematikannya, mengatur mode operasi dan mengatur parameter lain dari jarak jauh.  

Juga memasang sakelar Livolo. Dengan bantuan mereka, saya juga bisa menyalakan dan mematikan lampu di udara. 



Dari minus: untuk kontrol, saya harus menginstal aplikasi yang terpisah lagi dan tidak ada umpan balik, yaitu, saya tidak dapat melihat bahwa lampu menyala jika dihidupkan atau dimatikan oleh seseorang secara manual menggunakan sakelar konvensional. 

Berbagai relay WiFi terkontrol seperti Sonoff atau Tuya dan bahkan Danalock yang mahal untuk mengunci apartemen, yang juga membutuhkan aplikasi terpisah, juga muncul di rumah. Hampir semua hal-hal kecil ini (kecuali Danalock) saya beli di situs China Aliexpress, di mana harganya sangat murah dan memungkinkan saya untuk bereksperimen tanpa investasi serius. 

Salah satu pembelian yang relatif serius pertama adalah nafas Tionghoa. Dengan kontrol CO2 otomatis, ia lebih atau kurang diatasi, tetapi suhu pemanasan udara di musim dingin terus-menerus harus disesuaikan secara manual. Dan lagi - untuk mengelolanya perlu menginstal aplikasi terpisah. 


Foto diambil dari situs web pabrikan.

Semua sensor dan pengontrol yang saya coba saat itu, saya bahkan tidak bisa mengingatnya. Ponsel cerdas saya tersumbat dengan aplikasi untuk mengelolanya. Itu adalah seluruh kebun binatang, yang harus selalu diikuti. Saya mencoba menggabungkan manajemen aplikasi ini melalui semua jenis agregator seperti HomeBridge / MajorDomo, dll. Tetapi semua orang menunjukkan kekurangan mereka yang signifikan:

  • antarmuka yang tidak ramah, dan kadang-kadang hanya antarmuka yang buruk
  • kurangnya dukungan untuk semua aplikasi yang digunakan
  • koneksi yang kompleks

Pencarian aplikasi untuk manajemen terpusat dari sejumlah sensor, pengontrol, dan sistem kontrol lainnya belum membuahkan hasil. Kemudian saya mencoba untuk secara independen mengingatkan salah satu perangkat "pintar" - nafas Tionghoa. Saya menulis naskah untuk secara otomatis mengontrol suhu pemanasan tergantung pada suhu kamar. Faktanya adalah bahwa sistem ventilasi tidak memiliki penyesuaian otomatis suhu pemanasan udara. Ternyata ruangan itu sangat panas atau sangat dingin. Tidak ada cara untuk mencapai jalan tengah. Di sini, dengan bantuan naskah tertulis dan bernafas, masalah ini terpecahkan. 

Sukses dengan script untuk nafas mendorong saya untuk membuat aplikasi saya sendiri untuk mengelola rumah pintar. Tujuan utamanya adalah membuat program dengan integrasi perangkat pintar yang nyaman, kondisi otomatisasi multi-level, dan kemampuan untuk mengelola semua perangkat di rumah. 

Selama sekitar satu tahun, saya sendiri terlibat dalam pengembangan aplikasi back-end dan front-end. 

Sisi server ditulis dalam NodeJS. Pilihan yang mendukung NodeJS dibuat karena komunitas yang dikembangkan, di mana ada protokol yang diterapkan untuk hampir semua perangkat di pasar. Bagian klien ditulis dalam Angular (Ionic) dan berjalan di Android / iOS. Secara umum, arsitektur client-server klasik.

Pada catatan:Dalam proses mengerjakan aplikasi, saya mendapat wawasan teknis tentang penggunaan kotoran saat menulis driver perangkat. Saya tidak tahu, mungkin bagi sebagian orang sekolah dasar, tetapi menjadi lebih mudah bagi saya untuk bernapas.

Saya menulis ulang driver perangkat berkali-kali sampai saya menemukan sesuatu seperti ini:

Contoh kode salah satu perangkat
import {XiaomiSubdeviceV2} from '../xiaomi.subdevice.v2';
import {load_power} from '../capabilities/load_power';
import {power_plug} from '../capabilities/power_plug';
import {PowerPurpose} from '../../base/PowerPurpose';
import {Relay} from '../../base/types/Relay';
import {HomeKitAccessory} from '../../hap/HomeKitAccessory';
import {Lightbulb2Accessory} from '../../hap/Lightbulb2Accessory';
import {Yandex} from '../../yandex/Yandex';
import {YandexLightOrSwitch} from '../../yandex/YandexLightOrSwitch';

export class LumiPlug extends XiaomiSubdeviceV2.with(Relay, power_plug, load_power, PowerPurpose,
  HomeKitAccessory, Lightbulb2Accessory,
  Yandex, YandexLightOrSwitch) {

  onCreate() {
    super.onCreate();
    this.model = 'Mi Smart Plug';
    this.class_name = 'lumi.plug';
    this.driver_name = 'Mi Smart Plug';
    this.driver_type = 3;
    this.parent_class_name = 'lumi.gateway';
  }

  getIcon() {
    return 'socket';
  }
}


Intinya adalah bahwa meskipun banyak perangkat yang berbeda, mereka semua melakukan hal yang kira-kira sama dan memberikan informasi yang kurang lebih sama. Oleh karena itu, semua kemampuan perangkat ditempatkan di pengotor terpisah, yang akhirnya terdiri driver akhir. Misalnya, aplikasi mendukung banyak perangkat yang memiliki fungsi on / off. Itu dibuat dalam pengotor terpisah dan digunakan secara identik untuk semua perangkat. Dasar, Watson!

Apa yang menyebabkan ini: driver perangkat baru ditulis dengan cepat dan mudah, karena semuanya terstandarisasi dan tidak perlu khawatir tentang penyimpanan lebih lanjut dari informasi yang diterima. Untuk protokol yang sama sekali baru (yang belum saya miliki), pengotor juga ditulis berdasarkan pada yang sudah ada. Mereka sudah menerima informasi perangkat dan mengirimkannya lebih jauh ke rantai. Pendekatan ini memungkinkan kami untuk mengurangi jumlah kode hingga puluhan kali (awalnya, setiap driver adalah salinan dari driver yang sama).

Jadi lambat laun aku melewati semua lingkaran neraka untuk menyelesaikan bagian belakang dan depan. Ketika aplikasi memperoleh tampilan yang cukup dapat ditoleransi, saya berpikir: mengapa tidak berbagi perkembangan Anda dengan publik? Mitra ditemukan untuk proyek dan asisten untuk membawa aplikasi ke pikiran. 

Pertama-tama, perlu diingat desain aplikasi. Untuk melakukan ini, saya harus beralih ke desainer profesional. Saya naif percaya bahwa itu akan memakan waktu 3-4 bulan, tetapi pada akhirnya proses berlarut-larut. Terlepas dari kenyataan bahwa struktur aplikasi tidak banyak berubah dari sumber aslinya, secara harfiah semuanya harus diperbaiki.

Secara paralel, saya - tidak sendirian, tetapi dengan tim mitra proyek - membeli perangkat paling populer untuk rumah pintar dan menambahkan aplikasi jika tidak mendukung gadget ini. Segera, bagaimanapun, menjadi jelas bahwa tidak ada cukup uang untuk semua perangkat pintar, jadi kami memutuskan untuk berbicara dengan pemain yang ada di pasar dan menyetujui sampel uji peralatan secara gratis. Kami tidak ditolak, dan Wirenboard dan MiMiSmart menjadi pemasok serius pertama.

Jadi, bersama dengan teman-teman, saya membuat aplikasi baru untuk otomatisasi rumah pintar dengan arsitektur client-server klasik, yang diletakkan pada platform apa pun, dan dengan desain modern yang nyaman. Temui BARY *.

* Nama itu tidak berasal dari nama Bari Alibasov, tetapi dari karakter buku Arthur C. Doyle "The Hound of the Baskervilles" oleh kepala pelayan Barrymore - kepala pelayan pribadi Anda. 

Yang terjadi: deskripsi aplikasi dengan gambar dan kucing yang indah


Layar utama adalah dasbor yang nyaman dengan kemampuan untuk melihat dan mengelola parameter kamar otomatis. Nyaman - ini adalah kata kuncinya, karena dasbor di aplikasi yang saya coba pakai sendiri harus dikonfigurasikan secara manual. Bukan hobi yang paling menyenangkan



Rumah dapat dibagi menjadi zona, dan zona - ke dalam kamar. Setiap kamar memiliki berbagai parameter: suhu, kelembaban, konsumsi listrik saat ini, dll., Serta tindakan yang dipilih. Jika kita klik pada ruangan, kita akan masuk ke dalam daftar perangkat yang terhubung dengannya:



Di sini Anda dapat menghidupkan / mematikan perangkat, dan juga melihat parameter utamanya. Saat beralih ke perangkat, kontrol yang lebih rinci dengan daftar fungsi lengkap akan tersedia. 

Semua perangkat terhubung menggunakan pengaturan yang sama. Untuk banyak perangkat ada panduan koneksi. Tidak ada konfigurasi untuk mereka yang suka panas! Pada dasarnya, ia menentukan alamat IP perangkat (untuk banyak perangkat ada pencarian otomatis). Jika alamat IP tiba-tiba berubah, maka tidak apa-apa, server akan menemukannya di alamat baru secara otomatis.



Ada integrasi dengan Apple HomeKit, digunakan untuk kontrol suara melalui Siri. Semua perangkat yang didukung di BARY terintegrasi dengan Apple HomeKit dengan satu centang (halo kepada penggemar HomeBridge). Bukan tanpa dukungan Yandex Alice. Dia lebih ramah dalam hal perintah antarmuka. Misalnya, Siri tidak ingin menutup gorden dengan perintah "tutup gorden", tidak dapat mengatur level volume tertentu di TV dan sebagainya. Yandex. Alice tidak memiliki kookies seperti itu. 

Untuk kenyamanan mengelola lahan cerdas, otomatisasi telah diterapkan: aturan untuk pelaksanaan tindakan apa pun saat memenuhi serangkaian persyaratan. Otomasi adalah logis, multi-level, mis. Anda dapat melakukan sesuatu seperti: "Kondisi 1 dan (Kondisi 2 atau Kondisi 3)." Semua dalam editor otomatisasi logis yang indah:



Secara pribadi, saya sudah memiliki seratus program otomasi, dan salah satunya dapat dengan cepat ditemukan, karena semuanya dikelompokkan berdasarkan ruang dan perangkat:



Skrip juga didukung dalam aplikasi. Skenario adalah tindakan kompleks yang dilakukan dalam kondisi tertentu dari otomatisasi. Untuk rumah pintar saya, saya hanya menggunakan set standar:



Saya telah meninggalkan rumah / kembali ke rumah melalui Apple TV - ini akan hidup / mati secara otomatis ketika semua orang meninggalkan rumah, atau seseorang kembali ke rumah. Anda pulang, dan penyiar dengan mata sedih dari Channel 1 sudah bertemu Anda di sana. Baik, bagus?

Nah, rumah pintar macam apa tanpa kemampuan mengawasi kucing?



Anda dapat menghubungkan kamera apa pun yang mampu memberikan aliran RTSP. 

Secara terpisah, saya ingin mengatakan tentang blok statistik. Ternyata cukup informatif:



Dalam legenda, bilah merah adalah penyimpangan dari nilai rata-rata selama enam bulan terakhir, bilah abu-abu adalah laju aliran dalam nilai rata-rata.

Dalam gambar, statistik saya untuk bulan September. Itu dingin, pemanasan belum diberikan, jadi pemanasan terus-menerus dihidupkan di ventilasi.

Anda juga dapat melihat statistik untuk setiap perangkat yang terhubung:



Omong-omong, ketersediaan otomatisasi dan statistik telah mengurangi biaya listrik lebih dari 2 kali lipat.

Semua peristiwa yang terjadi disimpan dan dapat dilihat:



Juga di halaman utama ada tab khusus yang mengumpulkan semua indikator utama yang dipilih oleh pengguna:



Omong-omong, pengukuran air dilakukan melalui sensor pintu / jendela terbuka Xiaomi. Untuk melakukan ini, alih-alih saklar buluh, output dari penghitung pulsa disolder ke kontak khusus, dan penghitung virtual dibuat di BARY, di mana Anda dapat menentukan sensor ini sebagai sumber pulsa.

Arsitektur dan Keamanan


Pertukaran klien-server dienkripsi menggunakan teknologi AES, dan server terletak tepat di dalam ruang otomatis. Menurut pendapat saya, ini melindungi sistem sebanyak mungkin dari intervensi pihak ketiga yang tidak diinginkan.

Jika tidak ada alamat IP putih, maka Anda dapat menghubungkan cloud. Itu akan bertindak sebagai perantara, tanpa kemampuan untuk mendekripsi perintah, karena tombol ada di server. 

Dari mana mendapatkan


Sisi server dapat dijalankan di hampir semua platform yang ada - terima kasih NodeJS. Untuk platform paling umum, kami telah menyiapkan skrip yang akan melakukan semua pekerjaan secara otomatis.

Untuk Raspberry Pi berdasarkan Peregangan Debian:

wget -qO- "http://bary.io/install?target=pi" | sudo bash

Parameter target bertanggung jawab untuk platform target dan dapat memiliki nilai-nilai berikut:
Raspberry Pi (Debian Stretch)
pi
Raspberry Pi (Debian Buster)
pi_buster
Tinker Board (Debian Stretch)
tb
Wiren Board (Debian Stretch)
wb

Jika seseorang ingin menginstal di platform lain, tulis kepada kami dan kami akan memperbarui skrip. Jika Anda mengalami kesulitan - juga menulis. Kami benar-benar membutuhkan umpan balik. 

Aplikasi ini tersedia secara bebas di Google Play dan App Store . Mungkin pada akhir tahun, aplikasi akan dibayar.

Kesimpulan


Mengapa saya menulis artikel ini? Tujuan utamanya adalah untuk mendapatkan umpan balik dari Anda.

Saat ini, proyek ini berkembang pesat, dan seluruh tim kami berusaha untuk memaksimalkan daftar peralatan yang didukung yang tersedia di pasar. Meskipun saya tidak sendirian mengerjakan proyek, tugas-tugasnya tetap sama - untuk membuat aplikasi yang paling nyaman yang memperhitungkan keinginan dan menyelesaikan masalah semua orang yang terlibat dalam pemasangan independen solusi cerdas untuk rumah.

Kami terbuka untuk berdialog tentang kemungkinan integrasi dan siap untuk mengimplementasikan dukungan peralatan dari perusahaan yang tertarik dengan kemitraan sesegera mungkin. Anda mendapatkan aplikasi yang sudah jadi dan tidak membuang waktu mengembangkan perangkat lunak. Dan kami mendapatkan berbagai perangkat yang didukung untuk setiap selera dan warna. Semuanya baik-baik saja. 

Rencana segera dan pelangi Wishlist


Saat ini, tim saya dan saya secara aktif terlibat dalam pengembangan unit penyimpanan video. Dimungkinkan untuk menempatkan video di penyimpanan rumah Anda atau di layanan cloud. Saya pikir pada awal tahun depan akan mungkin untuk berbicara tentang rilis baru. Haruskah mungkin untuk meninjau mutiara terbaik dari kucing yang menghibur dirinya sendiri sementara pemiliknya tidak di rumah? 

Tahun depan kami merencanakan lebih banyak integrasi dengan berbagai layanan: daftar pembelian dan pekerjaan, kalender, dll. Dia muncul, melihat satu layar - dan semuanya terlihat dalam tampilan penuh. Beberapa proyek turn-key telah menunjukkan bahwa tugas ini relevan.

Kami juga berencana untuk memulai produksi pengontrol dengan perangkat lunak prainstal untuk solusi batch rumah pintar (saat ini solusi batch "perangkat lunak + perangkat keras" tersedia bersama dengan mitra kamiDewan Wiren .

Dan dukungan untuk Google Home dan Amazon Alexa. Nah, perluasan jajaran peralatan yang didukung, tentunya.

Ngomong-ngomong, siapa yang peduli, Anda dapat melihat daftar perangkat yang didukung (tidak lengkap) di situs web kami , dan jika ada sesuatu yang tidak ditemukan dalam daftar, maka tanyakan di grup telegram .

Kami akan sangat berterima kasih jika Anda membagikan kekurangan Anda dalam aplikasi yang ada dan fitur apa yang akan Anda tambahkan di tempat kami.

Terima kasih sudah membaca. Mari kita buat rumah kita lebih pintar bersama!

All Articles