สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
เครดิต
ฉันค่อนข้างคัดลอกการใช้งานของ Savjee แต่แทนที่จะใช้ Shelly ฉันใช้ Sonoff Basic ตรวจสอบเว็บไซต์และช่อง YouTube ของเขา!
www.savjee.be/2020/06/make-garage-door-ope…
www.youtube.com/c/Savjee/
สมมติฐาน
- คุณมีอินสแตนซ์ของ Home Assistant ที่ทำงานอยู่และคุณรู้วิธีใช้งาน
- คุณมีอินสแตนซ์ ESPHome ที่ทำงานอยู่และคุณรู้วิธีใช้งาน
เสบียง
Sonoff Basic -
Contact Sensor -
USB เป็นซีเรียล -
ปืนความร้อน -
หัวแร้ง -
ท่อหดความร้อน -
ลวด -
ปลอกลวด -
สายดูปองท์ -
ซอฟต์แวร์:
ผู้ช่วยในบ้าน -
ESPhome -
ESP ง่าย -
ขั้นตอนที่ 1: การปรับเปลี่ยน Sonoff RF R2 Power
ข้อจำกัดความรับผิดชอบ
ฉันไม่ใช่วิศวกรไฟฟ้าและไม่ได้แสร้งทำเป็นเล่นบนอินเทอร์เน็ต หากคุณตัดสินใจที่จะแก้ไข Sonoff Basic คุณจะต้องยอมรับความเสี่ยงเอง นี่คือวิธีที่ฉันได้แก้ไข Sonoff Basic ของฉัน แต่ไม่แนะนำให้คุณทำเช่นเดียวกัน ฉันไม่ได้หมายความว่าฉันกำลังทำอย่างถูกต้องหรือปลอดภัย
เริ่มต้น
Csongor Varga ชี้ให้เห็นถึงข้อดีในวิดีโอของเขาว่าไม่ปลอดภัยที่จะดัดแปลง Sonoff เวอร์ชันนี้เหมือนกับเวอร์ชันก่อนหน้าโดยตัดการติดตาม ดูเพิ่มเติมที่นี่ การเชื่อมต่อแบบบัดกรีสำหรับรีเลย์และการเชื่อมต่อแบบบัดกรีสำหรับฟิวส์ที่จ่ายพลังงานให้กับวงจรนั้นอยู่ใกล้เกินไปสำหรับวิธีการติดตามการตัด ฉันแก้ไขปัญหานี้โดยลบร่องรอยส่วนใหญ่และย้ายฟิวส์
- ค้นหาฟิวส์ที่จ่ายไฟให้กับวงจร
- ตำแหน่งที่ลวดเป็นกลางบัดกรีเข้ากับทางเข้า
- ถอดฟิวส์ ถอด และพักไว้
- ถอดลวดที่เป็นกลางออกจากทางเข้าและถอดออก
- ตัดรอยตามที่เห็นในภาพในขั้นตอนที่ห้า
- ตัดรอยบากตามที่เห็นในรูปภาพในขั้นตอนที่ 6
- บัดกรีฟิวส์ในทางตรงข้ามที่คุณเอามันออกมาและประสานปลายด้านยาวเข้ากับช่องทางเข้า
- ลอกลวดที่เป็นกลางแล้วประสานเข้ากับบอร์ดตามที่เห็นในภาพในขั้นตอนที่8
ขั้นตอนที่ 2: ESPHome - การสร้างซอฟต์แวร์
สวิตช์เพื่อกำหนดค่ารีเลย์ สิ่งนี้จะอยู่ภายในเพื่อไม่ให้สัมผัสกับ Home Assistant โดยตรง
สวิตซ์:
- แพลตฟอร์ม: gpio พิน: 12 id: relay_1 ชื่อ: "sonoff_basic_4_switch" ภายใน: จริง เราจะต้องมีเซ็นเซอร์ไบนารีสำหรับเซ็นเซอร์สัมผัสที่จะบอกเราว่าประตูโรงรถปิดหรือเปิดอยู่
binary_sensor:
- แพลตฟอร์ม: gpio pin: หมายเลข: 3 โหมด: INPUT_PULLUP ชื่อ: "Garage Door Contact Sensor" id: contact_sensor ภายใน: ตัวกรองจริง: delayed_on_off: 500ms เราสามารถกำหนดค่าปุ่มบน Sonoff เพื่อสลับรีเลย์
- แพลตฟอร์ม: gpio
id: button_0 พิน: หมายเลข: 0 กลับหัว: โหมด True: INPUT_PULLUP on_click: จากนั้น: - switch.turn_on: relay_1 - หน่วงเวลา: 500ms - switch.turn_off: relay_1 ปิดท้ายด้วยโรงรถแอตทริบิวต์
ปิดบัง:
- แพลตฟอร์ม: เทมเพลต device_class: ชื่อโรงรถ: "ประตูโรงรถ" id: template_cov lambda: |- if (id (contact_sensor).state) { return COVER_OPEN; } อื่น ๆ { ส่งคืน COVER_CLOSED; } open_action: - switch.turn_on: relay_1 - หน่วงเวลา: 0.5s - switch.turn_off: relay_1 close_action: - switch.turn_on: relay_1 - หน่วงเวลา: 0.5s - switch.turn_off: relay_1 นี่คือ YAML. แบบเต็ม
อินเตอร์เน็ตไร้สาย:
ssid: รหัสผ่าน: manual_ip: static_ip: เกตเวย์: ซับเน็ต: dns1: dns2: # เปิดใช้งานฮอตสปอตสำรอง (พอร์ทัลแบบ Captive) ในกรณีที่การเชื่อมต่อ wifi ล้มเหลว ap: ssid: รหัสผ่าน: captive_portal: # เปิดใช้งานตัวบันทึกการบันทึก: # เปิดใช้งาน Home Assistant API api: ota: การแทนที่: # แก้ไขตัวแปรตามการตั้งค่าของคุณ ชื่อโฮสต์: 'sonoff_basic_4' esphome: ชื่อ: $hostname platform: ESP8266 board: esp01_1m board_flash_mode: dout status_led: pin: number: 13 inverted: True binary_sensor: - แพลตฟอร์ม: gpio pin: หมายเลข: 3 โหมด: INPUT_PULLUP ชื่อ: "เซ็นเซอร์สัมผัสประตูโรงรถ" id: contact_sensor ภายใน: ตัวกรองจริง: delayed_on_off: 500ms - แพลตฟอร์ม: gpio id: button_0 พิน: หมายเลข: 0 กลับหัว: โหมดจริง: INPUT_PULLUP on_click: จากนั้น: - switch.turn_on: relay_1 - หน่วงเวลา: 500ms - switch.turn_off: relay_1 สวิตช์: - แพลตฟอร์ม: gpio pin: 12 id: relay_1 ชื่อ: "sonoff_basic_4_switch" ภายใน: จริง ปก: - แพลตฟอร์ม: เทมเพลต device_class: ชื่อโรงรถ: "Garage Door" id: template_cov lambda: |- if (id(contact_sensor).state) { retu rn COVER_OPEN; } อื่น ๆ { ส่งคืน COVER_CLOSED; } open_action: - switch.turn_on: relay_1 - หน่วงเวลา: 0.5s - switch.turn_off: relay_1 close_action: - switch.turn_on: relay_1 - หน่วงเวลา: 0.5s - switch.turn_off: relay_1 เซ็นเซอร์: - แพลตฟอร์ม: wifi_signal ชื่อ: "sonoff_basic_4_wifi_signal" update_interval: 60s - แพลตฟอร์ม: ชื่อเวลาทำงาน: "sonoff_basic_4_up_time" text_sensor: - แพลตฟอร์ม: ชื่อเวอร์ชัน: "sonoff_basic_4_version"
ขั้นตอนที่ 3: ESPEasy - กระพริบ Sonoff Basic
คุณจะต้องใช้อะแดปเตอร์ USB กับซีเรียลสำหรับสิ่งนี้
- RX บนอะแดปเตอร์อนุกรมไปที่ TX บน Sonoff
- TX บนอะแดปเตอร์อนุกรมไปที่ RX บน Sonoff
- ใน ESPHome รวบรวมรหัส
- ดาวน์โหลดไบนารี
- คัดลอกไฟล์.bin ไปยังไดเร็กทอรี ESPEasy ของคุณ
- ต่อสายซีเรียลของคุณเข้ากับ Sonoff
- กดปุ่มบน Sonoff ค้างไว้แล้วเสียบอะแดปเตอร์ Serial to USB เข้ากับคอมพิวเตอร์ของคุณ
- ในไดเร็กทอรี ESPEasy เปิด FlashESP8266.exe
- เลือกพอร์ต COM ของคุณ
- เลือก.bin
- คลิกแฟลช
ขั้นตอนที่ 4: การเดินสายไฟทุกอย่างขึ้น
ฉันใช้สายเคเบิลดูปองท์และสายไฟคอมพิวเตอร์สำหรับสิ่งนี้ แต่คุณสามารถใช้สิ่งที่คุณต้องการได้
- บัดกรีลวดเข้ากับขั้ว RX บน Sonoff
- บัดกรีลวดเข้ากับขั้ว GND บน Sonoff
- ต่อสายไฟเข้ากับขั้วต่อสายกลางและสายขาออก
- ใส่เคส Sonoff ไว้
- ตัดด้านขาเข้าของสายต่อ ดึงสายไฟออก แล้วต่อเข้ากับสายของ Sonoff และทางเข้าที่เป็นกลาง
- ขันฝาของ Sonoff เพื่อให้แน่ใจว่าสายเข้าปลอดภัย
- ทดสอบเพื่อให้แน่ใจว่าคอนแทคเซนเซอร์และรีเลย์ของคุณทำงานอย่างถูกต้อง
ขั้นตอนที่ 5: แนบกับประตูโรงรถ
-
ติดเซ็นเซอร์สัมผัส (ฉันแนบของฉันกับรอก)
ฉันไม่มีสายไฟแบบอิเล็กทรอนิกส์ เลยใช้สายลำโพงและสายพันสายไฟเพื่อติดเซ็นเซอร์สัมผัส
- ติด Sonoff กับบางสิ่งบางอย่าง (ฉันใช้วงเล็บที่ถือที่เปิดประตูโรงรถ)
- เชื่อมต่อสายเคเบิล
ขั้นตอนที่ 6: Home Assistant Automation - การแจ้งเตือนหากโรงรถเปิดเป็นเวลา 2 ชั่วโมง
ทริกเกอร์: ถ้าประตูโรงรถเปิด 2 ชั่วโมง
การดำเนินการ: ส่งการแจ้งเตือนไปยังโทรศัพท์ของฉัน โทรศัพท์ของแฟน และไปยังช่องที่ไม่ลงรอยกันที่บ้านของฉัน
ระบบอัตโนมัติ.yaml
- id: notification_if_garage_is_open_for_2_hours
นามแฝง: "การแจ้งเตือนหากโรงรถเปิด 2 ชั่วโมง" ทริกเกอร์: แพลตฟอร์ม: state entity_id: cover.garage_door ถึง: เปิดสำหรับ: ชั่วโมง: 2 การกระทำ: - บริการ: notify.mobile_app_courtney_s_iphone ข้อมูล: ชื่อ: "[?][?] Garage เปิดทิ้งไว้!" ข้อความ: "ประตูโรงรถเปิดมา 2 ชั่วโมงแล้ว ปิดเลยไหม" ข้อมูล: กด: หมวดหมู่: ios_close_garage - บริการ: notify.mobile_app_pixel_3a ข้อมูล: ชื่อ: "[?][?] Garage left open!" ข้อความ: "ประตูโรงรถเปิดมา 2 ชั่วโมงแล้ว ปิดเลยไหม" ข้อมูล: การกระทำ: - การกระทำ: android_close_garage ชื่อ: ปิดโรงรถ - บริการ: notify.discord ข้อมูล: ข้อความ: "[?][?] ประตูโรงรถเปิดแล้ว 2 ชั่วโมง ปิดมันได้หรือไม่" เป้าหมาย: ["รหัสช่อง DISCORD ของคุณ"]
หากต้องการรับการแจ้งเตือนบน IOS ที่มีปุ่มปิดประตูโรงรถ คุณต้องเพิ่มข้อมูลต่อไปนี้ในไฟล์ configuration.yaml
configuration.yaml
ไอโอเอส:
พุช: หมวดหมู่: - ชื่อ: ปิดตัวระบุโรงรถ: 'ios_close_garage' การกระทำ: - ตัวระบุ: 'IOS_CLOSE_GARAGE' ชื่อ: 'ปิดโรงรถ' การเปิดใช้งานโหมด: 'พื้นหลัง' การตรวจสอบสิทธิ์จำเป็น: จริง # ต้องใช้ FaceID / TouchID ทำลายล้าง: พฤติกรรมเท็จ: 'ค่าเริ่มต้น'
ตอนนี้คุณสามารถเพิ่มระบบอัตโนมัติที่เรียกว่าเมื่อคุณกดปุ่มปิดประตูโรงรถบนการแจ้งเตือนแบบพุชของ IOS
ระบบอัตโนมัติ.yaml
- id: 'ios_mobile_app_notification_close_garage_door'
นามแฝง: การแจ้งเตือนแอพมือถือ ios ปิดทริกเกอร์ประตูโรงรถ: แพลตฟอร์ม: เหตุการณ์ event_type: ios.notification_action_fired event_data: actionName: IOS_CLOSE_GARAGE การกระทำ: - ล่าช้า: 00:00:15 - บริการ: cover.close_cover ข้อมูล: entity_id: cover.garage_door
ระบบอัตโนมัติที่เรียกว่าเมื่อคุณกดปุ่มปิดประตูโรงรถบนการแจ้งเตือนแบบพุชของ Android
ระบบอัตโนมัติ.yaml
- รหัส: 'android_mobile_app_notification_close_garage_door'
นามแฝง: การแจ้งเตือนแอพมือถือ Android ปิดทริกเกอร์ประตูโรงรถ: - event_data: การกระทำ: android_close_garage event_type: mobile_app_notification_action แพลตฟอร์ม: การดำเนินการของเหตุการณ์: - ล่าช้า: 00:00:15 - บริการ: ข้อมูล cover.close_cover: entity_id: cover.garage_door