בתור אחד שההורים שלו גרים בדרום, חיפשתי דרך להטמיע את התראות צבע אדום במערכת הבית החכם. מדוע? אחת הסיבות היא שבלילה כאשר יש אזעקה, לקום לבית חשוך זה די מבהיל, ולכן הדלקה אוטומטית של אורות בבית בעת אזעקה יכולה להיות פתרון לא רע לעניין.
אז לאחר מחקר קצר הצלחתי ליצור סקריםט שיודע למשוך התראות צבע אדום מפיקוד העורף ומשם הדרך לשלוח אותם ל HA היתה קצרה, תוך שימוש בפרוטוקול MQTT. נכון, אפשר גם להכין קומפוננטה יעודית אך בחרתי שלא לעשות זאת מכמה סיבות:
- הראשונה, יכולת להשתמש באותו הסקריפט לשלוח ולהציג התראה בפלטפורמות שונות ומגוונות, כמו Home-Assistant, Telegram ועוד.
- השניה, על מנת לקבל את ההתראות כמה שיותר בזמן אמת הסקריפט צריך לייצר בקשת http אחת לשניה דבר שעלול להכביד מאוד על HA.
ככה שבסופו של דבר, יש סקריפט שרץ ברקע (קונטיינר, Windows Service אן systemctl) שרק בעת שיש התראה פעילה הוא "ידחוף" אותה ל HA באמצעות MQTT.
במדריך זה אסביר כיצד להתקין את הקונטיינר ולהגדיר את המערכת אך לפני זנעשה זאת שימו לב בקפידה להערה הבאה:
*** השימוש במערכת זו על אחריות המשתמש בלבד ולא על הכותב שלה, ומתוך ידיעה שהגורם היחידי שמוסמך להתריעה על התראות צבע אדום הוא פיקוד העורף, ***
שלב א' – התקנת הקונטיינר באמצעות docker-compose
אם הגעתם לשלב זה, סימן שבחרתם להשתמש במערכת תוך ידיעת המגבלות (הידד!).
על מנת להתקין את המערכת יש לוודא כי על השרת מותקן סביבת docker + docker compose על פי המדריך הבא.
כעת, ערכו את רובץ ה docker-compose.yaml שלכם והכניסו פנימה את קטע הקוד הבא:
redalert:
image: techblog/redalert
container_name: redalert
restart: always
environment:
- MQTT_HOST={Broker Address}
- MQTT_USER={Broker Username}
- MQTT_PASS={Broker Password}
- MQTT_PORT={Broker Port}
- DEBUG_MODE=False
restart: unless-stopped
כאשר:
- MQTT_HOST – כתובת שרת ה MQTT.
- MQTT_USER – שם המשתמש לשרת ה MQTT
- MQTT_PASS – הסיסמה לשרת ה MQTT
- MQTT_PORT – הפורט של שרת ה MQTT (אופציונלי, ברירת המחדל הנה 1883).
- DEBUG_MODE – משמש לבדיקת המערכת על ידי פניה ל URL חלופי שמחזיר התראת בדיקה.
שמרו את הקובץ והריצו את הפקודה :
docker-compose up -d
ונוכל לראות שהקונטיינר רץ:
שלב ב' – התקנת ה Mqtt Sensor והגדרתו לקבלת ההתראות
בשלב זה נגדיר sensor מסוג MQTT אשר יאפשר את קבלת ההתראות בתוך Home-Assistant. כאשר ישנן שתי אפשרויות לקבל ההתראה.
האחת, קבלת ההתראה במלואה, כולל זמן, כותרת, ID ורשימת הישובים:
- platform: mqtt
name: "Red Alert"
state_topic: "/redalert/"
value_template: "{{ value_json }}"
qos: 1
- platform: mqtt
name: "Red Alert"
state_topic: "/redalert/"
value_template: "{{ value_json.data }}"
qos: 1
בהצלחה ושלא נזדקק לכך!
אפשרי לעשות התאמה ללא שימוש בדורק ? HA נקי
בעקרון כן,
על איזה פלטפורמה אתה רץ (מערכת הפעלה)?
HA רץ ישירות על PI4 (ישירות דרך האימג מהאתר של HA)