Only if bloğu, bir tetikleyici çalıştığında hangi koşulların sağlanması gerektiğini belirtir: “Bunların hepsi sağlanmalı.” Bu bölüm isteğe bağlıdır. Aynı koşullar Bir koşul sağlanana kadar bekle ve Bir koşula göre seç eylemleri tarafından da kullanılır. Koşul ekle seçeneğine tıklayın ve türünü seçin.
Koşullar, kontrol edildikleri anda şu an saklanmış değerleri okur. Yeni bir mesaj gelmesini beklemezler.
| Tür | Sağlandığı durum |
|---|---|
| Bir değer | Bir cihazın en son saklanan değeri, seçilen şekilde karşılaştırılır. |
| Bir cihaz çevrim içi veya çevrim dışı | Cihaz çevrim içi / çevrim dışı durumdadır. |
| Bir alarm etkin | Bir cihaz etkin bir alarma sahip / etkin alarmı yok, isteğe bağlı olarak minimum önem derecesiyle. |
| Bir zaman aralığı | Saat, seçilen haftanın günlerinde Sonra … ve Önce … arasındadır. |
| Gündüz veya gece | Konumda gündüz / gece durumudur. |
| Aylar veya tarihler | Bugün, seçilen aylardan, ayın seçilen günlerinden biri ya da İki tarih arasında olduğu zamandır. |
| Resmi tatil | Bugün resmi tatil / Bugün iş günü. |
| Bir formül | Saklanmış değerler üzerindeki bir formül doğrudur. |
Bir değer
Cihaz, Değer (anahtar), operatör ve değeri seçin:
| Operatör | Anlamı |
|---|---|
| şundan büyük / en az şu kadar | > / >= |
| şundan küçük / en fazla şu kadar | < / <= |
| eşittir / eşit değildir | == / != |
| arasındadır x ile y | x ≤ değer ≤ y |
Sayılar ve sayıya benzer metinler sayı olarak karşılaştırılır; eşittir / eşit değildir diğer her şeyi metin olarak karşılaştırır. Anahtar için saklanmış değeri olmayan bir cihaz koşulu yanlış yapar ve çalıştırma günlüğü nedenini belirtir: “Oda 1 · nem için saklanmış değer yok”. Koşullar telemetri değerlerini okur; cihazın yalnızca bir öznitelik olarak gönderdiği değerin saklanmış bir telemetri değeri yoktur.
Koşullar, yazdığınız sabit değerlerle karşılaştırma yapar. Başka bir cihazın değeriyle veya hesaplanmış bir sınırla karşılaştırmak için Bir formül seçeneğini kullanın.
Bir cihaz çevrim içi veya çevrim dışı
Cihazın mevcut bağlantı durumunu, profilinin çevrim içi kuralına göre okur. Yalnızca son görülme kuralındaki bir cihaz ne çevrim içi ne de çevrim dışıdır, dolayısıyla her iki seçenek de yanlış olur.
Bir alarm etkin
etkin bir alarma sahip koşulu, cihazda açık veya onaylanmış bir alarm varsa ve bir önem derecesi seçtiyseniz en az o dereceде ise doğrudur. Açık alarmlar ile onaylanmış alarmları ayırt etmez; bu yüzden “30 dakika sonra hâlâ onaylanmadıysa” bu yolla kurulamaz; bunun yerine alarm kuralının hatırlatıcılarını kullanın (bkz. Alarm bildirimleri ayrıntılı).
Bir zaman aralığı
Sonra ve Önce, SS:DD biçiminde ve isteğe bağlı olarak haftanın günleri. Aralık Sonra saatini dahil eder, Önce saatini dahil etmez. Aralık gece yarısını geçebilir: 22:00 sonra, 06:00 önce. “Gece yarısından itibaren” için Sonra alanını, “gece yarısına kadar” için Önce alanını boş bırakın.
Gündüz veya gece
Gündüz, konumun bulunduğu yerde günün doğuşu ile batışı arasındadır. Konumu olmayan bir yer bunu yanlış yapar (“yerin konumu yok, bu yüzden gündüz ve gece bilinmiyor”). Kutuplara yakın yerlerde, güneş doğuşu veya batışı olmayan günlerde de yanlıştır.
Aylar veya tarihler
Aşağıdakilerin herhangi bir birleşimi:
- aylar (Ocak’tan Aralık’a),
- ayın günleri (1 ila 31),
- İki tarih arasında: Başlangıç ve Bitiş, ay ve gün olarak, her iki uç dahil. Aralık yılbaşını geçebilir (1 Kasım ile 28 Şubat).
Ayarladığınız her parça sağlanmalıdır. Hiçbiri ayarlanmamışsa: “Bunun hangi ayları, ayın günlerini veya tarihleri kapsadığını belirtin.”; yalnızca bir ucu ayarlandıysa: “Bir tarih aralığı hem ilk hem de son tarihine ihtiyaç duyar.”
Resmi tatil
Bugün resmi tatil, kuruluşunuzun resmi tatil takvimindeki günlerde doğrudur; Bugün iş günü ise diğer her günde doğrudur. “Bugün”, yerin kendi tarihidir. Takvimin nereden geldiği için Zaman, güneş doğuşu/batışı, tarihler ve tatiller sayfasına bakın. Bir tatil takvimi yoksa hiçbir gün tatil değildir.
Bir formül
Bir cihaz adı ve değerlerinden birini köşeli parantez içine yazın, sonra karşılaştırın veya hesaplayın:
[Room 1].[temperature] > [Outdoor].[temperature] + 3
[Tank A].[level] + [Tank B].[level] < 120
[Pump 1].[running] == 1 && [Pump 2].[running] == 1
>,<,==,&&(ve),||(veya),+,-,*ve/ile karşılaştırın ve hesaplayın. Formül kaydetme sırasında kontrol edilir; okunamayan metin “Formül okunamıyor: …” uyarısıyla reddedilir.- Bu değeri ekle, konumdan bir cihaz ve değer ekler.
- Cihazlar adlarıyla anılır ve kuralın ana konumunda olmalıdır. Aynı ada sahip iki cihaz reddedilir: ““…” adında birden fazla cihaz var; birinin adını değiştirin.”
- Yalnızca köşeli parantez içindeki değerler okunabilir: “Bir formül yalnızca köşeli parantez içinde adını verdiğiniz değerleri okur, örneğin [Oda 1].[sıcaklık].”
- En fazla 12 değer ve 500 karakter.
- Henüz saklanmış değeri olmayan bir değer formülü yanlış yapar; cihaz ve değer çalıştırma günlüğünde gösterilir.
- Sayısal bir sonuç, 0 değilse doğru sayılır.
Bir cihazın adını değiştirirseniz, kural kaydedilene kadar kayıtlı olduğu cihazla çalışmaya devam eder; ardından formülün yeni adı kullanması gerekir.
Gruplar
Koşulları birleştirmek için Grup ekle seçeneğine tıklayın:
| Grup | Sağlandığı durum |
|---|---|
| Bunların hepsi sağlanır | her koşul sağlanır |
| Bunlardan biri sağlanır | en az biri sağlanır |
| Bunların hiçbiri sağlanmaz | hiçbiri sağlanmaz |
Gruplar en fazla 4 düzeye kadar iç içe geçebilir; bir grupta en fazla 16 koşul bulunabilir.
Her cihaz veya herhangi bir cihaz
Her profil üzerindeki bir koşul şunu ifade eder:
- Bunların hepsi sağlanır (ve Only if bölümünün üst düzeyinde): konumdaki o profile ait her cihaz bunu sağlamalıdır;
- Bunlardan biri sağlanır içinde: en az bir cihaz sağlamalıdır;
- Bunların hiçbiri sağlanmaz aynı okumayı olumsuzlar (“her cihaz 25’in üzerinde değil”).
Hiç cihazı olmayan bir başvuru yanlış sayılır.
Çalıştırma günlüğü
Bir koşul bir çalıştırmayı durdurduğunda, kuralın Geçmiş bölümü nedenini kelimelerle belirtir: “hepsi” türündeki ilk başarısız koşulu veya başarısız bir “herhangi biri” koşulunun tüm nedenlerini. Kaydetmeden önce aynı metni görmek için düzenleyicide Şimdi test et seçeneğini kullanın.
JSON’da
"onlyIf": { "all": [
{ "kind": "value", "target": { "device": "<id>" }, "key": "temperature", "op": "between", "value": 18, "value2": 24 },
{ "kind": "status", "target": { "device": "<id>" }, "is": "online" },
{ "kind": "alarm", "target": { "home": true }, "active": false, "minSeverity": "major" },
{ "kind": "time", "after": "08:00", "before": "18:00", "days": [1, 2, 3, 4, 5] },
{ "kind": "sun", "is": "night" },
{ "kind": "date", "from": "06-01", "to": "09-30" },
{ "kind": "holiday", "is": false },
{ "not": { "kind": "expr", "expr": "[Room 1].[co2] > 1200" } }
] }

