INHOUDSOPGAWE:

ESPHOME SONOF S26 Timed Light: 11 stappe (met foto's)
ESPHOME SONOF S26 Timed Light: 11 stappe (met foto's)

Video: ESPHOME SONOF S26 Timed Light: 11 stappe (met foto's)

Video: ESPHOME SONOF S26 Timed Light: 11 stappe (met foto's)
Video: Smart Home Malaysia #15 - Home Assistant (Introduction) 2024, November
Anonim
ESPHOME SONOF S26 Timed Light
ESPHOME SONOF S26 Timed Light

Goeie dag. Ek het dus 'n vistenklig wat ek op 'n sekere tyd van die dag wil aan- en uitskakel. Ek moes dit net vir myself ingewikkeld maak. Ek wil die tyd wat dit aan- en afskakel vanaf my Home Assistant -dashboard kan verander. Miskien selfs meer.

So laat ons net sien hoeveel te meer ek myself in 'n konyngat kan neem.

Stap 1: Stap 1: Ek het 'n manier nodig om die tye van die huisassistent af te stuur

Sommige googling help. Sommige help om u hare uit te trek, as u dit werklik het: Maak my Visual Studio Code Editor-byvoeging oop. Onder die Config -lêergids vind u die config.yaml -lêer en 'n paar dinge wat ek in 'n forum verborge gevind het, gekopieer en geplak. Jammer as ek dit onthou, sal ek erkenning gee. Het die kode bygevoeg en die huisassistent weer begin.

Stap 2: Stap 2: Voeg die volgende kode by Configuration.yaml

Stap 2: Voeg die volgende kode by Configuration.yaml
Stap 2: Voeg die volgende kode by Configuration.yaml

invoernommer:

ft_start_hr:

naam: FT Light Start Ure

ikoon: mdi: klok begin

min: 0

maksimum: 23

stap 1

# aanvanklike: 13

Die eerste reël is die invoernommer entiteits -ID.

Vervolgens benodig ons 'n paar besonderhede vir hierdie klein ou:

'N Naam sal wonderlik wees: FT Light Start Hours vir hierdie een P. S. FT is vir Fish Tank … Nie wat jy gedink het nie?

Die volgende is 'n opsionele ikoon. Daar is baie om van te kies, so word mal … of nie.

Dan kan ons 'n min-, maks- en stapwaarde invoer. Omdat dit ure is, kies ek 0 - 23 met enkele stappe.

Ek het aanvanklik 'n aanvanklike waarde gehad, en as die huisassistent weer begin, verander dit na hierdie aanvanklike waarde. Ek het besluit om kommentaar te lewer, aangesien ek wou hê dat huisassistent die laaste waarde wat ek daarvoor gestel het, probeer onthou.

U kan in die modus gaan om 'n boks te kies. Maar dit kies standaard 'n goeie skuifbalk vir u. Ek dink 'n skuifbalk sal vir eers doen.

Wees bewus van die inkepings, aangesien dit baie belangrik is. Sien die prentjie

Dit gee u dus entiteite in die huisassistent om aan te pas.

Hier is 'n skakel na meer inligting oor invoernommers:

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

Stap 3: Stap 3: Nou moet ons die inligting by ESPHOME API kry

Stap 3: Nou moet ons die inligting na ESPHOME API kry
Stap 3: Nou moet ons die inligting na ESPHOME API kry

sensor:

- platform: sjabloon

sensors:

ft_start_hr:

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

n

Dit gee ESPHome API die vereiste verbinding, en dit is nou 'n heelgetal in plaas van 'n fyn teksskuif:-P

Hier word die invoergetallestand geneem en dit omgeskakel na 'n heelgetal en dit in 'n sensor gestoor.

Hier is meer inligting oor die sjablone:

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

Ek het die lêeruitbreiding van my lêer in teks verander sodat ek dit kan oplaai … Instruksies kan met 'n yaml vernietig word …

Stap 4: Stap 4: Dus die ESPHome -opset van die prop nou

Stap 4: Dus die ESPHome -opset van die prop nou
Stap 4: Dus die ESPHome -opset van die prop nou

Ek het begin met 'n basiskonfigurasie vir die s-on-off-prop en toe begin knoei.

Ek sal nie in detail gaan oor hoe om die S26 -prop met ESPHome te flits nie, aangesien Google al die antwoorde het.

My volledige konfigurasie lêer sal aan die einde beskikbaar wees om af te laai. Da Da Dah …

Laat ons dus begin met die gekoppelde deel van Home Assistant:

Ons moet sensors skep wat by die sensors in die huisassistent pas, sodat hulle met mekaar kan praat.

Stap 5: Stap 5: die ESPHome Home Assistant -verbinding … Beam Me Up Scotty

Stap 5: die verbinding tussen ESPHome Home Assistant … Beam Me Up Scotty
Stap 5: die verbinding tussen ESPHome Home Assistant … Beam Me Up Scotty

sensor:

- platform: tuisassistent

entity_id: sensor.ft_start_hr

id: id_ft_start_hr

So nou skep ons 'n sensor in ESPHome van die tipe huisassistent. Wie sou kon raai?

Die entiteits -ID moet ooreenstem met wat u in u konfigurasie.yaml -lêer opgestel het.

Ek het 'n ID opgestel sodat ESPHome na hierdie sensor kan verwys in sy oorvloedige denke.

Stap 6: Stap 6: Laat ons 'n bietjie tyd byvoeg

Stap 6: Laat ons 'n bietjie tyd byvoeg
Stap 6: Laat ons 'n bietjie tyd byvoeg

Dus, aangesien dit 'n tydstekker is … Laat ons eintlik 'n bietjie tyd byvoeg … Of trek dit af? Is dit nou in die verlede?

Hier is 'n paar basiese beginsels van die tydskomponent. Ons kan 'n paar verskillende persone kies, maar ek het tuisassistent gekies. Te maklik?

esphome.io/components/time.html

Stap 7: Stap 7: Interval

Stap 7: Interval
Stap 7: Interval

Nee, dit is nie 'n breek nie, of is dit?

interval:

- interval: 1 sek

dan:

- lambda: |-

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

Ek stel dus 'n interval van 1 sekonde in om die sensorwaarde van die huisassistent na die globale veranderlike te skryf.

Ek wil dit net een keer per sekonde doen, aangesien die tyd tik … tik

Stap 8: Stap 8: Ons het dus tyd en geld … Wat volgende?

Stap 8: So het ons tyd en geld … Wat volgende?
Stap 8: So het ons tyd en geld … Wat volgende?

Dus het ek besluit om 'n binêre sensorsjabloon te gebruik om te bepaal of dit tyd is om die skakelaarskakelaar aan te skakel … aflos

Ek het drie skakelaars met die ID's geskep: start_time_valid, stop_time_valid en run_time_valid

start_time_valid is waar as dit nou verby die tyd is wat ingestel is om die aflos aan te skakel.

Ek het geneste as stellings gebruik om te kyk of ons groter of gelyk is aan die benodigde sekondes, dan minute en uiteindelik ure.

stop_time_valid is waar as dit nou is voordat dit tyd is om die skakelaar af te skakel. Dit word omgekeer om te kontroleer of die tyd nie die vereiste tyd om die aflos af te skakel verby is nie

run_time_valid is waar as beide start_time_valid en stop_time_valid waar is. Ek veronderstel ek kon net 'n normale toestand gebruik het vir hierdie een. Ek het pas begin swaai met lambdas.

- platform: sjabloon

naam: "Begintyd geldig"

id: start_time_valid

lambda: |-

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

terugkeer waar;

}

anders as (id (homeassistant_time).now (). uur == id (gl_ft_start_hr) &&

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

terugkeer waar;

}

anders as (id (homeassistant_time).now (). uur == 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)) {

terugkeer waar;

}

anders {

terugkeer vals;

}

Stap 9: Stap 9: Nou vir sommige skrifte: 'Om te wees of nie te wees nie: dit is die vraag'

Stap 9: Nou vir sommige skrifte: 'Om te wees of nie te wees nie: dit is die vraag'
Stap 9: Nou vir sommige skrifte: 'Om te wees of nie te wees nie: dit is die vraag'

Hmm verkeerde skrif ou!

As ek dus die skakelaar aangesluit het … of as die huis net weer aangeskakel het, wou ek hê dat die skakelaar moes weet of dit bedoel is om aan of uit te skakel en dienooreenkomstig op te tree. (ja, ons gaan almal vir toneelspellesse)

Die eerste script -ID: checkstatuson, is om te kyk of ons bedoel is om aan te wees en daarvolgens op te tree. Ek het ook 'n wêreldvlag ingesluit met die id: trackingon, om te verseker dat hierdie skrif net een keer uitgevoer word en my ander skrifte nie belemmer om hul rol in die toneelstuk te doen nie.

Dit het drie en voorwaardes: die aflos is af, dit is bedoel om aan te wees en ek het nog nie my deel gedoen nie. Dit skakel dan alle ander skrifte uit, skakel die aflos aan en stel die opsporingsvlae in.

Die tweede script -ID: checkstatusoff, is net die teenoorgestelde van die eerste. Ons kyk net of ons nou die gordyne moet toemaak. Die opsporingsvlag vir hierdie een volg op

Ek voer hierdie twee skrifte in die interval van 1 sekonde uit om elke sekonde na te gaan.

Stap 10: Stap 10: 'n paar bonusskrifte

Stap 10: 'n paar bonusskrifte
Stap 10: 'n paar bonusskrifte

Nog twee funksies wat ek wou byvoeg, was as ek die lig by die tenk afskakel, sodat dit na 5 sekondes weer sal aanskakel as die lig op daardie tydstip aangeskakel is. As die lig ook af was en ek dit wou aanskakel om my fishies te sien en dit nie betyds was nie, sou dit vir 5 minute aanskakel. Ja, 5 minute is lank genoeg … Gaan terug aan die werk.

Die eerste script -ID: relayisoff sal die lig vir 5 minute aanskakel as dit betyds uitgeskakel is en dan afskakel.

Die tweede script id: relayison is feitlik omgekeer van die eerste en sal die lig 5 sekondes later weer aanskakel as dit bedoel is om aan te wees. Wie het gesê dat u my ligter kan afskakel!

Hier is meer inligting oor skrifte:

esphome.io/guides/automations.html

Sommige bonusinligting oor skrifte is dat dit nie blokkeer nie. Tensy jy 'n vertraging in 'n lambda plaas. Nee Nee Nee Nee

Stap 11: Stap 11: 'n paar laaste gedagtes

Stap 11: 'n Paar laaste gedagtes
Stap 11: 'n Paar laaste gedagtes
Stap 11: 'n Paar laaste gedagtes
Stap 11: 'n Paar laaste gedagtes

Van die huisassistent wou ek hê dat die skakelaar op dieselfde manier as die knoppie moes werk.

Ek het nie die plaaslike skakelaar vir binêre sensors 'n naam gegee nie, want ek hoef nie te sien dat dit by die huisassistent ingedruk word nie.

Ek het nie 'n naam vir die aflosskakelaar gegee nie, aangesien ek die skrifte wou gebruik om van die huisassistent af te skakel.

Ek het 'n sjabloonskakelaar met 'n naam geskep, sodat ek dit kan gebruik om van die huisassistent oor te skakel. Dit draf my skrifte dieselfde as die plaaslike skakelaar by die prop.

Ek het nie getoets of my huisassistent afgeskakel moet word as die prop nog reg werk nie. Ek hoop so. Ek het 'n paar plasings oor 'n paar probleme gesien toe ek die verbinding met die Home Assistant API verloor het.

Ek hoop regtig dat hierdie klein tutoriaal u sal help, en help my asseblief om dit beter te maak. Ek is geen kenner nie en leer baie stadig. Ek het net gedink 'n paar dinge wat ek geleer het hoe om te doen, kan iemand daar buite help om dit uit te vind.

Nou om die tye in die huisassistent te verander op grond van sonsopkoms en sonsondergang …+ - 'n paar

Aanbeveel: