Halo, Habr!
Tujuan artikel ini (siklus) adalah
efek Habra, sebuah cerita pengantar tentang sistem otomasi rumah saya, tentu saja saya tidak menciptakan dan menciptakan segalanya dari awal, tetapi hanya mengumpulkan teknologi dan proyek yang saya anggap paling cocok untuk tujuan ini dan menambahkan sedikit dari diri saya. Level amatir, tetapi sebagai hasilnya, semuanya bekerja, orang menggunakannya dan tidak mengejar saya dengan klub. Saya melakukan semuanya sendiri. Terima kasih kritik konstruktif, akan menarik untuk mengetahui pendapat apa pun.
Sistem ini mencakup peralatan, dan serangkaian program: secara langsung sistem otomasi untuk komunikasi dan visualisasi peralatan, komunikasi dan telemetri untuk pemantauan dan pembaruan jarak jauh, asisten suara dari Yandex. Semuanya
(hampir semuanya) terbuka dan diposting di
Github .
Tingkat peralatan
Bagian utama dan penting adalah server berbasis pada Raspberry Pi, tetapi dapat bekerja pada PC dengan Debian atau Ubuntu tanpa masalah. Sistem operasi raspbian. Sistem harus bekerja 24/7/365 sehingga Anda memerlukan catu daya berkualitas tinggi, misalnya, PSU ideal untuk iPad.

Untuk Manajemen Jarak Jauh, saya juga memiliki keterampilan untuk asisten suara Yandex membutuhkan server dengan IP "putih" dan domain. Server MQTT berjalan di server; SSL / TLS digunakan untuk keamanan.
Dukungan KNX melalui BAOS 771-774 gateway. BAOS adalah antarmuka antara bus KNX dan LAN. Mengizinkan akses ke alamat di bus melalui layanan web dalam format JSON.
Peralatan saya:Proyek untuk Arduino IDEPengontrol Wifi berbasis Wemos D1 mini
Didukung oleh jaringan 230 volt, dimungkinkan juga tanpa unit catu daya dari bus 5 volt umum ke power Wemo atau dari peralatan yang dikontrolnya, misalnya, penggerak gorden. Dimungkinkan untuk memasang di kotak pemasangan dan persimpangan dengan kedalaman yang cukup, misalnya di belakang sakelar.
Ini dapat digunakan sebagai pengganti kontrol radio dari berbagai drive tirai.
Pinout dari output terkontrol:
L1, L2 - Output daya dari triac BT-137S, dikontrol oleh output wemo D0, D5 melalui optocoupler MOC 3063S dengan kontrol transisi fase hingga nol. Menghidupkan dan mematikan beban akan terjadi tanpa menyebabkan gangguan pada jaringan.
p1, p2 - output PWM untuk dimmer atau drive tirai bermotor atau tombol tambahan, tergantung pada pengaturan. sesuai dengan kesimpulan dari wemos'a D6, D7.
Input analog A0 untuk menghubungkan berbagai sensor, seperti cahaya atau tombol tambahan.
ds - Koneksi sensor suhu DS18B20 sesuai dengan pin D1.
DHT - Menghubungkan sensor suhu DHT22 sesuai dengan pin D2.
b1, b2 - Tombol, pers pendek dan panjang, dengan fungsi penghitung klik, dapat dihubungkan ke output pulsa dari meteran listrik, air, dll.
Program pengontrol dibuat dalam Arduino IDE. Cocok untuk semua motherboard berbasis ESP-8266. Pengaturan jaringan, kontrol, dan pengoperasian pengontrol dilakukan oleh MQTT. Untuk kenyamanan melihat pengaturan, ada antarmuka Web, sebelumnya ada kemampuan untuk mengontrol melalui http, tapi kemudian saya menganggapnya berlebihan dan menghapusnya.
Antarmuka web dapat dinonaktifkan. Untuk kenyamanan konfigurasi awal, skrip dan instruksi winit.sh disediakan. Untuk mengatur ulang pengontrol ke pengaturan default, Anda harus memasukkan perintah "default 1" atau secara bersamaan menekan tombol b1, b2 selama 20 detik. Ada juga versi sederhana dari program untuk outlet Sonoff yang dikelola.
Pengontrol berbasis Arduino Mega
Terdiri dari mega itu sendiri dan perisai kartu jaringan W5100, papan memiliki output terpisah untuk dimmer dan input untuk sensor dan tombol, output relai harus dihubungkan secara terpisah menggunakan kabel ke konektor 2-baris yang terletak di papan mega yang terletak di sisi yang berlawanan dari kabel daya dan port USB. Pengontrol dirancang untuk penutup D6MG.
Pinout:
D2-9, D11-13 - Output PWM untuk dimmer, frekuensi PWM ditingkatkan dari standar.
D14-21 - DS18B20 dan sensor suhu DHT22.
D22-49 - output relai, output D22-29 dapat dikonfigurasikan untuk tirai, gerbang, tirai drive.
D 10.50-53 - menggunakan kartu jaringan W5100.
A0-16 - input untuk tombol, tekan pendek dan panjang. A0-A6 dapat dikonfigurasi untuk sensor analog.
Pengaturan jaringan untuk mega diatur dalam program sebelum menginstal. Alamat IP sudah diperbaiki.
Dimmer pada triac BT137-600E
Input 220 volt, kontrol PWM 0-5 / 3.3 volt, atur dengan mengatur jumper. 0-5 volt untuk bekerja dengan Arduino Mega atau 0-3,3 volt jika terjadi wemo. Sinyal PWM diumpankan ke input analog A0 Arduino Pro di mana ia dikonversi menjadi penundaan untuk membuka triac, konektor disediakan untuk mem-flash arduino di tempatnya. Ruang khusus untuk radiator. Di sisi arduino, ada kontrol dan konektor daya dari arduino (PWM, -, +), di sisi smimstor, ada konektor daya 4-pin - daya dan output ke beban, jika perlu, dapat juga dilengkapi dengan varistor atau snubber. Papan dimmer dirancang untuk sasis D2MG.
Proyek Dimmer:
Ada juga unit triac 28 channel dalam paket D9MG.
Saya minta maaf atas kualitas gambarnya Peralatan terhubung melalui Jaringan Area Lokal, sebuah protokol untuk komunikasi MQTT. Saya menggunakan server Mosquitto MQTT.
Bagian perangkat lunak
Untuk kenyamanan, pertama-tama Anda perlu menyiapkan gambar sistem operasi dengan semua program yang diperlukan, saya menggunakan Raspbian Stretch Lite. Anda perlu menginstal nodejs, python-pip, python3-pip, supervisor, mosquitto, mosquitto-clients, sqlite3. Dan paket pip: paho-mqtt dan psutil. Anda juga dapat menginstal Node-red, sempurna untuk semua jenis percobaan.
Setelah Apple Homekit dirilis pada tahun 2016, ternyata semua produsen dan pengembang untuk seluruh keberadaan sistem Smart Home tidak dapat melakukan apa pun yang dekat dalam hal kenyamanan dan fungsionalitas dibandingkan dengan homkit, ini mirip dengan situasi dengan rilis iPhone pertama, ketika ternyata seluruh kebun binatang telepon, telepon pintar, komunikator berubah menjadi sekelompok sampah. Bagaimanapun, selalu menyenangkan untuk menggunakan produk yang berkualitas dan jadi.
Saya memilih proyek
homekit2mqtt sebagai sistem visualisasi utama. Tentu saja, Anda dapat menggunakan OpenHUB atau Homeassistant, sistem ini juga bekerja dengan MQTT.
hjmqttHomekit2mqtt menciptakan Homekit Bridge, dapat ditemukan di program Home di perangkat Apple. Aksesori (pencahayaan, sensor, pengontrol suhu, dll.) Harus didaftarkan dalam file khusus dalam format JSON. Script filegen.sh dan install.sh bertanggung jawab untuk membuat file ini. Anda perlu mendaftarkan aksesori di filegen.sh, install.sh menambahkan homekit2mqtt ke pengisian otomatis dan mulai. Hal utama yang terjadi pada file hjmqtt.py - koneksi aksesori dengan peralatan, juga secara manual dalam file, Anda perlu mendaftarkan aksesori dan parameter peralatan, alamat untuk KNX.
Fungsi untuk aksesori terdaftar di file accessory.py dan accessoryknx.py. Status perangkat disimpan dalam database sqlite; perpustakaan statdb.py digunakan untuk operasi database.
hjconnectProyek selanjutnya diperlukan untuk telemetri jarak jauh. Ini adalah penggunaan memori, disk, memuat dan suhu, dan paket psutil digunakan untuk ini. Sekarang akses terbuka tersedia untuk versi hjconnect hanya untuk memantau dan tanpa enkripsi, dan sebagai proyek terpisah, program untuk menautkan file juga merupakan transfer
file MQTT
melalui-mqtt . Pengaturan langsung di file hjconnect.py utama. Jika Anda menjalankannya dengan opsi -l, Anda dapat mengujinya di server MQTT lokal, pengaturan untuk server jauh ada di baris 160
rclient.connect("test.mosquitto.org", 1883, 60)
server test.mosquitto.org dapat diganti dengan domain atau IP Anda. Untuk mengidentifikasi Raspberry Pi, nomor seri prosesor termasuk dalam topik, jika program dijalankan di komputer lain, alih-alih nomor seri, akan ada string "SN". Interval pesan diatur pada baris 96.
th = threading.Timer(9, my_stat)
di mana 9 adalah detik.
Contoh dari apa yang tampak seperti pemantauan simaSekarang hanya Yandex yang memiliki satu-satunya kolom berbahasa Rusia. Menciptakan keterampilan untuk Alice cukup mudah. Tidak seperti Siri, ada kebebasan penuh untuk bertindak. Dan akses di perangkat apa pun. Hanya, sayangnya, sementara tidak ada cara yang waras untuk meluncurkan keterampilan, terus-menerus menjalankan keterampilan itu tidak nyaman.
Ini adalah contoh keterampilan kerja. Untuk memulai keterampilan, Anda memerlukan sertifikat SSL, dapat dibuat menggunakan openssl. Pada baris sima.py pada baris 14 ada contoh pembuatan sertifikat
openssl req -new -keyout crt.pem -out crt.pem -x509 -days 365 -nodes -subj '/CN=site.com/O=user/C=RU'
site.com dan pengguna harus diganti dengan data mereka.
Ketika sebuah skill diluncurkan pada perangkat baru, pengenalnya direkam. Untuk menautkan pengidentifikasi dan sistem otomasi, Anda harus terlebih dahulu membuat file csv baru di direktori klien berdasarkan pada sampel file my.csv. Nomor seri ditulis dalam file sesuai dengan templat, ini adalah nomor seri yang sama dari program hjconnect, dan objek kontrol ditulis: nama, jenis, topik. Topik adalah bagian penting dari topik aksesori MQTT dari file JSON untuk homekit2mqtt. Kemudian, menggunakan sn.py, Anda perlu mengubah nomor seri menjadi kata sandi dan beri nama kata sandi ini pada perangkat yang akan Anda kelola. Komunikasi disediakan oleh program hjconnect, dan server pemantauan MQTT adalah komputer yang sama dengan keterampilan yang dijalankan.
Terima kasih, selamat tinggal.