عملگرها به شما امکان میدهند مقدار ویژگیهای یک صفت را در مقابل مقادیر خاص بررسی کنید، آنها را با یکدیگر مقایسه کنید و عبارات مورد استفاده در گرههای 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
عملگرهای مقایسهای
بین
 وقتی مقدار عبارت ۱ بین مقدار عبارت ۲ و عبارت ۳ (شامل) باشد، مقدار true را برمیگرداند. عبارات بسته به نوع دادهشان، رتبهبندی متفاوتی دارند. انواع دادههای ساده مانند اعداد و رشتهها به همان روشی که در کاتلین رتبهبندی میشوند، رتبهبندی میشوند.
| عبارت ۱ | عبارت ۲ | عبارت ۳ | نتیجه | 
|---|---|---|---|
 6 |  1 |  3 |  false | 
 2 |  1 |  3 |  true | 
مثال DSL
val time = stateReader<_>(structure, Time)
condition() {
  expression = time.currentTime
     .between(
      time.sunsetTime,
      time.sunriseTime)
}
استفاده از تاریخ با استفاده از between()
 هنگام استفاده از عملگر 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)
برابر است
 وقتی عبارت ۱ با عبارت ۲ برابر باشد، مقدار true را برمیگرداند.
| عبارت ۱ | عبارت ۲ | نتیجه | 
|---|---|---|
 6 |  1 |  false | 
 2 |  2 |  true | 
مثال DSL
washer.operationalState equals STOPPED
بزرگتر از
 وقتی عبارت ۱ بزرگتر از عبارت ۲ باشد، مقدار true را برمیگرداند.
| عبارت ۱ | عبارت ۲ | نتیجه | 
|---|---|---|
 6 |  1 |  true | 
 1 |  6 |  false | 
مثال DSL
( blindsPosition.currentPositionLift greaterThan 0u )
بزرگتر یا مساوی
 وقتی عبارت ۱ بزرگتر یا مساوی عبارت ۲ باشد، مقدار true را برمیگرداند.
| عبارت ۱ | عبارت ۲ | نتیجه | 
|---|---|---|
 8 |  6 |  true | 
 6 |  6 |  true | 
 1 |  6 |  false | 
مثال DSL
( starterNode.measuredValue greaterThanOrEquals 50 )
کمتر از
 زمانی که عبارت ۱ کوچکتر از عبارت ۲ باشد، مقدار آن true ارزیابی میشود.
| عبارت ۱ | عبارت ۲ | نتیجه | 
|---|---|---|
 6 |  1 |  false | 
 1 |  6 |  true | 
مثال DSL
time.currentTime lessThan LocalTime.of(22,0,0,0)
کمتر یا مساوی
 وقتی عبارت ۱ کوچکتر یا مساوی عبارت ۲ باشد، مقدار true را برمیگرداند.
| عبارت ۱ | عبارت ۲ | نتیجه | 
|---|---|---|
 8 |  6 |  false | 
 6 |  6 |  true | 
 1 |  6 |  true | 
مثال DSL
( starterNode.measuredValue lessThanOrEquals 25 )
نابرابرها
 وقتی عبارت ۱ با عبارت ۲ برابر نباشد، مقدار true برمیگرداند.
| عبارت ۱ | عبارت ۲ | نتیجه | 
|---|---|---|
 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 است.
| عبارت ۱ | عبارت ۲ | نتیجه | 
|---|---|---|
 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 ترکیب میکند.
| عبارت ۱ | عبارت ۲ | نتیجه | 
|---|---|---|
 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))