Селекторът на падащия лист предлага: включване, изключване, превключване (тригер) по зададено време и изпълнение на правило. Ако добавите GPS модул към вашия ESP, Tasmota ще синхронизира времето от спътник и гарантирано ще изпълнява вашите заявки според изгрева и залеза на точното ви местоположение.
Първи таймер на осветлението в всяка стая съм задал всеки ден в 23:00ч, да изключва. Заспивам вечер и много е дразнещо, да се събудиш от забравено осветление. Tasmota ме освободи от това бреме.
XYD558 е името на малък светодиоден абажур, когото доработих. Плавно светва и плавно изгасва, а после направих умен. Досещате се, че втора позиция на настроен таймер е часът сутрин, когато абажура "изгрява".
С подобни благини бързо се свиква и след време преставате, да им обръщате внимание. Те вече са част от вашия живот. Минава време и става ясно, че това не е достатъчно. 16 твърдо зададени възможности е повече от нищо, но в живота случаи всякакви. Липсата на седемнадесети и до неограничен брой е първата липса, която се забелязва. Липсата на контрол извън локалната ви мрежа, да ако се пренасочи порт 80 в рутера ви решава проблема, но не е елегантно. Големият минус лъсва, ако обстоятелствата променят рутината на ежедневието ви и вместо да се излежите, както сте решили, Tasmota робски изпълни волята ви, включвайки отново сутрин абажура. Но не, всичко това може да се прежали. Генералният минус е липсата на варианти.
Развръзката на този казус ви отвежда пред портите на open Home Automation Bus. Чрез него ръцете ви се развързват, като наплодите n-количество правила (rules). И екзотиката на тези правила са по силата на Quartz Cron таймер, където лимит е само вашата фантазия. Например, абажура да се включи всеки трети петък от месеца след 17:30 за 20 секунди.
Нека разгледаме по-лек пример. Включване всяка сутрин в 6:30 за определен период от време и по изтичането му да изключи консуматор. Освен с абажура сутрин така съм постъпил и с бойлера. 10мин преди събуждане се включва, нагрява 15мин, след което изключва. Абажурът изгрява, отправя ме в банята, къпя се и с напускане на стаята абажурът се гаси сам. По немски, тик-так тик-так, 30мин тоалет до катапулта към поредния ден на живота.
Tasmota общува с openHAB, чрез брокер Mosquitto на MQTT сървъра и това води до съответната й настройка.
Не е нужно да си гений и за себе си реших, че името на контролера ще съвпада с името на клиента (Client), а още и на темаta (Topic).
Topic: XYD558
В такъв случай брокерът ще приема/изпраща следните публикации в тема XYD558.
stat/XYD558/POWER = ON
stat/XYD558/POWER = OFF
Публикация ON в тема XYD558 говори сама за себе си - включи, съответно се досещате - изключи. За да не става "кръстосан огън" с други контролери от мрежата името на темата е уникално.
Пренасяме се в openHAB. Там създаваме два елемента (items).
// items Switch xydPower "Вкл" {channel="mqtt:topic:lustra:switch"} Switch ledXYD_auto "Кварц таймер"
И визуализацията им в картата изглежда така.
На елемент Бюро не обръщайте внимание. Това е настолна лампа на бюрото ми.
Елемент XYD558 абажур е виртуален ключ на абажура. Той тъпо включва или изключва осветителното тяло. Елемент XYD558 авто е логически ключ, чиято роля се изяснява по-надолу.
Създаваме съответните вещи (things).
// things Thing mqtt:topic:lustra "LED абажур" (mqtt:broker:644a0a87) {Channels: // Вкл XYD558 Type switch : switch "Power" [ stateTopic="stat/XYD558/POWER", commandTopic="cmnd/XYD558/POWER" ]}И тук започват големите мазоли с малките хемороиди. Парадигмата на openHAB е такава, че за да заработи брокера, елементите се свързват с вещите, чрез канали. Често за начинаещи това е китайска стена и абдикират към по-лесни системи за умен дом. Само от вас зависи.
Продължаваме по реда.
Извеждаме елементите в картата. Картата е снимката горе с визуализацията. Финалът на вашия труд. Тук кичим иконки, задаваме крайни имена, стил и все такива, което ще "изплюе" сървърът при обръщение към адреса на openHAB.
// sitemap Text label="Спалня" icon="bedroom"{ Switch item=xydPower label="XYD558 абажур" icon="poweroutlet" Switch item=ledXYD_auto label="XYD558 авто" }
За финал остана, да разгледаме логическата част. Правилото (Rule).
// rule rule "Вкл всеки ден в 06:30" when Time cron "0 30 6 1/1 * ? *" then if(xydPower.state == OFF && ledXYD_auto.state == ON){ xydPower.sendCommand(ON) createTimer(now.plusSeconds(45))[|xydPower.sendCommand(OFF)]} endПравилото започва с ключова дума rule и продължава с джокер в кавички. Това е осведомителна част един вид. Следва when. Тази част слухти за конкретно събитие в системата. На трета позиция идва then, съдържащо самата логика и на финала застава end.
0 30 6 1/1 * ? * e регулярен израз на Quartz Cron. Когато настъпи това събитие логиката влиза в ход. Ако в 06:30 абажурът е изключен и логическият ключ включен ( true AND true ) openHAB ще включи абажура по каналите на брокера, като публикува ON в съответната тема. Ако условието в if е false - остатъка до края се игнорира.
Абажурът светва и едновременно стартира таймер с зададени 45сек. Просто пример. Сменете на функция plusMinites(45) и имате в минути. Съответно предаденото число е вашето време в секунди/минути. След изтичане на зададеното време, openHAB изстрелва последна команда sendCommand(OFF) към елемент xydPower. Той на свой ред гасне.
Положението на елемент ledXYD_auto.state определя изпълнението на правилото. openHAB 2 е глобално достъпен, а това ви дава възможност, да включвате или да изключвате правилото само с един клик. Да, правилото може да се опрости, като се генерира нов Quartz Cron, който да не включва в неделя, но случай всякакви.
Това е всичко в тази интересна среща за първо правило в умния дом.
И разбира се може да надстроите логиката, като напишете друго ново правило до първото, а това Tasmota няма как да догони.
до нови срещи ^.^
0 Response to "Quartz Cron таймер в openHAB 2"
Публикуване на коментар