Cuprins:

Lumina temporizată ESPHOME SONOF S26: 11 pași (cu imagini)
Lumina temporizată ESPHOME SONOF S26: 11 pași (cu imagini)
Anonim
Lumina temporizată ESPHOME SONOF S26
Lumina temporizată ESPHOME SONOF S26

O zi buna. Așa că am o lumină pentru acvariu pe care vreau să o pornesc și să o opresc la o anumită oră a zilei. Trebuia doar să o fac complicată pentru mine. Vreau să pot schimba timpul de pornire și oprire de pe tabloul meu de bord Home Assistant. Poate chiar mai mult.

Deci, să vedem cât de mult mai pot să mă duc într-o gaură de iepure.

Pasul 1: Pasul 1: Am nevoie de o modalitate de a trimite Times from Home Assistant

Unele Google ajută. Unii îți trag părul te ajută, dacă ai vreunul: POpen my Visual Studio Code Editor add-on. În folderul Config găsiți fișierul configuration.yaml și ați copiat și lipit câteva lucruri pe care le-am găsit ascunse într-un forum. Îmi pare rău dacă mi-aș aminti că aș da confirmare. S-a adăugat codul și a repornit asistentul la domiciliu.

Pasul 2: Pasul 2: A fost adăugat următorul cod la Configuration.yaml

Pasul 2: a fost adăugat următorul cod la Configuration.yaml
Pasul 2: a fost adăugat următorul cod la Configuration.yaml

input_number:

ft_start_hr:

nume: FT Light Start Hours

pictogramă: mdi: start-ceas

min: 0

max: 23

pasul 1

# inițială: 13

Prima linie va fi numărul de intrare ID entitate.

În continuare avem nevoie de câteva detalii pentru acest mic tip:

Un nume va fi minunat: FT Light Start Hours for this P. S. FT este pentru Fish Tank … Nu la ce te gândeai corect?

Următorul este o pictogramă opțională. O mulțime acolo pentru a alege, așa că înnebunește … sau nu.

Apoi putem introduce valori min, max și pas. Deoarece sunt ore, am ales 0 - 23 cu pași simpli.

Inițial am avut o valoare inițială și când asistentul la domiciliu a repornit, o va schimba la această valoare inițială. Am decis să comentez acest lucru, deoarece doream ca Home Assistant să încerce să-și amintească ultima valoare pe care mi-o setasem.

Puteți pune în modul pentru a alege o casetă. Dar, în mod implicit, alege un glisor frumos pentru dvs. Cred că un glisor va face deocamdată.

Fiți conștienți de indentări, deoarece acestea sunt foarte importante. Vedeți imaginea

Deci, acestea vă vor oferi entități din asistentul de acasă pentru a vă putea ajusta.

Iată un link către mai multe informații despre numerele de intrare:

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

Pasul 3: Pasul 3: Acum trebuie să obținem informațiile către API-ul ESPHOME

Pasul 3: Acum trebuie să obținem informațiile către API-ul ESPHOME
Pasul 3: Acum trebuie să obținem informațiile către API-ul ESPHOME

senzor:

- platformă: șablon

senzori:

ft_start_hr:

value_template: '{{states.input_number.ft_start_hr.state | int}} '

n

Acest lucru va oferi ESPHome API conexiunea necesară, precum și acum este un număr întreg în loc de glisor de text fantezie:-P

Aici ia starea numărului de intrare și o convertește într-un număr întreg și o stochează într-un senzor.

Iată câteva informații suplimentare despre șabloane:

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

Oh, am schimbat extensia de fișier a fișierului meu în text, astfel încât să îl pot încărca … Instrucțiunile pot fi distructibile cu un yaml …

Pasul 4: Pasul 4: Deci, configurația ESPHome a Plug Now

Pasul 4: Deci, configurația ESPHome a plug-ului acum
Pasul 4: Deci, configurația ESPHome a plug-ului acum

Am început cu o configurare de bază pentru mufa s-on-off și apoi am început să jucăm.

Nu voi intra în detalii despre cum să blochez mufa S26 cu ESPHome, deoarece Google are toate răspunsurile.

Fișierul meu complet de configurare va fi disponibil pentru descărcare la final. Da Da Dah …

Deci, să începem cu partea conectată la Home Assistant:

Trebuie să creăm senzori care să se potrivească senzorilor din asistentul de acasă, astfel încât să poată vorbi între ei.

Pasul 5: Pasul 5: conexiunea ESPHome Home Assistant … Beam Me Up Scotty

Pasul 5: conexiunea ESPHome Home Assistant … Beam Me Up Scotty
Pasul 5: conexiunea ESPHome Home Assistant … Beam Me Up Scotty

senzor:

- platformă: rezistență la domiciliu

entity_id: sensor.ft_start_hr

id: id_ft_start_hr

Deci, acum creăm un senzor în ESPHome de tipul homeasistant. Cine ar fi ghicit?

ID-ul entității va trebui să se potrivească cu ceea ce ați configurat în fișierul dvs. configuration.yaml.

Am configurat un id, astfel încât ESPHome să poată face referire la acest senzor în abundența sa de gândire.

Pasul 6: Pasul 6: Permite să adăugăm ceva timp

Pasul 6: Permiteți adăugarea unui timp
Pasul 6: Permiteți adăugarea unui timp

Deci, având în vedere că este o priză temporizată … Să adăugăm de fapt ceva timp … Sau se scade? Acum este în trecut?

Iată câteva elemente de bază ale componentei de timp. Putem alege unele diferite, dar eu am ales rezistența la domiciliu. Prea ușor?

esphome.io/components/time.html

Pasul 7: Pasul 7: Interval

Pasul 7: Interval
Pasul 7: Interval

Nu, nu este o pauză sau nu?

interval:

- interval: 1sec

atunci:

- lambda: | -

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

Așa că am setat un interval de 1 secundă pentru a scrie valoarea senzorului de la asistentul de acasă la variabila globală.

Vreau doar să fac asta o dată pe secundă, deoarece timpul se bifează … bifează

Pasul 8: Pasul 8: Deci avem timp și bani … Ce urmează?

Pasul 8: Deci avem timp și bani … Ce urmează?
Pasul 8: Deci avem timp și bani … Ce urmează?

Așa că am decis să folosesc un șablon de senzor binar pentru a determina dacă este timpul să pornesc comutatorul comutatorului … releu

Am creat trei comutatoare cu ID-urile: start_time_valid, stop_time_valid și run_time_valid

start_time_valid este adevărat când a trecut acum timpul setat pentru a porni releul.

Am folosit declarații imbricate if pentru a verifica dacă suntem mai mari sau egale cu secundele necesare, apoi minute și, în sfârșit, ore.

stop_time_valid este adevărat când este acum înainte să fie configurat timpul pentru a opri comutatorul. Acest lucru este inversat pentru a verifica dacă acum nu a trecut timpul necesar pentru oprirea releului

run_time_valid este adevărat când atât start_time_valid, cât și stop_time_valid sunt adevărate. Presupun că aș fi putut folosi o condiție normală pentru aceasta. Tocmai am intrat în leagănul lucrurilor cu lambdas.

- platformă: șablon

nume: „Ora de începere valabilă”

id: start_time_valid

lambda: | -

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

întoarce-te adevărat;

}

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

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

întoarce-te adevărat;

}

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

întoarce-te adevărat;

}

altceva {

returnează fals;

}

Pasul 9: Pasul 9: Acum pentru unele scripturi: „Să fii sau să nu fii: aceasta este întrebarea”

Pasul 9: Acum pentru unele scripturi: „Să fii sau să nu fii: aceasta este întrebarea”
Pasul 9: Acum pentru unele scripturi: „Să fii sau să nu fii: aceasta este întrebarea”

Hmm greșit scriitorule!

Deci, dacă am conectat întrerupătorul … sau dacă alimentarea din casă tocmai a revenit, am vrut ca comutatorul să știe dacă este menit să fie pornit sau oprit și să acționeze în consecință. (da, mergem cu toții la lecții de actorie)

Primul id al scriptului: checksstatuson, verifică dacă suntem meniți să acționăm în consecință. De asemenea, am inclus un steag global cu ID-ul: trackingon, pentru a mă asigura că acest script se execută o singură dată și nu împiedică celelalte scripturi ale mele să joace rolul lor în piesă.

Acest lucru are 3 și condiții: releul este oprit, este menit să fie pornit și nu mi-am făcut deja partea. Aceasta va opri apoi orice alte scripturi care rulează, va porni releul și va seta semnalizatoarele de urmărire.

Al doilea id al scriptului: checksstatusoff, este exact opusul primului. Verificăm dacă trebuie să închidem perdelele acum. Steagul de urmărire pentru acesta este trackingoff

Execut aceste două scripturi în intervalul de 1 secundă pentru a verifica fiecare secundă.

Pasul 10: Pasul 10: Unele scripturi bonus

Pasul 10: câteva scripturi bonus
Pasul 10: câteva scripturi bonus

Încă două funcții pe care am vrut să le adaug au fost dacă am oprit lumina de la rezervor că se va aprinde din nou după 5 secunde dacă lumina este menită să fie aprinsă în acel moment. De asemenea, dacă lumina era stinsă și aș fi vrut să o aprind pentru a-mi vedea pescarii și nu mai era programată la timp, s-ar aprinde timp de 5 minute. Da, 5 minute sunt suficient de lungi … Reveniți la treabă.

Primul id al scriptului: relayisoff va aprinde lumina timp de 5 minute dacă este oprită programată la timp și apoi se va stinge.

Cel de-al doilea id al scriptului: relayison este practic inversat față de primul și va aprinde lumina din nou 5 secunde mai târziu dacă este menit să fie aprins. Cine a spus că poți opri lumina mea, domnule!

Iată câteva informații suplimentare despre scripturi:

esphome.io/guides/automations.html

Unele informații bonus despre scripturi sunt că nu sunt blocante. Dacă nu puneți o întârziere într-o lambda

Pasul 11: Pasul 11: Câteva gânduri finale

Pasul 11: Câteva gânduri finale
Pasul 11: Câteva gânduri finale
Pasul 11: Câteva gânduri finale
Pasul 11: Câteva gânduri finale

De la asistentul de acasă am vrut ca comutatorul să acționeze la fel ca butonul.

Nu am pus un nume pentru comutatorul local al senzorului binar, deoarece nu a trebuit să-l văd împins în asistentul de acasă.

Nu am pus un nume pentru comutatorul de releu, deoarece am vrut să folosesc scripturile pentru a face comutarea de la asistentul de acasă.

Am creat un comutator șablon cu un nume, astfel încât să îl pot folosi pentru a trece de la asistentul de acasă. Acesta va rula scripturile mele la fel ca și comutatorul local de la priză.

Nu am testat dacă oprirea asistentului meu de acasă dacă ștecherul va funcționa în continuare corect. Sper așa. Am văzut câteva postări despre unele probleme la pierderea conexiunii la Home Assistant API.

Sper cu adevărat că acest mic tutorial vă va ajuta și nu ezitați să mă ajutați să îl îmbunătățesc. Nu sunt expert și învăț foarte încet. M-am gândit doar că unele lucruri pe care am învățat să le fac pot ajuta pe cineva care se luptă să-și dea seama.

Acum, pentru a schimba orele în asistentul de acasă pe baza răsăritului și a apusului … + - câteva

Recomandat: