HTTP to MQTT Bridge (Read + Publish)

REST API untuk Broker MQTT Anda

Web ini akan meneruskan request HTTP ke broker MQTT melalui REST API. Anda dapat mengirimkan GET, PUT, POST dan DELETE untuk membaca dan mengirim data pada broker MQTT.


  • Gunakan method GET untuk membaca retained message pada topic tertentu. Contoh penggunaan:
         BROKER : test.mosquitto.org
         TOPIC : rumah/lampu/1
  • Contoh dengan autentikasi (HTTP basic authentication), perhatikan letak USERNAME:PASSWORD@ sebelum alamat domain.
         BROKER : broker.shiftr.io
         TOPIC : rumah/lampu/2
         USERNAME : try
         PASSWORD : try
>  curl http://try:try@qrcode.my.id/broker.shiftr.io/rumah/lampu/2
  • Bila Anda tidak bisa menggunakan basic authentication karena suatu hal, Anda dapat mengirimkan username dan password sebagai query GET dengan nama parameter u untuk username dan p untuk password.
  • Fungsi ini hanya akan menampilkan hasil apabila pada topic tujuan memiliki retained message. Apabila topic tidak memilikinya, maka hasil yang akan ditampilkan adalah "NO_RETAINED_MESSAGE"
    Parameter json dapat pula ditambahkan pada URL agar mendapatkan output dengan format JSON.
  • Gunakan method PUT untuk melakukan publish message ke broker (non-retained). Contoh penggunaan:
         BROKER : test.mosquitto.org
         TOPIC : rumah/lampu/1
         MESSAGE : ON
>  curl -X PUT 'http://qrcode.my.id/test.mosquitto.org/rumah/lampu/1' -d 'ON'
  • Contoh dengan autentikasi (HTTP basic authentication), perhatikan letak USERNAME:PASSWORD@ sebelum alamat domain.
         BROKER : broker.shiftr.io
         TOPIC : rumah/lampu/2
         MESSAGE : ON
         USERNAME : try
         PASSWORD : try
>  curl -X PUT 'http://try:try@qrcode.my.id/broker.shiftr.io/rumah/lampu/2' -d 'ON'
  • Bila Anda tidak bisa menggunakan basic authentication karena suatu hal, Anda dapat mengirimkan username dan password sebagai query GET dengan nama parameter u untuk username dan p untuk password.
>  curl -X PUT 'http://qrcode.my.id/broker.shiftr.io/rumah/lampu/2?u=try&p=try' -d 'ON'
>  curl -X PUT 'http://qrcode.my.id/broker.shiftr.io/rumah/lampu/2?u=try&p=try&json' -d 'ON'
  • Parameter json dapat pula ditambahkan pada URL agar mendapatkan output dengan format JSON.
  • Gunakan method POST untuk melakukan publish retained message ke broker. Contoh penggunaan:
         BROKER : mqtt.eclipse.org
         TOPIC : gudang/suhu
         MESSAGE : 27
>  curl -X POST 'http://qrcode.my.id/mqtt.eclipse.org/gudang/suhu' -d '27'
  • Contoh dengan autentikasi (HTTP basic authentication), perhatikan letak USERNAME:PASSWORD@ sebelum alamat domain.
         BROKER : broker.shiftr.io
         TOPIC : gudang/suhu
         MESSAGE : 30
         USERNAME : try
         PASSWORD : try
>  curl -X POST 'http://try:try@qrcode.my.id/broker.shiftr.io/gudang/suhu' -d '30'
  • Bila Anda tidak bisa menggunakan basic authentication karena suatu hal, Anda dapat mengirimkan username dan password sebagai query GET dengan nama parameter u untuk username dan p untuk password.
>  curl -X POST 'http://qrcode.my.id/broker.shiftr.io/gudang/suhu?u=try&p=try' -d '30'
>  curl -X POST 'http://qrcode.my.id/broker.shiftr.io/gudang/suhu?u=try&p=try&json' -d '30'
  • Parameter json dapat pula ditambahkan pada URL agar mendapatkan output dengan format JSON.
  • Gunakan method DELETE untuk menghapus retained message yang tersimpan di broker. Contoh penggunaan:
         BROKER : mqtt.eclipse.org
         TOPIC : gudang/suhu
>  curl -X DELETE 'http://qrcode.my.id/mqtt.eclipse.org/gudang/suhu'
  • Contoh dengan autentikasi (HTTP basic authentication), perhatikan letak USERNAME:PASSWORD@ sebelum alamat domain.
         BROKER : broker.shiftr.io
         TOPIC : gudang/suhu
         USERNAME : try
         PASSWORD : try
>  curl -X DELETE 'http://try:try@qrcode.my.id/broker.shiftr.io/gudang/suhu'
  • Bila Anda tidak bisa menggunakan basic authentication karena suatu hal, Anda dapat mengirimkan username dan password sebagai query GET dengan nama parameter u untuk username dan p untuk password.
>  curl -X DELETE 'http://qrcode.my.id/broker.shiftr.io/gudang/suhu?u=try&p=try'
>  curl -X DELETE 'http://qrcode.my.id/broker.shiftr.io/gudang/suhu?u=try&p=try&json'
  • Parameter json dapat pula ditambahkan pada URL agar mendapatkan output dengan format JSON.
  • Contoh integrasi Google Assistant dengan MQTT melalui IFTTT. Saat ini platform IFTTT belum mendukung publish langsung ke MQTT, kita bisa menggunakan cara alternatif yaitu Webhook / HTTP request untuk meneruskan perintah dari IFTTT ke broker MQTT.

    Permasalahannya adalah, tidak banyak broker MQTT yang menyediakan fitur Webhook / HTTP request (setahu saya hanya Adafruit IO dan shiftr.io), dan yang didukung di platform IFTTT hanyalah Adafruit IO.

    Web ini memberikan fitur Webhook / HTTP request untuk broker MQTT lain sehingga dapat diintegrasikan dengan trigger yang tersedia di platform IFTTT.

  • IF THIS : Pilih Google Assistant dan buatlah trigger sesuai keperluan.

    THEN THAT : Pilih Webhooks / Web Request, sesuaikan parameternya sesuai keperluan, misal:
    URL : http://qrcode.my.id/test.mosquitto.org/rumah/lampu/1
    Method : POST
    Content-Type : text/plain
    Body : ON

    Selesai, sekarang Anda bisa mengontrol subscriber MQTT Anda menggunakan Google Assistant.