Raspberry Pi MQTT + IFTTT (Google Assistant)

Merhaba Arkadaşlar;

Bu yazımda sizlere daha önce paylaştığım Raspberry Pi ile yaptığım MQTT li smarthome sistemini nasıl Google Asistandan kontrol edilir onu anlatacağım. Tabi bunun için önceki yazımı okumanız gerekiyor.

Raspberry Pi ve ESP8266 ile MQTT Smart Home

Burada amacım ücretli/ücretsiz MQTT hesapları veren siteleri kullanmak yerine kendi sistemimiz üzerinden yapmak. Daha önceki verdiğim google asistan uygulamasında mqtt broker olarak io.adafruit.com kullanmamı gerekiyordu çünkü IFTTT den sistemi yönlendirmek için kullanmak zorunda kalıyorduk. Fakat kendi MQTT broker sistemimizi yapınca nasıl IFTTT ye bağlarız?

Bunun için sistemde zaten Raspberry Pi çalışıyor biz bu sisteme basit bir PHP sayfası ile mqtt komutu çalıştırabilirsek IFTTT den yönlendirme yapabiliriz. Yani IFTTT deki webhooks nesnesini kullanarak kendi IP mizdeki php sayfasını çalıştırıp komut göndereceğiz. Böylece istediğimiz mqtt komutunu  çalıştırabiliriz.

Bunun için Raspberry Pi de Apache web server ve PHP kurulması gerekiyor. Kurulum için aşağıdaki komutları takip edin.

  • sudo apt install apache2
  • sudo apt install php
  • sudo chown -R pi /var/www
  • sudo ln -s /var/www/ ~/www
  • sudo service apache2 restart

Artık Raspberry pi de php web server çalışıyor. İsterseniz web sayfası açabilirsiniz. Ama biz uzaktan erişeceğimiz php sayfasını tasarlayalım. Sayfa çok basit olacak, get yöntemi ile gelen değerleri mqtt komutuna ekleyerek çalıştıracak. Burada mutlaka önceki raspberry pi ile yapılmış MQTT yazımı okumuş ve programları kurmuş olmanız gerekiyor.

Şimdi gelelim PHP sayfamızı oluşturmaya,

  • sudo nano www/html/mqtt.php

Komutu ile dosyanın içerisine aşağıdaki kodu kopyalayın.

Burada amaç mosquitto_pub komutuna  IP, user, password, topic ve mesaj bilgilerini get yöntemi ile eklemek. Yani asıl amacımız olan IFTTT den webhooks eklentisi ile mqtt.php sayfasını çağırarak komutu çalıştırmak.

Buraya kadar özetlersek Raspberry Pi ye web server kurup php sayfası aracılığı ile mosquitto_pub komutunu çalıştırdık. Böylece tek sayfa ile ben değerleri girerek istediğim topic e istediğim mesajı gönderebileceğim. Bunun testini çok basit bir şekilde yapabiliriz. (IP yönlendirmenizi yapmış var sayıyorum.) Dış ağ IP si ile php sayfasına değer gönderelim.

Örnekte görüldüğü gibi sayfa açılıyor ise komut mutlaka çalışıyor demektir. Buraya kadar sayfa üzerinden komutu çalıştırdık. Şimdi bu işlemi IFTTT ile Google asistana bağlayacağız.

IFTTT sitesine girip Create e basıyoruz.

+ ya basıp tetikleyecek uygulamayı seçeceğiz;

gelen ekrana google assistant yazıyoruz ve tıklıyoruz.

gelen seçimde sadece tek bir konuşma yapacağımız için Say a simple phrase ı seçiyoruz.

Gelen ekranda What do you want to say? e hangi konuşma ile tetikleneceğini yazacağız burada İngilizce olmasına dikkat edin. Ben koridor lambasına bağladığım için turn on corridor light yazdım. Alttaki 2 kutucuğa ise benzer kelimeleri ekleyebilirsiniz. Create trigger dedikten sonra +that kısmına geçip webhooks eklentisini seçiyoruz.

Make a web requeste tıklıyoruz. Karşımıza URL ve ayarlarını gireceğimiz yer geliyor, işte buraya yukarıda test ettiğimiz URL adresini giriyoruz. Tabi hangi topic ve mesaj olacak ise onu yazıyoruz.

Create action dedikten sonra artık sesli komut belirttiğimiz adres satırını çağırıp çalıştıracaktır.

Bu şekilde hangi devreye hangi mesajlar gönderilecek ise tek tek oluşturmanız gerekiyor. Arık yaptığınız modülleri cep telefonu uygulamasından hariç google asistan dan kontrol edebilirsiniz.

Bir sonraki projede görüşmek üzere, iyi çalışmalar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.