Съдържание:
- Стъпка 1: Стъпка 1: Нуждая се от начин да изпратя времената от Home Assistant
- Стъпка 2: Стъпка 2: Добавен е следният код към Configuration.yaml
- Стъпка 3: Стъпка 3: Сега трябва да получим информацията до ESPHOME API
- Стъпка 4: Стъпка 4: Така че ESPHome конфигурацията на Plug Now
- Стъпка 5: Стъпка 5: Връзката на ESPHome Home Assistant… Beam Me Up Scotty
- Стъпка 6: Стъпка 6: Нека добавим малко време
- Стъпка 7: Стъпка 7: Интервал
- Стъпка 8: Стъпка 8: Значи имаме време и пари … Какво следва?
- Стъпка 9: Стъпка 9: Сега за някои скриптове: „Да бъдеш или да не бъдеш: Това е въпросът“
- Стъпка 10: Стъпка 10: Някои бонус скриптове
- Стъпка 11: Стъпка 11: Някои заключителни мисли
Видео: ESPHOME SONOF S26 Времева светлина: 11 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Добър ден. Така че имам лампа за аквариум, която искам да включвам и изключвам в определено време на деня. Просто трябваше да си го усложня. Искам да мога да променя времето за включване и изключване от таблото за управление на Home Assistant. Може би дори повече.
Така че нека да видим колко още мога да се вкарам в заешка дупка.
Стъпка 1: Стъпка 1: Нуждая се от начин да изпратя времената от Home Assistant
Някои гугъл помага. Изваждането на косата ви помага, ако наистина имате такива: PO Отворете моята добавка Visual Studio Code Editor. Под папката Config намерете файла configuration.yaml и копирайте и поставете някои неща, които намерих скрити в някой форум. Съжалявам, ако се сетих, ще дам признание. Добавен кодът и рестартиран домашен асистент.
Стъпка 2: Стъпка 2: Добавен е следният код към Configuration.yaml
вход_номер:
ft_start_hr:
име: Стартови часове на FT Light
икона: mdi: часовник-старт
мин: 0
макс: 23
етап 1
# начален: 13
Първият ред ще бъде идентификационният номер на въведеното число.
След това се нуждаем от някои подробности за този малък пич:
Едно име ще бъде страхотно: FT Light Start Hours за този P. S. FT е за Fish Tank … Не е това, което си мислите, нали?
Следва икона по избор. Има много възможности за избор, така че полудейте … или не.
След това можем да въведем min, max и step стойност. Тъй като това са часове, избрах 0 - 23 с единични стъпки.
Първоначално имах начална стойност и когато домашният помощник се рестартира, той щеше да го промени на тази първоначална стойност. Реших да го коментирам, тъй като исках Home Assistant да се опита да запомни последната стойност, която бях задал за него.
Можете да поставите в режим, за да изберете кутия. Но по подразбиране той избира приятен плъзгач за вас. Мисля, че плъзгачът ще се справи за сега.
Имайте предвид вдлъбнатините, тъй като те са много важни. Вижте изображението
Така че те ще ви дадат обекти в домашния асистент, за да можете да се коригирате.
Ето линк към повече информация относно въведените номера:
www.home-assistant.io/integrations/input_n…
Стъпка 3: Стъпка 3: Сега трябва да получим информацията до ESPHOME API
сензор:
- платформа: шаблон
сензори:
ft_start_hr:
value_template: '{{states.input_number.ft_start_hr.state | int}} '
н
Това ще даде на ESPHome API необходимата връзка, както и сега е цяло число вместо фантастичен текстов плъзгач:-P
Тук той приема състоянието на входния номер и го преобразува в цяло число и го съхранява в сензор.
Ето още малко информация за шаблоните:
www.home-assistant.io/integrations/templat…
О, промених разширението File на моя файл на текст, за да мога да го кача … Инструкциите могат да бъдат унищожени с yaml …
Стъпка 4: Стъпка 4: Така че ESPHome конфигурацията на Plug Now
Започнах с базова конфигурация за щепсела s-on-off и след това започнах да се занимавам.
Няма да навлизам в подробности как да мига S26 щепсела с ESPHome, тъй като Google има всички отговори.
Моят пълен конфигурационен файл ще бъде достъпен за изтегляне в края. Да Да Да…
Така че нека започнем със свързаната част към Home Assistant:
Трябва да създадем сензори, които да съответстват на сензорите в домашния помощник, за да могат да говорят помежду си.
Стъпка 5: Стъпка 5: Връзката на ESPHome Home Assistant… Beam Me Up Scotty
сензор:
- платформа: домашен помощник
entity_id: sensor.ft_start_hr
id: id_ft_start_hr
Така че сега създаваме сензор в ESPHome от типа homeassistant. Кой би предположил?
Идентификационният номер на обекта ще трябва да съвпада с това, което сте настроили във вашия файл configuration.yaml.
Настроих идентификатор, така че ESPHome да може да се позовава на този сензор в изобилието му на мислене.
Стъпка 6: Стъпка 6: Нека добавим малко време
Тъй като това е времево включване … Нека всъщност добавим известно време … Или е извадено? Сега в миналото ли е?
Ето някои основи на компонента на времето. Можем да изберем няколко различни, но аз избрах помощник за дома. Твърде лесно?
esphome.io/components/time.html
Стъпка 7: Стъпка 7: Интервал
Не, не е почивка, или е така?
интервал:
- интервал: 1 сек
тогава:
- ламбда: |-
id (gl_ft_start_hr) = id (id_ft_start_hr).state;
Затова зададох интервал от 1 секунда, за да запиша стойността на сензора от домашния асистент към глобалната променлива.
Просто искам да правя това веднъж в секунда, тъй като времето тече … тик -так
Стъпка 8: Стъпка 8: Значи имаме време и пари … Какво следва?
Затова реших да използвам двоичен шаблон на сензор, за да определя дали е време да включа превключвателя… реле
Създадох три превключвателя с идентификатор: start_time_valid, stop_time_valid и run_time_valid
start_time_valid е вярно, когато вече е изтекло времето, настроено за включване на релето.
Използвах вложени инструкции if, за да проверя дали сме по -големи или равни на необходимите секунди, след това минути и накрая часове.
stop_time_valid е вярно, когато е сега, преди да е настроено време за изключване на превключвателя. Това е обърнато за проверка, че сега не е минало необходимото време за изключване на релето
run_time_valid е вярно, когато и start_time_valid и stop_time_valid са верни. Предполагам, че можех просто да използвам нормално и състояние за това. Току -що влязох в разгара на нещата с ламбди.
- платформа: шаблон
name: "Начален час валиден"
id: start_time_valid
ламбда: |-
if (id (homeassistant_time).now (). час> id (gl_ft_start_hr)) {
връщане true;
}
иначе if (id (homeassistant_time).now (). час == id (gl_ft_start_hr) &&
id (homeassistant_time).now (). minute> id (gl_ft_start_mn)) {
връщане true;
}
иначе if (id (homeassistant_time).now (). час == 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)) {
връщане true;
}
иначе {
return false;
}
Стъпка 9: Стъпка 9: Сега за някои скриптове: „Да бъдеш или да не бъдеш: Това е въпросът“
Хм грешен скрипт пич!
Така че, ако включих превключвателя … или токът на къщата току -що се включи, исках превключвателят да знае дали е предназначен да бъде включен или изключен и да действа съответно. (да, всички ходим на уроци по актьорско майсторство)
Първият идентификатор на скрипта: checkstatuson, проверява дали сме предназначени да работим и действаме съответно. Също така включих глобален флаг с id: trackingon, за да се гарантира, че този скрипт се изпълнява само веднъж и не пречи на другите ми скриптове да изпълняват своята роля в пиесата.
Това има 3 и условия: релето е изключено, трябва да бъде включено и аз още не съм свършил своята част. Това ще изключи всички други скриптове, които се изпълняват, ще включи релето и ще настрои флаговете за проследяване.
Вторият скрипт id: checkstatusoff е точно обратното на първия. Просто проверяваме дали трябва да затворим завесите сега. Флагът за проследяване за този е проследяване
Пускам тези два скрипта в интервал от 1 секунда, за да проверявам всяка секунда.
Стъпка 10: Стъпка 10: Някои бонус скриптове
Още две функции, които исках да добавя, беше, ако изключих светлината в резервоара, че тя ще се включи отново след 5 секунди, ако светлината е предназначена да свети по това време. Също така, ако светлината беше изключена и исках да я включа, за да видя моите рибки и тя беше извън планираното навреме, щеше да се включи за 5 минути. Да, 5 минути са достатъчно … Връщайте се на работа.
Първият идентификатор на скрипта: relayisoff ще включи светлината за 5 минути, ако е изключена по график навреме и след това ще се изключи.
Вторият скрипт id: relayison е практически обърнат на първия и ще включи светлината отново 5 секунди по -късно, ако е предназначен да бъде включен. Кой каза, че можете да изключите светлинния ми господин!
Ето още малко информация за скриптове:
esphome.io/guides/automations.html
Някои бонус информация за скриптове са, че те не се блокират. Освен ако не поставите забавяне в ламбда. Uh Не Не Не Не
Стъпка 11: Стъпка 11: Някои заключителни мисли
От домашен асистент исках превключвателят да действа по същия начин като бутона.
Не сложих име за локалния превключвател на двоичния сензор, тъй като нямаше нужда да го виждам натиснат в домашния асистент.
Не посочих име на релейния превключвател, тъй като исках да използвам скриптовете за превключване от домашен асистент.
Създадох превключвател на шаблони с име, за да мога да го използвам за превключване от домашен асистент. Той ще изпълнява моите скриптове по същия начин като локалния ключ на щепсела.
Не съм тествал дали изключването на домашния ми асистент, ако щепселът все още ще работи правилно. Надявам се да е така. Виждал съм някои публикации за някои проблеми при загуба на връзка с API на Home Assistant.
Искрено се надявам този малък урок да ви помогне и моля не се колебайте да ми помогнете да го подобря. Не съм експерт и се уча много бавно. Просто си мислех, че някои неща, които научих как да правя, могат да помогнат на някой, който се бори да го разбере.
Сега да промените часовете в домашния асистент въз основа на изгрева и залеза …+ - няколко
Препоръчано:
LED светлина (и) със захранване от батерията със слънчево зареждане: 11 стъпки (със снимки)
LED светлини (и), захранвани от батерии, със слънчево зареждане: Жена ми учи хората как да правят сапун, повечето от часовете й бяха вечер и тук през зимата се стъмва около 16:30 ч. Някои от нейните ученици имаха проблеми с намирането на нашите къща. Имахме табела отпред, но дори и с улично осветление
8051 Свързване с DS1307 RTC и показване на времева отметка на LCD: 5 стъпки
8051 Взаимодействие с DS1307 RTC и показване на времева отметка в LCD: В този урок ние ви обяснихме как можем да взаимодействаме 8051 микроконтролер с ds1307 RTC. Тук показваме RTC времето в lcd, използвайки симулация на proteus
Анимирана светлина за настроение и нощна светлина: 6 стъпки (със снимки)
Animated Mood Light & Night Light: Имайки очарование, което граничи с манията по светлината, реших да създам селекция от малки модулни печатни платки, които могат да се използват за създаване на RGB светлинни дисплеи от всякакъв размер. След като направих модулната платка, се натъкнах на идеята да ги подредя в
Музикална реактивна светлина -- Как да направим супер проста музикална реактивна светлина, за да направим работния плот привлекателен .: 5 стъпки (със снимки)
Музикална реактивна светлина || Как да направим супер проста музикална реактивна светлина за създаване на страхотен работен плот. Хей какво става, момчета, днес ще изградим много интересен проект. Днес ще изградим реактивна музикална светлина. Светодиодът ще промени яркостта си според басът, който всъщност е нискочестотен аудио сигнал. Изграждането му е много просто. Ние ще
Интимната видео светлина/ светлина за ръчна фотография .: 7 стъпки (със снимки)
Интимната видео светлина/ Светлината за ръчна фотография: Знам какво мислите. Чрез " интимно " Имах предвид осветление отблизо при трудни светлинни ситуации-не е задължително за " интимни ситуации " (Въпреки това може да се използва и за това …) Като видеооператор в Ню Йорк-или