Home Assistant + התרעות של פיקוד העורף

העולם מלא באנשים נלהבים שעושים דברים נפלאים ומשתפים אותם עם כולם. לדוגמא, משתמש amitfin יצר אינטגרציה מדהימה עבור מערכת ניהול בית חכם Home Assistant. מחבר הבלוג הזה עזר בתרגום לרוסית והוסיף כמה רעיונות ליישום. כרגע זה אחד הפרויקטים המוצלחים ביותר מבחינת נוחות שימוש ודיוק באיתור התרעות.

נתחיל בתהליך התקנה

מתקינים את האינטגרציה Oref Alert באמצעות HACS. לשם כך, מספיק ללחוץ על הכפתור הבא:


אחרי זה צריך להגדיר את האינטגרציה שהותקנה. לשם כך, אפשר ללחוץ על כפתור אחר:


האינטגרציה תומכת בשלושה שפות תצוגה (עברית, רוסית, אנגלית). והיא עובדת על השפה שמוגדרת לתצוגת הממשק של המערכת כולה.

ההגדרה והעבודה עם המודול הזה קלות מאוד. האינטגרציה יוצרת חיישן בינארי אחד, שבתכונותיו מוצגת כל המידע על ההתרעות שהתקבלו ב 24 שעות אחרונות. במצב יוצגו הערים והאזורים שנבחרו על ידי המשתמש. אפשר לבחור מספר יישובים. לפי זה, החיישן הבינארי יעבור למצב ON כאשר לפחות באחד מהיישובים שנבחרו יש אזעקה.


אם יש צורך ליצור חיישן נוסף עבור יישוב אחר או קבוצתם, ניתן לעשות זאת באמצעות השירות המתאים. לשם כך, נכנסים ל"כלים למפתחים", ועוברים לשירותים, שם יש לבחור את השירות של התוסף הזה.


שמות של כל החיישנים שנוצרו בדרך הזאת, יהיו בצורה: binary_sensor.oref_alert_שם.

כדי למחוק חיישן שאינו נחוץ, יש לקרוא לשירות דומה, אבל שמיועד למחיקת חיישנים. הוא יאפשר למחוק ישות שנוצרה באמצעות הדרך המוזכרת לעיל.

אם יש צורך להוסיף חיישן בינארי שיפעל בעת אזעקה בכל חלק בארץ, אז התבנית ליצירתו תהיה כזאת:

{{ state_attr(‘binary_sensor.oref_alert’, ‘country_active_alerts’) | length > 0 }}


כמוכן, האינטגרציה יוצרת חיישן נוסף שמראה כמה זמן לתפיסת מחסה באזור שנבחר, בהתאם להנחיות של פיקוד העורף לאותו אזור (לדוגמא, 90 שניות במרכז ישראל).

שם החיישן הזה דומה לחיישן בינארי המתאים, אבל עם התוספת _time_to_shelter. לדוגמא, sensor.oref_alert_time_to_shelter.
כשיש התרעה באזור שנבחר, החיישן מראה כמה שניות יש להתחבא. עם הזמן, המספר במצב החיישן יורד והופך ל "לא ידוע", כשעוברת דקה אחרי סיום האזעקה.
ליישות הזו יש את התכונות הנוספות הבאות:
Area: שם האזור שנבחר.
Time to shelter: הערך המומלץ לפי הנחיות העורף לאזור שנבחר (מספר זה אינו משתנה).
Alert: האם יש או אין אזעקה כרגע.

נא לשים לב: סוג חיישן זה אינו נוצר אם החיישן הבינארי מכיל מספר איזורים או קבוצות (לדוגמא, לעיר גדולה עם איזורים או כמה אזורים שונים). במקרה כזה, ניתן ליצור חיישן נפרד לאותו איזור שצריך, בעזרת השירות oref_alert.add_sensor.

כדי להציג את ההתרעות הנוכחיות בממשק, ניתן לעשות את הדברים הבאים:



1. ליצור עוזר חיישן בינארי: Oref Alert All Country

2. להשתמש בו בתבנית הבאה: 

{{ state_attr('binary_sensor.oref_alert', 'country_active_alerts') | length > 0 and (as_timestamp(now()) - as_timestamp(strptime(state_attr('binary_sensor.oref_alert', 'country_active_alerts')[0]['alertDate'], '%Y-%m-%d %H:%M:%S'))) / 60 <= state_attr('binary_sensor.oref_alert', 'alert_max_age') }}

3. בממשק להשתמש בכרטיס תנאים (Conditional card). התנאי יהיה מצב ON של החיישן הבינארי שנוצר בשלב הקודם.

4. בתור הכרטיס שיוצג בעת התנאי הזה יהיה Markdown. הוא יראה את ההתרעות שהופעלו בעשר דקות האחרונות (או זמן אחר שנבחר על ידי המשתמש בהגדרה). הקוד של הכרטיס נראה כך:

{% for alert in (state_attr('binary_sensor.oref_alert', 'country_active_alerts') or []) %}
  <ha-alert alert-type="error">
    {{ alert['data'] }} 
    [{{ alert['title'] }}]
    ({{ alert['alertDate'] | as_timestamp | timestamp_custom('%H:%M:%S') }})
  </ha-alert>
{% endfor %}

להצגת ההיסטוריה של ההתרעות מתחילת היום הנוכחי, אפשר ליצור לוח בקרה נפרד, שבו יתווסף אותו הכרטיס מסוג Markdown.


הקוד של הכרטיס נראה כך:
{% set current_date = now().strftime('%Y-%m-%d') %}
{% set alerts = state_attr('binary_sensor.oref_alert', 'country_alerts') or [] %} {{ alerts | selectattr('alertDate', 'ge', current_date) | list | length }} Alerts in all country for today.
{% for alert in alerts | selectattr('alertDate', 'ge', current_date) %}
  <ha-alert alert-type="error">
    {{ alert['data'] }} 
    [{{ alert['title'] }}]
    ({{ alert['alertDate'] | as_timestamp | timestamp_custom('%H:%M:%S') }})
  </ha-alert>
{% endfor %}
בהצלחה בהתקנה.
עם ישראל חי!

Комментарии