Skip to main content

Ubidots 統合 (TTS 経由)

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Ubidots は、コードを書くことなく、またはソフトウェア開発チームを雇うことなく、IoT アプリケーションを迅速に組み立てて展開できるローコード IoT アプリケーション開発プラットフォームです。現在、40,000 以上のアプリケーションが Ubidots を利用して接続されています。

IoT アプリケーション構築の需要が高まる中、私たちは Ubidots と協力し、SenseCAP T1000 Tracker を The Things Network を通じて簡単に Ubidots に追加できるよう、コミュニティをサポートしています。

pir

セットアップを開始する前に、まず SenseCAP T1000 を TTS に接続する を確認し、SenseCAP T1000 Tracker を TTS に接続してください。

Ubidots の設定

まず、Ubidots にアカウントを作成してください。

Ubidots アカウントにログインし、ダッシュボードの上部にある「Devices」タブを見つけます。そのドロップダウンリストから「Plugins」を選択します。

Ubidots プラグイン

+ または Create Data Plugin ボタンをクリックして、新しいプラグインを作成します。

pir

利用可能なプラグインが表示されたら、The Things Stack プラグインを選択します。

pir

次に、Ubidots トークンを選択する必要があります。Default token を使用することも、新しいトークンを作成することもできます。

pir

新しいトークンを作成するには、まず右上のアバターをクリックし、API Credentials を選択します。その後、Default token の下にある More を選択し、API Credentials ページ内で新しいトークンを追加します。

pir

> を選択して続行し、チェックマークをクリックして完了します。

pir

デコーダーの設定

プラグインを作成したら、デコーダーセクションに移動し、すべてのコードを削除して以下のコードに置き換えます。

pir

const HOTSPOT_INFO = false;

// エラーが存在する場合の処理
function handleErrorIfExists(data){
const error = 'error' in data;
if (error) {
const errorMsg = { "error": { "value": data.errorCode, "context" : { "reason": data.error } } };
return errorMsg;
}
return false;
}

// 緯度を追加
function addLat(lat, ubidotsPayload){
ubidotsPayload.position.context.lat = lat;
}

// 経度を追加
function addLng(lng, ubidotsPayload){
ubidotsPayload.position.context.lng = lng;
}

const coordinateActions = {
"Longitude": addLng,
"Latitude": addLat,
}

// ペイロードキーの割り当て
const assignPayloadKeys = (data, ubidotsPayload) => {
const { type, measurementValue } = data;

if (type === "Longitude" || type === "Latitude") {
if (!ubidotsPayload.position) {
ubidotsPayload.position = { "value": 1, "context": { "lat": undefined, "lng": undefined } };
}
coordinateActions[type](measurementValue, ubidotsPayload);
}
else if (data.type === "Timestamp") {
ubidotsPayload.timestamp = data.measurementValue;
}
else {
ubidotsPayload[type] = measurementValue;
}
};

// Ubidots ペイロードの構築
function buildUbidotsPayload(data){
const ubidotsPayload = {};
data.forEach(innerData => {
innerData.forEach(innerInnerData => {
assignPayloadKeys(innerInnerData, ubidotsPayload);
});
});
return ubidotsPayload;
}

// ペイロードのフォーマット
async function formatPayload(args){

const data = args.uplink_message.decoded_payload.messages;
let ubidotsPayload = {};

const error = handleErrorIfExists(data[0][0]);
if (error) return error;

if (HOTSPOT_INFO) {
const { hotspots, port, fcnt } = args;
const { snr, rssi } = hotspots[0];
Object.assign(ubidotsPayload, { SNR: snr, RSSI: rssi, port, 'Frame Counter': fcnt });
}
ubidotsPayload = buildUbidotsPayload(data);
console.log(ubidotsPayload);
return ubidotsPayload;
};

module.exports = { formatPayload };

The Things Stack の設定

Ubidots 上でのセットアップを準備したら、Ubidots Webhook テンプレートを使用して The Things Stack 上で Webhook 統合を作成する必要があります。

The Things Stack で、IntegrationsWebhooks に移動し、Add Webhook をクリックします。

pir

Ubidots Webhook テンプレートを選択します。

pir

Webhook ID を入力して統合に名前を付け、Plugin ID と Ubidots トークンの値を貼り付けます。

pir

info

Plugin ID を見つけるには、新しく作成したプラグインをクリックし、左側の Decoder タブに移動します。Plugin ID は HTTPs エンドポイント URL の一部として表示されます(以下の画像でハイライトされています)。

pir

データの監視

統合を完了した後、Devices メニューに移動します。エンドデバイスがアップリンクメッセージを送信すると、エンドデバイスリストに表示されます。

pir

Loading Comments...