Veröffentlicht am: Jan 12, 2021

AWS IoT SiteWise unterstützt jetzt die Verwendung von Methoden in Formelausdrücken durch Uniform Function Call Syntax (UFCS).

Benutzer konnten bereits früher Ausdrücke für Transformationen und Metriken in AWS IoT SiteWise mit verschachtelten Funktionen definieren, aber ab heute können sie dies auch durch Verkettung von Methodenaufrufen mit der UFCS-Funktion tun. Diese Syntax hilft bei der Lesbarkeit und Nachvollziehbarkeit von komplexen Formeln für Metriken und Transformationen im AWS IoT SiteWise Asset-Modell. UFCS kann mit allen aktuellen Funktionstypen verwendet werden, die in AWS IoT SiteWise unterstützt werden — allgemeine, Vergleichs-, bedingte, String-, Aggregations- und temporale Funktionen. UFCS kann in der AWS IoT SiteWise-Konsole oder im Command Line Interface (CLI) verwendet werden. Weitere Informationen über UFCS und Funktionstypen finden Sie unter AWS IoT SiteWise Formelausdrücke

Die UFCS-Funktion erlaubt Benutzern, jede mögliche Funktion zu verweisen, die in AWS IoT SiteWise heute f(n) als n.f() mit Methodenaufrufen vorhanden ist. Ganz allgemein können Anwender Funktionen f(a,b,c...) unter Verwendung der Syntax für die Methodenverkettung als a.f(b,c...) ersetzen, wobei 'a' eine Variable oder an sich eine Funktion a= f1(x) sein kann. Wenn ein Benutzer eine Metrik definieren möchte, die den Logarithmus einer Kosinusfunktion, log(cos(a)), zurückgibt, kann er sie jetzt mit UFCS als cos(a).log() ausdrücken. AWS IoT SiteWise unterstützt auch die Verkettung von if-else-Funktionen mit UFCS, wodurch es einfacher wird, mehrere Ebenen verschachtelter bedingter Logik zu definieren und zu verfolgen. Als allgemeines Format wurde eine verschachtelte if-Anweisung früher als geschrieben:

if(condition1, on_true_1, if(condition2, on_true_2, on_false_2))

kann nun auch mit if-elif-Schachtelung unter UFCS-Format geschrieben werden als:

if(condition1, on_true_1). elif(condition2, on_true_2, on_false_2)

Wenn beispielsweise ein Betreiber eines Standorts für erneuerbare Energien testen möchte, ob die Leistung eines Solarpanels innerhalb eines bestimmten Bereichs (1-4 Kilowatt) liegt, hat er die Flexibilität, dies auf zwei Arten zu kodieren - efficiency= if(power.lt(1000),0).elif(power.gt(4000),0,1) unter Verwendung von UFCS oder if(lt(power, 1000), 0, if(gt(power,4000), 0,1)) unter Verwendung verschachtelter Funktionen. Darüber hinaus kann UFCS zur Methodenverkettung mit String-Operationen verwendet werden. Zum Beispiel kann ein Benutzer den Gerätestatus in einer JSON-Nachricht als status= contains(lower(jp(message, '$.status')),'fail') unter Verwendung verschachtelter Funktionen oder status= message.jp('$.status').lower().contains('fail') unter Verwendung der UFCS-Syntax erkennen. Dies ermöglicht eine bessere Rückverfolgbarkeit und Fehlersuche bei Berechnungen mit mehreren Funktionen. 

AWS IoT SiteWise ist ein verwalteter Service, mit dem Sie Daten von industrieller Ausrüstung im größeren Rahmen erfassen, speichern und organisieren können. Weitere Informationen finden Sie auf der Website AWS IoT SiteWise oder im Entwicklerhandbuch. Eine Liste der von AWS IoT SiteWise unterstützten Regionen finden Sie unter AWS-Regionen