Kazalo:

Časovna luč ESPHOME SONOF S26: 11 korakov (s slikami)
Časovna luč ESPHOME SONOF S26: 11 korakov (s slikami)

Video: Časovna luč ESPHOME SONOF S26: 11 korakov (s slikami)

Video: Časovna luč ESPHOME SONOF S26: 11 korakov (s slikami)
Video: Kako avtomatsko ugasniti luči? Shelly Plus 1 2024, Julij
Anonim
Časovna luč ESPHOME SONOF S26
Časovna luč ESPHOME SONOF S26

Dober dan. Tako imam luč za akvarij, ki jo želim vklopiti in izklopiti ob določenem času dneva. Moral sem si samo zakomplicirati. Želim si, da bi lahko spremenil čas vklopa in izklopa z nadzorne plošče Pomočnika za dom. Morda celo več.

Pa poglejmo, koliko več se lahko vnesem v zajčjo luknjo.

1. korak: 1. korak: potrebujem način za pošiljanje časov od domačega pomočnika

Nekaj googlanja pomaga. Nekaj odstranjevanja las vam pomaga, če jih imate: PO Odprite moj dodatek za Visual Studio Code Editor. Pod mapo Config poiščite datoteko configuration.yaml ter kopirajte in prilepite nekaj stvari, ki sem jih našel skrite na nekem forumu. Oprostite, če bi se spomnil, bi dal priznanje. Dodana je koda in znova zagnan domači pomočnik.

2. korak: 2. korak: Naslednjo kodo smo dodali v Configuration.yaml

2. korak: V Configuration.yaml je bila dodana naslednja koda
2. korak: V Configuration.yaml je bila dodana naslednja koda

input_number:

ft_start_hr:

ime: Začetne ure FT Light

icon: mdi: start-clock

min: 0

največ: 23

korak 1

# začetno: 13

Prva vrstica bo ID entitete vnosne številke.

Nato potrebujemo nekaj podrobnosti za tega malega fanta:

Ime bo super: FT Light Start Hours za to P. S. FT je za Fish Tank … Ni tisto, kar ste mislili, kajne?

Naslednja je izbirna ikona. Ogromno je možnosti, da se zmešate … ali ne.

Nato lahko vnesemo vrednost min, max in step. Ker so te ure izbrale 0 - 23 z enim korakom.

Sprva sem imel začetno vrednost in ko se je domači pomočnik znova zagnal, bi jo spremenil v to začetno vrednost. Odločil sem se, da ga komentiram, saj sem si želel, da bi se domači pomočnik spomnil zadnje vrednosti, ki sem mu jo določil.

V način lahko izberete polje. Privzeto pa za vas izbere lep drsnik. Mislim, da bo za zdaj zdrsnil drsnik.

Zavedajte se vdolbin, saj so zelo pomembne. Oglejte si sliko

Tako vam bodo te osebe v domačem asistentu omogočile prilagoditev.

Tukaj je povezava do več informacij o vnosnih številkah:

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

Korak 3: Korak 3: Zdaj moramo informacije dobiti v API ESPHOME

3. korak: Zdaj moramo informacije dobiti v ESPHOME API
3. korak: Zdaj moramo informacije dobiti v ESPHOME API

senzor:

- platforma: predloga

senzorji:

ft_start_hr:

predloga_vrednosti: '{{stanja.vhodni_številki.ft_start_hr.state | int}} '

n

Tako bo API-ju ESPHome potrebna povezava, zdaj pa je celo število namesto domišljijskega drsnika za besedilo:-P

Tu vzame stanje vhodne številke in ga pretvori v celo število ter ga shrani v senzor.

Tu je še nekaj informacij o predlogah:

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

Oh, spremenil sem razširitev datoteke svoje datoteke v besedilo, da jo lahko naložim … Navodila se lahko uničijo z yaml …

Korak 4: Korak 4: Torej ESPHome konfiguracija priključka zdaj

4. korak: ESPHome konfiguracija priključka zdaj
4. korak: ESPHome konfiguracija priključka zdaj

Začel sem z osnovno konfiguracijo vtičnika s-on-off, nato pa sem začel delati.

Ne bom se spuščal v podrobnosti, kako bliskavico S26 utripati z ESPHome, saj ima google vse odgovore.

Moja celotna konfiguracijska datoteka bo na voljo za prenos na koncu. Da Da Dah…

Začnimo torej s povezanim delom do Pomočnika za dom:

Ustvariti moramo senzorje, ki se ujemajo s senzorji v domačem asistentu, da se lahko med seboj pogovarjajo.

5. korak: 5. korak: povezava domačega pomočnika ESPHome … Beam Me Up Scotty

5. korak: Povezava domačega pomočnika ESPHome … Beam Me Up Scotty
5. korak: Povezava domačega pomočnika ESPHome … Beam Me Up Scotty

senzor:

- platforma: domača pomočnica

entity_id: sensor.ft_start_hr

id: id_ft_start_hr

Tako zdaj v ESPHome ustvarimo tipalo tipa homeassistant. Kdo bi uganil?

ID entitete se bo moral ujemati s tem, kar ste nastavili v datoteki configuration.yaml.

Nastavil sem id, tako da se lahko ESPHome sklicuje na ta senzor v svoji številčnosti razmišljanja.

Korak 6: Korak 6: Dovolite nekaj časa

6. korak: Dodajte nekaj časa
6. korak: Dodajte nekaj časa

Torej, ker je to časovno omejen vtič … Dopustimo dejansko nekaj časa … Ali pa odštejemo? Je to zdaj v preteklosti?

Tu je nekaj osnov časovne komponente. Lahko izberemo nekaj drugačnih, jaz pa domačega pomočnika. Preveč lahko?

esphome.io/components/time.html

7. korak: 7. korak: Interval

7. korak: Interval
7. korak: Interval

Ne, to ni odmor, ali pač?

interval:

- interval: 1 sekunda

potem:

- lambda: |-

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

Zato sem nastavil interval 1 sekundo za zapis vrednosti senzorja iz domačega pomočnika v globalno spremenljivko.

To želim narediti enkrat na sekundo, saj čas teče … tik tak

8. korak: 8. korak: Torej imamo čas in denar … Kaj sledi?

8. korak: Torej imamo čas in denar … Kaj sledi?
8. korak: Torej imamo čas in denar … Kaj sledi?

Zato sem se odločil, da bom s predlogo binarnega senzorja ugotovil, ali je čas, da vklopim stikalo … rele

Ustvaril sem tri stikala z ID -ji: start_time_valid, stop_time_valid in run_time_valid

start_time_valid je res, ko je pretekel čas, nastavljen za vklop releja.

Za preverjanje, ali smo bili večji ali enaki zahtevanim sekundam, nato minutam in končno uram, sem uporabil ugnezdene izjave if.

stop_time_valid je res, ko je zdaj čas, preden je nastavljen čas za izklop stikala. To se obrne za preverjanje, da zdaj ni pretekel potrebnega časa za izklop releja

run_time_valid je res, ko sta start_time_valid in stop_time_valid res. Mislim, da bi za to lahko uporabil le normalno stanje. Pravkar sem se lotil stvari z lambdami.

- platforma: predloga

ime: "Začetni čas velja"

id: start_time_valid

lambda: |-

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

vrni true;

}

sicer if (id (homeassistant_time).now (). hour == id (gl_ft_start_hr) &&

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

vrni true;

}

sicer 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)) {

vrni true;

}

drugače {

return false;

}

9. korak: 9. korak: Zdaj za nekaj skriptov: 'Biti ali ne biti: to je vprašanje'

9. korak: Zdaj nekaj skriptov: "Biti ali ne biti: to je vprašanje"
9. korak: Zdaj nekaj skriptov: "Biti ali ne biti: to je vprašanje"

Hmm napačen scenarij stari!

Torej, če sem priklopil stikalo … ali pa se je hišno napajanje pravkar vklopilo, sem želel, da stikalo ve, ali naj bi bilo vklopljeno ali izklopljeno, in ustrezno ukrepal. (ja, vsi gremo na tečaje igranja)

Prvi skriptni ID: checkstatuson, preverja, ali naj bi bili vklopljeni in ustrezno ukrepamo. Vključil sem tudi globalno zastavo z id: trackingon, da zagotovim, da se ta skript izvede samo enkrat in ne ovira mojih drugih skriptov pri opravljanju njihove vloge v igri.

To ima tri pogoje: rele je izklopljen, naj bi bil vklopljen in svojega dela še nisem opravil. S tem boste izklopili vse druge skripte, ki se izvajajo, vklopili rele in nastavili zastavice za sledenje.

Drugi id skripta: checkstatusoff je ravno nasproten prvemu. Samo preverjamo, ali moramo zavese zdaj zapreti. Zastavica sledenja za to je sledenje off

Ta dva skripta zaženem v intervalu 1 sekunde, da preverim vsako sekundo.

10. korak: 10. korak: Nekaj bonus skriptov

10. korak: Nekaj bonus skriptov
10. korak: Nekaj bonus skriptov

Še dve funkciji, ki sem jo želel dodati, je bila, če sem izklopil luč v rezervoarju, da se bo po 5 sekundah ponovno vklopila, če naj bo lučka takrat prižgana. Če bi lučka ugasnila in bi jo želel vklopiti, da bi videl svoje ribiče in če ni bila pravočasno načrtovana, bi se vklopila za 5 minut. Ja, 5 minut je dovolj … Vrnite se na delo.

Prvi skript ID: relayisoff bo luč vklopil za 5 minut, če je izklopljena pravočasno, nato pa ugasnil.

Drugi skript id: rele je praktično obrnjen od prvega in bo luč ponovno vklopil 5 sekund kasneje, če naj bi bil vklopljen. Kdo je rekel, da lahko izklopite mojo luč gospod!

Tu je še nekaj informacij o skriptah:

esphome.io/guides/automations.html

Nekaj bonus informacij o skriptah je, da niso blokirane. Razen če ste pri lambdi dali zamudo. U Ne Ne Ne Ne

11. korak: 11. korak: Nekaj zaključnih misli

11. korak: Nekaj zaključnih misli
11. korak: Nekaj zaključnih misli
11. korak: Nekaj zaključnih misli
11. korak: Nekaj zaključnih misli

Od domačega pomočnika sem hotel, da stikalo deluje enako kot gumb.

Nisem dal imena za lokalno stikalo binarnega senzorja, saj ni bilo treba videti, da je potisnjen v pomočnika za dom.

Za stikalo releja nisem dal imena, ker sem želel uporabiti skripte za preklop iz domačega pomočnika.

Ustvaril sem stikalo za predlogo z imenom, tako da ga lahko uporabim za prehod iz domačega pomočnika. Zaženil bo moje skripte enako kot lokalno stikalo na vtiču.

Nisem preizkusil, če izklopim domačega pomočnika, če bo vtič še vedno deloval pravilno. Upam, da je tako. Pri izgubi povezave z API -jem za domačega pomočnika sem videl nekaj objav o nekaterih težavah.

Resnično upam, da vam bo ta majhna vadnica pomagala in mi prosim pomagajte, da jo izboljšam. Nisem strokovnjak in se učim zelo počasi. Pravkar sem mislil, da lahko nekatere stvari, ki sem se jih naučil, pomagajo nekomu, ki se trudi ugotoviti.

Zdaj, da spremenite čas domačega pomočnika glede na sončni vzhod in zahod …+ - nekaj

Priporočena: