3

2 つのタイムスタンプを比較しようとしていますが、その差が x 秒より大きい場合は、「オフライン」を示します。ウィジェットのjsエディターにあるものは次のとおりです。

// Example: Convert temp from C to F and truncate to 2 decimal places.
// return (datasources["MyDatasource"].sensor.tempInF * 1.8 + 32).toFixed(2);
console.log("Checking Time Difference")
var timediff = (new Date) - datasources["ConsentDS"].Timestamp 
console.log(timediff)
if timediff > 1 * 60 * 1000 {
    return 1
} else {
    return 0
}

差が 30 秒を超える場合でも、インジケータは常に「オンライン」のままです。私が期待するようにコンソールに書き込むことすらありません。

ドキュメントが見つからないので、1、true、または象を返す必要があるかどうかさえわかりません:(

4

1 に答える 1

2

したがって、@Donutやおそらく他の人がすぐに気付いたように、私の問題のほとんどはjavascript構文でした。

作業バージョンは次のとおりです。

var ts = new Date(datasources["ConsentDS"].Timestamp).getTime();
var ms = new Date().getTime();
var d = ms - ts;

if (d > 5 * 60 * 1000) {
    return 0;
} else {
    return 1;
}

現在の時刻からデータのタイムスタンプを引いた時間が 30 秒 (30000 ミリ秒) を超える場合、インジケーター ウィジェットの「オフ」ステータスである 0 が返されます。

于 2015-07-15T21:53:26.370 に答える