Akhdani Tech Talk 2021 Series #2 – Smarthome

Masalah dan Ide

Pada zaman sekarang, dimana internet sudah menjadi hal yang lumrah bagi banyak orang, membuat teknologi ini dimanfaatkan dalam berbagai aspek untuk mempermudah pekerjaan sehari-hari. Salah satu penerapannya adalah smarthome, sekarang banyak perangkat-perangkat yang berada dirumah dan dapat di-Monitoring dan dikontrol secara lebih mudah melalui aplikasi mobile atau web dari jarak jauh dengan memanfaatkan jaringan internet. Tujuan dari smarthome ini adalah untuk mempermudah pekerjaan yang sebelumnya harus dilakukan secara manual dan berada di rumah, menjadi lebih efisien dan bisa dilakukan dari jarak jauh. Hal ini tentu saja membuat penghematan daya lebih maksimal, meningkatkan keamanan dan juga kenyamanan penghuni rumah. Smarthome sendiri merupakan sistem yang telah diprogram dan dapat bekerja dengan bantuan komputer untuk mengendalikan sebuah perangkat. Montoring dan kontrol  pada sistem smarthome membutuhkan berbagai macam komponen mulai dari hardware dan software yang terintegrasi. Pada penerapan kali ini perangkat yang digunakan adalah gabungan Lampu i-Switch dari Anjels, i-Net dari Anjels, Router, dan Server API. Anjels sendiri merupakan perusahaan yang menyediakan produk-produk IoT dan juga sebagai konsultan IoT.

Rencana Implementasi

Mengatur lampu melalui smartphone

schematic-document-page-1

Berikut ini merupakan skema pemasangan wireless control system pada lampu :

  1. Smarthome App (Smartphone)
    • Menerima status terkini dari Server API
    • Mengirimkan perintah konfigurasi lampu ke Server API
  2. Server API
    • Menerima perintah konfigurasi dari Smarthome App, kemudian Meneruskan perintah konfigurasi ke I-Net
    • Menerima status terkini lampu melalui I-Net, kemudian meneruskan status status terkini lampu ke Smarthome App
  3. I-Net
    • Menerima perintah dari Server API atau Voice Bridge dan mengirim konfigurasi ke I-Switch untuk penggunaan lampu.
  4. I-Switch
    • Menerima perintah dari I-Net, kemudian mengatur lampu sesuai perintah yang diterima
  5. Router
    • Menyediakan jaringan internet agar dapat diakses oleh publik

 

Cara Pemakaian dan Contoh

Contoh penggunaan dari sistem smarthome ini terdiri dari dua jenis, yaitu untuk monitoring, dan yang kedua untuk kontrol.

1. Hardware setup

  • Sambungkan i-Net dengan router yang tersambung koneksi internet
  • Sambungkan Server API dengan router yang satu jaringan dengan i-Net
  • Siapkan aplikasi smarthome app, bisa berupa web/mobile yang tersambung dengan koneksi internet

2. Software Setup

  • Install i-Net configurator
  • Untuk menambahkan device baru, buka i-Net configurator dan pilih menu Edit Devices (No. 10)

home-anjels

  • Kemudian pilih Add Device (B)

add-device-anjels

  • Setelah itu akan muncul device id yang tersedia, isi flied sesuai yang diinginkan dan pilih Save
  • Untuk mengakses device yang sudah didaftarkan, akses melalui

http://192.168.1.81:8181/device.cgi?dev={id_device}&cmd={command}. Id_device adalah id_device yang sudah didaftarkan sebelumnya, cmd adalah perintah yang di-request ke device.
Contoh untuk melihat status lampu :

http://192.168.1.81:8181/device.cgi?dev=2&cmd=128

Response dari comman ini adalah string angka 152 = on, 144 = off

  • Untuk contoh penerapan kali ini akan menggunakan sistem yang sedang dikembangkan untuk suatu apartemen, Server API menggunakan Java Spring Boot yang akan menerima request dengan parameter device id dan command, kemudian Server API akan mengirim url beserta parameter tersebut sesuai format berikut :
    http://192.168.1.81:8181/device.cgi?dev={id_device}&cmd={command}.
    Setelah itu response dari i-Net berupa string angka 1 = sukses, -1 = gagal.
    Pada sisi pengguna, aplikasi menggunakan Android Native. Untuk mengontrol lampu, dapat dilakukan dengan 2 metode :

    1. Mengatur lampu nyala atau mati
    2. Mengatur lampu sesuai kecerahan (jika lampu mendukung)

    whatsapp-image-2021-03-05-at-10-14-13-am

Akhdani Tech Talk 2021 Series #1 – Otomatisasi Pekerjaan Menggunakan Bot WhatsApp

Otomatisasi Pekerjaan Menggunakan Bot WhatsApp

Oleh: Gita Marshelina, Wiby Putra Adyan Ramdhani, Aria Enggar Pamungkas

Masalah dan Ide

WhatsApp hingga saat ini masih dipakai oleh semua anggota tim di lingkungan PT Akhdani Reka Solusi (ARS) sebagai media komunikasi. Bagaimana jika kita bisa memanfaatkan WhatsApp untuk lebih jauh lagi? Dalam lingkungan ARS pada pekerjaan HokBen Rework, bot WhatsApp mulai digunakan untuk otomatisasi pengecekan sumber daya server dan rekapitulasi pembayaran hanya dengan mengirim pesan tertentu pada jalur grup. Berdasarkan hal tersebut, kita bisa memanfaatkan bot ini sebagai portal untuk memudahkan pekerjaan kita yang berulang-ulang, seperti melihat rekap laporan harian (daily report), detail info proyek, hingga integrasi dengan tools lain seperti Trello atau Airtable untuk melihat status atau detil tugas yang diberikan.

Rencana Implementasi

1. Menggunakan Bot WhatsApp

Bot WhatsApp yang digunakan bukan dari API resmi WhatsApp, melainkan proyek open source dari

https://github.com/open-wa/wa-automate-nodejs

Instalasi library ini membutuhkan syarat berikut:

  • Kebutuhan Perangkat Keras
    1. Satu buah server, bisa sebuah PC/laptop ataupun VPS.
    2. Smartphone yang terkoneksi internet
  • Kebutuhan Perangkat Lunak
    1. NodeJS
    2. PHP
    3. Database
  • Tahapan Instalasi

Untuk instalasi sistem yang perlu dilakukan adalah:

  1. Instalasi dan konfigurasi library dan software yang diperlukan
  2. Membuat script sesuai kebutuhan
  3. Scan QR code
    2. Cara kerja sistem Bot WhatsApp

Pada dasarnya library NodeJS tersebut akan menggunakan headless Chromium yang dikendalikan oleh library ini. Dari mulai membuka WhatsApp web dan menampilkan QR code yang kemudian akan dipindai menggunakan smartphone yang sudah dipasang aplikasi WhatsApp.

1

Gambar 1. Cara Kerja Sistem Bot WhatsApp

Setelah login menggunakan QR berhasil, library ini akan otomatis membaca DOM teks pesan yang masuk, baik melalui grup maupun pribadi untuk kemudian dibaca konten pesan tersebut. Jika konten pesan ada yang cocok dengan kata kunci yang sudah didefinisikan, maka library ini akan meneruskan eksekusi kode sesuai yang telah dibuat sebelumnya. Berikut contoh kode eksekusi yang telah dibuat:

2

Gambar 2. Contoh Kode

3. Skrip BOT Dinamis

Skrip bot yang dinamis akan membuat bot WhatsApp bisa menerima masukan dan mengerjakan tugas yang lebih beragam dan bisa ditambah sewaktu-waktu, untuk skrip ini direncanakan akan dibuat dalam bahasa pemrograman PHP. Untuk pengelolaan skripnya akan dibuatkan aplikasi web sebagai admin panel.

3

Gambar 3. Contoh Tampilan Halaman Index Admin Panel

4

Gambar 4. Contoh Tampilan Halaman Tambah Script 

4. Contoh Integrasi dengan Tools Lain
  • Trello dan Airtable

Trello dan Airtable keduanya menyediakan API untuk bisa diakses via HTTP Request.  Untuk info lebih lanjut perihal Trello dan Airtable bisa dibaca pada tautan berikut:

https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/
https://airtable.com/api
  • Mengambil data dari Google Sheet

Google menyediakan API untuk mengambil data dari dalam google sheet melalui script misalnya menggunakan PHP. Integrasi ini bisa dimanfaatkan misal untuk meminta data pelamar, data pegawai yang belum mengisi daily report, dan lain-lain. Untuk mengambil data dari Google Sheet bisa menggunakan cara pada tautan berikut: 

https://www.srijan.net/blog/integrating-google-sheets-with-php-is-this-easy-know-how
  • Jobstreet

Untuk mengambil lowongan perusahaan bisa menggunakan curl ke

http://157.230.35.21/jobstreet_api.php

yang sudah dikonfigurasi khusus untuk mengambil lowongan di PT Akhdani Reka Solusi.

  • Build aplikasi di Jenkins

Jenkins menyediakan API untuk melakukan job pada Jenkins misalnya build aplikasi yang telah dikonfigurasi sebelumnya menggunakan REST API. Untuk informasi lebih lengkap bisa dibaca pada tautan berikut:

https://www.jenkins.io/doc/book/using/remote-access-api/

Scheduled Meeting dari Google Calendar dan Zoom

Google menyediakan API untuk membuat event meeting menggunakan Google Calendar dan generate link Google Meet secara otomatis. Seperti halnya Zoom juga menyediakan API untuk membuat meeting. Langkahnya bisa dilakukan dengan cara yang terlampir pada tautan berikut:

https://developers.google.com/calendar/create-events
https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate

Dalam rencana implementasi, untuk membuat event meeting menggunakan curl dengan metode seperti berikut:

https://usefulangle.com/post/29/google-calendar-api-create-event-php

 Cara Pemakaian dan Contoh

Penggunaan bot ini dilakukan melalui dua cara, yaitu jalur grup atau jalur pribadi. Dari sisi server akan ditentukan juga mana perintah yang bisa direspon hanya melalui jalur pribadi atau bisa direspon di jalur grup. Gambar di bawah ini adalah contoh implementasi bot WhatsApp untuk info lowongan pekerjaan di ARS melalui jalur pribadi dan contoh mengubah gambar menjadi stiker melalui jalur grup:

5

Gambar 5. Contoh Respon Chat Bot Melalui Pesan Pribadi

6

Gambar 6. Contoh Respon Chat Bot Melalui Pesan Grup


Masalah yang Pernah Muncul

Pada penggunaan bot ini pernah mengalami masalah, di antaranya adalah:

  • Smartphone tidak terhubung ke internet.

Disarankan handphone harus dalam keadaan selalu terhubung ke jaringan internet. Jika sewaktu-waktu jaringan internet bermasalah dan pesan tidak diterima bot, bot akan tetap membalas pesan ketika internet kembali terhubung.

  • Session web WhatsApp berakhir.

Maka harus dilakukan scan QR code ulang.

  • Error pada script/modul.

Harus ada pengecekan atau testing berkala, memastikan script selalu uptodate.