Menghubungkan HomeAssistant Dengan Mosquitto
by jq_rbp in Circuits > Raspberry Pi
28 Views, 0 Favorites, 0 Comments
Menghubungkan HomeAssistant Dengan Mosquitto
Dalam instruksi ini diperlihatkan tentang cara menghubungkan home assistant dengan server mqtt mosquitto.
Instalasi home assistant dilakukan melalui virtual environment dalam python.
Kemudian dilanjutkan dengan pembuatan sertifikat (self-signed) dan konfigurasi antarmuka home assistant melalui https.
Pengaturan home assistant dilanjutkan dengan koneksi mqtt ke server mosquitto yang telah dibuat sebelumnya sesuai dengan instruksi dalam halaman berikut:
Komunikasi Wemos dengan Mosquitto
Yang terakhir diperlihatkan bagaimana mengakses antarmuka http dari home assistant yang telah dibuat sekaligus pengaturan klien mqtt (wemos) yang terhubung lewat protokol mqtt.
Informasi lebih lanjut mengenai home assistant dapat dilihat di halaman:
Instalasi Python
$sudo apt-get install python3-pip
$sudo apt-get install python3-venv
Buat Folder Homeassistant
$mkdir hassio
$cd hassio
Instal Homeassistant Melalui Python3
Instalasi lebih lengkap dapat dilihat di halaman web: Installation in Python virtual environment
Atur Virtual Environment untuk instalasi homeassistant:
$python3 -m venv homeassistant
Masuk ke folder homeassitant:
$cd homeassistant
Aktifkan virtual environment:
$source bin/activate
Instal wheel:
$python3 -m pip install wheel
Instal home assistant:
$python3 -m pip install homeassistant
Menjalankan Homeassistant Melalui Systemd
1. Buat folder tempat konfigurasi hassio:
$mkdir /home/pi/hassio/.homeassistant
Catatan:
Tulisan "/home/pi/hassio/.homeassistant" dapat diganti sesuai dengan letak folder konfigurasi yang diinginkan.
2. Buat file hass@.service:
$nano hass@.service
3. Isi dengan tulisan berikut ini:
[Unit] Description=Home Assistant After=network-online.target [Service] Type=simple User=%i ExecStart=/home/pi/hassio/homeassistant/bin/hass -c "/home/pi/hassio/.homeassistant" [Install] WantedBy=multi-user.target
Catatan:
Ganti tulisan "/home/pi/hassio/homeassistant/bin/hass" dan "/home/pi/hassio/.homeassistant" sesuai dengan letak folder virtual environment dan folder konfigurasi yang telah dibuat di langkah sebelumnya.
4. Keluar dengan Ctrl-X, lalu y
5. Ganti owner file hass.service dan pindahkan ke direktori systemd:
$sudo chown root:root hass@.service
$sudo cp hass@.service /lib/systemd/system/
6. Jalankan homeassistant melalui systemd:
$sudo systemctl start hass@pi
7. Cek apakah hass.service sudah berjalan:
$sudo systemctl status hass@pi
Jika tidak ada masalah / galat maka di keterangan status akan terdapat tulisan active (running).
Siapkan Sertifikat (self Signed) Untuk Home Assistang
Keterangan lebih lanjut dapat dilihat di sini: Self-signed certificat for SSL/TLS
Buat folder untuk sertifikat yang akan dibuat:
$mkdir certs
$cd certs
Catatan:
Catat letak folder ini untuk dimasukkan dalam file konfigurasi nanti. Di sini folder sertifikat terdapat di: /home/pi/hassio/homeassistant/certs.
Jalankan perintah berikut untuk membuat sertifikat:
$openssl req -sha256 -newkey rsa:4096 -nodes -keyout privkey.pem -x509 -days 730 -out certificate.pem
Catatan:
1. Masukkan keterangan jawaban dari sertifikat sesuai dengan keinginan.
2. Untuk dapat diakses melalui aplikasi Homeassist untuk IOS / iphone, kirim file certificate.pem melalui email dan / atau file share ke iphone dan kemudian masukkan ke dalam daftar "trust" dalam "Profile" Setting iphone.
Konfigurasi Untuk Home Assistant
Buka file configuration.yaml yang terdapat dalam folder .homeassistant yang telah dibuat sebelumnya:
$nano /home/pi/hassio/.homeassistant/configuration.yaml
Tambahkan tulisan berikut dalam kolom http
api_password: !secret http_passwordssl_certificate: /home/pi/hassio/homeassistant/certs/certificate.pem
ssl_key: /home/pi/hassio/homeassistant/certs/privkey.pem
Catatan:
Letak ssl_certificate dan ssl_key dapat diganti sesuai dengan lokasi sertifikat yang telah dibuat untuk digunakan dalam home assistant.
Buka file konfigurasi secrets.yaml untuk menambahkan password bagi antarmuka http:
$nano /home/pi/hassio/.homeassistant/secrets.yaml
Ganti kolom http_password sesuai dengan password yang diinginkan. Di sini menggunakan password bawaan yaitu "welcome"
http_password: welcome
Tambahkan Konfigurasi Mosquitto
Di sini mosquitto yang akan dihubungkan dengan home assistant melalui mqtt telah dibuat dengan menggunakan konfigurasi yang terdapat di instruksi berikut:
Komunikasi wemos dengan mosquitto
Dalam instruksi tersebut, sertifikat mosquitto yang digunakan oleh server dan klien terdapat pada folder /home/pi/certs:
pi@raspberrypi:~/certs $ ls -al /home/pi/certs total 80 drwxr-xr-x 2 pi pi 4096 May 3 02:26 . drwxr-xr-x 6 pi pi 4096 May 12 18:48 .. -r--r--r-- 1 pi pi 1330 May 3 02:04 ca.crt -rw-r--r-- 1 pi pi 942 May 3 02:07 ca.crt.der -r-------- 1 pi pi 1704 May 3 02:04 ca.key -rw-r--r-- 1 pi pi 17 May 3 02:26 ca.srl -rwxr-xr-x 1 pi pi 8711 May 2 23:36 generate-CA.sh -r--r--r-- 1 pi pi 1537 May 3 02:26 klien.crt -rw-r--r-- 1 pi pi 887 May 3 02:26 klien.csr -r-------- 1 pi pi 1675 May 3 02:26 klien.key -r--r--r-- 1 pi pi 2013 May 3 02:04 raspberrypi.crt -rw-r--r-- 1 pi pi 1005 May 3 02:04 raspberrypi.csr -r-------- 1 pi pi 1675 May 3 02:04 raspberrypi.key -r--r--r-- 1 pi pi 1537 May 3 02:05 wemos.crt -rw-r--r-- 1 pi pi 1095 May 3 02:07 wemos.crt.der -rw-r--r-- 1 pi pi 887 May 3 02:05 wemos.csr -r-------- 1 pi pi 1679 May 3 02:05 wemos.key -rw-r--r-- 1 pi pi 1192 May 3 02:07 wemos.key.der
Sertifikat yang akan digunakan untuk konfigurasi homeassistant adalah: ca.crt, klien.crt, dan klien.key. Kemudian username untuk mosquitto adalah admin, dengan password: adminpass.
Jika semua sertifikat telah siap, buka kembali file configuration.yaml:
$nano /home/pi/hassio/.homeassistant/configuration.yaml
Tambahkan konfigurasi berikut:
mqtt:
broker: 127.0.0.1
port: 8883
username: admin
password: adminpass
certificate: /home/pi/certs/ca.crt
client_key: /home/pi/certs/klien.key
client_cert: /home/pi/certs/klien.crt</p><p> protocol: 3.1
tls_version: '1.1'
switch:
- platform: mqtt
name: Wemos LED
command_topic: "homebridge/from/set"
payload_on: '{"name":"wemos-01-led-01","value":true}'</p><p> payload_off: '{"name":"wemos-01-led-01","value":false}'</p><p> retain: true</p>Kolom switch di sini adalah tombol untuk mengeset led pada wemos yang dapat dilakukan melalui mqtt dengan topik: "homebridge/from/set" dan pesan dalam bentuk json.
Catatan: Dalam python spasi / tab di awal sangat diperhatikan. Jika tidak selaras antara topik utama dan subtopik, akan terjadi galat / error.
Lalu, untuk membaca bacaan sensor, cari kolom sensor, lalu tambahkan platform mqtt wemos-01-sensor-01 yang telah dibuat dalam instruksi sebelumnya:
sensor:
- platform: yr
- platform: mqtt
name: Pressure Sensor
state_topic: "homebridge/to/set"
unit_of_measurement: "Byte"
value_template: '
{% if value_json.name == "wemos-01-sensor-01" %}
{{ value_json.value }}
{% else %}
nothing
{% endif %}'</p>Di sini sensor diberi nama Pressure Sensor yang menerima pesan dari mqtt klien di topik "homebridge/to/set".
Kemudian dengan value_template, pesan yang diterima di dalam topik mqtt tersebut (dalam bentuk json) kemudian diekstrak angkanya yang terdapat dalam field json: value.
Contoh pesan yang dikirim oleh wemos dan topik ini adalah:
{"name":"wemos-01-sensor-01","value":1040}
Setelah itu, restart hass@.service
$sudo systemctl restart hass@pi
Antar muka home assistant dapat diakses lewat web browser di alamat:
https://<home assistant ip>:8123
Catatan: ganti <home assistant ip> sesuai dengan alamat ip dari home assistant dan mosquitto. Di sini alamat ip tersebut 192.168.219.107 dan 192.168.1.1, sehingga dalam demo (di langkah selanjutnya), home assistant diakses dengan alamat:
https://192.168.219.107:8123
Karena sertifikat home assistant yang dibuat adalah self-signed, maka akan muncul pesan error ketika antar muka ini diakses. Ini dapat dihiraukan karena pembuatan sertifikat tersebut dilakukan sendiri.
Demo
Dalam demo diperlihatkan daftar file dan folder yang dibentuk selama instalasi home assistant ini.
Kemudian cara masuk ke dalam antarmuka home assistant yang dilanjutkan dengan pengaturan led dan monitor sensor yang tersambung dalam klien wemos.