สารบัญ:
- ขั้นตอนที่ 1: ขั้นตอนที่ 1: ฉันต้องการวิธีส่งเวลาจากผู้ช่วยที่บ้าน
- ขั้นตอนที่ 2: ขั้นตอนที่ 2: เพิ่มรหัสต่อไปนี้ใน Configuration.yaml
- ขั้นตอนที่ 3: ขั้นตอนที่ 3: ตอนนี้เราต้องรับข้อมูลไปยัง ESPHOME API
- ขั้นตอนที่ 4: ขั้นตอนที่ 4: ดังนั้นการกำหนดค่า ESPHome ของ Plug Now
- ขั้นตอนที่ 5: ขั้นตอนที่ 5: การเชื่อมต่อ ESPHome Home Assistant… Beam Me Up Scotty
- ขั้นตอนที่ 6: ขั้นตอนที่ 6: มาเพิ่มเวลากันเถอะ
- ขั้นตอนที่ 7: ขั้นตอนที่ 7: ช่วงเวลา
- ขั้นตอนที่ 8: ขั้นตอนที่ 8: เรามีเวลาและเงิน… อะไรต่อไป?
- ขั้นตอนที่ 9: ขั้นตอนที่ 9: ตอนนี้สำหรับบางสคริปต์: 'จะเป็นหรือไม่เป็น: นั่นคือคำถาม'
- ขั้นตอนที่ 10: ขั้นตอนที่ 10: สคริปต์โบนัสบางตัว
- ขั้นตอนที่ 11: ขั้นตอนที่ 11: ความคิดสุดท้ายบางอย่าง
วีดีโอ: ESPHOME SONOF S26 ไฟตั้งเวลา: 11 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ขอให้เป็นวันที่ดี. ดังนั้นฉันจึงมีไฟตู้ปลาที่ต้องการเปิดและปิดในช่วงเวลาหนึ่งของวัน ฉันแค่ต้องทำให้มันซับซ้อนสำหรับตัวเอง ฉันต้องการเปลี่ยนเวลาเปิดและปิดจากแดชบอร์ด Home Assistant อาจจะมากขึ้น
มาดูกันว่าฉันสามารถพาตัวเองเข้าไปในโพรงกระต่ายได้มากแค่ไหน
ขั้นตอนที่ 1: ขั้นตอนที่ 1: ฉันต้องการวิธีส่งเวลาจากผู้ช่วยที่บ้าน
googling ช่วยได้ การดึงผมของคุณออกมาช่วยได้ถ้าคุณมี:Pเปิดโปรแกรมเสริม Visual Studio Code Editor ของฉัน ใต้โฟลเดอร์ Config ให้ค้นหาไฟล์ configuration.yaml และคัดลอกและวางบางสิ่งที่ฉันพบที่ซ่อนอยู่ในบางฟอรัม ขออภัยหากจำได้จะแจ้งให้ทราบครับ เพิ่มรหัสและเริ่มต้นผู้ช่วยที่บ้านใหม่
ขั้นตอนที่ 2: ขั้นตอนที่ 2: เพิ่มรหัสต่อไปนี้ใน Configuration.yaml
input_number:
ft_start_hr:
ชื่อ: FT Light Start Hours
ไอคอน: mdi:clock-start
นาที: 0
สูงสุด: 23
ขั้นตอนที่ 1
# เริ่มต้น: 13
บรรทัดแรกจะเป็นรหัสเอนทิตีหมายเลขอินพุต
ต่อไปเราต้องการรายละเอียดบางอย่างสำหรับเด็กน้อยคนนี้:
ชื่อจะน่ากลัว: FT Light Start Hours สำหรับอันนี้ FT มีไว้สำหรับตู้ปลา… ไม่ใช่สิ่งที่คุณคิดใช่ไหม
ถัดไปเป็นไอคอนเสริม มีให้เลือกมากมาย บ้าไปแล้ว… หรือไม่
จากนั้นเราสามารถใส่ค่า min, max และ step เนื่องจากเป็นชั่วโมง ฉันจึงเลือก 0 - 23 ด้วยขั้นตอนเดียว
ตอนแรกฉันมีค่าเริ่มต้นและเมื่อผู้ช่วยที่บ้านรีสตาร์ท มันจะเปลี่ยนเป็นค่าเริ่มต้นนี้ ฉันตัดสินใจแสดงความคิดเห็นเพราะต้องการให้ Home Assistant ลองและจำค่าสุดท้ายที่ฉันตั้งไว้
คุณสามารถใส่ในโหมดเพื่อเลือกกล่อง แต่โดยค่าเริ่มต้น มันจะเลือกตัวเลื่อนที่ดีสำหรับคุณ ฉันคิดว่าตัวเลื่อนจะทำตอนนี้
ระวังการเยื้องเนื่องจากมีความสำคัญมากดูภาพ
ดังนั้นสิ่งเหล่านี้จะช่วยให้คุณสามารถปรับเอนทิตีในผู้ช่วยที่บ้านได้
นี่คือลิงค์ไปยังข้อมูลเพิ่มเติมเกี่ยวกับหมายเลขอินพุต:
www.home-assistant.io/integrations/input_n…
ขั้นตอนที่ 3: ขั้นตอนที่ 3: ตอนนี้เราต้องรับข้อมูลไปยัง ESPHOME API
เซ็นเซอร์:
- แพลตฟอร์ม: template
เซ็นเซอร์:
ft_start_hr:
value_template: '{{ States.input_number.ft_start_hr.state | int }}'
NS
สิ่งนี้จะทำให้ ESPHome API มีการเชื่อมต่อที่จำเป็นและตอนนี้มันเป็นจำนวนเต็มแทนที่จะเป็นตัวเลื่อนข้อความแฟนซี:-P
นี่คือการนำสถานะหมายเลขอินพุตและแปลงเป็นจำนวนเต็มและเก็บไว้ในเซ็นเซอร์
ต่อไปนี้เป็นข้อมูลเพิ่มเติมเกี่ยวกับเทมเพลต:
www.home-assistant.io/integrations/templat…
โอ้ ฉันเปลี่ยนนามสกุลไฟล์ของไฟล์เป็นข้อความเพื่อให้สามารถอัปโหลดได้… Instructables อาจถูกทำลายด้วย yaml…
ขั้นตอนที่ 4: ขั้นตอนที่ 4: ดังนั้นการกำหนดค่า ESPHome ของ Plug Now
ฉันเริ่มต้นด้วยการกำหนดค่าพื้นฐานสำหรับปลั๊ก s-on-off แล้วเริ่มปรับแต่ง
ฉันจะไม่ลงรายละเอียดเกี่ยวกับวิธีการแฟลชปลั๊ก S26 ด้วย ESPHome เนื่องจาก Google มีคำตอบทั้งหมด
ไฟล์การกำหนดค่าแบบเต็มของฉันจะสามารถดาวน์โหลดได้ในตอนท้าย ดาดาดา…
เริ่มต้นด้วยส่วนที่เชื่อมโยงกับ Home Assistant:
เราต้องสร้างเซ็นเซอร์ที่ตรงกับเซ็นเซอร์ในผู้ช่วยที่บ้านเพื่อให้สามารถพูดคุยกันได้
ขั้นตอนที่ 5: ขั้นตอนที่ 5: การเชื่อมต่อ ESPHome Home Assistant… Beam Me Up Scotty
เซ็นเซอร์:
- แพลตฟอร์ม: ผู้ช่วยที่บ้าน
entity_id: sensor.ft_start_hr
id: id_ft_start_hr
ดังนั้นตอนนี้เราจึงสร้างเซ็นเซอร์ใน ESPHome ของประเภทผู้ช่วยในบ้าน ใครจะเดาได้?
รหัสเอนทิตีจะต้องตรงกับสิ่งที่คุณตั้งค่าในไฟล์ configuration.yaml
ฉันตั้งค่ารหัสเพื่อให้ ESPHome สามารถอ้างอิงเซ็นเซอร์นี้ด้วยความคิดมากมาย
ขั้นตอนที่ 6: ขั้นตอนที่ 6: มาเพิ่มเวลากันเถอะ
ด้วยสิ่งนี้เป็นปลั๊กหมดเวลา… เพิ่มเวลาจริง ๆ … หรือลบ? มันเป็นอดีตไปแล้ว?
ต่อไปนี้คือข้อมูลพื้นฐานบางประการขององค์ประกอบเวลา เราเลือกบางอย่างได้ แต่ฉันเลือกผู้ช่วยที่บ้าน ง่ายเกินไป?
esphome.io/components/time.html
ขั้นตอนที่ 7: ขั้นตอนที่ 7: ช่วงเวลา
ไม่มันไม่หยุดพักหรือมันคืออะไร?
ช่วงเวลา:
- ช่วงเวลา: 1sec
แล้ว:
- แลมบ์ดา: |-
id(gl_ft_start_hr) = id(id_ft_start_hr).state;
ดังนั้นฉันจึงตั้งช่วงเวลา 1 วินาทีเพื่อเขียนค่าเซ็นเซอร์จากผู้ช่วยในบ้านไปยังตัวแปรส่วนกลาง
ฉันแค่อยากจะทำแบบนี้ซักครั้งในขณะที่เวลากำลังเดิน…ติ๊กต่อก
ขั้นตอนที่ 8: ขั้นตอนที่ 8: เรามีเวลาและเงิน… อะไรต่อไป?
ดังนั้นฉันจึงตัดสินใจใช้เทมเพลตเซ็นเซอร์ไบนารีเพื่อพิจารณาว่าถึงเวลาเปิดสวิตช์สวิตช์สวิตช์หรือไม่…รีเลย์
ฉันสร้างสวิตช์สามตัวด้วยรหัส: start_time_valid, stop_time_valid และ run_time_valid
start_time_valid เป็นจริงเมื่อเลยเวลาที่ตั้งไว้เพื่อเปิดรีเลย์
ฉันใช้คำสั่ง nested if เพื่อตรวจสอบว่าเรามีค่ามากกว่าหรือเท่ากับวินาทีที่ต้องการ จากนั้นเป็นนาที และสุดท้ายเป็นชั่วโมง
stop_time_valid เป็นจริงเมื่อถึงเวลาก่อนจะถึงเวลาตั้งค่าให้ปิดสวิตช์ เป็นการกลับรายการเพื่อตรวจสอบว่าขณะนี้ยังไม่พ้นเวลาที่กำหนดในการปิดรีเลย์
run_time_valid เป็นจริงเมื่อทั้ง start_time_valid และ stop_time_valid เป็นจริง ฉันคิดว่าฉันสามารถใช้ปกติและเงื่อนไขสำหรับสิ่งนี้ ฉันเพิ่งเข้าสู่วงสวิงของสิ่งต่าง ๆ กับแลมบ์ดา
- แพลตฟอร์ม: template
ชื่อ: "เวลาเริ่มต้นที่ถูกต้อง"
รหัส: start_time_valid
แลมบ์ดา: |-
if (id(homeassistant_time).now().hour > id(gl_ft_start_hr)) {
คืนค่าจริง;
}
อื่น if (id(homeassistant_time).now().hour == id(gl_ft_start_hr) &&
id (homeassistant_time). ตอนนี้ (). นาที > id (gl_ft_start_mn)) {
คืนค่าจริง;
}
อื่น if (id(homeassistant_time).now().hour == id(gl_ft_start_hr) &&
id(homeassistant_time).ตอนนี้().นาที == id(gl_ft_start_mn) &&
id(homeassistant_time).now().second >= id(gl_ft_start_ss)){
คืนค่าจริง;
}
อื่น {
คืนค่าเท็จ;
}
ขั้นตอนที่ 9: ขั้นตอนที่ 9: ตอนนี้สำหรับบางสคริปต์: 'จะเป็นหรือไม่เป็น: นั่นคือคำถาม'
อืม ผิดคริปครับพี่!
ดังนั้นหากฉันเสียบสวิตช์… หรือไฟบ้านเพิ่งเปิดขึ้นมา ฉันต้องการให้สวิตช์รู้ว่าควรเปิดหรือปิดและดำเนินการตามนั้น (ใช่ พวกเราทั้งหมดจะไปเรียนการแสดง)
รหัสสคริปต์แรก: checkstatuson กำลังตรวจสอบว่าเราตั้งใจจะเปิดใช้งานและดำเนินการตามนั้นหรือไม่ ฉันยังรวมแฟล็กทั่วโลกด้วย id: trackingon เพื่อให้แน่ใจว่าสคริปต์นี้ทำงานเพียงครั้งเดียวและไม่ได้ขัดขวางสคริปต์อื่นๆ ของฉันจากการมีส่วนร่วมในการแสดง
มันมี 3 เงื่อนไข: รีเลย์ปิดอยู่ มันควรจะเปิดและฉันยังไม่ได้ทำส่วนของฉัน จากนั้นจะเป็นการปิดสคริปต์อื่นๆ ที่ทำงานอยู่ เปิดรีเลย์ และตั้งค่าสถานะการติดตาม
รหัสสคริปต์ที่สอง: กำลังตรวจสอบสถานะปิด อยู่ตรงข้ามกับรหัสแรก เราแค่ตรวจสอบว่าเราจำเป็นต้องปิดม่านตอนนี้หรือไม่ แฟล็กการติดตามสำหรับอันนี้คือ trackingoff
ฉันเรียกใช้สคริปต์ทั้งสองนี้ในช่วงเวลา 1 วินาทีเพื่อตรวจสอบทุกวินาที
ขั้นตอนที่ 10: ขั้นตอนที่ 10: สคริปต์โบนัสบางตัว
คุณสมบัติอีกสองประการที่ฉันต้องการเพิ่มคือ ถ้าฉันปิดไฟที่ถังน้ำมัน มันจะเปิดขึ้นมาอีกครั้งหลังจากผ่านไป 5 วินาที หากไฟนั้นตั้งใจที่จะเปิดขึ้นในขณะนั้น นอกจากนี้ หากไฟดับแล้วและฉันต้องการเปิดสวิตช์เพื่อดูปลาของฉัน และอยู่นอกเวลาที่กำหนดไว้ ไฟก็จะเปิดเป็นเวลา 5 นาที ใช่ 5 นาทีก็นานพอ… กลับไปทำงานเถอะ
รหัสสคริปต์แรก: relayisoff จะเปิดไฟเป็นเวลา 5 นาทีหากดับตามเวลาที่กำหนดแล้วดับลง
รหัสสคริปต์ที่สอง: การถ่ายทอดจะถูกย้อนกลับจากรหัสแรกและจะเปิดไฟอีกครั้งในอีก 5 วินาทีต่อมาหากตั้งใจให้เปิด ใครบอกว่าปิดไฟนายได้!
ต่อไปนี้เป็นข้อมูลเพิ่มเติมเกี่ยวกับสคริปต์:
esphome.io/guides/automations.html
ข้อมูลโบนัสบางอย่างเกี่ยวกับสคริปต์คือไม่มีการบล็อก เว้นเสียแต่ว่าคุณใส่แลมบ์ดาล่าช้า Uh No No No
ขั้นตอนที่ 11: ขั้นตอนที่ 11: ความคิดสุดท้ายบางอย่าง
จากผู้ช่วยในบ้าน ฉันต้องการให้สวิตช์ทำงานเหมือนกับปุ่ม
ฉันไม่ได้ใส่ชื่อสำหรับสวิตช์ในเครื่องของเซ็นเซอร์ไบนารีเนื่องจากไม่จำเป็นต้องเห็นว่ามีการผลักในผู้ช่วยในบ้าน
ฉันไม่ได้ตั้งชื่อสวิตช์รีเลย์เนื่องจากฉันต้องการใช้สคริปต์สำหรับเปลี่ยนจากผู้ช่วยในบ้าน
ฉันสร้างสวิตช์เทมเพลตที่มีชื่อเพื่อใช้เปลี่ยนจากผู้ช่วยที่บ้าน มันจะเรียกใช้สคริปต์ของฉันเหมือนกับสวิตช์ในเครื่องที่ปลั๊ก
ฉันไม่ได้ทดสอบว่าปิดผู้ช่วยที่บ้านของฉันหรือไม่หากปลั๊กยังทำงานได้อย่างถูกต้อง ฉันหวังว่าอย่างนั้น ฉันเคยเห็นบางโพสต์เกี่ยวกับปัญหาบางอย่างเมื่อขาดการเชื่อมต่อกับ Home Assistant API
ฉันหวังว่าบทช่วยสอนเล็กๆ นี้จะช่วยคุณได้ และโปรดช่วยฉันทำให้ดีขึ้นได้ ฉันไม่ใช่ผู้เชี่ยวชาญและเรียนรู้ช้ามาก ฉันแค่คิดว่าบางสิ่งที่ฉันเรียนรู้วิธีทำอาจช่วยคนที่กำลังดิ้นรนเพื่อคิดออก
ตอนนี้เปลี่ยนเวลาในผู้ช่วยที่บ้านตามพระอาทิตย์ขึ้นและตก…+ - ไม่กี่
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
ควบคุมประตูบานเลื่อนอัตโนมัติของคุณด้วย Home Assistant และ ESPHome: 5 ขั้นตอน (พร้อมรูปภาพ)
ควบคุมประตูบานเลื่อนอัตโนมัติของคุณด้วย Home Assistant และ ESPHome: บทความต่อไปนี้เป็นข้อเสนอแนะบางส่วนเกี่ยวกับประสบการณ์ส่วนตัวของฉันในการควบคุมประตูบานเลื่อนอัตโนมัติที่ฉันติดตั้งไว้ที่บ้าน ประตูนี้มีชื่อว่า "V2 Alfariss" มีรีโมท Phox V2 สองสามตัวเพื่อควบคุม ฉันยังมี
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-