GNU/Linux >> Belajar Linux >  >> Linux

Otomatisasi rumah:Menjalankan Asisten Rumah dengan Podman

Perangkat pintar mengelilingi kita dan daftar panjang perangkat yang siap terhubung ke Internet of Things (IoT) bertambah panjang setiap hari. Misalnya, popularitas bola lampu pintar telah meningkat pesat selama beberapa tahun terakhir, dan pasar terus tumbuh, sedemikian rupa sehingga diprediksi sebagai "perangkat rumah pintar yang tumbuh paling cepat selama lima tahun ke depan." Sementara beberapa nama besar di lapangan mendominasi pasar, ada banyak pesaing kecil yang bergabung dan menawarkan alternatif yang lebih murah dengan lebih banyak fitur. Ini bagus untuk kompetisi, tetapi ini menimbulkan satu masalah serius dan situasi yang terlalu akrab bagi banyak sysadmin—sebuah mimpi buruk integrasi.

[ Anda mungkin juga menyukai: Bantuan terkait penelitian COVID-19 menggunakan Folding@home di Linux ]

Masalahnya adalah bahwa setiap produsen cenderung memberikan solusi sumber tertutup dan bawaannya sendiri untuk mengontrol perangkat mereka—biasanya dalam bentuk aplikasi seluler. Tetapi apa yang terjadi ketika Anda memutuskan untuk membeli perangkat baru dari produsen yang berbeda dari yang telah Anda integrasikan ke dalam otomatisasi rumah Anda? Kemungkinan Anda akhirnya harus menggunakan beberapa aplikasi untuk mengontrol perangkat, dan mari kita tidak mulai berbicara tentang bagaimana membuatnya bekerja bersama dalam beberapa jenis mode otomatis. Ada layanan cloud yang tersedia untuk membantu mengatasi masalah ini, menyediakan sarana untuk membuat aplikasi dan otomatisasi untuk mengontrol perangkat dari berbagai produsen. Layanan tersebut menawarkan platform yang bagus untuk memulai perjalanan Anda ke otomatisasi perangkat pintar, tetapi layanan ini cenderung beroperasi dengan langganan berbayar atau model "freemium" yang sangat terbatas, dan Anda akan semakin bergantung pada layanan berbasis cloud ini .

Pada tahun 2013 sebuah proyek open source dimulai untuk mengatasi masalah semacam ini dan membawa kontrol lokal perangkat pintar dari cloud dan kembali ke rumah. Saat ini proyek tersebut berjalan dengan baik, dengan lebih dari 2.500 kontributor dan integrasi serta fitur baru yang sering diluncurkan. Dalam artikel ini, saya akan memperkenalkan Anda ke platform otomatisasi rumah sumber terbuka yang disebut Asisten Rumah.

Menerapkan wadah Asisten Rumah

Asisten Rumah dapat digunakan menggunakan berbagai metode instalasi, di mana cara yang disarankan adalah dengan menggunakan OS Asisten Rumah, yang dilengkapi dengan semua yang Anda butuhkan. Namun, kami akan menggunakan gambar wadah untuk pencicip ini, yang akan memberi kami wawasan singkat tentang cara kerja Asisten Rumah. Langkah-langkah berikut mengasumsikan Anda sudah memiliki runtime container yang diterapkan di sistem Anda, seperti Podman. Home Assistant beroperasi pada port TCP 8123, jadi Anda perlu memastikan port ini belum digunakan di sistem Anda.

1. Mulailah dengan menarik gambar kontainer:

$ podman pull docker.io/homeassistant/home-assistant:stable

2. Siapkan direktori konfigurasi:

$ mkdir ~/hass_config

3. Terapkan wadah menggunakan Podman:

$ podman run --init -d \
--name homeassistant \
--restart=unless-stopped \
-v /etc/localtime:/etc/localtime:ro \
-v ~/hass_config:/config:Z \
--network=host \
homeassistant/home-assistant:stable

4. Setelah wadah aktif dan berjalan, buka browser web pilihan Anda dan buka http://127.0.0.1:8123/ . Buat akun pengguna admin Anda dengan mengisi kolom yang diperlukan.

5. Jika Anda sudah memiliki beberapa perangkat pintar yang terhubung ke jaringan rumah Anda, Anda mungkin menemukan di layar berikutnya bahwa Asisten Rumah telah menemukannya dan menyajikannya sebagai integrasi untuk segera dipasang. Kami akan melewati langkah ini dan menjalankan cara menyiapkan integrasi di bagian berikutnya. Tekan Selesai untuk melanjutkan ke GUI Lovelace Asisten Rumah dan menjelajah sedikit untuk membiasakan diri Anda dengan tata letak tanah.

Catatan :Jika Anda melihat beberapa item menu hilang atau pesan kesalahan seperti berikut di log Asisten Rumah Anda:

Tidak dapat mengatur dependensi default_config. Penyiapan gagal untuk dependensi:otomatisasi.

Cukup reboot Home Assistant melalui Konfigurasi -> Kontrol Server -> Mulai ulang .

Integrasi dan Otomatisasi

Dengan wadah Asisten Rumah Anda dikerahkan, mari kita terjebak ke dalam konfigurasi. Integrasi di Asisten Rumah memberi kita kemampuan untuk berinteraksi dengan input eksternal, baik itu API online seperti jadwal transportasi umum atau perangkat pintar fisik seperti strip lampu LED atau pelembab udara pintar. Pada saat penulisan, Asisten Rumah menyajikan koleksi 1.765 integrasi, dan perpustakaan itu berkembang pesat. Anda akan menemukan bahwa banyak merek besar sudah didukung, dan jika rumah Anda sudah memiliki semacam bohlam lampu pintar, TV, atau mesin kopi, maka ada kemungkinan besar bahwa Asisten Rumah sudah memiliki integrasi untuk itu. Jika tidak, dan Anda ingin mengotori tangan Anda, proyek ini open source, dihosting di GitHub, dan selalu mencari kontribusi!

Untuk contoh ini, saya akan menyiapkan Met.no integrasi untuk mengambil prakiraan cuaca di Nordik. Jangan ragu untuk menggunakan penyedia layanan cuaca lain jika Anda mau.

  1. Di GUI Asisten Rumah, navigasikan jalan Anda ke Konfigurasi -> Integrasi -> Tambahkan Integrasi . Cari “Meteorologisk institutt (Met.no)” dan masukkan informasi nama, lintang, dan bujur yang diinginkan. Ini mungkin sudah diisi untuk Anda oleh Asisten Rumah, tetapi jika tidak, Anda dapat mengambilnya di tempat lain di Internet dan memasukkannya sendiri.
  2. Tekan Kirim lalu Selesai untuk menambahkan integrasi ke konfigurasi Asisten Rumah Anda. Menggunakan panel navigasi di sebelah kiri, klik Ringkasan untuk membuka GUI Lovelace Anda.
  3. Secara default, Asisten Rumah dikonfigurasi untuk mengisi GUI Lovelace untuk Anda secara otomatis, tetapi pada titik tertentu, Anda ingin mengambil kendali dan mengaturnya sesuai keinginan Anda. Klik ikon menu kebab (tiga titik vertikal) di kanan atas dan pilih Edit Dasbor -> Ambil Kontrol .
  4. Klik Tambahkan Kartu tombol, dan untuk jenis kartu, pilih Prakiraan Cuaca . Anda kemudian akan disajikan dengan opsi konfigurasi untuk kartu ini. Dalam kebanyakan kasus, Asisten Rumah akan secara otomatis memilih entitas yang tepat untuk Anda, tetapi Anda dapat menggunakan menu tarik-turun untuk mengubah entitas jika diperlukan. Dalam kasus saya, saya memberi integrasi Met.no saya nama "Rumah", sehingga entitas tersebut dinamai "cuaca.rumah" secara otomatis. Saya juga telah menyetel Atribut Sekunder ke "Kecepatan angin".
  5. Setelah menekan Simpan , kartu ditambahkan ke GUI Lovelace. Anda dapat mengeluarkan kartu dengan mengeklik ikon menu kebab di kanan bawah masing-masing kartu dan memilih Hapus kartu . Setelah selesai mengedit dasbor, tekan X di kiri atas untuk kembali ke mode tampilan.

Sekarang kita telah menambahkan integrasi, kita dapat melihat pengaturan otomatisasi. Kami akan membuat otomatisasi yang mengirimkan laporan cuaca singkat ke ponsel Anda melalui pemberitahuan push setiap pagi. Agar ini berfungsi, Anda perlu menginstal aplikasi Asisten Rumah ke perangkat seluler Anda dan masuk. Setelah masuk, ponsel Anda akan mulai melaporkan kembali ke server Asisten Rumah Anda. Dengan melihat di bawah Konfigurasi -> Entitas , Anda akan menemukan daftar berbagai sensor yang dilaporkan ponsel Anda kembali ke Home Assistant. Komunikasi melalui port TCP 8123 harus diizinkan antara ponsel Anda dan wadah Asisten Rumah di jaringan lokal, jadi Anda mungkin perlu menyesuaikan aturan firewall.

1. Buka Konfigurasi -> Otomatis -> Tambahkan Otomatisasi -> Mulai dengan otomatisasi kosong .

2. Beri nama otomatisasi "Laporan cuaca pagi".

3. Di bawah Pemicu , pilih Matahari untuk jenis dan pastikan Acara disetel ke Matahari Terbit . Anda dapat menambahkan offset seperti "01:00:00" untuk satu jam setelah matahari terbit atau "-01:00:00" untuk satu jam sebelum matahari terbit. Anda juga dapat menyetel waktu tetap dengan menggunakan Waktu ketik.

4. Di bawah Tindakan , setel jenisnya ke Layanan panggilan dan atur Layanan ke "notify.mobile_app_model_ponsel Anda" . Untuk Layanan data, kita perlu menulis konfigurasi kita dalam format YAML, dan kita akan menggunakan templating Jinja2 untuk menjalankan beberapa pernyataan bersyarat. Anda dapat menemukan informasi lebih lanjut tentang pembuatan template di Home Assistant.

title: Weather Report
message: >-
  The current temperature is {{state_attr("weather.home", "temperature") }} degrees
  with an expected maximum of {{ state_attr("weather.home","forecast")[0]["temperature"] }} degrees.
  {%if state_attr("weather.home", "forecast")[0]["precipitation"] | float == 0 %}
    There is no rain forecast today
  {% else %}
    You can expect {{ state_attr("weather.home","forecast")[0]["precipitation"] }}mm of rain today
  {% endif %}
  {% if state_attr("weather.home","wind_speed") | float > 20%}
    and it's a little windy outside, so hold on to your hat!
  {% else %}
    and it's not too windy.
  {% endif %}

5. Tekan tombol biru Simpan tombol untuk menyimpan otomatisasi. Di Otomasi halaman, Anda dapat menguji otomatisasi baru Anda yang mengkilap dengan mengeklik Jalankan . Anda sekarang seharusnya memiliki notifikasi push di ponsel Anda dengan laporan cuaca singkat dari Asisten Rumah yang terlihat seperti ini:

[ Butuh lebih banyak tentang Ansible? Ikuti kursus tinjauan teknis gratis dari Red Hat. Ansible Essentials:Kesederhanaan dalam Tinjauan Teknis Otomasi. ] 

Menutup

Ini adalah penginstalan, konfigurasi, dan penerapan dasar Home Assistant. Saya menyiapkan integrasi baru di dasbor Lovelace dan memberi Anda gambaran tentang otomatisasi. Meskipun saya hampir tidak mengetahui banyaknya integrasi, otomatisasi, dan konfigurasi Asisten Rumah, setidaknya ini akan memberi Anda gambaran tentang apa yang mungkin. Dengan memanfaatkan sepenuhnya penawaran Asisten Rumah, Anda akan menemukan kemungkinan yang hampir tak terbatas; Anda hanya benar-benar dibatasi oleh imajinasi Anda. Jika Anda menikmati pengantar singkat ini, saya sarankan untuk terus bermain-main dengan gambar kontainer untuk merasakan apa yang dapat dilakukan Asisten Rumah untuk Anda. Jika Anda ingin menyiapkan lingkungan produksi, lihat OS Asisten Rumah.


Linux
  1. pytest berjalan dengan versi lain dari python

  2. Kehabisan ruang disk di / direktori home?

  3. Izin tulis pengguna SFTP yang di-chroot

  1. Kelola direktori home pengguna Linux dengan systemd-homed

  2. Cara Menghapus Akun Pengguna dengan Direktori Rumah di Linux

  3. Menyetel afinitas proses yang berjalan dengan kumpulan tugas gagal

  1. Menjalankan Podman tanpa root sebagai pengguna non-root

  2. Otomatisasi kata sandi SSH di Linux dengan sshpass

  3. Berbagi grup tambahan dengan wadah Podman