Cuprins:
- Pasul 1: Pasul 1: Am nevoie de o modalitate de a trimite Times from Home Assistant
- Pasul 2: Pasul 2: A fost adăugat următorul cod la Configuration.yaml
- Pasul 3: Pasul 3: Acum trebuie să obținem informațiile către API-ul ESPHOME
- Pasul 4: Pasul 4: Deci, configurația ESPHome a Plug Now
- Pasul 5: Pasul 5: conexiunea ESPHome Home Assistant … Beam Me Up Scotty
- Pasul 6: Pasul 6: Permite să adăugăm ceva timp
- Pasul 7: Pasul 7: Interval
- Pasul 8: Pasul 8: Deci avem timp și bani … Ce urmează?
- Pasul 9: Pasul 9: Acum pentru unele scripturi: „Să fii sau să nu fii: aceasta este întrebarea”
- Pasul 10: Pasul 10: Unele scripturi bonus
- Pasul 11: Pasul 11: Câteva gânduri finale
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
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
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
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
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
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
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
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ă?
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”
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
Î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
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:
FuseLight: Transformați lumina de tub vechi / topită în lumina de studio / petrecere: 3 pași (cu imagini)
FuseLight: Transformă vechiul / Fused Tubelight în Studio / Party Light: Aici am transformat un Fused Tubelight într-o lumină Studio / Part folosind câteva instrumente de bază, lumini RGB și imprimare 3D. Datorită benzilor cu LED RGB utilizate putem avea mai multe culori și nuanțe
Lumină de bicicletă foarte strălucitoare folosind PCB-uri personalizate cu panou de lumină: 8 pași (cu imagini)
Lumină de bicicletă foarte strălucitoare folosind PCB-uri personalizate cu panou de lumină: dacă dețineți o bicicletă, atunci știți cât de neplăcute pot fi gropile pe anvelope și pe corp. M-am săturat să-mi suflu anvelopele, așa că am decis să-mi proiectez propriul panou led cu intenția de a-l folosi ca lumină pentru bicicletă. Unul care se concentrează pe a fi E
Faceți o cutie de prânz cu temperatură constantă temporizată: 16 pași
Faceți o cutie de prânz cu temperatură constantă temporizată: Deși cutia de prânz obișnuită de gătit este ușor de utilizat și de operat, dar are o singură funcție, nu este posibil să setați ora sau să setați temperatura să se încălzească. Pentru a îmbunătăți acest neajuns, de data aceasta DIY-ul se face pe baza preparatului
Trageți de lumină - Modul de lumină folosind comutatorul Neopixel & Pull Up: 6 pași (cu imagini)
Pull the Light - Modulul de lumină utilizând comutatorul Neopixel & Pull Up: Caracteristici ale modulului de lumină Arduino Uno Hardware & incintă achiziționată de pe internet Neopixel & Alimentare cu energie împrumutată de la Școala de Informatică & Proiectare produs Modul luminos controlat de sursa de alimentare Toate funcțiile controlate prin
Comutator de lumină controlat de la distanță Bluetooth - Modernizare. Comutatorul de lumină funcționează, fără scriere suplimentară: 9 pași (cu imagini)
Comutator de lumină controlat de la distanță Bluetooth - Modernizare. Comutatorul de lumină funcționează în continuare, fără scriere suplimentară.: Actualizare 25 noiembrie 2017 - Pentru o versiune de mare putere a acestui proiect care poate controla kilowați de încărcare, consultați Modificarea controlului BLE la încărcări de putere mare - nu este necesară o conexiune suplimentară Actualizare 15 noiembrie 2017 - Unele plăci BLE / software stivuiesc