Cara mudah untuk membuat peringatan suara di sistem Home Automation ("Smart Home")

Setelah menguji klien SIP konsol Linphonec, saya melihat di dalamnya kemungkinan cara sederhana dan cepat untuk menerapkan peringatan suara pada ponsel, untuk sistem otomasi rumah.

Saya pikir metode ini cocok untuk banyak sistem otomasi rumah DIY, saya akan memberikan versi saya.

Saya memiliki sistem otomasi Rumah Pintar MajorDoMo yang diinstal pada komputer papan tunggal Raspberry Pi (menjalankan Raspbian (Debian 9).

Kami akan membuat kemungkinan pemberitahuan dari MajorDoMo ke smartphone tanpa menggunakan peralatan tambahan dan server VoIP kami.

Prinsip singkat peringatan: jika terjadi kecelakaan kritis (semua orang dapat menentukan daftar kecelakaan mereka sendiri), sistem otomasi mengelola klien VoIP konsol dan memanggil pemilik melalui protokol SIP, setelah responsnya memutar file suara yang direkam sebelumnya dengan pesan kecelakaan.

Pertama-tama, kita membutuhkan dua akun dari penyedia SIP dengan inbound / outbound gratis dalam jaringan. Misalnya, ambil layanan telepon cloud Zadarma.com.

Langkah pertama: kami mendaftar dengan penyedia, saat mengakses akun pribadi Anda dan akun SIP Anda. Kami dapat mendaftar dengan beberapa kotak surat, tetapi kami dapat mengisi ulang akun dan mendapatkan nomor tambahan. Bagaimanapun, kita harus memiliki 2 angka (akun) dan kata sandi.

Pada smartphone (berfungsi untuk saya di bawah Androd OS) kami memasang aplikasi seluler dari pasar, klien SIP akan melakukannya. Untuk kenyamanan dan meminimalkan pengaturan awal, kita bisa menggunakan aplikasi eksklusif untuk panggilan Zadarma, tetapi kita bisa lebih fungsional.
Setelah instalasi, kami melakukan registrasi dengan menunjukkan nomor dan kata sandi Anda, ini menyelesaikan pengaturan smartphone. Jadi kami menggunakan satu nomor.

Pada Server Otomasi Rumah Raspberry, kita memerlukan klien terminal SIP Linphonec. Ketika menginstal dari repositori Raspbian, versi 3.6.1 yang agak lama diinstal, yang tidak bekerja dengan baik dengan sistem suara ALSA, tetapi karena tidak perlu menggunakan suara secara langsung, mari kita ikuti cara yang mudah.

Menginstal versi saat ini dari paket Linphone (3.12.0) tanpa antarmuka grafis untuk Debian 9, saya jelaskan dalam artikel sebelumnya: tombol panggilan DIY. Raspberry Pi, MajorDoMo, Freeswitch dan Linphonec . Di sana Anda dapat menemukan informasi tentang cara memasang kartu suara USB dan pengaturan suara untuk Raspberry Pi.

Di terminal, jalankan perintah berikut:

sudo apt-get install linphone-nogtk 

Instalasi linphonec utilitas klien konsol dan linphonecsh dilakukan - program konsol untuk mengelola linphonec berjalan di latar belakang di direktori / usr / bin.
Mari kita jalankan pertama dengan mengetik:

 linphonec 

Kami meluncurkannya, klien SIP bersumpah di ALSA, kami tidak memperhatikannya.

Kami menjalankan perintah pendaftaran klien (Linphonec) di server zadarma, tentukan nomor dan kata sandi Anda yang kedua:

 register sip:xxxxxx@sip.zadarma.com sip.zadarma.com PASSWORD 

Jika inputnya benar, maka kita melihat jawaban tentang pendaftaran yang berhasil:

gambar

Kami keluar dari klien (Ctrl + c, sementara klien menyimpan pengaturan ke file .linphonerc dari pengguna saat ini, dalam kasus saya, direktori / home / pi /. Waktu berikutnya SIP dimulai, klien secara otomatis terdaftar pada server penyedia.

Kami merekam pesan suara (misalnya: "Perhatian sistem telah di-boot ulang, statusnya sekarang beroperasi":

 arecord -D plughw:1,0 -f cd /home/pi/alarm_restart.wav 

Untuk menjalankan dan mengontrol Linphonec dalam mode daemon, utilitas Linphonecsh digunakan. Awalnya, pada saat startup, inisialisasi klien lininit -init diperlukan. Ketika perintah ini dijalankan, klien konsol memulai tanpa memuat file konfigurasi.

Agar saat startup konfigurasi dibaca, jalankan dengan bendera dengan:

  linphonecsh init -c /home/pi/.linphonerc 

Sekarang kita dapat mengelola klien konsol dari terminal.

Daftar Perintah Linphonecsh
 Usage: linphonecsh <action> [arguments] where action is one of init : spawn a linphonec daemon (first step to make other actions) followed by the arguments sent to linphonec generic : sends a generic command to the running linphonec daemon followed by the generic command surrounded by quotes, for example "call sip:joe@example.net" register : register; arguments are --host <host> --username <username> --password <password> unregister : unregister dial : dial <sip uri or number> status : can be 'status register', 'status autoanswer' or 'status hook' soundcard : can be 'soundcard capture', 'soundcard playback', 'soundcard ring', followed by an optional number representing the index of the soundcard, in which case the soundcard is set instead of just read. exit : make the linphonec daemon to exit. 



Mari kita coba perintah berikut:

 linphonecsh generic 'soundcard use files' 

 linphonecsh generic 'play alarm.wav' 

 linphonecsh dial sip:@sip.zadarma.com 

Di mana generik adalah tim dari program Linphonec itu sendiri. XXXXXX adalah nomor SIP kami yang terinstal di smartphone.

Dalam hal ini, panggilan terjadi, ketika menjawab - Anda dapat mendengar pemutaran file yang direkam sebelumnya dengan kecelakaan.

Secara manual itu berhasil. Untuk berintegrasi dengan sistem otomatisasi rumah berbasiskan MajorDoMo, misalnya, lakukan darurat untuk me-restart server.
Kami menulis baris berikut dalam crontab (saat memuat PC, klien konsol memuat:

 crontab -e 

 @reboot sudo -u pi linphonecsh init -c /home/pi/.linphonerc 

Selanjutnya, buka halaman web sistem DD, buka Control Panel - Scripts - Events - Startup. .



Skrip diimplementasikan dalam bahasa pemrograman PHP. Sudah ada satu baris dalam kode itu, ketika memulai sistem, mengucapkan frasa dengan alamat IP server.

Tambahkan beberapa lagi:

 exec ("sudo -u pi linphonecsh generic 'soundcard use files'"); 

 exec ("sudo -u pi linphonecsh generic 'play alarm.wav'"); 

 exec ("sudo -u pi linphonecsh dial sip:576935@sip.zadarma.com "); 

Kami menginstal untuk mengeksekusi setelah menyimpan , kami menyimpan, pada saat yang sama ada panggilan pada ponsel.

Kami me-reboot sistem MajorDoMo, melalui Layanan - Reboot / shutdown .
Setelah reboot, pemberitahuan suara tiba di telepon. Algoritme tindakan yang sama dapat dilakukan untuk kecelakaan lain yang penting bagi Anda.

Setelah sedikit mengubah urutan tindakan, Anda dapat menginstal server IP telephony Anda sendiri (Asterisk, Freeswitch, dll.) Di sistem otomasi rumah Anda, sambungkan gateway VoIP ke sana dan secara langsung mengakses operator seluler atau PSTN. Opsi ini lebih fungsional, memiliki lebih banyak fitur, tetapi juga membutuhkan beberapa biaya besar, baik material maupun untuk pengaturan sistem.

Source: https://habr.com/ru/post/id466735/


All Articles