Innehållsförteckning:
- Steg 1: Steg 1: Jag behöver ett sätt att skicka tiderna hemifrån -assistenten
- Steg 2: Steg 2: Lade till följande kod i Configuration.yaml
- Steg 3: Steg 3: Nu behöver vi få informationen till ESPHOME API
- Steg 4: Steg 4: Alltså ESPHome -konfigurationen av Plug Now
- Steg 5: Steg 5: Anslutning till ESPHome Home Assistant … Beam Me Up Scotty
- Steg 6: Steg 6: Låt oss lägga till lite tid
- Steg 7: Steg 7: Intervall
- Steg 8: Steg 8: Så vi har tid och pengar … Vad händer sedan?
- Steg 9: Steg 9: Nu för några skript: 'Att vara, eller inte vara: det är frågan'
- Steg 10: Steg 10: Några bonusskript
- Steg 11: Steg 11: Några sista tankar
Video: ESPHOME SONOF S26 Timed Light: 11 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
God dag. Så jag har ett akvarellampa som jag vill tända och stänga av en viss tid på dygnet. Jag var bara tvungen att göra det komplicerat för mig själv. Jag vill kunna ändra tiden det slås på och av från min Home Assistant -instrumentpanel. Kanske ännu mer.
Så låt oss bara se hur mycket mer jag kan ta mig in i ett kaninhål.
Steg 1: Steg 1: Jag behöver ett sätt att skicka tiderna hemifrån -assistenten
En del googling hjälper. En del att dra ut håret hjälper, om du faktiskt har något: POpen my Visual Studio Code Editor add-on. Under Config -mappen hittar du filen configuration.yaml och kopierade och klistrade in saker jag hittade gömda i något forum. Förlåt om jag kom ihåg att jag skulle erkänna. Lade till koden och startade om hemassistenten.
Steg 2: Steg 2: Lade till följande kod i Configuration.yaml
input_number:
ft_start_hr:
namn: FT Light Starttimmar
ikon: mdi: klockstart
min: 0
max: 23
steg 1
# initial: 13
Den första raden kommer att vara inmatningsnummerets enhets -id.
Därefter behöver vi några detaljer för den här lilla killen:
Ett namn kommer att bli fantastiskt: FT Light Start Hours för den här P. S. FT är för Fish Tank … Inte vad du tänkte rätt?
Nästa är en valfri ikon. Massor där ute att välja mellan så bli galen … eller inte.
Sedan kan vi sätta in ett min, max och stegvärde. Eftersom det här är timmar valde jag 0 - 23 med enkla steg.
Inledningsvis hade jag ett initialvärde och när hemassistenten startade om skulle det ändra det till detta initialvärde. Jag bestämde mig för att kommentera det eftersom jag ville att Home Assistant skulle försöka komma ihåg det sista värdet jag hade satt för det.
Du kan sätta i läge för att välja en ruta. Men som standard väljer den en snygg reglage för dig. Jag tror att en reglera kommer att göra för nu.
Var medveten om fördjupningarna eftersom de är mycket viktiga. Se bilden
Så dessa kommer att ge dig enheter i hemassistent för att kunna justera.
Här är en länk till mer information om inmatningsnummer:
www.home-assistant.io/integrations/input_n…
Steg 3: Steg 3: Nu behöver vi få informationen till ESPHOME API
sensor:
- plattform: mall
sensorer:
ft_start_hr:
value_template: '{{states.input_number.ft_start_hr.state | int}} '
n
Detta kommer att ge ESPHome API den anslutning som krävs, liksom det nu är ett heltal istället för snygg textreglage:-P
Här tar det inmatningsnumret och konverterar det till ett heltal och lagrar det i en sensor.
Här är lite mer information om mallarna:
www.home-assistant.io/integrations/templat…
Åh, jag har ändrat filtillägget för min fil till text så att jag kan ladda upp den … Instruktioner kan vara förstörbara med en yaml …
Steg 4: Steg 4: Alltså ESPHome -konfigurationen av Plug Now
Jag började med en baskonfiguration för s-on-off-kontakten och började sedan mixtra.
Jag kommer inte att gå in på detaljer om hur man blinkar S26 -kontakten med ESPHome eftersom google har alla svar.
Min fullständiga konfigurationsfil är tillgänglig för nedladdning i slutet. Da Da Dah …
Så låt oss börja med den länkade delen till Home Assistant:
Vi måste skapa sensorer som matchar sensorerna i hemassistenten så att de kan prata med varandra.
Steg 5: Steg 5: Anslutning till ESPHome Home Assistant … Beam Me Up Scotty
sensor:
- plattform: hemassistent
entity_id: sensor.ft_start_hr
id: id_ft_start_hr
Så nu skapar vi en sensor i ESPHome av typen homeassistant. Vem skulle ha gissat?
Entitets -id måste matcha det du ställde in i filen configuration.yaml.
Jag ställde in ett id så att ESPHome kunde referera till denna sensor i sitt överflöd av tänkande.
Steg 6: Steg 6: Låt oss lägga till lite tid
Så eftersom det här är en tidsinställd plug … Låter vi faktiskt lägga till lite tid … Eller är det subtraherat? Är det nu tidigare?
Här är några grunderna i tidskomponenten. Vi kan välja några olika men jag valde hemassistent. Alltför lätt?
esphome.io/components/time.html
Steg 7: Steg 7: Intervall
Nej det är inte en paus, eller är det?
intervall:
- intervall: 1sek
sedan:
- lambda: |-
id (gl_ft_start_hr) = id (id_ft_start_hr). stat;
Så jag ställde in ett intervall på 1 sekund för att skriva sensorvärdet från hemassistent till den globala variabeln.
Jag vill bara göra detta en gång i sekunden när tiden tickar … tick tock
Steg 8: Steg 8: Så vi har tid och pengar … Vad händer sedan?
Så jag bestämde mig för att använda en binär sensormall för att avgöra om det är dags att slå på omkopplaren … relä
Jag skapade tre switchar med id: erna start_time_valid, stop_time_valid och run_time_valid
start_time_valid är sant när det nu är över den tid som ställts in för att slå på reläet.
Jag använde kapslade if -uttalanden för att kontrollera om vi var större eller lika med de sekunder som krävs, sedan minuter och slutligen timmar.
stop_time_valid är sant när det är nu innan det är dags att ställa in strömbrytaren. Detta är omvänt för att kontrollera att nu inte har passerat den tid som krävs för att stänga av reläet
run_time_valid är sant när både start_time_valid och stop_time_valid är sanna. Jag antar att jag bara kunde ha använt en normal och skick för den här. Jag har precis kommit igång med lambdas.
- plattform: mall
name: "Starttid giltig"
id: start_time_valid
lambda: |-
if (id (hemassistant_tid).nu (). timme> id (gl_ft_start_hr)) {
återvända sant;
}
annars om (id (hemassistant_tid).now (). timme == id (gl_ft_start_hr) &&
id (hemassistant_tid).nu (). minut> id (gl_ft_start_mn)) {
återvända sant;
}
annars om (id (hemassistant_tid).now (). timme == id (gl_ft_start_hr) &&
id (hemassistant_tid).now (). minut == id (gl_ft_start_mn) &&
id (homeassistant_time).now (). second> = id (gl_ft_start_ss)) {
återvända sant;
}
annat {
return falsk;
}
Steg 9: Steg 9: Nu för några skript: 'Att vara, eller inte vara: det är frågan'
Hmm fel manus!
Så om jag kopplade in strömbrytaren … eller om strömmen bara kom igen, ville jag att omkopplaren skulle veta om den är tänkt att vara på eller av och agera därefter. (ja vi går alla på skådespelarlektioner)
Det första skript -id: checkstatuson, är att kontrollera om vi är avsedda att vara på och agera därefter. Jag inkluderade också en global flagga med id: trackingon, för att se till att detta skript bara körs en gång och inte hindrar mina andra skript från att göra sin del i pjäsen.
Detta har tre och villkor: reläet är avstängt, det är tänkt att vara på och jag har inte redan gjort mitt. Detta kommer att stänga av alla andra skript som körs, slå på reläet och ställa in spårningsflaggor.
Det andra skript -id: checkstatusoff, är precis motsatsen till det första. Vi kontrollerar bara om vi behöver stänga gardinerna nu. Spårningsflaggan för den här är trackingoff
Jag kör dessa två skript i intervallet 1 sekund för att kontrollera varje sekund.
Steg 10: Steg 10: Några bonusskript
Ytterligare två funktioner jag ville lägga till var om jag släckte lampan vid tanken som den tänds igen efter 5 sekunder om lampan är tänkt att tändas vid den tiden. Dessutom, om lampan var släckt och jag ville slå på den för att se mina fishies och det var ur planerat i tid, skulle den slås på i 5 minuter. Ja 5 minuter är tillräckligt länge … Återgå till jobbet.
Det första skript -id: relayisoff kommer att tända lampan i 5 minuter om det är avstängt schemalagt i tid och sedan släckas.
Det andra skript -id: relayison är praktiskt taget omvänt från det första och tänds igen 5 sekunder senare om det är tänt. Vem har sagt att du kan stänga av min ljusa herre!
Här är lite mer information om skript:
esphome.io/guides/automations.html
Viss bonusinformation om skript är att de inte blockerar. Om du inte försenar en lambda. Nej nej nej
Steg 11: Steg 11: Några sista tankar
Från hemassistenten ville jag att omkopplaren skulle fungera på samma sätt som knappen.
Jag lade inte upp ett namn för den lokala switchens binära sensor eftersom jag inte behövde se att den trycktes in i hemassistenten.
Jag gav inget namn för reläomkopplaren eftersom jag ville använda skripten för att byta från hemassistent.
Jag skapade en mallomkopplare med ett namn så att jag kan använda det för att byta från hemassistent. Det kommer att köra mina skript på samma sätt som den lokala omkopplaren vid kontakten.
Jag har inte testat om jag vill stänga av min hemassistent om kontakten fortfarande fungerar korrekt. Jag hoppas det. Jag har sett några inlägg om vissa problem när jag förlorar anslutningen till Home Assistant API.
Jag hoppas verkligen att denna lilla handledning hjälper dig och du får gärna hjälpa mig att göra det bättre. Jag är ingen expert och lär mig väldigt långsamt. Jag tänkte bara att vissa saker jag lärde mig hur man gör kan hjälpa någon där ute som kämpar för att ta reda på det.
Nu för att ändra tiderna i hemassistenten baserat på soluppgång och solnedgång …+ - några
Rekommenderad:
BookWorm Light-Up Book Light och bokmärke: 13 steg (med bilder)
BookWorm Light-Up Book Light och Bookmark: Gör det här roliga bokmaskens bokmärke som fungerar som ett bokljus! Vi kommer att skriva ut det, klippa ut det, färga och dekorera det, och de använder honom för att tända natten så att du kan läsa i mörkret. Han är gjord med bara några material och gör en fantastisk första
Styr din automatiska skjutport med hemassistent och ESPHome: 5 steg (med bilder)
Styr din automatiska skjutport med hemassistent och ESPHome: Följande artikel är lite feedback på min personliga erfarenhet av att styra den automatiska skjutporten som jag hade installerat i mitt hus. Denna port, märkt "V2 Alfariss", var försedd med några Phox V2 -fjärrkontroller för att styra den. Jag har också
DIY -Prototyp- Arduino Timed USB -laddare: 8 steg
DIY -Prototyp- Arduino Timed USB Charger: Under vårt seminarium om arduino var vi tvungna att uppfinna ett lyckligt hack med arduino. Vi bestämde oss för att göra en enhet som skulle bryta strömmen från laddningsenheter med hjälp av någon kod för arduino. Powerbuddy! Denna prototyp laddar faktiskt inte enheter som
ESP8266 - Timed och Remote Controlled Socket (äldre säkerhet): 6 steg
ESP8266 - Tidsstyrt och fjärrstyrt uttag (äldre säkerhet): INFORMATION: Denna enhet är en kontroll mot överhettning, brand och olyckor om du glömmer anslutna apparater (främst av äldre med Alzheimers). Efter att knappen har aktiverats får uttaget 110/220 VAC i 5 minuter (ytterligare
Pull the Light - Light Module Using Neopixel & Pull Up Switch: 6 Steg (med bilder)
Dra i ljuset - ljusmodul med hjälp av Neopixel & Pull Up Switch: Funktioner i ljusmodulen Arduino Uno Hardware & kapsling köpt från internet Neopixel & Strömförsörjning lånad från School of Informatics & Produktdesign Ljusmodul som styrs av strömförsörjning Alla funktioner som styrs via