สารบัญ:

ESPHOME SONOF S26 ไฟตั้งเวลา: 11 ขั้นตอน (พร้อมรูปภาพ)
ESPHOME SONOF S26 ไฟตั้งเวลา: 11 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ESPHOME SONOF S26 ไฟตั้งเวลา: 11 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ESPHOME SONOF S26 ไฟตั้งเวลา: 11 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: วิธีตั้งค่า SONOFF S31 WiFi Switch เริ่มต้นใช้งาน (อย่างง่าย) วัดไฟฟ้าได้ เชื่อมต่อผ่านแอพ eWeLink 2024, พฤศจิกายน
Anonim
ESPHOME SONOF S26 ไฟตั้งเวลา
ESPHOME SONOF S26 ไฟตั้งเวลา

ขอให้เป็นวันที่ดี. ดังนั้นฉันจึงมีไฟตู้ปลาที่ต้องการเปิดและปิดในช่วงเวลาหนึ่งของวัน ฉันแค่ต้องทำให้มันซับซ้อนสำหรับตัวเอง ฉันต้องการเปลี่ยนเวลาเปิดและปิดจากแดชบอร์ด Home Assistant อาจจะมากขึ้น

มาดูกันว่าฉันสามารถพาตัวเองเข้าไปในโพรงกระต่ายได้มากแค่ไหน

ขั้นตอนที่ 1: ขั้นตอนที่ 1: ฉันต้องการวิธีส่งเวลาจากผู้ช่วยที่บ้าน

googling ช่วยได้ การดึงผมของคุณออกมาช่วยได้ถ้าคุณมี:Pเปิดโปรแกรมเสริม Visual Studio Code Editor ของฉัน ใต้โฟลเดอร์ Config ให้ค้นหาไฟล์ configuration.yaml และคัดลอกและวางบางสิ่งที่ฉันพบที่ซ่อนอยู่ในบางฟอรัม ขออภัยหากจำได้จะแจ้งให้ทราบครับ เพิ่มรหัสและเริ่มต้นผู้ช่วยที่บ้านใหม่

ขั้นตอนที่ 2: ขั้นตอนที่ 2: เพิ่มรหัสต่อไปนี้ใน Configuration.yaml

ขั้นตอนที่ 2: เพิ่มรหัสต่อไปนี้ใน Configuration.yaml
ขั้นตอนที่ 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

ขั้นตอนที่ 3: ตอนนี้ เราต้องรับข้อมูลไปยัง ESPHOME API
ขั้นตอนที่ 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

ขั้นตอนที่ 4: ดังนั้นการกำหนดค่า ESPHome ของ Plug Now
ขั้นตอนที่ 4: ดังนั้นการกำหนดค่า ESPHome ของ Plug Now

ฉันเริ่มต้นด้วยการกำหนดค่าพื้นฐานสำหรับปลั๊ก s-on-off แล้วเริ่มปรับแต่ง

ฉันจะไม่ลงรายละเอียดเกี่ยวกับวิธีการแฟลชปลั๊ก S26 ด้วย ESPHome เนื่องจาก Google มีคำตอบทั้งหมด

ไฟล์การกำหนดค่าแบบเต็มของฉันจะสามารถดาวน์โหลดได้ในตอนท้าย ดาดาดา…

เริ่มต้นด้วยส่วนที่เชื่อมโยงกับ Home Assistant:

เราต้องสร้างเซ็นเซอร์ที่ตรงกับเซ็นเซอร์ในผู้ช่วยที่บ้านเพื่อให้สามารถพูดคุยกันได้

ขั้นตอนที่ 5: ขั้นตอนที่ 5: การเชื่อมต่อ ESPHome Home Assistant… Beam Me Up Scotty

ขั้นตอนที่ 5: การเชื่อมต่อ ESPHome Home Assistant… Beam Me Up Scotty
ขั้นตอนที่ 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: มาเพิ่มเวลากันเถอะ

ขั้นตอนที่ 6: มาเพิ่มเวลากันเถอะ
ขั้นตอนที่ 6: มาเพิ่มเวลากันเถอะ

ด้วยสิ่งนี้เป็นปลั๊กหมดเวลา… เพิ่มเวลาจริง ๆ … หรือลบ? มันเป็นอดีตไปแล้ว?

ต่อไปนี้คือข้อมูลพื้นฐานบางประการขององค์ประกอบเวลา เราเลือกบางอย่างได้ แต่ฉันเลือกผู้ช่วยที่บ้าน ง่ายเกินไป?

esphome.io/components/time.html

ขั้นตอนที่ 7: ขั้นตอนที่ 7: ช่วงเวลา

ขั้นตอนที่ 7: ช่วงเวลา
ขั้นตอนที่ 7: ช่วงเวลา

ไม่มันไม่หยุดพักหรือมันคืออะไร?

ช่วงเวลา:

- ช่วงเวลา: 1sec

แล้ว:

- แลมบ์ดา: |-

id(gl_ft_start_hr) = id(id_ft_start_hr).state;

ดังนั้นฉันจึงตั้งช่วงเวลา 1 วินาทีเพื่อเขียนค่าเซ็นเซอร์จากผู้ช่วยในบ้านไปยังตัวแปรส่วนกลาง

ฉันแค่อยากจะทำแบบนี้ซักครั้งในขณะที่เวลากำลังเดิน…ติ๊กต่อก

ขั้นตอนที่ 8: ขั้นตอนที่ 8: เรามีเวลาและเงิน… อะไรต่อไป?

ขั้นตอนที่ 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: ตอนนี้สำหรับบางสคริปต์: 'จะเป็นหรือไม่เป็น: นั่นคือคำถาม'

ขั้นตอนที่ 9: ตอนนี้สำหรับบางสคริปต์: 'จะเป็นหรือไม่เป็น: นั่นคือคำถาม'
ขั้นตอนที่ 9: ตอนนี้สำหรับบางสคริปต์: 'จะเป็นหรือไม่เป็น: นั่นคือคำถาม'

อืม ผิดคริปครับพี่!

ดังนั้นหากฉันเสียบสวิตช์… หรือไฟบ้านเพิ่งเปิดขึ้นมา ฉันต้องการให้สวิตช์รู้ว่าควรเปิดหรือปิดและดำเนินการตามนั้น (ใช่ พวกเราทั้งหมดจะไปเรียนการแสดง)

รหัสสคริปต์แรก: checkstatuson กำลังตรวจสอบว่าเราตั้งใจจะเปิดใช้งานและดำเนินการตามนั้นหรือไม่ ฉันยังรวมแฟล็กทั่วโลกด้วย id: trackingon เพื่อให้แน่ใจว่าสคริปต์นี้ทำงานเพียงครั้งเดียวและไม่ได้ขัดขวางสคริปต์อื่นๆ ของฉันจากการมีส่วนร่วมในการแสดง

มันมี 3 เงื่อนไข: รีเลย์ปิดอยู่ มันควรจะเปิดและฉันยังไม่ได้ทำส่วนของฉัน จากนั้นจะเป็นการปิดสคริปต์อื่นๆ ที่ทำงานอยู่ เปิดรีเลย์ และตั้งค่าสถานะการติดตาม

รหัสสคริปต์ที่สอง: กำลังตรวจสอบสถานะปิด อยู่ตรงข้ามกับรหัสแรก เราแค่ตรวจสอบว่าเราจำเป็นต้องปิดม่านตอนนี้หรือไม่ แฟล็กการติดตามสำหรับอันนี้คือ trackingoff

ฉันเรียกใช้สคริปต์ทั้งสองนี้ในช่วงเวลา 1 วินาทีเพื่อตรวจสอบทุกวินาที

ขั้นตอนที่ 10: ขั้นตอนที่ 10: สคริปต์โบนัสบางตัว

ขั้นตอนที่ 10: สคริปต์โบนัสบางตัว
ขั้นตอนที่ 10: สคริปต์โบนัสบางตัว

คุณสมบัติอีกสองประการที่ฉันต้องการเพิ่มคือ ถ้าฉันปิดไฟที่ถังน้ำมัน มันจะเปิดขึ้นมาอีกครั้งหลังจากผ่านไป 5 วินาที หากไฟนั้นตั้งใจที่จะเปิดขึ้นในขณะนั้น นอกจากนี้ หากไฟดับแล้วและฉันต้องการเปิดสวิตช์เพื่อดูปลาของฉัน และอยู่นอกเวลาที่กำหนดไว้ ไฟก็จะเปิดเป็นเวลา 5 นาที ใช่ 5 นาทีก็นานพอ… กลับไปทำงานเถอะ

รหัสสคริปต์แรก: relayisoff จะเปิดไฟเป็นเวลา 5 นาทีหากดับตามเวลาที่กำหนดแล้วดับลง

รหัสสคริปต์ที่สอง: การถ่ายทอดจะถูกย้อนกลับจากรหัสแรกและจะเปิดไฟอีกครั้งในอีก 5 วินาทีต่อมาหากตั้งใจให้เปิด ใครบอกว่าปิดไฟนายได้!

ต่อไปนี้เป็นข้อมูลเพิ่มเติมเกี่ยวกับสคริปต์:

esphome.io/guides/automations.html

ข้อมูลโบนัสบางอย่างเกี่ยวกับสคริปต์คือไม่มีการบล็อก เว้นเสียแต่ว่าคุณใส่แลมบ์ดาล่าช้า Uh No No No

ขั้นตอนที่ 11: ขั้นตอนที่ 11: ความคิดสุดท้ายบางอย่าง

ขั้นตอนที่ 11: ความคิดสุดท้ายบางอย่าง
ขั้นตอนที่ 11: ความคิดสุดท้ายบางอย่าง
ขั้นตอนที่ 11: ความคิดสุดท้ายบางอย่าง
ขั้นตอนที่ 11: ความคิดสุดท้ายบางอย่าง

จากผู้ช่วยในบ้าน ฉันต้องการให้สวิตช์ทำงานเหมือนกับปุ่ม

ฉันไม่ได้ใส่ชื่อสำหรับสวิตช์ในเครื่องของเซ็นเซอร์ไบนารีเนื่องจากไม่จำเป็นต้องเห็นว่ามีการผลักในผู้ช่วยในบ้าน

ฉันไม่ได้ตั้งชื่อสวิตช์รีเลย์เนื่องจากฉันต้องการใช้สคริปต์สำหรับเปลี่ยนจากผู้ช่วยในบ้าน

ฉันสร้างสวิตช์เทมเพลตที่มีชื่อเพื่อใช้เปลี่ยนจากผู้ช่วยที่บ้าน มันจะเรียกใช้สคริปต์ของฉันเหมือนกับสวิตช์ในเครื่องที่ปลั๊ก

ฉันไม่ได้ทดสอบว่าปิดผู้ช่วยที่บ้านของฉันหรือไม่หากปลั๊กยังทำงานได้อย่างถูกต้อง ฉันหวังว่าอย่างนั้น ฉันเคยเห็นบางโพสต์เกี่ยวกับปัญหาบางอย่างเมื่อขาดการเชื่อมต่อกับ Home Assistant API

ฉันหวังว่าบทช่วยสอนเล็กๆ นี้จะช่วยคุณได้ และโปรดช่วยฉันทำให้ดีขึ้นได้ ฉันไม่ใช่ผู้เชี่ยวชาญและเรียนรู้ช้ามาก ฉันแค่คิดว่าบางสิ่งที่ฉันเรียนรู้วิธีทำอาจช่วยคนที่กำลังดิ้นรนเพื่อคิดออก

ตอนนี้เปลี่ยนเวลาในผู้ช่วยที่บ้านตามพระอาทิตย์ขึ้นและตก…+ - ไม่กี่

แนะนำ: