投稿日: Jan 21, 2021

AWS IoT SiteWise が日付と時間の関数をサポートするようになり、AWS IoT SiteWise アセットモデルのメトリクス変換の計算でグローバルタイムゾーンを使用できるようになりました。日付と時間の式を使用して、機器データの現在のタイムスタンプを UTC (協定世界時) またはローカルタイムゾーンで取得すること、年、月、日、時刻などの入力パラメータでタイムスタンプを構築すること、および特定のタイムスタンプ値から年や月などのさまざまな時間フィールドを抽出することができるようになりました。AWS IoT SiteWise でサポートされる日付と時間の関数を以下に示します。

現在時刻の取得 - AWS IoT SiteWise は、現在のタイムスタンプを 2 つの方法で取得できる時間関数をサポートするようになりました。
now() - この関数を使用して、エポック形式または 1970 年 1 月 1 日 12:00 am (UTC) からの経過時間 (秒) で時間を取得できます。.
timestamp() - この関数を使用して、変換の入力メッセージおよびメトリクスの現在のウィンドウの終了タイムスタンプタイムスタンプを UTC エポック秒で取得できます。

ローカル時間の抽出 - localtime (epoch_seconds、timezone)
この関数を使用して、さまざまなタイムゾーンのアセットデータを表現できます。ローカルタイムゾーンは、タイムゾーンのプレフィックス ('UTC'、'CET') を指定するか、時間でタイムゾーンのオフセット ('UTC+01:00') を指定することによって構築できます。サンプルのカスタマーユースケースとして、トルコに工場と設備を持つ自動車メーカーを考えてみます。データは UTC で記録されています。マネージャーは、SiteWise の式 localtime(timestamp(), ‘TRT’) を使ってローカルタイムゾーンで時間を抽出できます。ここで、TRT はトルコのタイムゾーンの事前定義済みのプレフィックスです。これは、後でローカルタイムゾーンでデータを可視化するために使用できます。サポートされるタイムゾーンのリストについては、AWS IoT SiteWise でサポートされるタイムゾーンを参照してください。

時間フィールドの抽出 - year()、mon()、yday()、mday()、wday()、hour()、minute()、sec()
これらの関数を使用して、ローカル時間オブジェクトからさまざまな時間コンポーネント (年、月、年の日、月の日、曜日、時間、分、秒) を抽出できます。例として、オレゴン州にある医療機器プラントのフロアマネージャーが週の各日の平均生産性を計算する場合を考えてみます。この場合、メトリクスは productivity_Monday=if(timestamp().localtime('PST').wday().eq(1), avg(productivity), none) として定義できます。これは、後で一日単位の生産性を比較するために使用できます。wday() 関数は、0 ~ 6 の整数形式で曜日を返します (0 が日曜日を表します)。

時間の構築 - mktime()
この関数を使用して、人が判読できる日付形式 (年、月、曜日など) から UTC エポック秒 (浮動小数点) を構築できます。例えば、2021 年 1 月 19 日 4:31:39 UTC をエポック秒で表現する場合は、 mktime() 関数を使用して、mktime(‘UTC’, 2021, 1, 19, 4, 31, 39.00) と定義します。

日付と時間の関数のリストおよび例については、AWS IoT SiteWise の式を参照してください。

AWS IoT SiteWise は、産業機器からのデータの大規模な収集、保存、整理、およびモニタリングを実行するためのマネージドサービスです。詳細については、AWS IoT SiteWise ウェブサイトまたはデベロッパーガイドをご覧ください。 AWS IoT SiteWise がサポートされているリージョンのリストについては、AWS リージョンをご覧ください。