Sadržaj:

ESPHOME SONOF S26 Vremensko svjetlo: 11 koraka (sa slikama)
ESPHOME SONOF S26 Vremensko svjetlo: 11 koraka (sa slikama)

Video: ESPHOME SONOF S26 Vremensko svjetlo: 11 koraka (sa slikama)

Video: ESPHOME SONOF S26 Vremensko svjetlo: 11 koraka (sa slikama)
Video: Sonoff S26 R2 - how to flash ESPHome or Tasmota 2024, Novembar
Anonim
ESPHOME SONOF S26 Vremensko svjetlo
ESPHOME SONOF S26 Vremensko svjetlo

Dobar dan. Tako da imam svjetlo za akvarij koje želim uključiti i isključiti u određeno doba dana. Morao sam sebi samo zakomplicirati. Želim biti u mogućnosti promijeniti vrijeme uključivanja i isključivanja s nadzorne ploče kućnog pomoćnika. Možda čak i više.

Pa da vidimo samo koliko još mogu ući u zečju rupu.

Korak 1: Korak 1: Trebam način da pošaljem vremena od kućnog pomoćnika

Malo guglanja pomaže. Izvlačenje kose pomaže ako ih zaista imate: PO otvorite dodatak Visual Studio Code Editor. U mapi Config pronađite datoteku configuration.yaml i kopirajte i zalijepite neke stvari koje sam našao skrivene na nekom forumu. Žao mi je ako se sjetim, dao bih priznanje. Dodao je kôd i ponovo pokrenuo kućnog pomoćnika.

Korak 2: Korak 2: Dodao je sljedeći kôd u Configuration.yaml

Korak 2: Dodao je sljedeći kôd u Configuration.yaml
Korak 2: Dodao je sljedeći kôd u Configuration.yaml

ulazni_broj:

ft_start_hr:

naziv: Sati početka rada FT Light

ikona: mdi: start-sat

min: 0

max: 23

korak 1

# početno: 13

Prvi red će biti ID entiteta ulaznog broja.

Zatim nam trebaju neki detalji za ovog malog frajera:

Ime će biti sjajno: FT Light Start Hours za ovu P. S. FT je za Fish Tank … Nije ono što ste mislili?

Slijedi opcionalna ikona. Ima mnogo toga za izabrati pa poludjeti … ili ne.

Tada možemo unijeti vrijednost min, max i step. Kako su ovo sati, odabrao sam 0 - 23 sa jednim korakom.

U početku sam imao početnu vrijednost, a kad bi se kućni pomoćnik ponovo pokrenuo promijenio bi je u ovu početnu vrijednost. Odlučio sam to komentirati jer sam htio da kućni pomoćnik pokuša zapamtiti posljednju vrijednost koju sam mu zadao.

Možete staviti u način rada da odaberete okvir. Ali prema zadanim postavkama za vas bira lijepi klizač. Mislim da će klizač za sada poslužiti.

Budite svjesni udubljenja jer su vrlo važna. Pogledajte sliku

Dakle, ovo će vam dati entitete u kućnom pomoćniku da se možete prilagoditi.

Evo veze do više informacija o ulaznim brojevima:

www.home-assistant.io/integrations/input_n…

Korak 3: Korak 3: Sada moramo dobiti informacije u ESPHOME API

Korak 3: Sada moramo dobiti informacije u ESPHOME API
Korak 3: Sada moramo dobiti informacije u ESPHOME API

senzor:

- platforma: predložak

senzori:

ft_start_hr:

predložak_vrednosti: '{{stanja.input_number.ft_start_hr.state | int}} '

n

Ovo će omogućiti ESPHome API-ju potrebnu vezu, kao i to što je sada cijeli broj umjesto otmjenog klizača za tekst:-P

Ovdje se uzima stanje ulaznog broja i pretvara u cijeli broj i pohranjuje u senzor.

Evo još nekih informacija o predlošcima:

www.home-assistant.io/integrations/templat…

Oh, promijenio sam ekstenziju datoteke svoje datoteke u tekst kako bih je mogao prenijeti … Instrukcije se mogu uništiti s yaml -om …

Korak 4: Korak 4: Dakle, ESPHome konfiguracija Plug Now

Korak 4: Dakle, ESPHome konfiguracija Plug Now
Korak 4: Dakle, ESPHome konfiguracija Plug Now

Počeo sam s osnovnom konfiguracijom za s-on-off utikač, a zatim sam počeo petljati.

Neću ulaziti u detalje o tome kako spojiti utikač S26 s ESPHomeom jer google ima sve odgovore.

Moja puna konfiguracijska datoteka bit će dostupna za preuzimanje na kraju. Da Da Dah…

Pa počnimo s povezanim dijelom s Home Assistantom:

Moramo stvoriti senzore koji odgovaraju senzorima kućnog pomoćnika kako bi mogli međusobno razgovarati.

Korak 5: Korak 5: Veza ESPHome kućnog pomoćnika … Beam Me Up Scotty

Korak 5: Veza ESPHome kućnog pomoćnika … Beam Me Up Scotty
Korak 5: Veza ESPHome kućnog pomoćnika … Beam Me Up Scotty

senzor:

- platforma: kućni pomoćnik

entitet_id: sensor.ft_start_hr

id: id_ft_start_hr

Tako sada stvaramo senzor u ESPHomeu tipa homeassistant. Ko bi mogao pretpostaviti?

ID entiteta morat će odgovarati onome što ste postavili u datoteci configuration.yaml.

Postavio sam id tako da ESPHome može referencirati ovaj senzor u svom obilju razmišljanja.

Korak 6: Korak 6: Omogućimo dodavanje vremena

Korak 6: Omogućimo dodavanje vremena
Korak 6: Omogućimo dodavanje vremena

Dakle, s obzirom da je ovo vremenski utikač … Dopunimo zapravo malo vremena … Ili se oduzima? Je li to sada prošlost?

Evo nekoliko osnova vremenske komponente. Možemo izabrati neke različite, ali ja sam izabrao pomoćnika za kuću. Prelagano?

esphome.io/components/time.html

Korak 7: Korak 7: Interval

Korak 7: Interval
Korak 7: Interval

Ne, nije pauza, ili je tako?

interval:

- interval: 1 sek

zatim:

- lambda: |-

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

Zato sam postavio interval od 1 sekunde za pisanje vrijednosti senzora od kućnog pomoćnika do globalne varijable.

Samo želim ovo raditi jednom u sekundi kako vrijeme otkucava… tik tak

Korak 8: Korak 8: Dakle, imamo vremena i novca … Šta je sljedeće?

Korak 8: Dakle, imamo vremena i novca … Šta je sljedeće?
Korak 8: Dakle, imamo vremena i novca … Šta je sljedeće?

Stoga sam odlučio upotrijebiti predložak binarnog senzora kako bih utvrdio je li vrijeme za uključivanje prekidača … releja

Kreirao sam tri prekidača sa id -ovima: start_time_valid, stop_time_valid i run_time_valid

start_time_valid je istina kada je prošlo vrijeme postavljeno za uključivanje releja.

Koristio sam ugniježđene if naredbe da provjerim jesmo li veće ili jednake potrebnim sekundama, zatim minutima i na kraju satima.

stop_time_valid je istina kada je sada prije nego što je vrijeme postavljeno za isključivanje prekidača. Ovo je obrnuto za provjeru da sada nije prošlo potrebno vrijeme za isključivanje releja

run_time_valid je istina kada su i start_time_valid i stop_time_valid tačni. Pretpostavljam da sam za ovo mogao koristiti samo normalno stanje. Upravo sam ušao u zamah sa lambdama.

- platforma: predložak

name: "Start Time Valid"

id: start_time_valid

lambda: |-

if (id (homeassistant_time).now (). hour> id (gl_ft_start_hr)) {

return true;

}

inače if (id (homeassistant_time).now (). hour == id (gl_ft_start_hr) &&

id (homeassistant_time).now (). minute> id (gl_ft_start_mn)) {

return true;

}

inače if (id (homeassistant_time).now (). hour == id (gl_ft_start_hr) &&

id (homeassistant_time).now (). minute == id (gl_ft_start_mn) &&

id (homeassistant_time).now (). second> = id (gl_ft_start_ss)) {

return true;

}

else {

return false;

}

Korak 9: Korak 9: Sada za neke skripte: 'Biti, ili ne biti: to je pitanje'

Korak 9: Sada za neke skripte: 'Biti, ili ne biti: to je pitanje'
Korak 9: Sada za neke skripte: 'Biti, ili ne biti: to je pitanje'

Hmm pogrešan scenarij stari!

Dakle, ako sam uključio prekidač … ili se kućno napajanje samo ponovo uključilo, htio sam da prekidač zna da li je uključeno ili isključeno i da se ponaša u skladu s tim. (da, svi idemo na časove glume)

Prvi skriptni id: checkstatuson, provjerava da li smo uključeni i djelujemo li u skladu s tim. Uključio sam i globalnu zastavu sa id: trackingon, kako bi se osiguralo da se ova skripta pokrene samo jednom i ne ometa moje druge skripte u obavljanju njihove uloge u predstavi.

Ovo ima 3 uslova: relej je isključen, trebalo bi da bude uključen, a ja već nisam obavio svoj dio posla. Ovo će zatim isključiti sve druge skripte koje se izvode, uključiti relej i postaviti zastavice za praćenje.

Drugi id skripte: checkstatusoff, upravo je suprotan od prvog. Samo provjeravamo moramo li sada zatvoriti zavjese. Zastava praćenja za ovaj je praćenje

Pokrećem ove dvije skripte u intervalu od 1 sekunde da provjerim svaku sekundu.

Korak 10: Korak 10: Neke bonus skripte

Korak 10: Neke bonus skripte
Korak 10: Neke bonus skripte

Još dvije značajke koje sam želio dodati bile su, ako sam isključio svjetlo u spremniku, da će se ponovo uključiti nakon 5 sekundi, ako se namjerava da svijetli u to vrijeme. Također, ako je svjetlo bilo isključeno i htio sam ga upaliti da vidim svoje ribice, a koje nije bilo na vrijeme predviđeno, uključit će se na 5 minuta. Da, 5 minuta je dovoljno … Vratite se na posao.

Prva skripta id: relayisoff će uključiti svjetlo na 5 minuta ako je isključeno na vrijeme, a zatim će se isključiti.

Drugi skript id: relej je praktično obrnut od prvog i ponovo će uključiti svjetlo 5 sekundi kasnije ako je namjera da bude uključeno. Ko je rekao da možete isključiti moje svetlo gospodine!

Evo još nekih informacija o skriptama:

esphome.io/guides/automations.html

Neke dodatne informacije o skriptama su da ne blokiraju. Osim ako ne stavite kašnjenje u lambda. Uh Ne Ne Ne Ne

Korak 11: Korak 11: Neke završne misli

Korak 11: Završne misli
Korak 11: Završne misli
Korak 11: Završne misli
Korak 11: Završne misli

Od kućnog pomoćnika želio sam da prekidač djeluje na isti način kao i dugme.

Nisam stavio naziv lokalnog prekidača binarnog senzora jer nisam morao vidjeti da se gura u kućnom pomoćniku.

Nisam stavio naziv relejnog prekidača jer sam htio koristiti skripte za prebacivanje sa kućnog pomoćnika.

Napravio sam prekidač predloška s imenom kako bih ga mogao koristiti za prebacivanje s kućnog pomoćnika. Pokretat će moje skripte isto kao i lokalni prekidač na priključku.

Nisam testirao da li ću isključiti kućnog pomoćnika ako će utikač i dalje raditi ispravno. Nadam se. Vidio sam neke postove o nekim problemima pri gubitku veze s API -jem kućnog pomoćnika.

Zaista se nadam da će vam ovaj mali vodič pomoći i slobodno mi pomozite da to učinim boljim. Nisam stručnjak i učim vrlo sporo. Samo sam mislio da neke stvari koje sam naučio raditi mogu pomoći nekome ko se bori da to shvati.

Sada da promijenite vrijeme u kućnom pomoćniku na osnovu izlaska i zalaska sunca …+ - nekoliko

Preporučuje se: