عملگرها به شما این امکان را می دهند که ارزش ویژگی های صفت را در برابر مقادیر خاص بررسی کنید، آنها را با یکدیگر مقایسه کنید و عبارات مورد استفاده در گره های condition
را ترکیب کنید.
اپراتورها از طریق بیانیه های import
زیر در دسترس هستند:
import com.google.home.automation.and
import com.google.home.automation.between
import com.google.home.automation.contains
import com.google.home.automation.equals
import com.google.home.automation.greaterThan
import com.google.home.automation.greaterThanOrEquals
import com.google.home.automation.lessThan
import com.google.home.automation.not
import com.google.home.automation.notEquals
import com.google.home.automation.or
عملگرهای مقایسه
بین
زمانی که مقدار عبارت 1 بین مقدار عبارت 2 و عبارت 3 (شامل) باشد، به true
ارزیابی می شود. عبارات بسته به نوع داده آنها رتبه بندی متفاوتی دارند. انواع داده های ساده مانند اعداد و رشته ها به همان ترتیبی که در Kotlin هستند رتبه بندی می شوند.
بیان 1 | بیان 2 | بیان 3 | نتیجه |
---|---|---|---|
6 | 1 | 3 | false |
2 | 1 | 3 | true |
نمونه DSL
val time = stateReader<_>(structure, Time)
condition() {
expression = time.currentTime
.between(
time.sunsetTime,
time.sunriseTime)
}
استفاده از تاریخ ها با ()
هنگام استفاده از عملگر between()
می توانید محدوده ای از تاریخ ها را مشخص کنید:
val exp2 =
time.currentDate.between(
LocalDate.of(2025, Month.OCTOBER, 1),
LocalDate.of(2025, Month.DECEMBER, 15),
)
با این حال، شما محدود به تاریخ های کامل نیستید. Automation DSL همچنین به شما امکان می دهد محدوده ای از تاریخ ها را به روش های مختلف بیان کنید:
- فقط با استفاده از سال و ماه:
val exp2 =
time.currentDate.yearMonth.between(
YearMonth.of(2024, Month.OCTOBER),
YearMonth.of(2026, Month.JANUARY),
)
- فقط استفاده از ماه و روز:
val exp2 =
time.currentDate.monthDay.between(
MonthDay.of(Month.OCTOBER, 1),
MonthDay.of(Month.DECEMBER, 15),
)
- فقط از روز ماه استفاده کنید:
val exp2 = time.currentDate.day.between(1, 15)
برابر است
زمانی که عبارت 1 برابر با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | false |
2 | 2 | true |
نمونه DSL
washer.operationalState equals STOPPED
بزرگتر از
زمانی که عبارت 1 بزرگتر از عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | true |
1 | 6 | false |
نمونه DSL
( blindsPosition.currentPositionLift greaterThan 0u )
greaterThanOrEquals
زمانی که عبارت 1 بزرگتر یا مساوی با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
8 | 6 | true |
6 | 6 | true |
1 | 6 | false |
نمونه DSL
( starterNode.measuredValue greaterThanOrEquals 50 )
کمتر از
زمانی که عبارت 1 کمتر از عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | false |
1 | 6 | true |
نمونه DSL
time.currentTime lessThan LocalTime.of(22,0,0,0)
lessThanOrEquals
زمانی که عبارت 1 کمتر یا مساوی با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
8 | 6 | false |
6 | 6 | true |
1 | 6 | true |
نمونه DSL
( starterNode.measuredValue lessThanOrEquals 25 )
notequals
زمانی که عبارت 1 با عبارت 2 برابری نمی کند، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | true |
1 | 6 | true |
2 | 2 | false |
نمونه DSL
occupancyStateChange.occupied notEquals 0
عملگرهای حسابی
اضافه کنید
عملگر جمع ( +
).
نمونه DSL
var totalCount = 0
...
totalCount = totalCount + 1
تفریق
عملگر تفریق ( -
).
نمونه DSL
var countdown = 10
...
countdown = countdown - 1
ضرب کنید
عملگر ضرب ( *
).
نمونه DSL
val millis = seconds * 1000
تقسیم کنید
عملگر تقسیم ( /
).
نمونه DSL
val rpm = revolutions / minutes
عملگرهای منطقی
و
دو عبارت را در یک عبارت AND منطقی ترکیب می کند، زمانی که هر دو عبارت true
هستند، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
false | false | false |
true | false | false |
false | true | false |
true | true | true |
نمونه DSL
((device.occupied notEquals 0) and
time.currentTime.between(time.sunriseTime, time.sunsetTime))
نه
ارزش منطقی یک عبارت را نفی می کند.
بیان | نتیجه |
---|---|
true | false |
false | true |
نمونه DSL
time.currentTime not (between(time.sunriseTime, time.sunsetTime))
یا
دو عبارت را در یک عبارت منطقی OR ترکیب می کند.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
false | false | false |
true | false | true |
false | true | true |
نمونه DSL
(time.currentTime equals LocalTime.of(10,0,0,0)) or
(time.currentTime equals LocalTime.of(22,0,0,0))
عملگرها به شما این امکان را می دهند که ارزش ویژگی های صفت را در برابر مقادیر خاص بررسی کنید، آنها را با یکدیگر مقایسه کنید و عبارات مورد استفاده در گره های condition
را ترکیب کنید.
اپراتورها از طریق بیانیه های import
زیر در دسترس هستند:
import com.google.home.automation.and
import com.google.home.automation.between
import com.google.home.automation.contains
import com.google.home.automation.equals
import com.google.home.automation.greaterThan
import com.google.home.automation.greaterThanOrEquals
import com.google.home.automation.lessThan
import com.google.home.automation.not
import com.google.home.automation.notEquals
import com.google.home.automation.or
عملگرهای مقایسه
بین
زمانی که مقدار عبارت 1 بین مقدار عبارت 2 و عبارت 3 (شامل) باشد، به true
ارزیابی می شود. عبارات بسته به نوع داده آنها رتبه بندی متفاوتی دارند. انواع داده های ساده مانند اعداد و رشته ها به همان ترتیبی که در Kotlin هستند رتبه بندی می شوند.
بیان 1 | بیان 2 | بیان 3 | نتیجه |
---|---|---|---|
6 | 1 | 3 | false |
2 | 1 | 3 | true |
نمونه DSL
val time = stateReader<_>(structure, Time)
condition() {
expression = time.currentTime
.between(
time.sunsetTime,
time.sunriseTime)
}
استفاده از تاریخ ها با ()
هنگام استفاده از عملگر between()
می توانید محدوده ای از تاریخ ها را مشخص کنید:
val exp2 =
time.currentDate.between(
LocalDate.of(2025, Month.OCTOBER, 1),
LocalDate.of(2025, Month.DECEMBER, 15),
)
با این حال، شما محدود به تاریخ های کامل نیستید. Automation DSL همچنین به شما امکان می دهد محدوده ای از تاریخ ها را به روش های مختلف بیان کنید:
- فقط با استفاده از سال و ماه:
val exp2 =
time.currentDate.yearMonth.between(
YearMonth.of(2024, Month.OCTOBER),
YearMonth.of(2026, Month.JANUARY),
)
- فقط استفاده از ماه و روز:
val exp2 =
time.currentDate.monthDay.between(
MonthDay.of(Month.OCTOBER, 1),
MonthDay.of(Month.DECEMBER, 15),
)
- فقط از روز ماه استفاده کنید:
val exp2 = time.currentDate.day.between(1, 15)
برابر است
زمانی که عبارت 1 برابر با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | false |
2 | 2 | true |
نمونه DSL
washer.operationalState equals STOPPED
بزرگتر از
زمانی که عبارت 1 بزرگتر از عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | true |
1 | 6 | false |
نمونه DSL
( blindsPosition.currentPositionLift greaterThan 0u )
greaterThanOrEquals
زمانی که عبارت 1 بزرگتر یا مساوی با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
8 | 6 | true |
6 | 6 | true |
1 | 6 | false |
نمونه DSL
( starterNode.measuredValue greaterThanOrEquals 50 )
کمتر از
زمانی که عبارت 1 کمتر از عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | false |
1 | 6 | true |
نمونه DSL
time.currentTime lessThan LocalTime.of(22,0,0,0)
lessThanOrEquals
زمانی که عبارت 1 کمتر یا مساوی با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
8 | 6 | false |
6 | 6 | true |
1 | 6 | true |
نمونه DSL
( starterNode.measuredValue lessThanOrEquals 25 )
notequals
زمانی که عبارت 1 با عبارت 2 برابری نمی کند، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | true |
1 | 6 | true |
2 | 2 | false |
نمونه DSL
occupancyStateChange.occupied notEquals 0
عملگرهای حسابی
اضافه کنید
عملگر جمع ( +
).
نمونه DSL
var totalCount = 0
...
totalCount = totalCount + 1
تفریق
عملگر تفریق ( -
).
نمونه DSL
var countdown = 10
...
countdown = countdown - 1
ضرب کنید
عملگر ضرب ( *
).
نمونه DSL
val millis = seconds * 1000
تقسیم کنید
عملگر تقسیم ( /
).
نمونه DSL
val rpm = revolutions / minutes
عملگرهای منطقی
و
دو عبارت را در یک عبارت AND منطقی ترکیب می کند، زمانی که هر دو عبارت true
هستند، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
false | false | false |
true | false | false |
false | true | false |
true | true | true |
نمونه DSL
((device.occupied notEquals 0) and
time.currentTime.between(time.sunriseTime, time.sunsetTime))
نه
ارزش منطقی یک عبارت را نفی می کند.
بیان | نتیجه |
---|---|
true | false |
false | true |
نمونه DSL
time.currentTime not (between(time.sunriseTime, time.sunsetTime))
یا
دو عبارت را در یک عبارت منطقی OR ترکیب می کند.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
false | false | false |
true | false | true |
false | true | true |
نمونه DSL
(time.currentTime equals LocalTime.of(10,0,0,0)) or
(time.currentTime equals LocalTime.of(22,0,0,0))
عملگرها به شما این امکان را می دهند که ارزش ویژگی های صفت را در برابر مقادیر خاص بررسی کنید، آنها را با یکدیگر مقایسه کنید و عبارات مورد استفاده در گره های condition
را ترکیب کنید.
اپراتورها از طریق بیانیه های import
زیر در دسترس هستند:
import com.google.home.automation.and
import com.google.home.automation.between
import com.google.home.automation.contains
import com.google.home.automation.equals
import com.google.home.automation.greaterThan
import com.google.home.automation.greaterThanOrEquals
import com.google.home.automation.lessThan
import com.google.home.automation.not
import com.google.home.automation.notEquals
import com.google.home.automation.or
عملگرهای مقایسه
بین
زمانی که مقدار عبارت 1 بین مقدار عبارت 2 و عبارت 3 (شامل) باشد، به true
ارزیابی می شود. عبارات بسته به نوع داده آنها رتبه بندی متفاوتی دارند. انواع داده های ساده مانند اعداد و رشته ها به همان ترتیبی که در Kotlin هستند رتبه بندی می شوند.
بیان 1 | بیان 2 | بیان 3 | نتیجه |
---|---|---|---|
6 | 1 | 3 | false |
2 | 1 | 3 | true |
نمونه DSL
val time = stateReader<_>(structure, Time)
condition() {
expression = time.currentTime
.between(
time.sunsetTime,
time.sunriseTime)
}
استفاده از تاریخ ها با ()
هنگام استفاده از عملگر between()
می توانید محدوده ای از تاریخ ها را مشخص کنید:
val exp2 =
time.currentDate.between(
LocalDate.of(2025, Month.OCTOBER, 1),
LocalDate.of(2025, Month.DECEMBER, 15),
)
با این حال، شما محدود به تاریخ های کامل نیستید. Automation DSL همچنین به شما امکان می دهد محدوده ای از تاریخ ها را به روش های مختلف بیان کنید:
- فقط با استفاده از سال و ماه:
val exp2 =
time.currentDate.yearMonth.between(
YearMonth.of(2024, Month.OCTOBER),
YearMonth.of(2026, Month.JANUARY),
)
- فقط استفاده از ماه و روز:
val exp2 =
time.currentDate.monthDay.between(
MonthDay.of(Month.OCTOBER, 1),
MonthDay.of(Month.DECEMBER, 15),
)
- فقط از روز ماه استفاده کنید:
val exp2 = time.currentDate.day.between(1, 15)
برابر است
زمانی که عبارت 1 برابر با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | false |
2 | 2 | true |
نمونه DSL
washer.operationalState equals STOPPED
بزرگتر از
زمانی که عبارت 1 بزرگتر از عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | true |
1 | 6 | false |
نمونه DSL
( blindsPosition.currentPositionLift greaterThan 0u )
greaterThanOrEquals
زمانی که عبارت 1 بزرگتر یا مساوی با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
8 | 6 | true |
6 | 6 | true |
1 | 6 | false |
نمونه DSL
( starterNode.measuredValue greaterThanOrEquals 50 )
کمتر از
زمانی که عبارت 1 کمتر از عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | false |
1 | 6 | true |
نمونه DSL
time.currentTime lessThan LocalTime.of(22,0,0,0)
lessThanOrEquals
زمانی که عبارت 1 کمتر یا مساوی با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
8 | 6 | false |
6 | 6 | true |
1 | 6 | true |
نمونه DSL
( starterNode.measuredValue lessThanOrEquals 25 )
notequals
زمانی که عبارت 1 با عبارت 2 برابری نمی کند، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | true |
1 | 6 | true |
2 | 2 | false |
نمونه DSL
occupancyStateChange.occupied notEquals 0
عملگرهای حسابی
اضافه کنید
عملگر جمع ( +
).
نمونه DSL
var totalCount = 0
...
totalCount = totalCount + 1
تفریق
عملگر تفریق ( -
).
نمونه DSL
var countdown = 10
...
countdown = countdown - 1
ضرب کنید
عملگر ضرب ( *
).
نمونه DSL
val millis = seconds * 1000
تقسیم کنید
عملگر تقسیم ( /
).
نمونه DSL
val rpm = revolutions / minutes
عملگرهای منطقی
و
دو عبارت را در یک عبارت AND منطقی ترکیب می کند، زمانی که هر دو عبارت true
هستند، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
false | false | false |
true | false | false |
false | true | false |
true | true | true |
نمونه DSL
((device.occupied notEquals 0) and
time.currentTime.between(time.sunriseTime, time.sunsetTime))
نه
ارزش منطقی یک عبارت را نفی می کند.
بیان | نتیجه |
---|---|
true | false |
false | true |
نمونه DSL
time.currentTime not (between(time.sunriseTime, time.sunsetTime))
یا
دو عبارت را در یک عبارت منطقی OR ترکیب می کند.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
false | false | false |
true | false | true |
false | true | true |
نمونه DSL
(time.currentTime equals LocalTime.of(10,0,0,0)) or
(time.currentTime equals LocalTime.of(22,0,0,0))
عملگرها به شما این امکان را می دهند که ارزش ویژگی های صفت را در برابر مقادیر خاص بررسی کنید، آنها را با یکدیگر مقایسه کنید و عبارات مورد استفاده در گره های condition
را ترکیب کنید.
اپراتورها از طریق بیانیه های import
زیر در دسترس هستند:
import com.google.home.automation.and
import com.google.home.automation.between
import com.google.home.automation.contains
import com.google.home.automation.equals
import com.google.home.automation.greaterThan
import com.google.home.automation.greaterThanOrEquals
import com.google.home.automation.lessThan
import com.google.home.automation.not
import com.google.home.automation.notEquals
import com.google.home.automation.or
عملگرهای مقایسه
بین
زمانی که مقدار عبارت 1 بین مقدار عبارت 2 و عبارت 3 (شامل) باشد، به true
ارزیابی می شود. عبارات بسته به نوع داده آنها رتبه بندی متفاوتی دارند. انواع داده های ساده مانند اعداد و رشته ها به همان ترتیبی که در Kotlin هستند رتبه بندی می شوند.
بیان 1 | بیان 2 | بیان 3 | نتیجه |
---|---|---|---|
6 | 1 | 3 | false |
2 | 1 | 3 | true |
نمونه DSL
val time = stateReader<_>(structure, Time)
condition() {
expression = time.currentTime
.between(
time.sunsetTime,
time.sunriseTime)
}
استفاده از تاریخ ها با ()
هنگام استفاده از عملگر between()
می توانید محدوده ای از تاریخ ها را مشخص کنید:
val exp2 =
time.currentDate.between(
LocalDate.of(2025, Month.OCTOBER, 1),
LocalDate.of(2025, Month.DECEMBER, 15),
)
با این حال، شما محدود به تاریخ های کامل نیستید. Automation DSL همچنین به شما امکان می دهد محدوده ای از تاریخ ها را به روش های مختلف بیان کنید:
- فقط با استفاده از سال و ماه:
val exp2 =
time.currentDate.yearMonth.between(
YearMonth.of(2024, Month.OCTOBER),
YearMonth.of(2026, Month.JANUARY),
)
- فقط استفاده از ماه و روز:
val exp2 =
time.currentDate.monthDay.between(
MonthDay.of(Month.OCTOBER, 1),
MonthDay.of(Month.DECEMBER, 15),
)
- فقط از روز ماه استفاده کنید:
val exp2 = time.currentDate.day.between(1, 15)
برابر است
زمانی که عبارت 1 برابر با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | false |
2 | 2 | true |
نمونه DSL
washer.operationalState equals STOPPED
بزرگتر از
زمانی که عبارت 1 بزرگتر از عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | true |
1 | 6 | false |
نمونه DSL
( blindsPosition.currentPositionLift greaterThan 0u )
greaterThanOrEquals
زمانی که عبارت 1 بزرگتر یا مساوی با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
8 | 6 | true |
6 | 6 | true |
1 | 6 | false |
نمونه DSL
( starterNode.measuredValue greaterThanOrEquals 50 )
کمتر از
زمانی که عبارت 1 کمتر از عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | false |
1 | 6 | true |
نمونه DSL
time.currentTime lessThan LocalTime.of(22,0,0,0)
lessThanOrEquals
زمانی که عبارت 1 کمتر یا مساوی با عبارت 2 باشد، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
8 | 6 | false |
6 | 6 | true |
1 | 6 | true |
نمونه DSL
( starterNode.measuredValue lessThanOrEquals 25 )
notequals
زمانی که عبارت 1 با عبارت 2 برابری نمی کند، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
6 | 1 | true |
1 | 6 | true |
2 | 2 | false |
نمونه DSL
occupancyStateChange.occupied notEquals 0
عملگرهای حسابی
اضافه کنید
عملگر جمع ( +
).
نمونه DSL
var totalCount = 0
...
totalCount = totalCount + 1
تفریق
عملگر تفریق ( -
).
نمونه DSL
var countdown = 10
...
countdown = countdown - 1
ضرب کنید
عملگر ضرب ( *
).
نمونه DSL
val millis = seconds * 1000
تقسیم کنید
عملگر تقسیم ( /
).
نمونه DSL
val rpm = revolutions / minutes
عملگرهای منطقی
و
دو عبارت را در یک عبارت AND منطقی ترکیب می کند، زمانی که هر دو عبارت true
هستند، به true
ارزیابی می شود.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
false | false | false |
true | false | false |
false | true | false |
true | true | true |
نمونه DSL
((device.occupied notEquals 0) and
time.currentTime.between(time.sunriseTime, time.sunsetTime))
نه
ارزش منطقی یک عبارت را نفی می کند.
بیان | نتیجه |
---|---|
true | false |
false | true |
نمونه DSL
time.currentTime not (between(time.sunriseTime, time.sunsetTime))
یا
دو عبارت را در یک عبارت منطقی OR ترکیب می کند.
بیان 1 | بیان 2 | نتیجه |
---|---|---|
false | false | false |
true | false | true |
false | true | true |
نمونه DSL
(time.currentTime equals LocalTime.of(10,0,0,0)) or
(time.currentTime equals LocalTime.of(22,0,0,0))