Home Assistant Entegrasyonu - Akıllı Ev Uyarıları
Home Assistant'ı anında akıllı ev uyarıları için Echobell'e bağlayın: güvenlik, hareket, sıcaklık ve otomasyon olayları push veya telefon araması olarak.
Home Assistant, yerel denetimi ve gizliliği ön planda tutan güçlü ve açık kaynaklı bir ev otomasyonu platformudur. Echobell'i Home Assistant ile entegre ederek akıllı evinizde önemli olaylar gerçekleştiğinde anında bildirim, hatta telefon araması alabilirsiniz; ister bir güvenlik uyarısı, ister bir sıcaklık eşiğinin aşılması, ister bir otomasyon tetiklemesi olsun.
Bu kılavuz, webhook'ları veya RESTful Notify servisini kullanarak Home Assistant otomasyonlarınızdan bildirim almak için Echobell'i nasıl kuracağınızı adım adım anlatır.
Ön Koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
- Mobil cihazınızda kurulu Echobell uygulaması / Google Play
- Etkin bir Echobell kanalı (henüz yoksa uygulamada bir tane oluşturun)
- Çalışır durumda bir Home Assistant örneği (2023.1 veya sonrası önerilir)
- Home Assistant yapılandırmanıza erişim
Yöntem 1: Webhook Tetikleyicilerini Kullanma (Önerilen)
Webhook yöntemi en esnek yaklaşımdır; özel veri göndermenize ve bildirimlerinizde şablon değişkenleri kullanmanıza olanak tanır.
Echobell Webhook URL'nizi Alın
- Echobell uygulamasını açın ve kanalınıza gidin
- Ayrıntıları görmek için kanala dokunun
- Tetikleyiciler bölümünde Webhook URL'sini bulun
- URL'yi kopyalayın; şuna benzer görünecektir:
https://hook.echobell.one/t/<channel-token>
Bir Home Assistant Otomasyonu Oluşturun
Home Assistant'ta Echobell bildirimlerini rest_command servisiyle tetikleyebilirsiniz. Önce REST komutunu configuration.yaml dosyanıza ekleyin:
rest_command:
echobell_notify:
url: "https://hook.echobell.one/t/<channel-token>"
method: POST
content_type: "application/json"
payload: '{"title": "{{ title }}", "message": "{{ message }}"}'YOUR_TOKEN yerine gerçek Echobell webhook token'ınızı yazın.
Bunu ekledikten sonra yeni yapılandırmanın yüklenmesi için Home Assistant'ı yeniden başlatın.
Otomasyonlarda Kullanın
Artık bu servisi herhangi bir otomasyondan çağırabilirsiniz. Bir kapı açıldığında sizi uyaran örnek:
automation:
- alias: "Door Open Alert"
trigger:
- platform: state
entity_id: binary_sensor.front_door
to: "on"
action:
- service: rest_command.echobell_notify
data:
title: "Security Alert"
message: "Front door opened at {{ now().strftime('%H:%M') }}"Bildirim Şablonlarını Yapılandırın
Echobell kanal ayarlarınızda, webhook verisini gösterecek şekilde bildirim şablonlarını yapılandırın:
- Başlık şablonu:
{{title}} - Gövde şablonu:
{{message}}
Artık otomasyon tetiklendiğinde, özel başlık ve mesajı içeren bir bildirim alırsınız.
Yöntem 2: RESTful Notify Platformunu Kullanma
Daha bütünleşik bir yaklaşım için Echobell'i Home Assistant'ta bir notify servisi olarak kurabilirsiniz.
Yapılandırma
configuration.yaml dosyanıza şunları ekleyin:
notify:
- name: echobell
platform: rest
resource: https://hook.echobell.one/t/<channel-token>
method: POST_JSON
data:
title: "{{ title }}"
message: "{{ message }}"
YOUR_TOKEN yerine Echobell webhook token'ınızı yazın, ardından Home Assistant'ı yeniden başlatın.
Notify Servisini Kullanma
Artık Echobell'i diğer notify servisleri gibi kullanabilirsiniz:
automation:
- alias: "Low Battery Alert"
trigger:
- platform: numeric_state
entity_id: sensor.phone_battery
below: 20
action:
- service: notify.echobell
data:
title: "Low Battery Warning"
message: "Phone battery is at {{ states('sensor.phone_battery') }}%"
Gelişmiş Kullanım Senaryoları
Kritik Uyarılarla Sıcaklık İzleme
Kritik sıcaklık uyarılarını arama olarak göndermek için bildirim türlerini kullanın:
rest_command:
echobell_critical:
url: "https://hook.echobell.one/t/<channel-token>"
method: POST
content_type: "application/json"
payload: '{"temperature": "{{ temperature }}", "location": "{{ location }}", "severity": "critical"}'
Echobell kanalınızda bildirim türünü "Arama" olarak ayarlayın ve şu şablonu kullanın:
- Başlık:
Critical Temperature Alert - Gövde:
{{location}} temperature is {{temperature}}°C - Immediate attention required!
Güvenlik Sistemi Entegrasyonu
Kapsamlı bir güvenlik izlemesi kurun:
automation:
- alias: "Security Breach Detection"
trigger:
- platform: state
entity_id:
- binary_sensor.motion_detector_1
- binary_sensor.motion_detector_2
- binary_sensor.window_sensor
to: "on"
condition:
- condition: state
entity_id: alarm_control_panel.home_alarm
state: "armed_away"
action:
- service: rest_command.echobell_notify
data:
title: "🚨 Security Alert"
message: "{{ trigger.to_state.attributes.friendly_name }} detected activity while system armed"
sensor: "{{ trigger.entity_id }}"
timestamp: "{{ now().isoformat() }}"
Akıllı Cihaz Bildirimleri
Ev aletlerinin çalışma döngülerini izleyin ve tamamlandıklarında bildirim alın:
automation:
- alias: "Washing Machine Complete"
trigger:
- platform: state
entity_id: sensor.washing_machine_power
to: "0"
for:
minutes: 3
action:
- service: notify.echobell
data:
title: "Washing Machine Done"
message: "Your laundry is ready to be moved to the dryer"
Ortam İzleme
Hava kalitesini, nemi veya diğer ortam etkenlerini takip edin:
automation:
- alias: "High CO2 Alert"
trigger:
- platform: numeric_state
entity_id: sensor.living_room_co2
above: 1000
action:
- service: rest_command.echobell_notify
data:
title: "Air Quality Warning"
message: "CO2 level in living room is {{ states('sensor.living_room_co2') }} ppm. Consider ventilating."
Akıllı Filtreleme için Koşulları Kullanma
Bildirimleri belirli ölçütlere göre filtrelemek için Echobell koşullarını kullanabilirsiniz. Örneğin yalnızca belirli saatlerde ya da değerler eşikleri aştığında bildirim gönderebilirsiniz:
Echobell kanalınızda bir koşul tanımlayın:
severity == "critical" || (hour >= 22 || hour <= 7)
Bu, yalnızca önem derecesi kritikse VEYA gece saatleriyse (22.00 - 07.00) bildirim gönderir.
Home Assistant otomasyonunuzda ilgili veriyi ekleyin:
action:
- service: rest_command.echobell_notify
data:
title: "Temperature Alert"
message: "Freezer temperature: {{ states('sensor.freezer_temp') }}°C"
severity: "{% if states('sensor.freezer_temp') | float > -10 %}critical{% else %}normal{% endif %}"
hour: "{{ now().hour }}"
Sensör Verisi Gönderme
Echobell bildirimlerinize herhangi bir Home Assistant sensör verisini aktarabilirsiniz:
rest_command:
echobell_sensor_update:
url: "https://hook.echobell.one/t/<channel-token>"
method: POST
content_type: "application/json"
payload: >
{
"sensor_name": "{{ sensor_name }}",
"current_value": "{{ current_value }}",
"unit": "{{ unit }}",
"state": "{{ state }}",
"timestamp": "{{ timestamp }}"
}
HTTP Başlıklarını İşleme
Echobell, webhook isteklerindeki HTTP başlıklarına erişebilir. Bu, kimlik doğrulama veya izleme için kullanışlıdır:
rest_command:
echobell_with_headers:
url: "https://hook.echobell.one/t/<channel-token>"
method: POST
headers:
X-Home-Assistant-Instance: "{{ instance_name }}"
X-Automation-ID: "{{ automation_id }}"
content_type: "application/json"
payload: '{"message": "{{ message }}"}'
Echobell şablonunuzda başlıklara şöyle erişirsiniz:
{{header["x-home-assistant-instance"]}}
Hata Ayıklama ve Test
Webhook'unuzu Test Edin
Yapılandırmanızı test etmek için Home Assistant'ın Developer Tools → Services bölümünü kullanın:
rest_command.echobell_notifyöğesini seçin- Test verisini girin:
title: "Test Notification"
message: "This is a test from Home Assistant"
- "Call Service"e tıklayın
- Bildirim için Echobell uygulamanızı kontrol edin
Home Assistant Günlüklerini Kontrol Edin
Bildirimler gelmiyorsa Home Assistant günlüklerini kontrol edin:
# In Home Assistant, go to:
Settings → System → Logs
# Or check the log file:
config/home-assistant.log
rest_command ile veya hook.echobell.one adresine yapılan HTTP istekleriyle ilgili hataları arayın.
Webhook URL'sini Doğrulayın
Webhook URL'nizin doğru olduğundan emin olun:
https://hook.echobell.one/t/ile başlamalıdır- Token dahil edilmiş olmalıdır
- Fazladan boşluk veya karakter bulunmamalıdır
Performans Değerlendirmeleri
Hız Sınırlaması
Echobell webhook'ları, kötüye kullanımı önlemek için hız sınırlamasına tabidir. Yüksek frekanslı sensörler için:
- Her sensör güncellemesinde tetikleme yapmaktan kaçının
- Sıçramaları bastırmak için tetikleyicilerde
forkullanın:
trigger:
- platform: numeric_state
entity_id: sensor.temperature
above: 30
for:
minutes: 5 # Only trigger after 5 minutes above threshold
Güncellemeleri Toplu Gönderme
Birbiriyle ilişkili birden çok olay için bunları tek bir bildirimde toplamayı değerlendirin:
automation:
- alias: "Daily Home Summary"
trigger:
- platform: time
at: "09:00:00"
action:
- service: rest_command.echobell_notify
data:
title: "Morning Home Summary"
message: >
Temperature: {{ states('sensor.temperature') }}°C
Humidity: {{ states('sensor.humidity') }}%
Energy today: {{ states('sensor.daily_energy') }} kWh
Windows open: {{ expand(states.binary_sensor) | selectattr('state', 'eq', 'on') | selectattr('attributes.device_class', 'eq', 'window') | list | count }}
Güvenlik İçin En İyi Uygulamalar
Webhook URL'nizi Koruyun
- Webhook URL'lerini asla herkese açık depolara göndermeyin
- Hassas veriler için Home Assistant secrets kullanın
- Webhook token'larını düzenli aralıklarla yenileyin
configuration.yaml içinde secrets kullanımı:
# secrets.yaml
echobell_webhook: "https://hook.echobell.one/t/<channel-token>"
# configuration.yaml
rest_command:
echobell_notify:
url: !secret echobell_webhook
method: POST
content_type: "application/json"
payload: '{"title": "{{ title }}", "message": "{{ message }}"}'
Hassas Bilgileri Sınırlayın
Bildirimlere hangi verileri eklediğinize dikkat edin:
# Good - General information
message: "Motion detected in living room"
# Avoid - Sensitive details
message: "Security code: 1234, camera feed: http://..."
Sık Karşılaşılan Sorunları Giderme
Bildirimler Gelmiyor
- Ağ bağlantısını kontrol edin: Home Assistant örneğinizin internete erişebildiğinden emin olun
- Webhook URL'sini doğrulayın: Token dahil olmak üzere dikkatlice kopyalayıp yapıştırın
- Echobell uygulamasını kontrol edin: Kanala abone olduğunuzdan emin olun
- Home Assistant günlüklerini inceleyin: HTTP hatalarını veya zaman aşımlarını arayın
Şablon Hataları
Şablonlar doğru şekilde işlenmiyorsa:
- Şablonları Developer Tools → Template bölümünde test edin
- Değişken adlarının Home Assistant ile Echobell arasında eşleştiğinden emin olun
- Şablon sözdiziminde yazım hatası olup olmadığını kontrol edin:
{{ variable}}değil{{variable}}
Otomasyon Tetiklenmiyor
- Home Assistant'taki tetikleyici koşullarını doğrulayın
- Otomasyonu Developer Tools üzerinden elle test edin
- Varlık durumlarının tetikleyici yapılandırmanızla eşleştiğini kontrol edin
- Hata ayıklama için otomasyon izlerini (traces) inceleyin
Örnek: Eksiksiz Güvenlik Sistemi Kurulumu
Birden çok güvenlik sensörünü entegre eden kapsamlı bir örnek:
# configuration.yaml
rest_command:
echobell_security:
url: !secret echobell_security_webhook
method: POST
content_type: "application/json"
payload: >
{
"event_type": "{{ event_type }}",
"location": "{{ location }}",
"sensor": "{{ sensor }}",
"timestamp": "{{ timestamp }}",
"alarm_state": "{{ alarm_state }}"
}
# automations.yaml
- alias: "Security Event Handler"
trigger:
- platform: state
entity_id:
- binary_sensor.front_door
- binary_sensor.back_door
- binary_sensor.garage_door
- binary_sensor.motion_hallway
- binary_sensor.motion_living_room
to: "on"
action:
- service: rest_command.echobell_security
data:
event_type: "{{ 'door' if 'door' in trigger.entity_id else 'motion' }}"
location: "{{ trigger.to_state.attributes.friendly_name }}"
sensor: "{{ trigger.entity_id }}"
timestamp: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
alarm_state: "{{ states('alarm_control_panel.home_alarm') }}"
Echobell'de şablonlarınızı ayarlayın:
- Başlık:
Security Alert: {{event_type | upper}} - Gövde:
{{location}} activated at {{timestamp}} (Alarm: {{alarm_state}})
Sonraki Adımlar
Artık Echobell'i Home Assistant ile entegre ettiğinize göre:
- Farklı uyarı öncelikleri için bildirim türlerini inceleyin
- Bildirimleri akıllıca filtrelemek için koşulları öğrenin
- Gelişmiş mesaj biçimlendirmesi için şablon değişkenlerine göz atın
- En iyi entegrasyon için webhook en iyi uygulamalarını okuyun