Luau ist jetzt für Analysis in TagoIO verfügbar. Schreiben Sie Luau-Skripte, die gespeicherte Gerätedaten lesen, neue Werte berechnen und die Ergebnisse mit integrierten Hilfsfunktionen speichern. Ihr Code läuft auf TagoIO, ohne dass Sie ein SDK einbinden oder ein Analysis Token verwalten müssen.
Der letzte Messwert eines Sensors reicht nicht immer aus. Vielleicht benötigen Sie den Durchschnitt der letzten Temperaturmessungen, eine laufende Summe oder einen Status, der aus mehreren Messwerten berechnet wird. Luau ist für solche kleinen, häufigen Aufgaben gedacht, die mit bereits in TagoIO gespeicherten Daten arbeiten. Das Skript übernimmt die Berechnung; Access Management bestimmt, auf welche Ressourcen es zugreifen darf.
Gespeicherte Messwerte in nützliche Werte umwandeln
Ein Sensor im Gewächshaus zeichnet Temperaturen von 24, 26 und 28 °C auf. Eine Luau-Analysis kann diese Datensätze lesen, ihren Durchschnitt berechnen und 26 °C als temperature_avg beim Gerät speichern. Die ursprünglichen Messwerte bleiben erhalten.
Die integrierten Devices-Funktionen übernehmen den Gerätezugriff und die Datenoperationen. Entities liest und schreibt Entity-Zeilen, und Analysis.list findet die Analyses, auf die Ihre Richtlinie den Zugriff erlaubt. Für diese Operationen müssen Sie keinen separaten API-Client konfigurieren.
Weitere nützliche Aufgaben folgen demselben Muster:
- Den Wasserverbrauch aus gespeicherten Impulszählerständen berechnen und das Ergebnis in Litern speichern.
- Aktuelle Messwerte mit einem Schwellenwert vergleichen und eine Variable
statusin das Gerät schreiben. - Einen berechneten Messwert in einer Entity-Zeile speichern oder eine bestehende Zeile aktualisieren.
- Konfigurationsparameter von Geräten lesen und Einstellungen für eine freigegebene Gerätegruppe aktualisieren.
Verwenden Sie einen Payload Parser, wenn Sie nur eingehende Geräte-Payloads umwandeln müssen. Wählen Sie eine Luau-Analysis, wenn Sie dafür auch gespeicherte Daten benötigen, weitere Werte schreiben oder Geräteeinstellungen ändern müssen.
Ergebnisse synchron verarbeiten
Die Geräte- und Entity-Aufrufe von Luau geben ihre Ergebnisse direkt an Ihr Skript zurück. Lesen Sie die Daten, berechnen Sie einen Wert und speichern Sie ihn nacheinander, ohne Promise-Ketten oder Callbacks zu schreiben. Im Gewächshausbeispiel verwendet die Durchschnittsberechnung die vollständig gelesenen Daten. Auch der Schreibvorgang ist abgeschlossen, bevor das Skript fortfährt.
Synchrone Ausführung bedeutet nicht, dass es keine Latenz gibt. Daten zu lesen und Berechnungen auszuführen braucht weiterhin Zeit. Außerdem geben die üblichen Trigger für gehostete Analyses das Skriptergebnis nicht an den Aufrufer zurück.
Aktualisierung vom 15. Oktober 2026: Analysis Endpoints ermöglichen einer Luau-Analysis einen synchronen HTTP-Ablauf aus Anfrage und Antwort. Der Aufrufer wartet auf das Skript und erhält dessen Antwort innerhalb derselben Anfrage. Validieren Sie eine Eingabe, berechnen Sie einen Wert oder lesen Sie Gerätedaten und geben Sie das Ergebnis zurück, sobald das Skript fertig ist. Die Anwendung muss es nicht später separat abrufen.
Runtime-Geschwindigkeit bei gleicher Arbeitslast vergleichen
Ein Vergleich der Verarbeitung von Sensordaten mit verschiedenen Runtimes:
| Runtime | 1.000 Messwerte | 100.000 Messwerte |
|---|---|---|
| Luau 0.728 | 0,74 ms | 30,60 ms |
| Bun 1.4.2 | 19,21 ms | 27,49 ms |
| Deno 2.4.4 | 30,63 ms | 37,87 ms |
| Node.js 24.21.0 | 29,74 ms | 37,98 ms |
| Python 3.13 | 69,70 ms | 138,52 ms |
Jede Runtime nutzt die Version, die TagoIO hostet. Luau läuft direkt in TagoIO, ohne einen eigenen Prozess zu starten, daher umfassen seine Zeiten nur das Skript. Die anderen Runtimes starten bei jeder Ausführung einen neuen Prozess, und bei 1.000 Messwerten macht dieser Start den Großteil ihrer Zeit aus.
Zugriffsregeln ohne Token
Eine Luau-Analysis erhält ihre Berechtigungen über eine Access Management-Richtlinie, nicht über ein Analysis Token. Legen Sie die Analysis direkt oder über eines ihrer Tags als Ziel fest und erlauben Sie dann die benötigten Aktionen auf den vorgesehenen Ressourcen.
Für den Durchschnitt im Gewächshaus erlauben Sie, den Sensor abzurufen, seine Daten zu lesen und den berechneten Wert zu schreiben. Das gewährt keinen Zugriff auf ein anderes Gerät. Lese- oder Schreibvorgänge ohne die erforderliche Berechtigung werden blockiert.
Jedes Skript auf eine Aufgabe begrenzen
Luau läuft ausschließlich auf TagoIO. Es hat keinen ausgehenden Internetzugriff, keine externen Bibliotheken und keinen Dateizugriff. E-Mails, SMS oder Benachrichtigungen kann es nicht direkt versenden.
Wählen Sie Luau für kleine Aufgaben, die sich mit den integrierten Geräte-, Entity- und Analysis-Operationen erledigen lassen, etwa Messwerte zu mitteln und das Ergebnis zu speichern. Wählen Sie Bun, wenn das Skript eine externe API, ein Paket oder andere TagoIO-Ressourcen benötigt.
Soll ein berechneter Wert eine externe Reaktion auslösen, führen Sie diesen Schritt in einer separaten Hilfs-Analysis mit Deno, Node.js oder Python aus. Das Gewächshausskript kann beispielsweise nur dann eine Hilfs-Analysis für Benachrichtigungen starten, wenn der Durchschnitt einen Schwellenwert überschreitet. Analysis.run startet die Hilfs-Analysis, ohne auf ihren Abschluss zu warten, und benötigt die Berechtigung Run Analysis für das Ziel. Eine weitere Luau-Analysis kann es nicht starten.
Luau-Ausführungen werden nicht auf das monatliche Analysis Service-Limit angerechnet. Geräte- und Entity-Operationen unterliegen weiterhin den geltenden Service-, Ressourcen- und Ratenlimits. Die Runtime begrenzt außerdem Ausführungszeit, Arbeitsspeicher und Payload-Größe. Berücksichtigen Sie die Luau-Limits, wenn Sie den Umfang einer Aufgabe planen.
Erste Schritte
Beginnen Sie mit einer neuen Analysis und einem Testgerät, das numerische Messwerte in derselben Einheit enthält.
- Erstellen Sie im Admin eine Analysis und wählen Sie unter Runtime die Option Luau (
luau-rt2026). - Konfigurieren Sie die zugehörige Access Management-Richtlinie, bevor Sie Geräte- oder Entity-Operationen ausführen.
- Öffnen Sie den Script Editor und verwenden Sie das Luau-Beispiel. Speichern Sie Geräte-IDs und Einstellungen in Umgebungsvariablen.
- Speichern Sie das Skript und klicken Sie auf Run. Prüfen Sie die gespeicherten Werte und die Ausgabe in der Console. Verwenden Sie
print(...)für Logs; bei Argumentfehlern wird die ungültige Option angegeben.
Wenn Sie bestehenden Code migrieren, lesen Sie zuerst die Warnhinweise zum Wechsel der Runtime: Beim Wechsel zu Luau wird das vorhandene Analysis Token entfernt.
Die Anleitung zur Luau-Runtime beschreibt die unterstützten Funktionen. Die Ankündigung finden Sie in den Versionshinweisen vom 16. September.