תפריט
אודות שירותים מסע עבדו איתי
Raspberry Pi and smart home components
Smart Home מרץ 1, 2026 • 20 דקות קריאה

Operation Smart Home: A Father-Son Mission Brief

Today my son and I execute our smart home plan. Raspberry Pi 5, follow-me lighting, WiFi sensing. The hardware's ready, the code's tested. Time to build.

שתפו:
Lee Foropoulos

Lee Foropoulos

20 דקות קריאה

אתם יודעים ממה לעולם יש מספיק? מאנשים שמדברים על מה שהם הולכים לעשות "יום אחד". חולמים שיושבים בחיבוק ידיים, מחכים לרגע המושלם, להגדרה המושלמת, למה-שלא-יהיה המושלם. בינתיים החיים ממשיכים לרוץ.

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

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

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

עדיף להיכשל כמו זורבה מאשר לשבת בחיבוק ידיים.

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

המשימה

עד שנדליק את הגריל הערב, הבית הזה:

  • ידליק אורות בחדר שאתם נכנסים אליו, ויעמעם אותם מאחוריכם כשתצאו
  • ינעל כל דלת כשהמיטה תזהה שנרדמנו
  • יסגור את המוסך אוטומטית כשנשכח (שוב)
  • יתאים את המיזוג בהתאם לאילו חדרים באמת תפוסים
  • ייצר רעש WiFi כדי שאף אחד בחוץ לא יוכל להשתמש באותה טכנולוגיית חישה נגדנו

ואמזון לא תדע כלום. הכל רץ מקומית. בלי ענן. בלי מנויים. בלי איסוף נתונים.

המחסן (כבר מוכן)

המוח: Raspberry Pi 5 - מוכן

הדבר הזה ישב על השולחן שלי שבועיים, מוגדר לחלוטין, מחכה להיום. Pi 5 זה מוגזם לאוטומציית בית בסיסית. אני אוהב מוגזם. הוא רץ על Raspberry Pi OS Lite, Docker מותקן, Portainer מזמזם. כל מה שנשאר זה לחבר אותו למקום הקבוע.

בחרתי בחבילת Argon ONE V3 M.2 NVME PCIE Case. כבר מורכב:

  • SSD מסוג M.2 עם מערכת ההפעלה מותקנת (בלי תקלות כרטיס SD אצלנו)
  • Docker + Portainer מותקנים ונבדקים
  • קונטיינר Home Assistant מוכן להתקנה
  • IP סטטי מוגדר ברשת

רשימת בדיקה טרום טיסה - הושלמה

  • ☑ Raspberry Pi OS Lite מותקן על SSD
  • ☑ SSH מופעל, אישורים מוגדרים
  • ☑ רשת מוגדרת עם IP סטטי
  • ☑ Docker + Portainer רצים
  • ☑ קבצי הגדרות Home Assistant מוכנים

החיישנים: לוחות ESP32 - מותקנים ונבדקים

הלוחות הקטנים האלה של ESP32 היו החלק הכיף. הבן שלי ואני בילינו בסופ"ש שעבר להתקין אותם ולראות את נתוני אות ה-WiFi זורמים. הם עובדים. מאושר.

  1. יחידת חישת WiFi - מזהה תנועה על ידי מדידת שיבוש אות WiFi. בדקנו אותה בהליכה בסלון: מזהה תנועה דרך קירות, טווח של כ-4 עד 6 מטרים.
  2. יחידת ערפל WiFi - מייצרת רעש כדי לסנוור כל חישת WiFi חיצונית. רצה בבידוד, יוצרת כאוס יפה במרחב האותות.

היום אנחנו משלבים אותם ב-Home Assistant ורואים אם האוטומציות נדלקות כמו שצריך. הקוד עובד בבדיקות. השאלה היא: האם זה עובד כשהכל מחובר?

(אם אתם רוצים את הרקע למה זה חשוב, קראו את המאמרים שלי על חישת WiFi ואמצעי נגד WiFi.)

התשתית הקיימת - כבר במקום

אנחנו לא מתחילים מאפס. לבית כבר יש דברים חכמים; הם פשוט רצים על אפליקציות נפרדות כמו ערימה של איים מנותקים. היום אנחנו מאחדים את הממלכה:

  • נורות Philips Hue - כבר מותקנות בכל הבית. כרגע נשלטות דרך אפליקציית Hue. היום: Home Assistant משתלט.
  • תרמוסטט Ecobee - כבר יודע אילו חדרים תפוסים דרך החיישנים שלו. היום: משלבים את הנתונים.
  • מיטת Eight Sleep - כבר עוקבת מתי אני ישן. היום: מפעילה את אוטומציית הנעילה.
  • מנעולי Kwikset (Z-Wave) - כבר על הדלתות. היום: לומדים לנעול את עצמם.
  • מוסך MyQ - כבר מותקן. היום: נגמר לנסוע חזרה הביתה כי שכחתי לסגור.

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

Home automation dashboard
עד הערב: הכל מאוחד תחת לוח בקרה אחד

שלב 1: תשתית (בוצע)

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

bash# Docker + Portainer - Already running
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

docker volume create portainer_data
docker run -d -p 9000:9000 --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce

Portainer פעיל ב-http://raspberrypi.local:9000. ממשק גרפי יפה לניהול קונטיינרים. מסומן.

שלב 2: Home Assistant (המשימה הראשונה של היום)

קובץ ה-docker-compose כתוב. תיקיית ההגדרות מוכנה. היום אנחנו מפעילים באמת ומתחילים לחבר מכשירים.

yaml# docker-compose.yml - ready to deploy
version: '3'
services:
  homeassistant:
    container_name: homeassistant
    image: ghcr.io/home-assistant/home-assistant:stable
    volumes:
      - /home/pi/homeassistant:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    privileged: true
    network_mode: host

התוכנית: להריץ docker-compose up -d, להיכנס לאשף ההגדרות, ולחבר את האינטגרציות אחת אחת:

  • Philips Hue - אמור להתגלות אוטומטית ברשת
  • Ecobee - תהליך OAuth, צריך את האפליקציה בהישג יד
  • Eight Sleep - אינטגרציית API, אישורים מוכנים
  • Z-Wave - זה עלול להיות מסובך, מנעולים יכולים להיות גחמניים
  • MyQ - פשוט, כבר עשיתי את זה
  • ESPHome - למכשירי ה-ESP32 שהתקנו בסוף השבוע שעבר

אתגר צפוי: Z-Wave. למנעולים תמיד יש גישה. נראה.

Close-up of a circuit board with electronic components
לוחות ה-ESP32 מותקנים, נבדקים ומוכנים לשילוב

שלב 3: שילוב חישת WiFi (החלק הכיף של היום)

יחידת החישה - מוכנה לחיבור

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

ה-ESP32 כבר מותקן עם ESPHome. הוא כבר מזהה תנועה דרך WiFi CSI (Channel State Information). היום אנחנו מחברים אותו ל-Home Assistant ונותנים לו שם: binary_sensor.living_room_occupied

המבחן: להיכנס לסלון. האם Home Assistant רואה את זה? אם כן, אנחנו בעסק.

יחידת הערפל - שכבת פרטיות מוכנה

ה-ESP32 השני מריץ את מחולל הרעש ממאמר אמצעי הנגד שלי. הוא רץ על שולחן העבודה שלי כבר שבוע, מייצר כאוס יפה בספקטרום ה-WiFi.

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

הרחבה עתידית: 3+3

המטרה של היום היא להוכיח את הקונספט עם חיישן אחד ומכשיר ערפל אחד. ברגע שאנחנו בטוחים:

  • 3 מכשירי חישה: סלון, מטבח, חדר שינה
  • 3 מכשירי ערפל: מפוזרים בכל הבית לכיסוי מלא

זה בערך 50$ בלוחות ESP32 לשדרוג כל הבית. אבל קודם, בואו נוודא שהיום עובד.

$50
עלות כוללת של לוחות ESP32 לכיסוי חישת WiFi בכל הבית עם 3 חיישנים ו-3 מכשירי ערפל.

שלב 4: האוטומציות (כל המטרה)

בשביל זה בנינו הכל. קבצי ה-YAML האלה כתובים, נבדקו בראש שלי מאה פעמים, ומוכנים להדבקה. האם הם יעבדו מהניסיון הראשון? בואו נגלה.

אוטומציה 1: תאורת Follow-Me (ההייליט)

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

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

yaml# configuration.yaml additions
input_text:
  last_occupied_room:
    name: "Last Occupied Room"
    initial: "none"

input_boolean:
  living_room_auto_triggered:
    name: "Living Room Auto Triggered"
  kitchen_auto_triggered:
    name: "Kitchen Auto Triggered"
  bedroom_auto_triggered:
    name: "Bedroom Auto Triggered"

עכשיו האוטומציה:

yaml# automations.yaml
- alias: "Follow Me - Living Room Entry"
  trigger:
    - platform: state
      entity_id: binary_sensor.living_room_occupied
      to: "on"
  condition:
    - condition: state
      entity_id: light.living_room
      state: "off"
  action:
    # Dim the previous room if it was auto-triggered
    - choose:
        - conditions:
            - condition: template
              value_template: "{{ states('input_text.last_occupied_room') == 'kitchen' }}"
            - condition: state
              entity_id: input_boolean.kitchen_auto_triggered
              state: "on"
          sequence:
            - service: light.turn_on
              target:
                entity_id: light.kitchen
              data:
                brightness_pct: 20
                transition: 3
    # Turn on current room
    - service: light.turn_on
      target:
        entity_id: light.living_room
      data:
        brightness_pct: 100
    - service: input_boolean.turn_on
      target:
        entity_id: input_boolean.living_room_auto_triggered
    - service: input_text.set_value
      target:
        entity_id: input_text.last_occupied_room
      data:
        value: "living_room"

- alias: "Follow Me - Living Room Vacancy"
  trigger:
    - platform: state
      entity_id: binary_sensor.living_room_occupied
      to: "off"
      for:
        minutes: 2
  condition:
    - condition: state
      entity_id: input_boolean.living_room_auto_triggered
      state: "on"
  action:
    - service: light.turn_off
      target:
        entity_id: light.living_room
      data:
        transition: 5
    - service: input_boolean.turn_off
      target:
        entity_id: input_boolean.living_room_auto_triggered

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

אוטומציה 2: נעילת לילה (שקט נפשי)

התרחיש: השעה 22:00. אני נכנס למיטה. חמש דקות אחר כך, ה-Eight Sleep מאשר שאני באמת ישן (לא רק שוכב וגולל). הבית מגיב: כל דלת ננעלת, המוסך נסגר אם שכחתי (שוב), התרמוסטט עובר למצב שינה, ואורות שהופעלו אוטומטית נכבים.

yaml- alias: "Bedtime - Eight Sleep Triggered Lockdown"
  trigger:
    - platform: state
      entity_id: binary_sensor.eight_sleep_bed_presence
      to: "on"
      for:
        minutes: 5
  condition:
    - condition: time
      after: "21:00:00"
      before: "06:00:00"
  action:
    # Lock all doors
    - service: lock.lock
      target:
        entity_id:
          - lock.front_door
          - lock.back_door
    # Close garage if open
    - service: cover.close_cover
      target:
        entity_id: cover.garage_door
    # Set Ecobee to sleep mode
    - service: climate.set_preset_mode
      target:
        entity_id: climate.ecobee
      data:
        preset_mode: "Sleep"
    # Turn off auto-triggered lights
    - service: light.turn_off
      target:
        entity_id:
          - light.living_room
          - light.kitchen
      data:
        transition: 5

אין לכם Eight Sleep? החליפו בטריגר מבוסס זמן (22:30) או זיהוי טעינת טלפון. הלוגיקה זהה.

אוטומציה 3: סגירה אוטומטית של המוסך (מציל הנישואים)

הבעיה: "סגרת את המוסך?" - שאלה שנשאלת 3 פעמים בשבוע בבית הזה. לא יותר. אחרי 10 דקות פתוח, הוא נסגר לבד ושולח לי הודעה.

yaml- alias: "Garage - Auto Close After 10 Minutes"
  trigger:
    - platform: state
      entity_id: cover.garage_door
      to: "open"
      for:
        minutes: 10
  action:
    - service: cover.close_cover
      target:
        entity_id: cover.garage_door
    - service: notify.mobile_app_your_phone
      data:
        title: "Garage Secured"
        message: "Garage was open for 10 minutes. Auto-closed."
        data:
          tag: "garage-closed"

אוטומציה 4: מיזוג חכם (חוסך האנרגיה)

הלוגיקה: למה לחמם בית ריק? כשחיישני ה-WiFi שלנו אומרים שאף אחד לא היה בבית 30 דקות, Ecobee עובר למצב לא בבית. כשמישהו נכנס, הוא מתעורר חזרה.

yaml- alias: "Ecobee - Away When House Empty"
  trigger:
    - platform: state
      entity_id: binary_sensor.home_occupied
      to: "off"
      for:
        minutes: 30
  action:
    - service: climate.set_preset_mode
      target:
        entity_id: climate.ecobee
      data:
        preset_mode: "Away"

- alias: "Ecobee - Home When Occupied"
  trigger:
    - platform: state
      entity_id: binary_sensor.home_occupied
      to: "on"
  condition:
    - condition: state
      entity_id: climate.ecobee
      attribute: preset_mode
      state: "Away"
  action:
    - service: climate.set_preset_mode
      target:
        entity_id: climate.ecobee
      data:
        preset_mode: "Home"

יצירת החיישן המצרפי

ה-binary_sensor.home_occupied הוא חיישן template שמשלב את כל חיישני החדרים:

yamltemplate:
  - binary_sensor:
      - name: "Home Occupied"
        state: >
          {{ is_state('binary_sensor.living_room_occupied', 'on')
             or is_state('binary_sensor.kitchen_occupied', 'on')
             or is_state('binary_sensor.bedroom_occupied', 'on') }}

מה יכול להשתבש? (החלק הכיף)

הנה העניין: משהו כן ישתבש היום. זה לא פסימיות, זו מציאות. וזה בסדר. זה כל הפואנטה.

מועמדים סבירים להרפתקה של היום:

  • מנעולי Z-Wave - לדברים האלה יש גישה. השיוך עלול לדרוש כמה ניסיונות.
  • כיול חיישן WiFi - עובד על שולחן העבודה, אבל מה קורה כשהוא במיקום?
  • מקרי קצה באוטומציה - מה קורה אם מישהו עובר דרך חדר ב-2 שניות?
  • בעיית ה"אתמול זה עבד" - הבדיחה האהובה של הטכנולוגיה.

אבל בשביל זה אנחנו עושים את זה ביחד. אב ובן, פותרים בעיות, לומדים, כנראה מתווכחים למה ה-YAML לא עושה parse. ככה באמת לומדים: בונים משהו אמיתי, רואים אותו נשבר ומתקנים אותו.

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

הפילוסופיה

הנה מה שמפריד בין העושים לחולמים:

חולמים חוקרים חודשים. הם קוראים כל מאמר. הם מחכים לחומרה "הנכונה". הם מייעלים את התוכנית שלהם עד שהיא מושלמת. הם אף פעם לא מתחילים.

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

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

קריטריוני הצלחה להיום

  • ☐ Home Assistant רץ עם כל המכשירים מחוברים
  • ☐ חיישן WiFi מזהה תנועה בסלון
  • ☐ תאורת Follow-me עובדת בלפחות חדר אחד
  • ☐ אוטומציית נעילת לילה מופעלת
  • ☐ הבן שלי אומר "זה כמו הבית של טוני סטארק"

מה הלאה (אחרי שהיום עובד)

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

  • פריסה מלאה של 3+3 ESP32 - חישה בכל חדר עיקרי, כיסוי ערפל בכל מקום
  • טאבלט קיר עם לוח בקרה - פאנל שליטה תמיד דולק במסדרון
  • שליטה קולית מקומית - Wyoming/Piper לפקודות קוליות שלא עוזבות את הבית שלכם
  • חיישני דליפת מים - מתחת לכל כיור ולצד דוד המים

אבל קודם: היום. קודם: ביצוע. קודם: להוכיח שכל התכנון הזה באמת עובד.

רשימת בדיקה לבניית בית חכם 0/6

"החיים הם מה שקורה לך בזמן שאתה עסוק לתכנן תוכניות אחרות." - ג'ון לנון

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

How was this article?

שתפו

Link copied to clipboard!

You Might Also Like

Lee Foropoulos

Lee Foropoulos

Business Development Lead at Lookatmedia, fractional executive, and founder of gotHABITS.

🔔

Al tachmits af post

Qabel hodaot keshemashmim maamarim chadashim. Lo dorshim email.

Tire banner baatar keshemashmim maamar chadash, vetodaa medafdefan im teashru.

Hodaot defdefan bilvad. Beli spam, beli email.