Menyu
Kuhusu Huduma Safari Fanya Kazi Nami
Maelezo ya picha: Raspberry Pi and smart home components
Smart Home Mac 1, 2026 • Dakika 20 za kusoma

Toleo lililotafsiriwa: Operation Smart Home: A Father-Son Mission Brief

Maelezo yaliyotafsiriwa: 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.

Shiriki:
Lee Foropoulos

Lee Foropoulos

Dakika 20 za kusoma

Unajua dunia ina watu wa aina gani wa kutosha? Watu wanaozungumza kuhusu watakachofanya siku moja. Waotaji wamekaa mikono juu, wakisubiri wakati kamili, mpangilio kamili, kitu chochote kamili. Wakati huo huo maisha yanaendelea kupita.

"Nilihisi tena jinsi furaha ilivyo rahisi na ya kawaida: glasi ya mvinyo, kashata ya kuchoma, jiko dogo la huruma, sauti ya bahari. Hakuna kingine." Nikos Kazantzakis, Zorba Mgiriki

Zorba hakusubiri. Zorba alicheza. Zorba alishindwa kwa njia ya kushangaza na kucheka kuhusu hilo. Mgodi wake mkubwa ulipobomoka, kwa maana halisi ulibomoka, alikamata chupa ya mvinyo na kuanza kucheza kwenye ufukwe. Ni bora kushindwa kama Zorba kuliko kukaa mikono juu.

Kwa hivyo leo, mimi na mwanangu tunatekeleza. Mpango umeandikwa. Vifaa vimeandaliwa. Vingi vimejaribiwa kibinafsi: otomatiki zinafanya kazi, sensori zinagunduza, msimbo unakompile. Sasa tuone kama vyote vinafanya kazi pamoja. Je, kitu kitaenda vibaya? Labda. Je, tuko tayari kwa changamoto? Kabisa. Hiyo ndiyo sehemu ya kufurahisha.

Ni bora kushindwa kama Zorba kuliko kukaa mikono juu.

Bila mpango, hakuna njia ya mbele. Watu wanaozungumza ili kusikia sauti zao tu. Ndoto tu. Hii si ndoto. Huu ni muhtasari wa utekelezaji.

Misheni

Wakati tutakapokuwa tukichoma nyama ya chakula cha jioni leo usiku, nyumba hii itakuwa:

  • Kuwasha taa kwenye chumba unachoingia, na kuzipunguza ukitoka
  • Kufunga milango yote wakati kitanda kinaposensa tumelala
  • Kufunga gereji kiotomatiki tunaposahau (tena)
  • Kurekebisha hali ya hewa kulingana na vyumba vipi vinatumika kweli
  • Kuzalisha kelele ya WiFi ili mtu yeyote nje asiweze kutumia teknolojia hiyo hiyo dhidi yetu

Na Amazon hawatajua kitu. Kila kitu kinafanya kazi ndani ya nyumba. Hakuna wingu. Hakuna usajili. Hakuna uvunaji wa data.

Silaha (Tayari Zimewekwa)

Ubongo: Raspberry Pi 5 - TAYARI

Kitu hiki kimekuwa kwenye dawati langu kwa wiki mbili, kimesanidiwa kikamilifu, kikisubiri leo. Pi 5 ni kupita kiasi kwa otomatiki ya kawaida ya nyumba. Napenda kupita kiasi. Inafanya kazi na Raspberry Pi OS Lite, Docker imewekwa, Portainer inafanya kazi. Ninachohitaji kufanya ni kuiunganisha mahali itakapoishi.

Nilichagua kifurushi cha Argon ONE V3 M.2 NVME PCIE Case. Tayari imekusanywa:

  • M.2 SSD yenye OS iliyoflashiwa (hakuna matatizo ya kadi ya SD kwetu)
  • Docker + Portainer zimewekwa na kujaribiwa
  • Kontena ya Home Assistant tayari kupelekwa
  • IP tuli imepewa kwenye mtandao

Orodha ya Ukaguzi wa Kabla ya Kuruka - IMEKAMILIKA

  • ☑ Raspberry Pi OS Lite imeflashiwa kwenye SSD
  • ☑ SSH imewezeshwa, stakabadhi zimewekwa
  • ☑ Mtandao umesanidiwa na IP tuli
  • ☑ Docker + Portainer zinafanya kazi
  • ☑ Faili za usanidi wa Home Assistant zimeandaliwa

Sensori: Bodi za ESP32 - ZIMEFLASHIWA NA KUJARIBIWA

Hizi bodi ndogo za ESP32 zimekuwa sehemu ya kufurahisha zaidi. Mimi na mwanangu tulitumia wikendi iliyopita kuziflashia na kutazama data ya ishara ya WiFi ikitiririka. Zinafanya kazi. Imethibitishwa.

  1. Kitengo cha WiFi Sensing - Kinagundua mwendo kwa kupima usumbufu wa ishara ya WiFi. Kilijaribiwa kwa kutembea kwenye sebule; kinagunduza mwendo kupitia kuta, umbali wa karibu mita 4.5 hadi 6.
  2. Kitengo cha WiFi Fog - Kinazalisha kelele ili kupofusha WiFi sensing yoyote ya nje. Kinafanya kazi kwa kujitegemea, kikitengeneza machafuko mazuri katika eneo la ishara.

Leo tunaziunganisha kwenye Home Assistant na kuona kama otomatiki zinafanya kazi ipasavyo. Msimbo unafanya kazi kwenye majaribio. Swali ni: je, inafanya kazi wakati kila kitu kimeunganishwa?

(Ukitaka kujua sababu hii ni muhimu, soma makala zangu kuhusu WiFi sensing na hatua za kupambana na WiFi.)

Miundombinu Iliyopo - TAYARI IMEWEKWA

Hatuanzi kutoka mwanzo. Nyumba tayari ina vitu vya smart, lakini vinafanya kazi kwenye programu tofauti kama visiwa vilivyotengana. Leo tunaunganisha ufalme:

  • Balbu za Philips Hue - Tayari zimewekwa kote nyumbani. Sasa zinadhibitiwa na programu ya Hue. Leo: Home Assistant inachukua usukani.
  • Thermostati ya Ecobee - Tayari inajua vyumba vipi vinatumika kupitia sensori zake. Leo: tunaunganisha data hiyo.
  • Kitanda cha Eight Sleep - Tayari kinafuatilia wakati ninalala. Leo: kinaanzisha otomatiki ya kufunga.
  • Kufuli za Kwikset (Z-Wave) - Tayari kwenye milango. Leo: zinajifunza kujifunga zenyewe.
  • Gereji ya MyQ - Tayari imewekwa. Leo: hakuna tena kurudi nyumbani kwa sababu nilisahau kufunga.

Jambo kuu: Labda tayari una vifaa vingi vya nyumba ya smart kuliko unavyofikiri. Vinaendelea tu bila kuongea.

Dashibodi ya otomatiki ya nyumba
Kufikia usiku wa leo: kila kitu kimeunganishwa kwenye dashibodi moja

Awamu ya 1: Miundombinu (IMEFANYIKA)

Hii ni kazi ya wikendi iliyopita. Ukifuata baadaye, hapa kuna tulichofanya. Ukisoma makala yangu kuhusu Docker, unajua kwa nini tuliyaweka yote kwenye kontena.

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 inaishi kwenye http://raspberrypi.local:9000. GUI nzuri ya usimamizi wa kontena. Imethibitishwa.

Awamu ya 2: Home Assistant (KAZI YA KWANZA YA LEO)

Faili ya docker-compose imeandikwa. Saraka ya usanidi imeandaliwa. Leo tunaiwasha kwa kweli na kuanza kuunganisha vifaa.

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

Mpango: Kukimbia docker-compose up -d, kufungua mchawi wa usanidi, na kuunganisha muunganisho huu mmoja baada ya mwingine:

  • Philips Hue - Inapaswa kujigunduza kiotomatiki kwenye mtandao
  • Ecobee - Mtiririko wa OAuth, lazima niwe na programu karibu
  • Eight Sleep - Muunganisho wa API, stakabadhi tayari
  • Z-Wave - Hii inaweza kuwa ngumu, kufuli zinaweza kuwa na tabia
  • MyQ - Rahisi, nimefanya hapo awali
  • ESPHome - Kwa vifaa vya ESP32 tulivyoflashia wikendi iliyopita

Changamoto inayotarajiwa: Z-Wave. Kufuli daima zina mtazamo. Tutaona.

Picha ya karibu ya bodi ya saketi yenye vipengele vya elektroniki
Bodi za ESP32 zimeflashiwa, zimejaribiwa, na tayari kuunganishwa

Awamu ya 3: Muunganisho wa WiFi Sensing (SEHEMU YA KUFURAHISHA YA LEO)

Kitengo cha Sensing - TAYARI KUUNGANISHWA

Wikendi iliyopita mwanangu alitazama monitor ya serial wakati kitu hiki kilinigundua nikitembea kwenye sebule. Maneno yake halisi: "Baba, hii ni ya kutisha na ya ajabu."

ESP32 tayari imeflashiwa na ESPHome. Tayari inagunduza mwendo kupitia WiFi CSI (Channel State Information). Leo tunaiunganisha kwenye Home Assistant na kuipa jina: binary_sensor.living_room_occupied

Jaribio: Ingia kwenye sebule. Je, Home Assistant inaiona? Ikiwa ndio, tuko kwenye biashara.

Kitengo cha Fog - SAFU YA FARAGHA TAYARI

ESP32 ya pili inafanya kazi na jenereta ya kelele kutoka kwenye makala yangu ya hatua za kupambana. Imekuwa ikifanya kazi kwenye benchi yangu kwa wiki moja, ikizalisha machafuko mazuri katika wigo wa WiFi.

Ndio, tunatumia WiFi sensing kwa otomatiki yetu wenyewe huku tukijilinda wakati huo huo dhidi ya wengine kufanya vivyo hivyo kwetu. Si unafiki. Ni usalama wa kiutendaji. Na mwanangu anafikiri ni kitu baridi zaidi kuwahi kuwepo.

Upanuzi wa Baadaye: 3+3

Lengo la leo ni kuthibitisha dhana na sensori moja na kifaa kimoja cha fog. Tukiwa na uhakika:

  • Vifaa 3 vya sensing: Sebule, jikoni, chumba cha kulala
  • Vifaa 3 vya fog: Vimesambazwa kote kwa chanjo kamili

Hiyo ni takriban $50 ya bodi za ESP32 kwa maboresho ya nyumba nzima. Lakini kwanza, tuone kama leo inafanya kazi.

$50
Gharama ya jumla ya bodi za ESP32 kwa chanjo ya WiFi sensing ya nyumba nzima na sensori 3 na vifaa 3 vya fog.

Awamu ya 4: Otomatiki (SABABU YA YOTE)

Hivi ndivyo tulivyokuwa tukijenga. Faili hizi za YAML zimeandikwa, zimejaribiwa kichwani mwangu mara mia, na tayari kubandikwa. Je, zitafanya kazi mara ya kwanza? Tuone.

Otomatiki ya 1: Taa Zinazofuata (TAMASHA KUBWA)

Maono: Ingia chumbani, taa zinainuka kukusalimia. Ondoka, na zinapungua nyuma yako kama mtumishi mwenye heshima. Nyumba ya Tony Stark. Hiyo ndiyo lengo.

Ujanja: Ukiwasha taa kwa mikono, mfumo unaacha kama ilivyo. Chaguo lako linaheshimiwa. Tunafuatilia hii na wasaidizi wa input_boolean. Kwa sababu hakuna kitu kibaya zaidi ya otomatiki inayopigana nawe.

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"

Sasa otomatiki:

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

Jaribio: Mara tu hii itakapopelekwa, mimi na mwanangu tutatembea nyumbani na kuona kama inatufuata. Ikifanya kazi, tutajisikia kama tuko kwenye filamu. Isipofanya kazi, tutasuluhisha kwa pizza.

Otomatiki ya 2: Kufunga Usiku (AMANI YA AKILI)

Hali: Ni saa 4 usiku. Napanda kitandani. Dakika tano baadaye, Eight Sleep inathibitisha kwamba kweli ninalala (si kulala tu nikisogeza simu). Nyumba inajibu: milango yote inafungwa, gereji inafunga ikiwa nilisahau (tena), thermostati inabadilika kwa hali ya kulala, na taa zilizowashwa kiotomatiki zinapungua.

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

Huna Eight Sleep? Badilisha na kichochezi cha msingi wa wakati (10:30 PM) au ugunduzi wa kuchaji simu. Mantiki ni ile ile.

Otomatiki ya 3: Gereji Inafunga Yenyewe (MWOKOZI WA NDOA)

Tatizo: "Ulifunga gereji?" Swali linaloduliwa mara 3 kwa wiki katika nyumba hii. Hapana tena. Baada ya dakika 10 wazi, inajifunga yenyewe na kunijulisha.

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"

Otomatiki ya 4: Hali ya Hewa ya Smart (MWOKOA NISHATI)

Mantiki: Kwa nini kupasha joto nyumba tupu? Sensori zetu za WiFi zinaposema hakuna mtu nyumbani kwa dakika 30, Ecobee inabadilika kwa hali ya Kutokuwepo. Mtu anapoingia, inajiamsha tena.

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"

Kuunda Sensori ya Jumla

binary_sensor.home_occupied ni sensori ya kiolezo inayochanganya sensori zote za vyumba:

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') }}

Nini Kinaweza Kwenda Vibaya? (Sehemu ya Kufurahisha)

Hivi ndivyo ilivyo: kitu KITAENDA vibaya leo. Hiyo si kukata tamaa. Ni ukweli. Na ni sawa. Hiyo ndiyo sababu yote.

Wagombea wa uwezekano kwa tukio la leo:

  • Kufuli za Z-Wave - Vitu hivi vina tabia. Kuoanisha kunaweza kuchukua majaribio kadhaa.
  • Ukalibresheni wa sensori ya WiFi - Inafanya kazi kwenye benchi, lakini vipi ikiwa mahali pake?
  • Hali za ukingo wa otomatiki - Nini kinatokea mtu akipita chumbani kwa sekunde 2?
  • Tatizo la "ilifanya kazi jana" - Utani unaoupenda zaidi wa teknolojia.

Lakini ndiyo maana tunafanya hivi pamoja. Baba na mwana, tukisuluhisha matatizo, tukijifunza, labda tukibisana kuhusu kwa nini YAML haiparsiwi. Hivi ndivyo unavyojifunza kweli, kwa kujenga kitu halisi na kutazama kikiharibika na kukitengeneza.

Mgodi wa Zorba ulibomoka. Jibu lake? Kucheza kwenye ufukwe. Chochote kilichoharibika leo, tutakitatua. Na kama hatuwezi, tutakuwa na hadithi nzuri ya chakula cha jioni.

Falsafa

Hivi ndivyo vinavyotenganisha watendaji na waotaji:

Waotaji wanafanya utafiti kwa miezi. Wanasoma kila makala. Wanasubiri vifaa "sahihi". Wanaboresha mpango wao hadi ukamilike. Hawanzi kamwe.

Watendaji wanaandika mpango, wanakusanya wanachohitaji, na kutekeleza. Wanatarajia changamoto. Wanabadilika wakati ukiendelea. Wanashindwa wakielekea mbele.

Bila mpango, hakuna njia ya mbele. Watu wanaozungumza ili kusikia sauti zao tu. Lakini mpango bila utekelezaji ni ndoto tu yenye hatua za ziada.

Vigezo vya Mafanikio vya Leo

  • ☐ Home Assistant inafanya kazi na vifaa vyote vimeunganishwa
  • ☐ Sensori ya WiFi inagunduza mwendo kwenye sebule
  • ☐ Taa zinazofuata zinafanya kazi angalau kwenye chumba kimoja
  • ☐ Otomatiki ya kufunga usiku imewezeshwa
  • ☐ Mwanangu anasema "hii ni kama nyumba ya Tony Stark"

Nini Kinafuata (Baada ya Leo Kufanya Kazi)

Tukidhani tutafanikiwa, na tutafanikiwa, hata kama itachukua muda zaidi kuliko inavyotarajiwa:

  • Kupeleka ESP32 kamili 3+3 - Sensing katika kila chumba kikuu, chanjo ya fog kote
  • Dashibodi ya kibao kwenye ukuta - Paneli ya udhibiti inayoendelea kwenye korido
  • Udhibiti wa sauti wa ndani - Wyoming/Piper kwa amri za sauti ambazo haziondoki nyumbani
  • Sensori za kuvuja kwa maji - Chini ya kila sinki na karibu na kipashia maji

Lakini kwanza: leo. Kwanza: utekelezaji. Kwanza: kuthibitisha kuwa mipango hii yote inafanya kazi kweli.

Orodha ya Ukaguzi wa Ujenzi wa Nyumba ya Smart 0/6

"Maisha ni yale yanayokutokea wakati uko busy kufanya mipango mingine." John Lennon

Vibaya. Maisha ni yale yanayotokea unapoacha kupanga na kuanza kufanya. Tutaonana upande wa pili. Wakati wa kwenda kujenga kitu.

How was this article?

Shiriki

Link copied to clipboard!

You Might Also Like

Lee Foropoulos

Lee Foropoulos

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

🔔

Usikose chapisho lolote

Pokea arifa machapisho mapya yanapochapishwa. Hakuna barua pepe inayohitajika.

Utaona bendera kwenye tovuti wakati kuna chapisho jipya, pamoja na arifa ya kivinjari ukiiruhusu.

Arifa za kivinjari tu. Hakuna taka.