Menghubungkan HomeAssistant Dengan Mosquitto

by jq_rbp in Circuits > Raspberry Pi

28 Views, 0 Favorites, 0 Comments

Menghubungkan HomeAssistant Dengan Mosquitto

favicon-192x192.png

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:

home-assistant.io

Instalasi Python

$sudo apt-get install python3-pip
$sudo apt-get install python3-venv

Buat Folder Homeassistant

create_hassio_folder.png
$mkdir hassio
$cd hassio

Instal Homeassistant Melalui Python3

atur_venv.png
install_wheel.png

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

running_hass_systemd.png

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_password

ssl_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

hassio to mosquitto 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.