Profruit banner

Умен звънец в openHAB

16 декември 2023

Телефонът е винаги с мен и сега, където и да се намирам получавам известие от openHAB, че някой е позвънил и чака пред вратата. А ако ме няма вкъщи става ясно часа и датата на последното позвъняване.

Tasmota Multipress

30 септември 2023

Идеята е Sonoff Touch T1 US 2 в салона, да управлява освен своето осветление и това в кухнята, а още вентилатора.

DIY 12V 1A WiFi Router UPS

22 април 2023

При поредно прекъсване на захранването вкъщи, батерията на нoтбука и двата UPS автоматично превключват на аварийно захранване и едновременно полита съобщение за конфуза

Zigbee2MQTT клониране

21 януари 2023

... как да клонираме съществуваща настройка на Zigbee2MQTT без да се налага последвало интервю на zigbee-устройствата.

LD2410 - бюджетен датчик присъствие в openHAB

11 февруари 2023

Цената на HLK-LD2410 зададе име на поредната тема в моя блог. С негова помощ се постига "народен" датчик присъствие в домашната автоматизация. . ...


Ампер-клеща ми показа стартовия ток на моя бойлер. Номинален ~12.6А или 3000W мощност. При това положение за никакви премаркирани китайски релета реч не може да става. Бойлерът е 10 годишен традиционен модел, сдвоен с слънчев воден панел и се намира на покрива. Малка умност, която може да се постигне е управление на захранването от градската мрежа.

За силова комутация в началото залитнах по твърдотелно реле заради тишината.

Бойлерът е активен консуматор, без грижи за симистора. Kупих Fotek SSR-40 DA. Забелязах, че логото Fotek се различава. Разкопах релето и вместо 40А, стоеше 16А симистор. Китайска набутка се получи.

Ролята прехвърлих на контактор EARU EACT25 ~230V 2x25A. Всяко зло за добро и с контактора се получи по-добре. Той е съвместим с DIN рейка в електрическото табло. Зае достойно свободно място до автоматите предпазители. Включвайки контактора дистанционно получаваме релевантно управление над бойлера. Отлично!

Натрупах запаси от всевъзможни модули с esp8266. Късата клечка изтегли ESP-01S. Kупих Tosling 5V 1A arduino реле и набавих 2N7002 транзистор. Това е логически транзистор и без конкурент за целта. Разбира се и традиционните донори като: адаптер от стар телефон, съпротивления, кондензатори, бутон, диоди.

Цялостно схематично изпълнение на идеята.

esp-01s модул

Светодиодът е зелен на 3V 2mA. Адаптерът е нестабилизиран импулсен токоизправител от samsung GSM телефон, заради което въведох допълнително DC-DC модул на 5V изходно напрежение. Бутонът изпадна от UPS и импровизацията му отне много време. Таблото се намира в коридора и телефона не всеки път е под ръка. В такъв случай натискам физическия бутон, за да включа бойлера.

Ако започвате от нулата реле Sonoff Basic R2 идеално замества моята схема и в допълнение разполагате с GPIO1, GPIO2, GPIO3. Те са изведени и незаети в Basic R2. Отворите за радиомодул са свободни. Използвайте ги, като добавете електролитен кондензатор >= 330uF нa 3.3V линия. Говоря от личен опит.

sonoff модул

Финал на изпълнението в openHAB

Главна страница.
Извеждам статуса: включен или изключен. Не е проблем, чрез карта, да се преведе на български или на друг език.

Главна страница


Съответно влизам в секцията (frame) и по височина на рафтовете разполагам включвател, таймер, паметка, кога последно е включван бойлера. В отделна секция Cron timer, разглеждан в посветена тема. Вечер преди лягане включвам Cron timer и на сутринта в 5:30ч бойлерът се включва. В 6:00ч изключва. Изключването съпровождам с известие в телефона.

секция Бойлер


Правило в openHAB

Три правила следят логиката за управление на бойлера.
  1. Cron Timer Boiler
  2. Boiler OFF after X minutes
  3. Boiler last switch date+time
var Timer stopBOILER = null
// вкл в 05:30 всеки ден
rule "Cron Timer Boiler"
when
	Time cron "0 30 05 * * ?"
then
	if(BoilerSunrise.state == ON && BoilerPower.state == OFF){
	   BoilerPower.sendCommand(ON)
	   createTimer(now.plusMinutes(30))[|
	   BoilerPower.sendCommand(OFF)
	   BoilerSunrise.sendCommand(OFF)
	   sendNotification("user@domain.com", "Бойлер изключен в 6:00")
	   ]
     }
end
//--------------------------------
rule "Boiler OFF after X minutes"
when
    Item BoilerPower changed
then
 if ( BoilerTimer.state > 0 ){
    if (Boiler_power.state==OFF) {
        stopBOILER?.cancel
        stopBOILER = null
    }
    else if (BoilerPower.state==ON) {
        if (stopBOILER!==null) {
            stopBOILER.cancel
            stopBOILER = null
        }
    stopBOILER = createTimer(now.plusMinutes((BoilerTimer.state as DecimalType).intValue)) [ |
        BoilerPower.sendCommand(OFF)
        sendNotification("user@domain.com", "Бойлер изключен")
        ]
     }
    }
end
//--------------------------------
rule "Boiler last switch date+time"
when
  Item BoilerPower changed or
  Item BoilerPower received command ON
then
  if(Boiler_power.state == ON){
    postUpdate(BoilerLast, new DateTimeType())
  }
end
sendNotification работи при активен акаунт в myopenhab.org/account.
И за яснота на картината добавям файл items.
/////////////// ITEMS ////////////////////////

// Boiler-Power-Switch
Switch BoilerPower "Бойлер" <boiler> {channel="mqtt:topic:espboiler:switch"}

// Boiler-Setpoint
Number BoilerTimer "минути  [%d]" <timerc>

// Boiler-Last_Switch
DateTime BoilerLast  "последно [%1$td.%1$tm.%1$tY %1$tH:%1$tM:%1$tS]" <heating>

// Boiler-Sunrise
Switch BoilerSunrise "Sunrise" <boiler>





до нови срещи   ^.^
04 март 2021 profruit 

0 Response to "boiler.rules в openHAB 2"

Публикуване на коментар

Този блог е реинкарнация на първите ми опити за споделяне в нета. На времето започнах с къси разкази на преживяното. После се обезсмисли и превърнах блога си в системно радио. Пиша единствено неща, които карат душата ми да живее: openHAB, Ubuntu, Споделено и т.н. Това е моето системно радио, разбирате ли? Моята вълна и вие сте на нея сега.

Архив на блога