חלק מהשימושים הנפוצים של Home Assistant הוא שימוש בחיישנים וברכיבי רשת נוספים כמו Broaslink, Sonof מבוססי Ir/RF או wifi.
לעיתים אותם רכיבים אינם מחזירים חיווי על מצבם ויש צורך להשתמש בפקודות כמו fping ודומיו בכדי לקבל את הסטטוס שלהם. במדריך זה אסביר על שימוש בסנסור מותאם אישית בשם device_status שכתבתי במיוחד עבור זה. הסנסור משתמש ב fping ומציג בצורה נוחה את המצב של האובייקט הרצוי ברשת.
לפני שנגש להגדרת החיישן יש לוודא כי fping מותקן על המערכת. על מנת להתקין אתו יש לכתוב את הפקודה הבאה:
sudo apt-get install fping --yes
וכעת להתקנת הסנסור המקוסטם עצמו.
לצורך ההתקנה יש ליצור את מבנה התיקיות הבא תחת ההגדרות של Home Assistant באחד מהנתיבים הבאים (תלוי בהתקנה שלכם):
- /config/custom_components/sensor
- /home/homeassistant/.homeassistant/custom_components/sensor
כעת יש להוסיף לתיקיה את הקובץ הבא: device_status.py
אתחלו את המערכת על מנת שהחיישן יטען והמערכת תכיר בו.
כעת נגדיר את הסנסורים על מנת שיבצעו בדיקה של הרכיבים ברשת, לצורך כך הוסיפו את השורות הבאות לקובץ ה configuration.yaml:
sensor: - platform: device_status scan_interval: 10 devices: internet_connection: host: 8.8.8.8 8 name: "Internet Connection"
בדוגמה שלפניכם תתבצע בדיקה של מצב החיבור לאינטרנט. היות ו 8.8.8.8 שהיא הכתובת של ה DNS הציבורי של גוגל ניתנת לבדיקה באמצעות ping ניתן להשתמש בזה לבדוק את הקישוריות לאינטרנט.
במידה ותרצו להוסיף בדיקות של רכיבים נוספים ברשת כל שעליכם לעשות הוא להוסיף devices כפי שניתן לראות בדוגמא הבאה:
sensor: - platform: device_status scan_interval: 10 devices: internet_connection: host: 8.8.8.8 8 name: "Internet Connection" nginx: host: 192.168.0.1 name: "Nginx" gandalf: host: 192.168.0.2 name: "Gandalf" wd_storage: host: 192.168.0.2 name: "WD storage"
על מנת להציג את החיישנים ומצבם ניצור קבוצה חדשה בקובץ groups.yaml בצורה הבאה:
Devices_State: name: 'Network Devices State' view: no entities: - sensor.device_status_internet_connection - sensor.device_status_gandalf - sensor.device_status_nginx - sensor.device_status_switch_3com - sensor.device_status_wd_storage - sensor.device_status_iomega_storage - sensor.device_status_rm_pro - sensor.device_status_rm_mini
והתוצאה לפניכם:
בהצלחה.
Leave a Reply