import reguł
This commit is contained in:
5
rules/README
Normal file
5
rules/README
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
Put any file containing rule definitions here. They will be activated automatically.
|
||||||
|
|
||||||
|
Note: Rule definition files must have the extension '*.rules'
|
||||||
|
|
||||||
|
Demo-files can be obtained from the archive 'distribution-demo-*.zip'.
|
||||||
8
rules/WC.txt
Normal file
8
rules/WC.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
co minute odczyt czujnika swiatla
|
||||||
|
jesli jasno -> switch wc_occupied ON
|
||||||
|
|
||||||
|
rule wc_occupied changed to off -> psiknij (GPIO short pulse pewnie)
|
||||||
|
|
||||||
|
jakies timery, ze jesli jestesmy w domu to psikaj co godzine,
|
||||||
|
przed naszym przyjsciem, rano przy budziku
|
||||||
49
rules/d1mini03.prototyp.rules
Normal file
49
rules/d1mini03.prototyp.rules
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
|
||||||
|
rule "d1m03 przełączaj zielone"
|
||||||
|
when
|
||||||
|
Item sD1MINI03_button_green received update
|
||||||
|
then
|
||||||
|
if (sOWFS01.state == ON) {
|
||||||
|
sOWFS01.sendCommand(OFF)
|
||||||
|
} else {
|
||||||
|
sOWFS01.sendCommand(ON)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
rule "d1m03 przełączaj żółte"
|
||||||
|
when
|
||||||
|
Item sD1MINI03_button_yellow received update
|
||||||
|
then
|
||||||
|
if (Mpd_quodlibet_StartStop.state == ON) {
|
||||||
|
Mpd_quodlibet_StartStop.sendCommand(OFF)
|
||||||
|
} else {
|
||||||
|
Mpd_quodlibet_StartStop.sendCommand(ON)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
rule "d1m03 przełączaj czerwone"
|
||||||
|
when
|
||||||
|
Item sD1MINI03_button_red received update
|
||||||
|
then
|
||||||
|
/* if (sD1MINI04_refresh.state == ON) {
|
||||||
|
sD1MINI04_refresh.sendCommand(OFF)
|
||||||
|
} else {*/
|
||||||
|
sD1MINI04_refresh.sendCommand(ON)
|
||||||
|
/* }*/
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
rule "d1mini03 synchronizuj kolorki"
|
||||||
|
when
|
||||||
|
Item sOWFS01 received update or
|
||||||
|
Item Mpd_quodlibet_StartStop received update or
|
||||||
|
Item sD1MINI04_refresh received update
|
||||||
|
then
|
||||||
|
sD1MINI03_light_green.sendCommand(sOWFS01.state.toString())
|
||||||
|
|
||||||
|
sD1MINI03_light_yellow.sendCommand(Mpd_quodlibet_StartStop.state.toString())
|
||||||
|
|
||||||
|
sD1MINI03_light_red.sendCommand(sD1MINI04_refresh.state.toString())
|
||||||
|
end
|
||||||
|
|
||||||
64
rules/kuchnia.okap.rules
Normal file
64
rules/kuchnia.okap.rules
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
example of switch https://community.openhab.org/t/examples-of-scenes/16411/5
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* 0="OFF", 1="Bieg 1", 2="Bieg 2", 3="Bieg max"]
|
||||||
|
*/
|
||||||
|
|
||||||
|
rule "Ustaw prędkość okapu"
|
||||||
|
when
|
||||||
|
Item sOKAP_speed received update
|
||||||
|
then
|
||||||
|
switch (sOKAP_speed.state) {
|
||||||
|
case 0: {
|
||||||
|
sD1MINI01_bieg1.sendCommand(OFF)
|
||||||
|
sD1MINI01_bieg2.sendCommand(OFF)
|
||||||
|
sD1MINI01_bieg3.sendCommand(OFF)
|
||||||
|
}
|
||||||
|
|
||||||
|
case 1: {
|
||||||
|
sD1MINI01_bieg1.sendCommand(ON)
|
||||||
|
sD1MINI01_bieg2.sendCommand(OFF)
|
||||||
|
sD1MINI01_bieg3.sendCommand(OFF)
|
||||||
|
}
|
||||||
|
/* 40% = 1 bieg */
|
||||||
|
case 40: {
|
||||||
|
sD1MINI01_bieg1.sendCommand(ON)
|
||||||
|
sD1MINI01_bieg2.sendCommand(OFF)
|
||||||
|
sD1MINI01_bieg3.sendCommand(OFF)
|
||||||
|
}
|
||||||
|
/* turn ON == 100% == 1 bieg */
|
||||||
|
case 100: {
|
||||||
|
sD1MINI01_bieg1.sendCommand(ON)
|
||||||
|
|
||||||
|
sD1MINI01_bieg2.sendCommand(OFF)
|
||||||
|
sD1MINI01_bieg3.sendCommand(OFF)
|
||||||
|
}
|
||||||
|
|
||||||
|
case 2: {
|
||||||
|
sD1MINI01_bieg2.sendCommand(ON)
|
||||||
|
|
||||||
|
sD1MINI01_bieg1.sendCommand(OFF)
|
||||||
|
sD1MINI01_bieg3.sendCommand(OFF)
|
||||||
|
}
|
||||||
|
/* 70% = 2 bieg */
|
||||||
|
case 70: {
|
||||||
|
sD1MINI01_bieg2.sendCommand(ON)
|
||||||
|
|
||||||
|
sD1MINI01_bieg1.sendCommand(OFF)
|
||||||
|
sD1MINI01_bieg3.sendCommand(OFF)
|
||||||
|
}
|
||||||
|
|
||||||
|
case 3: {
|
||||||
|
sD1MINI01_bieg3.sendCommand(ON)
|
||||||
|
|
||||||
|
sD1MINI01_bieg1.sendCommand(OFF)
|
||||||
|
sD1MINI01_bieg2.sendCommand(OFF)
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
logInfo("okap","incorrect state: {}", sOKAP_speed.state)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
end
|
||||||
12
rules/kuchnia.rules
Normal file
12
rules/kuchnia.rules
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
rule "Kuchnia: przełącz LED"
|
||||||
|
when
|
||||||
|
Item sD1MINI02LEDS received update
|
||||||
|
then
|
||||||
|
if (sD1MINI02MOS.state == ON) {
|
||||||
|
sD1MINI02MOS.sendCommand(OFF)
|
||||||
|
/* zrobic PWM DIMM */
|
||||||
|
} else {
|
||||||
|
sD1MINI02MOS.sendCommand(ON)
|
||||||
|
}
|
||||||
|
end
|
||||||
53
rules/przedpokój.rules
Normal file
53
rules/przedpokój.rules
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
rule "Przedpokój: przełącz światło"
|
||||||
|
when
|
||||||
|
/* If there is no action the button returns 0. When you touch it it shows a state of 1 . */
|
||||||
|
Item sSONOFF06KEY received update ON or
|
||||||
|
Item sD1MINI06KEY received update
|
||||||
|
then
|
||||||
|
if (sSONOFF06.state == ON) {
|
||||||
|
sSONOFF06.sendCommand(OFF)
|
||||||
|
} else {
|
||||||
|
sSONOFF06.sendCommand(ON)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
/* podswietlenie bedzie caly czas ON, ustawione jako dioda statusu */
|
||||||
|
/*rule "Przedpokój: synchronizuj podświetlenia przycisków"
|
||||||
|
when
|
||||||
|
Item sSONOFF06 received update
|
||||||
|
then
|
||||||
|
if (sSONOFF06.state == ON) {
|
||||||
|
sSONOFF06LED.sendCommand(OFF)
|
||||||
|
sD1MINI03_light_red.sendCommand(OFF)
|
||||||
|
} else {
|
||||||
|
sSONOFF06LED.sendCommand(ON)
|
||||||
|
sD1MINI03_light_red.sendCommand(ON)
|
||||||
|
}
|
||||||
|
end*/
|
||||||
|
|
||||||
|
|
||||||
|
/* jak się urwie od internetu przyciskowi, zsynchronizuj stan światła na OFF */
|
||||||
|
when
|
||||||
|
Item rSONOFF06 received update OFF
|
||||||
|
then
|
||||||
|
sSONOFF06.postUpdate(OFF)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
rule "Przedpokój: zapal rano"
|
||||||
|
when
|
||||||
|
Time cron "0 50 5 ? * MON-FRI *"
|
||||||
|
then
|
||||||
|
sSONOFF06.sendCommand(ON)
|
||||||
|
end
|
||||||
|
|
||||||
|
rule "Przedpokój: zgaś rano"
|
||||||
|
when
|
||||||
|
Time cron "0 50 6 ? * MON-FRI *"
|
||||||
|
then
|
||||||
|
sSONOFF06.sendCommand(OFF)
|
||||||
|
end
|
||||||
|
|
||||||
51
rules/salon.cottonballs.rules
Normal file
51
rules/salon.cottonballs.rules
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
|
||||||
|
rule "Zapal cottonballs, kanapowe i blat rano"
|
||||||
|
when
|
||||||
|
Time cron "0 45 5 ? * MON-FRI *"
|
||||||
|
then
|
||||||
|
sOWFS01.sendCommand(ON)
|
||||||
|
/* sSONOFF01.sendCommand(ON) */
|
||||||
|
sD1MINI02MOS.sendCommand(ON)
|
||||||
|
end
|
||||||
|
|
||||||
|
rule "Zgaś cottonballs, kanapowe i blat rano"
|
||||||
|
when
|
||||||
|
Time cron "0 35 6 * * ?"
|
||||||
|
then
|
||||||
|
sOWFS01.sendCommand(OFF)
|
||||||
|
sSONOFF01.sendCommand(OFF)
|
||||||
|
sD1MINI02MOS.sendCommand(OFF)
|
||||||
|
end
|
||||||
|
|
||||||
|
/* kanapowe zmierzchowe sterowane z lampki stolowej */
|
||||||
|
|
||||||
|
rule "Zapal cottonballsy i blat przed zmierzchem"
|
||||||
|
when
|
||||||
|
Item sSunset_Event_in_hour received update ON
|
||||||
|
then
|
||||||
|
sOWFS01.sendCommand(ON)
|
||||||
|
sOWFS01_expected.postUpdate(ON)
|
||||||
|
|
||||||
|
/* HOLIDAY */
|
||||||
|
D1MINI02MOS.sendCommand(ON)
|
||||||
|
end
|
||||||
|
|
||||||
|
rule "Zgaś cottonballsy wieczorem"
|
||||||
|
when
|
||||||
|
Time cron "0 20 22 * * ?"
|
||||||
|
then
|
||||||
|
sOWFS01.sendCommand(OFF)
|
||||||
|
sOWFS01_expected.postUpdate(OFF)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
1 Seconds
|
||||||
|
2 Minutes
|
||||||
|
3 Hours
|
||||||
|
4 Day-of-Month
|
||||||
|
5 Month
|
||||||
|
6 Day-of-Week
|
||||||
|
7 Year (optional field)
|
||||||
|
*/
|
||||||
45
rules/salon.kodi.rules
Normal file
45
rules/salon.kodi.rules
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
|
||||||
|
|
||||||
|
rule "Gramy!"
|
||||||
|
when
|
||||||
|
Item Kodi_State changed to Play
|
||||||
|
then
|
||||||
|
sOWFS01.sendCommand(OFF)
|
||||||
|
|
||||||
|
Mpd_quodlibet_StartStop_expected.postUpdate(Mpd_quodlibet_StartStop.state)
|
||||||
|
Mpd_quodlibet_StartStop.sendCommand(OFF)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
rule "Nie gramy"
|
||||||
|
when
|
||||||
|
Item Kodi_State changed to Stop or
|
||||||
|
Item Kodi_State changed to Pause
|
||||||
|
then
|
||||||
|
/* bezpośrednie odwoływanie się do tych zmiennych powoduje jakieś nulle */
|
||||||
|
var preCB = sOWFS01_expected.state.toString()
|
||||||
|
/* ponizsze generuje w linijce z ifem: The name '<XFeatureCallImplCustom> == <XFeatureCallImplCustom>' cannot be resolved to an item or type.
|
||||||
|
var OnOffType preQL = Mpd_quodlibet_StartStop_expected.state */
|
||||||
|
var preQL = Mpd_quodlibet_StartStop_expected.state.toString()
|
||||||
|
|
||||||
|
logInfo("niegramy", "Restore QL to {}", preQL)
|
||||||
|
/* Mpd_quodlibet_StartStop.sendCommand(preQL.toString())*/
|
||||||
|
/* nie działa: preQL as StringType
|
||||||
|
preQL.toString()
|
||||||
|
*/
|
||||||
|
if (preQL == "ON") {
|
||||||
|
sendCommand(Mpd_quodlibet_StartStop, ON)
|
||||||
|
} else {
|
||||||
|
// logInfo("niegramy", "Did not restore QL. why?")
|
||||||
|
}
|
||||||
|
|
||||||
|
logInfo("niegramy", "Restore sOWFS01 to {}", preCB)
|
||||||
|
/* sOWFS01.sendCommand(preCB) */
|
||||||
|
/* sOWFS01.sendCommand(sOWFS01_expected.state.toString()) zakomentowane, bo null instance */
|
||||||
|
/* sendCommand(sOWFS01, preCB) */
|
||||||
|
if (preCB == "ON") {
|
||||||
|
sendCommand(sOWFS01, ON)
|
||||||
|
}
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
90
rules/salon.lampka-stolowa.rules
Normal file
90
rules/salon.lampka-stolowa.rules
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
rule "Zapal stółlampkę rano"
|
||||||
|
when
|
||||||
|
Time cron "0 47 5 ? * MON-FRI *"
|
||||||
|
then
|
||||||
|
sSONOFF02.sendCommand(ON)
|
||||||
|
end
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
rule "Zgaś stółlampkę rano"
|
||||||
|
when
|
||||||
|
Time cron "0 30 6 * * ?"
|
||||||
|
then
|
||||||
|
sSONOFF02.sendCommand(OFF)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
rule "Zapal sufitowe przed zachodem"
|
||||||
|
when
|
||||||
|
Item sSunset_Event_in_hour received update ON
|
||||||
|
then
|
||||||
|
/* HOLIDAY */
|
||||||
|
sD1MINI01_lampki_sufitowe.sendCommand(ON)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
rule "Zapal lampkę i kanapowe przed zmierzchem"
|
||||||
|
when
|
||||||
|
Item sSunset_Event_in_halfhour received update ON
|
||||||
|
then
|
||||||
|
dSONOFF01LED.sendCommand(0)
|
||||||
|
dSONOFF02LED.sendCommand(0)
|
||||||
|
Thread::sleep(500)
|
||||||
|
dSONOFF01LED.sendCommand(1023)
|
||||||
|
dSONOFF02LED.sendCommand(1023)
|
||||||
|
Thread::sleep(500)
|
||||||
|
|
||||||
|
dSONOFF01LED.sendCommand(0)
|
||||||
|
dSONOFF02LED.sendCommand(0)
|
||||||
|
Thread::sleep(500)
|
||||||
|
dSONOFF01LED.sendCommand(1023)
|
||||||
|
dSONOFF02LED.sendCommand(1023)
|
||||||
|
Thread::sleep(500)
|
||||||
|
|
||||||
|
dSONOFF01LED.sendCommand(0)
|
||||||
|
dSONOFF02LED.sendCommand(0)
|
||||||
|
Thread::sleep(500)
|
||||||
|
dSONOFF01LED.sendCommand(1023)
|
||||||
|
dSONOFF02LED.sendCommand(1023)
|
||||||
|
Thread::sleep(500)
|
||||||
|
|
||||||
|
sSONOFF02.sendCommand(ON)
|
||||||
|
sSONOFF02_expected.postUpdate(ON)
|
||||||
|
|
||||||
|
sSONOFF01.sendCommand(ON)
|
||||||
|
end
|
||||||
|
|
||||||
|
rule "Przedzgaś stółlampkę wieczorem"
|
||||||
|
when
|
||||||
|
Time cron "0 12 22 * * ?"
|
||||||
|
then
|
||||||
|
dSONOFF01LED.sendCommand(0)
|
||||||
|
dSONOFF02LED.sendCommand(0)
|
||||||
|
end
|
||||||
|
|
||||||
|
rule "Zgaś stółlampkę i kanapowe wieczorem"
|
||||||
|
when
|
||||||
|
Time cron "0 15 22 * * ?"
|
||||||
|
then
|
||||||
|
sSONOFF02.sendCommand(OFF)
|
||||||
|
sSONOFF02_expected.postUpdate(OFF)
|
||||||
|
dSONOFF02LED.sendCommand(1023)
|
||||||
|
|
||||||
|
sSONOFF01.sendCommand(OFF)
|
||||||
|
dSONOFF01LED.sendCommand(1023)
|
||||||
|
end
|
||||||
|
|
||||||
|
/*
|
||||||
|
1 Seconds
|
||||||
|
2 Minutes
|
||||||
|
3 Hours
|
||||||
|
4 Day-of-Month
|
||||||
|
5 Month
|
||||||
|
6 Day-of-Week
|
||||||
|
7 Year (optional field)
|
||||||
|
*/
|
||||||
7
rules/salon.mpd-concat.rules
Normal file
7
rules/salon.mpd-concat.rules
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
rule "mpd-concat"
|
||||||
|
when
|
||||||
|
Item Mpd_CurrentTrack received update or
|
||||||
|
Item Mpd_CurrentArtist received update
|
||||||
|
the
|
||||||
|
Mpd_ConcatInfo.postUpdate(Mpd_CurrentTrack.state.toString + " / " + Mpd_CurrentArtist.state.toString)
|
||||||
|
end
|
||||||
27
rules/sypialnia.lampka-nocna.rules
Normal file
27
rules/sypialnia.lampka-nocna.rules
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
|
||||||
|
rule "Zapal lampkę rano"
|
||||||
|
when
|
||||||
|
Time cron "0 39 5 ? * MON-FRI *"
|
||||||
|
then
|
||||||
|
sOWFS02.sendCommand(ON)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
rule "Zgaś lampkę rano"
|
||||||
|
when
|
||||||
|
Time cron "0 20 6 * * ?"
|
||||||
|
then
|
||||||
|
sOWFS02.sendCommand(OFF)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
1 Seconds
|
||||||
|
2 Minutes
|
||||||
|
3 Hours
|
||||||
|
4 Day-of-Month
|
||||||
|
5 Month
|
||||||
|
6 Day-of-Week
|
||||||
|
7 Year (optional field)
|
||||||
|
*/
|
||||||
26
rules/wc.rules
Normal file
26
rules/wc.rules
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
|
||||||
|
rule "Sprawdzaj zajętość WC"
|
||||||
|
when
|
||||||
|
Item lWC_lux received update
|
||||||
|
then
|
||||||
|
if (lWC_lux.state > 3) {
|
||||||
|
sWC_occupied.postUpdate(ON)
|
||||||
|
} else {
|
||||||
|
sWC_occupied.postUpdate(OFF)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
/* HOLIDAY */
|
||||||
|
|
||||||
|
rule "Psikaj w WC"
|
||||||
|
when
|
||||||
|
Item sWC_occupied changed from ON to OFF or
|
||||||
|
Time cron "0 50 05 * * ?" or
|
||||||
|
Time cron "0 20 15 ? * MON-FRI" or
|
||||||
|
Time cron "0 10/20 15-21 ? * MON-FRI" or
|
||||||
|
Time cron "0 0,20,40 8-22 ? * SAT,SUN"
|
||||||
|
then
|
||||||
|
sD1MINI04_refresh.sendCommand(ON)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
29
rules/łazienka.rules
Normal file
29
rules/łazienka.rules
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
val int h_low = 55
|
||||||
|
val int h_high = 65
|
||||||
|
|
||||||
|
rule "Włącz wiatrak przy dużej wilgotności"
|
||||||
|
when
|
||||||
|
Item h_lazienka received update
|
||||||
|
then
|
||||||
|
|
||||||
|
if (h_lazienka.state > h_high) {
|
||||||
|
/* wlaczyc wiatrak i diodke */
|
||||||
|
sSONOFF03.sendCommand(ON)
|
||||||
|
dSONOFF03LED.sendCommand(0)
|
||||||
|
|
||||||
|
else if (h_lazienka.state < h_low) {
|
||||||
|
sSONOFF03.sendCommand(OFF)
|
||||||
|
dSONOFF03LED.sendCommand(1023)
|
||||||
|
|
||||||
|
else {
|
||||||
|
/* pomiedzy 55 a 65 */
|
||||||
|
val h_lazienka_int = h_lazienka.state as Number
|
||||||
|
var led_pwm = (h_high - h_lazienka_int) * ( 1023 / (h_high - h_low) )
|
||||||
|
if (led_pwm < 0) { led_pwm = 0 }
|
||||||
|
|
||||||
|
dSONOFF03LED.sendCommand(led_pwm)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
/* if dzien roboczy 7-15, wlacz wiatrak */
|
||||||
Reference in New Issue
Block a user