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.