Uncategorized

PowerShell ve Home Assistant ile Bildirim Gönderimi

Merhabalar,

Uzun bir süredir akıllı ev ekosistemine entegre olabilmek amacıyla Home Assistant ile çalışmalar yapıyorum. Başlıktan da anlayabileceğiniz üzere, bu makalede PowerShell ile Home Assistant Webhook kullanarak mobil cihazıma Home Assistant uygulaması üzerinden nasıl bildirim gönderebileceğini anlatacağım.

Özellikle müşterilerimizin public servislerini belirli aralıklarla ping yoluyla izleyerek, uptime durumlarını kontrol ettiğimiz senaryolar oldukça yaygın. Şu ana kadar bu işlemi üçüncü parti uygulamalarla yapıyordum. Ancak, Home Assistant’ın sunduğu esneklik ve özelleştirilebilirlik sayesinde bu işlemi kendi altyapımda nasıl yapabileceğimi görmek istedim.

Bu makalede, belirli bir public IP adresine her 1 dakikada bir ping gönderip, eğer ping başarısız olursa Home Assistant üzerinden mobil cihazıma push bildirim göndermeyi ele alacağım. Böylece, dış kaynaklı bir hizmete bağımlı olmadan, kendi sistemlerim üzerinde izleme yapabileceğim.

İlk olarak kullanacağım powershell scripti aşağıdaki gibidir.

#$website = "hakankaplanoglu.com.tr"
$interval = 60 # saniye

while ($true) {
    $ping = Test-Connection -ComputerName $website -Count 1 -Quiet
    
    if (-not $ping) {
       Invoke-RestMethod -Uri "http://192.168.2.36:8123/api/webhook/ping" -Method POST
    }
    
    Start-Sleep -Seconds  $interval
}

Bu PowerShell scripti ile her 60 saniyede bir belirli bir web sitesine ping atılacak. Eğer ping erişimi başarısız olursa (timeout’a düşerse), Home Assistant’a belirttiğimiz URL üzerinden bir bağlantı sağlanacak. Bu işlem için PowerShell scriptinde “/webhook/ping” yolunu kullanacağız. Bu webhook’u Home Assistant üzerinde oluşturacağız ve script bu webhook’u tetikleyecek.

Görsel düzenleyicede problem yaşayanlar için kod halini kullanabilirsiniz.

description: ""
mode: single
trigger:
  - platform: webhook
    allowed_methods:
      - POST
      - PUT
    local_only: true
    webhook_id: ping
condition: []
action:
  - action: notify.mobile_app_hakankaplanoglu_com_tr
    metadata: {}
    data:
      title: Ping Erişimi Kayboldu
      message: hakankaplanoglu.com.tr Web Sitesine Erişim Sorunu

Bütün operasyon bu kadar. Telefonumuza gelen bildirime bakalım.

Bu şekilde powershell ile bildirim gönderimini farklı farklı senaryolarda çeşitlendirebilirsiniz. Ayrıca Home Asistant sunucunuzu internete açarak, WebHook url adreslerini kullanabilirsiniz.

Yazar Hakkında

Hakan KAPLANOĞLU

Yorum Yapın