תפריט
דף הבית מאמרים {{t.nav.bookmarks}} {{t.nav.experience}} {{t.nav.profiles}} אודות עבדו איתי
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 דקות קריאה

Continue where you left off?
Text size:

Contents

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

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

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

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

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

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

המשימה

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

  • ידליק אורות בחדר שאתם נכנסים אליו, ויעמעם אותם מאחוריכם כשתצאו
  • ינעל כל דלת כשהמיטה תזהה שנרדמנו
  • יסגור את המוסך אוטומטית כשנשכח (שוב)
  • יתאים את המיזוג בהתאם לאילו חדרים באמת תפוסים
  • ייצר רעש 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
1# Docker + Portainer - Already running
2curl -fsSL https://get.docker.com | sh
3sudo usermod -aG docker $USER
4
5docker volume create portainer_data
6docker run -d -p 9000:9000 --name portainer \
7  --restart=always \
8  -v /var/run/docker.sock:/var/run/docker.sock \
9  -v portainer_data:/data \
10  portainer/portainer-ce

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

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

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

yaml
1# docker-compose.yml - ready to deploy
2version: '3'
3services:
4  homeassistant:
5    container_name: homeassistant
6    image: ghcr.io/home-assistant/home-assistant:stable
7    volumes:
8      - /home/pi/homeassistant:/config
9      - /etc/localtime:/etc/localtime:ro
10    restart: unless-stopped
11    privileged: true
12    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
1# configuration.yaml additions
2input_text:
3  last_occupied_room:
4    name: "Last Occupied Room"
5    initial: "none"
6
7input_boolean:
8  living_room_auto_triggered:
9    name: "Living Room Auto Triggered"
10  kitchen_auto_triggered:
11    name: "Kitchen Auto Triggered"
12  bedroom_auto_triggered:
13    name: "Bedroom Auto Triggered"

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

yaml
1# automations.yaml
2- alias: "Follow Me - Living Room Entry"
3  trigger:
4    - platform: state
5      entity_id: binary_sensor.living_room_occupied
6      to: "on"
7  condition:
8    - condition: state
9      entity_id: light.living_room
10      state: "off"
11  action:
12    # Dim the previous room if it was auto-triggered
13    - choose:
14        - conditions:
15            - condition: template
16              value_template: "{{ states('input_text.last_occupied_room') == 'kitchen' }}"
17            - condition: state
18              entity_id: input_boolean.kitchen_auto_triggered
19              state: "on"
20          sequence:
21            - service: light.turn_on
22              target:
23                entity_id: light.kitchen
24              data:
25                brightness_pct: 20
26                transition: 3
27    # Turn on current room
28    - service: light.turn_on
29      target:
30        entity_id: light.living_room
31      data:
32        brightness_pct: 100
33    - service: input_boolean.turn_on
34      target:
35        entity_id: input_boolean.living_room_auto_triggered
36    - service: input_text.set_value
37      target:
38        entity_id: input_text.last_occupied_room
39      data:
40        value: "living_room"
41
42- alias: "Follow Me - Living Room Vacancy"
43  trigger:
44    - platform: state
45      entity_id: binary_sensor.living_room_occupied
46      to: "off"
47      for:
48        minutes: 2
49  condition:
50    - condition: state
51      entity_id: input_boolean.living_room_auto_triggered
52      state: "on"
53  action:
54    - service: light.turn_off
55      target:
56        entity_id: light.living_room
57      data:
58        transition: 5
59    - service: input_boolean.turn_off
60      target:
61        entity_id: input_boolean.living_room_auto_triggered

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

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

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

yaml
1- alias: "Bedtime - Eight Sleep Triggered Lockdown"
2  trigger:
3    - platform: state
4      entity_id: binary_sensor.eight_sleep_bed_presence
5      to: "on"
6      for:
7        minutes: 5
8  condition:
9    - condition: time
10      after: "21:00:00"
11      before: "06:00:00"
12  action:
13    # Lock all doors
14    - service: lock.lock
15      target:
16        entity_id:
17          - lock.front_door
18          - lock.back_door
19    # Close garage if open
20    - service: cover.close_cover
21      target:
22        entity_id: cover.garage_door
23    # Set Ecobee to sleep mode
24    - service: climate.set_preset_mode
25      target:
26        entity_id: climate.ecobee
27      data:
28        preset_mode: "Sleep"
29    # Turn off auto-triggered lights
30    - service: light.turn_off
31      target:
32        entity_id:
33          - light.living_room
34          - light.kitchen
35      data:
36        transition: 5

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

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

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

yaml
1- alias: "Garage - Auto Close After 10 Minutes"
2  trigger:
3    - platform: state
4      entity_id: cover.garage_door
5      to: "open"
6      for:
7        minutes: 10
8  action:
9    - service: cover.close_cover
10      target:
11        entity_id: cover.garage_door
12    - service: notify.mobile_app_your_phone
13      data:
14        title: "Garage Secured"
15        message: "Garage was open for 10 minutes. Auto-closed."
16        data:
17          tag: "garage-closed"

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

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

yaml
1- alias: "Ecobee - Away When House Empty"
2  trigger:
3    - platform: state
4      entity_id: binary_sensor.home_occupied
5      to: "off"
6      for:
7        minutes: 30
8  action:
9    - service: climate.set_preset_mode
10      target:
11        entity_id: climate.ecobee
12      data:
13        preset_mode: "Away"
14
15- alias: "Ecobee - Home When Occupied"
16  trigger:
17    - platform: state
18      entity_id: binary_sensor.home_occupied
19      to: "on"
20  condition:
21    - condition: state
22      entity_id: climate.ecobee
23      attribute: preset_mode
24      state: "Away"
25  action:
26    - service: climate.set_preset_mode
27      target:
28        entity_id: climate.ecobee
29      data:
30        preset_mode: "Home"

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

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

yaml
1template:
2  - binary_sensor:
3      - name: "Home Occupied"
4        state: >
5          {{ is_state('binary_sensor.living_room_occupied', 'on')
6             or is_state('binary_sensor.kitchen_occupied', 'on')
7             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.

0 / 0