Map Your Family and Send Travel Updates by Push Notifications

Map Your Family

בין הדברים שאני אוהב במערכת ה Home Assistant נמצאת היכולת לבצע התאמות אישיות ולבנות מודולים המורכבים ממספר חיישנים וקומפוננטות ולאגד אותם לכלי מאו שימושי. במדריך זה אסביר כייצד ניתן ליישם חיבור בין חיישני מיקום, התראות, Google Travel Time וכן נוטיפיקציות על מנת לראות מיקומים בזמן אמת ולקבל חיווי על מרחקי נסיעה. Map Your Family יכול לסייע למשל למשפחות בעלות רכב אחד להמנע מהצורך לשלוח SMS אחד לשני על מנת לגעת "מתי תבוא לאסוף אותי" וכו' על ידי שליחת נוטיפקציות בזמנים קבועים ועוד.

לפני שנתחיל יש לוודא כי ביצענו את הפעולות הבאות:

  1. פתיחת חשבון גוגל והפעלת ה API המתאימים:
    * Google Travel Time
    * Google Street View
    * Google Maps
  2. קומפוננטות של Device Tracker כמו iOS, Zanzito, Owntrack וכדומה.
  3. קומפוננטה של Notification.
  4. אופציונלי: שרות לאחסון תמונות על מנת להציג תמונות סטטיות על המפה (כמו cloudinary למשל).

שלב א – הגדרת החיישנים, המצלמות וקונטרולים:

אז אחרי שהגדרנו את ה Device Trackers השונים (ניתן להשתמש גם ב ZONE על מנת לבדוק מול מיקום סטטי כמו בית לעבודה וכו'), נעבור להגדרה של חיישני זמן הנסיעה של גוגל. את הקואורדינטות על בסיסן מתבצע חישוב זמן הנסיעה ניתן לקבל מחיישני ה Device Tracker בצורה הבאה:
Map Your Family - Device Trackerתוכלו לראות כי לחיישן ישנם נתונים נוספים אשר יופיעו כאשר נלחץ על התצוגה שלו.

להגדרת החיישן נוסיף את הקוד הבא תחת Sensors בקובץ ה configuration.yaml בצורה הבאה:

כאשר את ה API Key תחליפו בשלכם (יצרתם בשלב א) ואת ה Devices בשלכם.

כעת נוסיף את המפות והתמונות של המיקומים על ידי שימוש בקומפוננטה של מצלמה בשילוב עם ה API השונים של גוגל. לצורך כך הוסיפו את החלק הבא תחת camera בקובץ ב configuration.yaml:

כאשר:

  • את first_device החליפו בשל ה Device Tracker שלכם
  • את second_device החליפו בשל ה Device Tracker שלכם
  • את ה API Key החליפו בזה שיצרתם.
  • בשורה האחרונה יש YOUR_FIRST_IMAGE_URL וכן את SECOND_IMAGE_URL החליפו בתמונות שלכם (לצורך הצגה על המפה)

על מנת שנוכל למרכז את המפה על פי המיקום של המכשיר נצטרך להוסיף Template Sensor שייתן לנו את נקודת הציון של מיקום בפורמט הנחוץ. על מנת לעשות זאת הוסיפו את קטע הקוד הבא בקובץ configuration.yaml תחת sensors:

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

הראשון תהיה תיבת בחירה אשר תאפשר לנו לבחור את המכשיר סביבו נרצה למרכז את המפה:

והשני יהיה slider אשר יאפשר שינוי של ה zoom:

 

שלב ב – הגדרת התצוגה:

כעת, לאחר שסיימנו את הגדרות החיישנים, המצלמות (תצוגה של המפות ו street view) וה inputs לשליטה על התצוגה הגיע הזמן לשלב אותן בתוך ה UI של המערכת. לצורך כך ניצור קבוצות והשקפות בקובץ ה Configuration.yaml (למידע נוסף על הקבצות והשקפות ניתן לקרוא במדריך המצויין של דימה.). הוסיפו את הקוד הבא לקובץ ה groups.yaml:

 

שלב ב – הגדרת התצוגה (אופציונלי):

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

בנוסף נצטרך להוסיף Input Bollean שיאפשר להפעיל/להפסיק את קבלת ההתראות, לצורך כך הוסיפו את הקוד הבא:

ולבסוף להוסיף את הקוד לשנות את ההגדרות בקובץ ה groups.yaml ולהוסיף בהתאמה את הקוד הבא:

בהצלחה!

Be the first to comment

Leave a Reply

כתובת האימייל שלך לא תפורסם


*