ऑटोमेशन

automations Struct ऑटोमेशन स्क्रिप्ट का मुख्य हिस्सा होता है. यहीं से ऑटोमेशन का तरीका तय होता है. जैसे, स्टार्टर, शर्तें और कार्रवाइयां. इन सभी को एक साथ ऑटोमेशन नियम भी कहा जाता है.

automations Struct में एक या उससे ज़्यादा ऑटोमेशन नियम होते हैं. हर नियम में हमेशा स्टार्टर और कार्रवाइयों का एक सेट होता है. कभी-कभी नियम में कुछ और शर्तेें भी हो सकती हैं. स्क्रिप्ट को चलाने के लिए, इन अतिरिक्त शर्तों का पूरा होना ज़रूरी है.

कुंजी समस्या ब्यौरा

name

स्ट्रिंग

ज़रूरी नहीं

ऑटोमेशन का नाम.

यह उपयोगकर्ताओं को नहीं दिखता. यह सिर्फ़ डेवलपर के लिए है.

starters

[स्टार्टर]

ज़रूरी है

स्टार्टर की सूची.

condition

Condition

ज़रूरी नहीं

Condition

actions

[कार्रवाई]

ज़रूरी है

कार्रवाइयों की सूची

उदाहरण

यहां automations Struct के दो शुरुआती उदाहरण दिए गए हैं.

पहले उदाहरण में, "My TV" नाम का TV चालू होने पर ऑटोमेशन शुरू होता है.

ट्रिगर होने के बाद, ये कार्रवाइयां की जाती हैं:

Two LIGHT डिवाइस, जिनका नाम "Light A" और "Light B" है, चालू किए जाते हैं और उनकी रोशनी का लेवल 50 पर सेट किया जाता है.

automations:
- name: Dim the lights
  starters:
  - type: device.state.OnOff
    device: My TV - Living Room
    state: on
    is: true
  actions:
  - type: device.command.OnOff
    devices:
    - Light A - Living Room
    - Light B - Living Room
    on: true
  - type: device.command.BrightnessAbsolute
    devices:
    - Light A - Living Room
    - Light B - Living Room
    brightness: 50

दूसरे उदाहरण में, हर सोमवार और गुरुवार को वही ऑटोमेशन सूरज ढलते ही शुरू हो जाता है:

automations:
- name: Dim the lights
  starters:
  - type: time.schedule
    at: SUNSET
    weekday:
    - MONDAY
    - THURSDAY
    state: on
    is: true
  actions:
  - type: device.command.OnOff
    devices:
    - Light A - Living Room
    - Light B - Living Room
    on: true
  - type: device.command.BrightnessAbsolute
    devices:
    - Light A - Living Room
    - Light B - Living Room
    brightness: 50

स्टार्टर

स्टार्टर Struct वह जगह है जहां यह तय किया जाता है कि ऑटोमेशन स्क्रिप्ट किन स्टार्टर पर शुरू होगी. हर automation में एक या उससे ज़्यादा स्टार्टर हो सकते हैं. आगे की शर्तें तब ही देखी जाएंगी, जब कम से कम एक स्टार्टर true हो.

time.schedule स्टार्टर का एक उदाहरण:

type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE

डिवाइस की स्थिति में बदलाव होने पर स्टार्टर का एक उदाहरण:

type: device.state.Volume
device: My TV - Living Room
state: currentVolume
greaterThan: 1
lessThan: 10

डिवाइस इवेंट पर स्टार्टर का एक उदाहरण:

type: device.event.DoorbellPress
device: My doorbell - Frontdoor

होम प्रेज़ेंस मोड में बदलाव होने पर स्टार्टर का एक उदाहरण:

type: home.state.HomePresence
state: homePresenceMode
is: HOME

स्टार्टर की पूरी सूची देखें.

Condition

ज़्यादा पेचीदा तर्क दिखाने के लिए, शर्तों को and, or, और not के साथ मिलाकर लिखा जा सकता है.

यहां दिए गए उदाहरण में, एक condition Struct है. इसमें एक time शर्त और एक device.state शर्त है. यह Struct स्क्रिप्ट को तब चलने देता है जब सोमवार या मंगलवार को सूरज ढलने से लेकर सूरज निकलने तक का समय हो, या फिर टीवी की आवाज़ 1 से 10 के बीच सेट हो:

type: or
conditions:
- type: time.between
  before: sunrise
  after: sunset
  weekdays:
  - MON
  - TUE
- type: device.state
  device: My TV - Living Room
  trait: Volume
  state: currentVolume
  greaterThanOrEqualTo: 1
  lessThanOrEqualTo: 10

time शर्त का एक बुनियादी उदाहरण. इसमें, ऑटोमेशन स्क्रिप्ट को हफ़्ते के आखिरी दिनों में सुबह 10:00 बजे से पहले तक ही चलाया जा सकता है:

type: time.between
before: 10am
weekdays:
- SAT
- SUN

थर्मोस्टैट डिवाइस के सेंसर के तापमान की शर्त:

type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatTemperatureAmbient
greaterThan: 65F

home.state.HomePresence शर्त का एक उदाहरण:

type: home.state.HomePresence
state: homePresenceMode
is: AWAY

शर्तों की पूरी सूची देखें.

कार्रवाइयां

स्टार्टर और शर्तों की तरह, हर कार्रवाई में type होता है. इससे पता चलता है कि किस तरह की कार्रवाई तय की जा रही है.

सबसे अहम और सबसे ज़्यादा काम आने वाले कमांड टाइप, device.command हैं. लाइट बंद करने की कार्रवाई का एक उदाहरण.

type: device.command.OnOff
devices:
- Light A - Living Room
on: false

एक से ज़्यादा कार्रवाइयों के बीच देरी जोड़ने की कार्रवाई.

type: time.delay
for: 5min

कार्रवाइयों की पूरी सूची देखें.