Съдържание:

ESPHOME SONOF S26 Времева светлина: 11 стъпки (със снимки)
ESPHOME SONOF S26 Времева светлина: 11 стъпки (със снимки)

Видео: ESPHOME SONOF S26 Времева светлина: 11 стъпки (със снимки)

Видео: ESPHOME SONOF S26 Времева светлина: 11 стъпки (със снимки)
Видео: Sonoff S26 Pinout 2021 version | Tasmota | Подключение с паяльником. 2024, Юли
Anonim
ESPHOME SONOF S26 Временна светлина
ESPHOME SONOF S26 Временна светлина

Добър ден. Така че имам лампа за аквариум, която искам да включвам и изключвам в определено време на деня. Просто трябваше да си го усложня. Искам да мога да променя времето за включване и изключване от таблото за управление на Home Assistant. Може би дори повече.

Така че нека да видим колко още мога да се вкарам в заешка дупка.

Стъпка 1: Стъпка 1: Нуждая се от начин да изпратя времената от Home Assistant

Някои гугъл помага. Изваждането на косата ви помага, ако наистина имате такива: PO Отворете моята добавка Visual Studio Code Editor. Под папката Config намерете файла configuration.yaml и копирайте и поставете някои неща, които намерих скрити в някой форум. Съжалявам, ако се сетих, ще дам признание. Добавен кодът и рестартиран домашен асистент.

Стъпка 2: Стъпка 2: Добавен е следният код към Configuration.yaml

Стъпка 2: Добавен е следният код към Configuration.yaml
Стъпка 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

Стъпка 3: Сега трябва да получим информацията в ESPHOME API
Стъпка 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

Стъпка 4: Така че ESPHome конфигурацията на Plug Now
Стъпка 4: Така че ESPHome конфигурацията на Plug Now

Започнах с базова конфигурация за щепсела s-on-off и след това започнах да се занимавам.

Няма да навлизам в подробности как да мига S26 щепсела с ESPHome, тъй като Google има всички отговори.

Моят пълен конфигурационен файл ще бъде достъпен за изтегляне в края. Да Да Да…

Така че нека започнем със свързаната част към Home Assistant:

Трябва да създадем сензори, които да съответстват на сензорите в домашния помощник, за да могат да говорят помежду си.

Стъпка 5: Стъпка 5: Връзката на ESPHome Home Assistant… Beam Me Up Scotty

Стъпка 5: Връзката на ESPHome Home Assistant… Beam Me Up Scotty
Стъпка 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: Нека добавим малко време

Стъпка 6: Нека добавим малко време
Стъпка 6: Нека добавим малко време

Тъй като това е времево включване … Нека всъщност добавим известно време … Или е извадено? Сега в миналото ли е?

Ето някои основи на компонента на времето. Можем да изберем няколко различни, но аз избрах помощник за дома. Твърде лесно?

esphome.io/components/time.html

Стъпка 7: Стъпка 7: Интервал

Стъпка 7: Интервал
Стъпка 7: Интервал

Не, не е почивка, или е така?

интервал:

- интервал: 1 сек

тогава:

- ламбда: |-

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

Затова зададох интервал от 1 секунда, за да запиша стойността на сензора от домашния асистент към глобалната променлива.

Просто искам да правя това веднъж в секунда, тъй като времето тече … тик -так

Стъпка 8: Стъпка 8: Значи имаме време и пари … Какво следва?

Стъпка 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: Сега за някои скриптове: „Да бъдеш или да не бъдеш: Това е въпросът“

Стъпка 9: Сега за някои скриптове: „Да бъдеш или да не бъдеш: това е въпросът“
Стъпка 9: Сега за някои скриптове: „Да бъдеш или да не бъдеш: това е въпросът“

Хм грешен скрипт пич!

Така че, ако включих превключвателя … или токът на къщата току -що се включи, исках превключвателят да знае дали е предназначен да бъде включен или изключен и да действа съответно. (да, всички ходим на уроци по актьорско майсторство)

Първият идентификатор на скрипта: checkstatuson, проверява дали сме предназначени да работим и действаме съответно. Също така включих глобален флаг с id: trackingon, за да се гарантира, че този скрипт се изпълнява само веднъж и не пречи на другите ми скриптове да изпълняват своята роля в пиесата.

Това има 3 и условия: релето е изключено, трябва да бъде включено и аз още не съм свършил своята част. Това ще изключи всички други скриптове, които се изпълняват, ще включи релето и ще настрои флаговете за проследяване.

Вторият скрипт id: checkstatusoff е точно обратното на първия. Просто проверяваме дали трябва да затворим завесите сега. Флагът за проследяване за този е проследяване

Пускам тези два скрипта в интервал от 1 секунда, за да проверявам всяка секунда.

Стъпка 10: Стъпка 10: Някои бонус скриптове

Стъпка 10: Някои бонус скриптове
Стъпка 10: Някои бонус скриптове

Още две функции, които исках да добавя, беше, ако изключих светлината в резервоара, че тя ще се включи отново след 5 секунди, ако светлината е предназначена да свети по това време. Също така, ако светлината беше изключена и исках да я включа, за да видя моите рибки и тя беше извън планираното навреме, щеше да се включи за 5 минути. Да, 5 минути са достатъчно … Връщайте се на работа.

Първият идентификатор на скрипта: relayisoff ще включи светлината за 5 минути, ако е изключена по график навреме и след това ще се изключи.

Вторият скрипт id: relayison е практически обърнат на първия и ще включи светлината отново 5 секунди по -късно, ако е предназначен да бъде включен. Кой каза, че можете да изключите светлинния ми господин!

Ето още малко информация за скриптове:

esphome.io/guides/automations.html

Някои бонус информация за скриптове са, че те не се блокират. Освен ако не поставите забавяне в ламбда. Uh Не Не Не Не

Стъпка 11: Стъпка 11: Някои заключителни мисли

Стъпка 11: Някои заключителни мисли
Стъпка 11: Някои заключителни мисли
Стъпка 11: Някои заключителни мисли
Стъпка 11: Някои заключителни мисли

От домашен асистент исках превключвателят да действа по същия начин като бутона.

Не сложих име за локалния превключвател на двоичния сензор, тъй като нямаше нужда да го виждам натиснат в домашния асистент.

Не посочих име на релейния превключвател, тъй като исках да използвам скриптовете за превключване от домашен асистент.

Създадох превключвател на шаблони с име, за да мога да го използвам за превключване от домашен асистент. Той ще изпълнява моите скриптове по същия начин като локалния ключ на щепсела.

Не съм тествал дали изключването на домашния ми асистент, ако щепселът все още ще работи правилно. Надявам се да е така. Виждал съм някои публикации за някои проблеми при загуба на връзка с API на Home Assistant.

Искрено се надявам този малък урок да ви помогне и моля не се колебайте да ми помогнете да го подобря. Не съм експерт и се уча много бавно. Просто си мислех, че някои неща, които научих как да правя, могат да помогнат на някой, който се бори да го разбере.

Сега да промените часовете в домашния асистент въз основа на изгрева и залеза …+ - няколко

Препоръчано: