Jedes Rezept nennt die Bausteine, ihre Einstellungen und wohin sie verdrahtet werden. Rezepte 1 bis 5 und 8 bis 9 kommen in einen Root-Flow auf dem IoT-Host (den mandantenweiten Root oder einen Profil-Root); fügen Sie sie am Ausgang telemetry des Message type-Schalters ein, vor oder nach Save telemetry, wie angegeben. Testen Sie jede Änderung mit Test, bevor Sie sie bereitstellen. Siehe Der Flow-Editor.
1. Einen Wert nur speichern, wenn er sich deutlich ändert
Ein Füllstandssensor meldet alle 10 Sekunden, aber eine Änderung unter 0,5 cm ist nicht relevant.
Message type ─telemetry→ Only changes → Save telemetry
- Only changes: Eigenschaft
msg.payload.level_cm, Modusdeadband, Wert0.5, first an. Key: Standard belassen (ein Speicher pro Gerät). - Datensätze ohne
level_cmsollen trotzdem gespeichert werden: Setzen Sie zuerst einen Switch (Eigenschaftmsg.payload.level_cm, Regelnempty), leiten Sie dessen Regelausgang durch Only changes und seinen otherwise-Ausgang direkt zu Save telemetry.
Dies reduziert gespeicherte Datenpunkte, nicht gezählte Nachrichten. Um Nachrichten zu reduzieren, ändern Sie die Meldeintervalle des Geräts. Siehe Nachrichtenkontingent und Nutzung.
2. Verbrauch eines Zählers, der neu starten kann
Ein Wasserzähler sendet einen steigenden volume_m3-Wert; nach einem Stromausfall beginnt er wieder bei 0.
Message type ─telemetry→ Delta ─out→ Save telemetry
└other→ Save telemetry
- Delta: Eingabe
msg.payload.volume_m3, Ausgabemsg.payload.volume_delta_m3,on_negativezero, seedlatest, round 3.
Für stündlichen oder täglichen Verbrauch können Sie auch den rohen Zählerstand mit dem Aggregat increase darstellen. Siehe Abgeleitete Werte.
3. Alarm, wenn ein Sensor verstummt
Lösen Sie eine Warnung aus, wenn ein Gerät 15 Minuten lang keine temperature-Werte mehr sendet, und heben Sie sie auf, sobald es wieder meldet.
Message type ─telemetry→ Switch (msg.payload.temperature nempty) → Watchdog ─timeout→ Raise alarm
└ok→ Clear alarm
- Watchdog: ms 15 min, key
msg.originator(Standard), repeat aus. - Raise alarm: alarm
temperature_silent, severity warning, textNo temperature for 15 minutes. - Clear alarm: alarm
temperature_silent. - Lassen Sie den Ausgang des Switch auch mit Save telemetry verbunden, oder verdrahten Sie den Watchdog-Zweig neben ihm.
Ein Watchdog beginnt die Überwachung eines Geräts mit dessen erster Nachricht nach der Bereitstellung. Für vollständig offline Geräte verwenden Sie zusätzlich eine Offline-Alarmregel. Siehe Offline-Alarme.
4. Jeden Messwert an Ihren Server weiterleiten
Save telemetry → HTTP request
Erstellen Sie eine HTTP endpoint-Verbindung zuhttps://ingest.example.commit Bearer-Authentifizierung. Siehe Verbindungen und Geheimnisse.
HTTP request: Methode POST, Pfad/readings, bodytemplate, template_formatjson, template:{"device": {{ msg.metadata.deviceName }}, "ts": {{ msg.metadata.recordTs }}, "values": {{ msg.payload }}}
spätsend, sodass auch ein Rückstau nach einem Ausfall weitergeleitet wird.
Verbinden Sie den error-Ausgang der Anfrage mit einem System log-Baustein (Textforward failed: {{ msg.error.code }}).
Eine Verdrahtung nach Save telemetry leitet nur weiter, was gespeichert wurde. Bei vielen Geräten setzen Sie vor der Anfrage einen Batch (count 50) und einen Join (auto, array), um Gruppen zu senden.
5. Ein Statusschlüssel für Standortansichten und Diagramme
Standortansichten färben Räume nach einem status-Schlüssel. Speichern Sie einen daraus abgeleiteten Wert aus der Temperatur:
Message type ─telemetry→ Switch (msg.payload.temperature nempty) → Calculate → Save telemetry
- Calculate: target
msg.payload.status, exprmsg.payload.temperature > 8 ? 2 : (msg.payload.temperature > 6 ? 1 : 0).
Standortansichten zeigen 2 als kritisch und 1 als Warnung an. Als Zahl lässt sich status auch in Diagrammen darstellen und aggregieren. Siehe Standortansichten.
6. Einen Bereitschaftskontakt per E-Mail und SMS benachrichtigen, wenn ein Alarm geöffnet wird
Ein Flow (kein Root) auf dem IoT-Host:
Device message (types: alarm) → Switch (msg.metadata.alarm.transition) ─created→ Rate limit → Notify
- Device message: Typen
alarm(nach Namen anhaken), Profile: diejenigen, die Ihnen wichtig sind. - Switch: Eigenschaft
msg.metadata.alarm.transition, Regeleqcreated. - Rate limit: n 5, per_ms 1 h, mode drop, key
msg.topic(ein Limit für alle). - Notify: Empfänger
addressoncall@example.com,phone+905551112233undroleADMIN(In-App und Push); Titel{{ msg.payload.title }}; TextAlarm on {{ msg.payload.deviceName }}: {{ msg.payload.title }} ({{ msg.payload.severity }}); urgency critical.
Rollen erreichen Mitglieder in der App, per Push und in Chat-Apps; nur Zeilen mit address und phone erhalten E-Mail und SMS. Siehe Alarm-, Befehls- und Benachrichtigungsbausteine.
7. Nachtmodus
Zwei Flows auf einem beliebigen Host schalten einen dritten Flow („Night actions“) um 22:00 ein und um 06:00 aus.
- Flow A: Schedule (daily,
22:00, every day, tzEurope/Istanbul) → Enable or disable a flow (flow: Night actions, state enable). - Flow B: Schedule (daily,
06:00) → Enable or disable a flow (state disable).
Beide benötigen die eingetippte Bestätigung bei der Bereitstellung. Höchstens 6 Schaltvorgänge pro Minute und Organisation.
8. Eine Pumpe zwischen zwei Füllständen schalten
Starten Sie eine Füllpumpe unter 30 % und stoppen Sie sie über 80 %. Zwischen den beiden Werten wird nichts gesendet, sodass die Pumpe nicht ständig schaltet.
Save telemetry → Switch (property msg.payload.level_pct)
─rule 1: lt 30→ Not repeated → Send command pump.set {"on": true}
─rule 2: gt 80→ Not repeated → Send command pump.set {"on": false}
- Switch: Eigenschaft
msg.payload.level_pct, Regelnlt30 (Namelow) undgt80 (Namehigh), stop_first an. Ein Datensatz ohne diesen Schlüssel geht an otherwise und wird ignoriert. - Jeder Not repeated: period 10 min, sodass der Befehl einmal gesendet und höchstens alle 10 Minuten wiederholt wird, solange der Füllstand außerhalb des Bereichs bleibt.
- Send command: der Befehl
pump.setdes Profils mit params{"on": true}bzw.{"on": false}.
Befehle aus Flows sind auf 30 pro Minute und Gerät begrenzt, und eine verspätete Nachricht sendet nichts. Für bedienerseitige Steuerung mit Manuell- und Automatikmodus ist die Karte Rules oft das bessere Werkzeug: Siehe Rules-Karte: Aktionen.
9. Eine binäre Nutzlast dekodieren
Ein Gerät sendet 4 Byte: eine vorzeichenbehaftete Temperatur × 10 und eine vorzeichenlose Luftfeuchtigkeit. Sie kommt als raw (base64) an.
Switch (msg.payload.raw nempty) → Change → Base64 (decode) → Hex (encode) → Bytes (decode) → Save telemetry
- Change:
setmsg.payloadauf den Pfadmsg.payload.raw. - Bytes-Felder:
temperatureoffset 0i16scale 0.1;humidityoffset 2u16.
Siehe Datentransformationsbausteine.
10. Messwerte aus einem anderen System per Webhook übernehmen
Ein externes System sendet JSON an Hermetry, und der Flow leitet es weiter.
- Webhook-Auslöser: auth
hmac, parsejson, replyaccepted. Kopieren Sie die Adresse und das Geheimnis aus dem Dialog Webhooks. - Dann Switch auf
msg.payload.type, Change zum Umformen und eine Aktion: Notify, Webhook, MQTT out oder Set variable.
Standardmäßig bezieht sich die Nachricht eines Webhooks auf die Organisation, nicht auf ein Gerät, daher lehnt Save telemetry sie ab. Um Gerätemesswerte aus einem anderen System einzuspeisen, lassen Sie sie als Gerät über MQTT oder die HTTP-API des Geräts senden. Siehe Geräte-HTTP-API.

