Neu: Die KI-Firewall überwacht jedes Modul und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

Zähler, Statistiken und Watchdogs

Referenz der Blöcke, die sich etwas merken – Counter, Delta, Statistics, Watchdog und Start / Ende – und wie der Blockspeicher auf Hermetry funktioniert.

Einige Blöcke speichern frühere Nachrichten: eine Zählung, den vorherigen Wert, ein Fenster von Werten, den Zeitpunkt der letzten Nachricht. Diese Seite listet diese Blöcke auf und erklärt, wie sich ihr Speicher verhält, was beim Bereitstellen von Änderungen wichtig ist.

So funktioniert der Blockspeicher

RegelDetail
Ein Speicher pro GerätSofern Sie key nicht setzen, behalten diese Blöcke einen eigenen Speicher pro Nachrichtenursprung: Jedes Gerät hat seine eigene Zählung, seinen eigenen vorherigen Wert bzw. seine eigene Überwachung. Setzen Sie key auf msg.topic oder einen anderen Pfad, um anders zu gruppieren.
Übersteht NeustartsSpeicher und wartende Nachrichten werden von der Plattform gehalten; ein Neustart oder ein Wechsel auf einen anderen Worker verliert sie nicht. Wartezeiten werden auf ihren ursprünglichen Fälligkeitszeitpunkt neu gesetzt.
Zurücksetzen bei EinstellungsänderungEin Block behält seinen Speicher bei einer Bereitstellung, wenn sich seine Einstellungen nicht geändert haben. Ein Block, dessen Einstellungen geändert wurden, startet mit einem leeren Speicher (Nachrichten, die er zurückhielt, bleiben erhalten). Ein entfernter Block oder einer, dessen Typ geändert wurde, verliert alles.
Bleibt beim Pausieren erhaltenEin ausgeschalteter oder pausierter Flow behält den Speicher seiner Blöcke; ein gelöschter Flow verliert ihn.
GrößeHöchstens 10.000 Schlüssel pro Block; darüber hinaus wird der älteste Schlüssel vergessen. Zurückgehaltene Nachrichten zählen gegen 16 MiB pro Block.
TestsEin Test startet mit einem leeren Speicher oder mit einer schreibgeschützten Kopie des Live-Speichers, wenn Sie Start from the live state and context aktivieren. Ein Test verändert niemals den Live-Speicher.

Also: Wenn Sie ein Fenster eines Statistics-Blocks ändern, beginnen seine Mittelwerte bei null; wenn Sie nur um ihn herum neu verdrahten, laufen sie weiter.

Counter

Zählt Nachrichten pro Schlüssel, über die gesamte Zeit oder innerhalb eines gleitenden Fensters, und fügt die Zählung der Nachricht hinzu.

EinstellungBedeutungStandardWerte
nDie Zählung, die eine Kopie an reached sendet; leer oder 0 = nieleer0 oder mehr
window_msNur so lange zählen; 0 = alle00 bis 7 Tage
reset_at_nBei Erreichen von n wieder bei 0 beginnenoffon, off
keyJeder Schlüssel hat eine eigene Zählungmsg.originatorein Pfad
storememory, oder persist (im persistenten Kontext des Flows gespeichert)memorymemory, persist

Ausgänge: out (jede Nachricht, mit msg.count), reached (eine Kopie, wenn die Zählung n oder mehr beträgt). msg.reset = true setzt die Zählung des Schlüssels auf 0. Ohne reset_at_n geht jede Nachricht ab der n-ten auch an reached.

Beispiel: „3 Türöffnungen innerhalb von 10 Minuten“: n 3, window_ms 10 min, reset_at_n on, reached → Raise alarm.

Delta

Die Differenz zwischen einer Zahl und der vorherigen Zahl desselben Schlüssels: Verbrauch eines Zählers, Impulse seit dem letzten Bericht.

EinstellungBedeutungStandardWerte
inputDie Zahlmsg.payloadein Pfad
outputWohin die Differenz geschrieben wirdmsg.payload.deltaein Pfad
periodWohin die Millisekunden seit dem vorherigen Wert geschrieben werdennoneein Pfad
roundNachkommastellen, zuerst angewendetnone0 bis 15
on_negativeEin Rückgang (Neustart des Zählers)errorerror (negative_delta), pass (mit seinem Vorzeichen geschrieben), zero
skip_zeroEine Nulldifferenz unverändert weitergeben, ohne sie zu schreibenoffon, off
keyJeder Schlüssel hat seinen eigenen vorherigen Wertmsg.originatorein Pfad
seedDer vorherige Wert der ersten Nachrichtnone (Delta 0)none, latest (der gespeicherte neueste Wert des Geräts)
seed_keyDer gespeicherte Schlüssel, aus dem initialisiert wird (seed = latest)bis zu 128 Zeichen
ts_pathWo die Zeit des Messwerts stehtdie Aufzeichnungszeitein Pfad

Ausgänge: out, other (kein Wert am Eingangspfad), error (not_a_number, negative_delta). Nach einem Rückgang wird der neue Wert in jedem Modus zur Basis. Delta liest pro Nachricht keine Datenbank, daher ist es der effiziente Weg, Verbrauch zu berechnen.

Statistics

Anzahl, Summe, Mittelwert, Minimum, Maximum, Standardabweichung, letzter Wert und Rate über die letzten Werte oder den letzten Zeitraum, pro Schlüssel.

EinstellungBedeutungStandardWerte
propertyDie Zahlmsg.payloadein Pfad
windowcount (die letzten size Werte) oder time (die letzten size ms)countcount, time
sizeAnzahl der Werte, oder das Fenster in ms10count: 1 bis 10.000; time: 1 ms bis 7 Tage
outputsWelche Kennzahlencount, avg, min, maxbeliebige von count, sum, avg, min, max, stddev, last, rate
emiteach pro Nachricht, oder einmal pro vollem Fenster (end_of_window)eacheach, end_of_window
keyJeder Schlüssel hat ein eigenes Fenstermsg.originatorein Pfad

msg.payload wird durch die Kennzahl (eine gewählte Ausgabe) oder ein Objekt mit Kennzahlen ersetzt. rate ist Werte pro Sekunde. Ein Zeitfenster hält höchstens 10.000 Werte. Nach dem Umstellen von window auf time setzen Sie size in Millisekunden: Der Standardwert 10 wären 10 ms. Fehler invalid_value „not a number“.

Beispiel: stündlicher Mittelwert, einmal pro Stunde gesendet: window time, size 3600000, outputs avg, emit end_of_window.

Watchdog

Meldet, wenn Nachrichten ausbleiben: Kommt innerhalb der Zeit keine Nachricht eines Schlüssels an, sendet er eine Timeout-Nachricht; kommen Nachrichten zurück, meldet er auch das.

EinstellungBedeutungStandardWerte
msWie lange ein Schlüssel still sein darf1 min100 ms bis 7 Tage
keyJeder Schlüssel wird einzeln überwachtmsg.originatorein Pfad
repeattimeout alle ms erneut senden, solange es still bleibtoffon, off

Ausgänge:

  • timeout: eine neue Nachricht (ein neuer Lauf) mit msg.payload = dem Schlüssel, msg.topic der letzten Nachricht, msg.timeout_ms und dem Ursprung der letzten Nachricht, sodass Raise alarm damit funktioniert.
  • ok: die erste Nachricht eines Schlüssels nach einem Timeout, unverändert.

Andere Nachrichten werden nicht weitergegeben. Die Überwachung eines Schlüssels beginnt mit seiner ersten Nachricht: Ein Gerät, das nie sendet, wird nicht bemerkt (dafür eine Regel für Offline-Alarme verwenden; siehe Offline-Alarme). Eine verspätete Nachricht (nach einem Ausfall) speist den Watchdog weder, noch löst sie ihn aus, sodass ein Stillstandsalarm nicht anhand alter Messwerte aufgehoben wird. Die Überwachung pro Gerät benötigt key mit dem Gerät: msg.originator (der Standard) oder msg.metadata.deviceId.

Start / Ende

Markiert Beginn und Ende eines Aktivitätszeitraums.

EinstellungBedeutungStandardWerte
msRuhezeit nach der letzten Nachricht, die den Zeitraum beendet1 min0 bis 7 Tage
keyJeder Schlüssel hat einen eigenen Zeitraummsg.originatorein Pfad

Ausgänge: start (eine Kopie der ersten Nachricht eines Zeitraums, sofort), end (die letzte Nachricht, ms nachdem sie eingegangen ist). Nachrichten dazwischen werden nicht weitergegeben.

Variablen als Speicher

Für Werte, die mehrere Blöcke oder Flows teilen, schreiben Sie Variablen mit Set variable oder Change und lesen sie über Pfade:

SpeicherGeltungsbereichGrenze
flow.xDieser Flow1 MiB pro Flow
global.xJeder Flow der Organisation4 MiB pro Organisation
flow.persist:x, global.persist:xDer persistente Speicher desselben Geltungsbereichsinnerhalb derselben Grenzen

Ein Schreibvorgang über einer Grenze schlägt mit limit fehl und behält den alten Wert. Der Reiter Data unter Activity > im Editor zeigt die Werte und wie voll die Speicher sind. Siehe Action-Blöcke.

Timer

Für „wenn nichts es innerhalb von 10 Minuten abbricht, dann tue dies“ flowübergreifend verwenden Sie den Action-Block Timer mit einem Trigger Named timer. Siehe Action-Blöcke und Trigger-Blöcke.