Der Block Only if legt fest, was erfüllt sein muss, wenn ein Auslöser feuert: „Alle davon müssen zutreffen.“ Er ist optional. Dieselben Bedingungen verwenden die Aktionen Warten, bis etwas zutrifft und Nach Bedingung wählen. Klicken Sie auf Bedingung hinzufügen und wählen Sie die Art der Bedingung.
Bedingungen lesen die jetzt gespeicherten Werte zum Zeitpunkt der Prüfung. Sie warten nicht auf eine neue Nachricht.
| Art | Trifft zu, wenn |
|---|---|
| Ein Wert | Der zuletzt gespeicherte Wert eines Geräts vergleicht sich wie gewählt. |
| Ein Gerät ist online oder offline | Das Gerät ist online / ist offline. |
| Ein Alarm ist aktiv | Ein Gerät hat einen aktiven Alarm / hat keinen aktiven Alarm, optional mit einer minimalen Schwere. |
| Ein Zeitfenster | Die Uhrzeit liegt nach … und vor …, an gewählten Wochentagen. |
| Tag oder Nacht | Es ist Tag / Es ist Nacht am Ort. |
| Monate oder Datumsangaben | Heute liegt in gewählten Monaten, an gewählten Tagen des Monats oder zwischen zwei Daten. |
| Ein Feiertag | Heute ist ein Feiertag / Heute ist ein Werktag. |
| Eine Formel | Eine Formel über gespeicherte Werte ist wahr. |
Ein Wert
Wählen Sie das Gerät, den Wert (Schlüssel), den Operator und den Vergleichswert:
| Operator | Bedeutung |
|---|---|
| ist größer als / ist mindestens | > / >= |
| ist kleiner als / ist höchstens | < / <= |
| ist / ist nicht | == / != |
| liegt zwischen x und y | x ≤ Wert ≤ y |
Zahlen und zahlenähnlicher Text werden als Zahlen verglichen; ist / ist nicht vergleichen alles andere als Text. Ein Gerät ohne gespeicherten Wert für den Schlüssel macht die Bedingung falsch, und das Ausführungsprotokoll nennt den Grund: „Raum 1 · Luftfeuchte hat keinen gespeicherten Wert“. Bedingungen lesen Telemetriewerte; ein Wert, den das Gerät nur als Attribut sendet, hat keinen gespeicherten Telemetriewert.
Bedingungen vergleichen mit festen Werten, die Sie eingeben. Um mit dem Wert eines anderen Geräts oder mit einem berechneten Grenzwert zu vergleichen, verwenden Sie Eine Formel.
Ein Gerät ist online oder offline
Liest den aktuellen Verbindungsstatus des Geräts gemäß der Online-Regel seines Profils. Ein Gerät mit Nur zuletzt gesehen ist weder online noch offline, daher sind beide Auswahlmöglichkeiten falsch.
Ein Alarm ist aktiv
hat einen aktiven Alarm trifft zu, wenn das Gerät einen offenen oder bestätigten Alarm hat, mit mindestens der gewählten Schwere, falls Sie eine festlegen. Es unterscheidet nicht zwischen bestätigten und offenen Alarmen, daher kann „falls nach 30 Minuten noch unbestätigt“ so nicht gebaut werden; verwenden Sie stattdessen die Erinnerungen der Alarmregel (siehe Alarmbenachrichtigungen im Detail).
Ein Zeitfenster
Nach und Vor als HH:MM, optional mit Wochentagen. Das Fenster schließt Nach ein und Vor aus. Ein Fenster darf über Mitternacht reichen: nach 22:00, vor 06:00. Lassen Sie Nach leer für „ab Mitternacht“, Vor leer für „bis Mitternacht“.
Tag oder Nacht
Tag ist die Zeit zwischen Sonnenaufgang und Sonnenuntergang am Standort des Orts. Ein Ort ohne Standort macht es falsch („der Ort hat keinen Standort, daher sind Tag und Nacht unbekannt“). In der Nähe der Pole, an Tagen ohne Sonnenauf- oder -untergang, ist es ebenfalls falsch.
Monate oder Datumsangaben
Beliebige Kombination aus:
- Monaten (Januar bis Dezember),
- Tagen des Monats (1 bis 31),
- Zwischen zwei Daten: Von und Bis als Monat und Tag, beide eingeschlossen. Das Fenster darf den Jahreswechsel überschreiten (1. Nov. bis 28. Feb.).
Jeder gesetzte Teil muss zutreffen. „Geben Sie an, um welche Monate, Tage des Monats oder Daten es geht.“, wenn nichts gesetzt ist; „Ein Datumsfenster braucht sowohl das erste als auch das letzte Datum.“, wenn nur ein Ende gesetzt ist.
Ein Feiertag
Heute ist ein Feiertag trifft an den Tagen des Feiertagskalenders Ihrer Organisation zu; Heute ist ein Werktag trifft an allen übrigen Tagen zu. „Heute“ ist das eigene Datum des Orts. Woher der Kalender stammt, steht unter Zeit, Sonnenauf- und -untergang, Daten und Feiertage. Ohne Feiertagskalender ist kein Tag ein Feiertag.
Eine Formel
Schreiben Sie einen Gerätenamen und einen seiner Werte in eckigen Klammern und vergleichen oder berechnen Sie:
[Room 1].[temperature] > [Outdoor].[temperature] + 3
[Tank A].[level] + [Tank B].[level] < 120
[Pump 1].[running] == 1 && [Pump 2].[running] == 1
- Vergleichen und berechnen Sie mit
>,<,==,&&(und),||(oder),+,-,*und/. Die Formel wird beim Speichern geprüft; nicht lesbarer Text wird mit „Die Formel kann nicht gelesen werden: …“ abgelehnt. - Diesen Wert hinzufügen fügt ein Gerät und einen Wert aus dem Ort ein.
- Geräte werden über ihren Namen angesprochen und müssen im Heimatbereich der Regel liegen. Zwei Geräte mit demselben Namen werden abgelehnt: „Mehr als ein Gerät heißt „…“; benennen Sie eines davon um.“
- Es können nur die Werte in eckigen Klammern gelesen werden: „Eine Formel liest nur die Werte, die Sie in eckigen Klammern nennen, wie [Raum 1].[Temperatur].“
- Höchstens 12 Werte und 500 Zeichen.
- Ein Wert, zu dem noch nichts gespeichert ist, macht die Formel falsch; Gerät und Wert stehen dann im Ausführungsprotokoll.
- Ein Zahlenergebnis gilt als wahr, wenn es nicht 0 ist.
Wenn Sie ein Gerät umbenennen, arbeitet die Regel weiter mit dem Gerät, mit dem sie gespeichert wurde, bis die Regel erneut gespeichert wird; danach muss die Formel den neuen Namen verwenden.
Gruppen
Klicken Sie auf Gruppe hinzufügen, um Bedingungen zu kombinieren:
| Gruppe | Trifft zu, wenn |
|---|---|
| Alle davon treffen zu | jede Bedingung trifft zu |
| Eine davon trifft zu | mindestens eine trifft zu |
| Keine davon trifft zu | keine trifft zu |
Gruppen können bis zu 4 Ebenen tief verschachtelt werden, mit höchstens 16 Bedingungen in einer Gruppe.
Jedes Gerät oder ein beliebiges Gerät
Eine Bedingung auf Jedes Profil bedeutet:
- in Alle davon treffen zu (und in der obersten Ebene von Only if): jedes Gerät dieses Profils im Ort muss sie erfüllen;
- in Eine davon trifft zu: mindestens eines muss sie erfüllen;
- Keine davon trifft zu negiert dieselbe Aussage („nicht jedes Gerät liegt über 25“).
Ein Verweis ohne jegliches Gerät ist falsch.
Das Ausführungsprotokoll
Wenn eine Bedingung einen Lauf stoppt, nennt der Verlauf der Regel den Grund in Worten: die erste nicht erfüllte Bedingung eines „alle“, oder jeden Grund einer nicht erfüllten Bedingung „eine davon“. Verwenden Sie im Editor Jetzt testen, um vor dem Speichern denselben Text zu sehen.
In JSON
"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" } }
] }

