Toku의 Illumass SDK를 사용하여 압력 데이터를 쿼리하는 방법

14588 단어 illumassapitokunode
Toku Systems은 압력을 측정하는 장치를 전문으로 하는 IoT 회사입니다. 이러한 장치는 탱크, 파이프라인, 우물 등에 배치할 수 있으며 서버로 이동하는 특정 간격으로 데이터를 수집합니다.

일반적으로 플랫폼에 액세스하여 이 정보에 액세스할 수 있습니다. 플랫폼에는 각 장치의 압력, 온도 및 배터리를 표시하는 사용자 인터페이스와 시간 경과에 따른 변화 차트가 포함되어 있습니다.

이 데이터에 액세스하는 다른 방법은 코드를 통하는 것입니다. 이를 위해 그들은 온라인에서 많은 문서를 찾지 못한 npm 패키지인 @illumass/illumass-sdk 를 사용합니다. 이 문서의 목표는 행운의 독자에게 사용 방법에 대한 개요를 제공하고 시간을 절약하는 것입니다.

Node.js 함수를 사용하여 통신이 어떻게 보이는지 복제할 것이므로 복사하여 붙여넣고 무슨 일이 일어나는지 볼 수 있습니다!

설정



SDK는 @illumass/illumass-sdk라는 npm 패키지이므로 다음을 눌러 설치할 수 있습니다.

npm install @illumass/illumass-sdk


그런 다음 다음과 같이 코드에서 가져올 수 있습니다.

import { Illumass } from "@illumass/illumass-sdk";

const illumass = new Illumass();

async function main() {
  // ... code
}

main();



로그인



글을 쓰는 시점에서 로그인하는 유일한 방법은 사용자와 암호를 사용하는 것으로 보입니다. 마치 플랫폼에 로그인하는 것과 같습니다. API 키를 생성하는 코드가 있는 것 같지만 사용할 방법이 없습니다. 계속해서 사용자와 비밀번호로 로그인하겠습니다.

import { Illumass } from "@illumass/illumass-sdk";

const EMAIL = '';
const PASSWORD = '';
const SESSION_EXPIRATION = '5m'; // this parameter is optional

const illumass = new Illumass();

async function main() {
  try {
    await illumass.connect();
    await illumass.auth.login(EMAIL, PASSWORD, SESSION_EXPIRATION);
    console.log('Successfully connected.');
  } catch (e) {
    console.log(e);
  } finally {
    illumass.disconnect();
    console.log('Disconnected.');
  }
}

main();


사용자와 암호가 올바르지 않으면 실패합니다.

이제 로그인했으므로 쿼리를 시작할 수 있습니다! 데이터를 쿼리하려면 일반적으로 TIPXXXXXX와 같은 일련 번호가 있어야 합니다.

최신 압력, 신호 강도, 배터리 또는 온도 얻기



최신 측정값을 얻으려면 주어진 일련 번호에 대한 모든 측정값을 나열해야 합니다.

다음은 4가지 측정값을 모두 얻는 예입니다.

import { Illumass } from "@illumass/illumass-sdk";

const EMAIL = '';
const PASSWORD = '';
const SESSION_EXPIRATION = '5m'; // this parameter is optional
const SERIAL_NUMBER = 'TIPXXXXXX';

const illumass = new Illumass();

async function main() {
  try {
    await illumass.connect();
    await illumass.auth.login(EMAIL, PASSWORD, SESSION_EXPIRATION);
    console.log('Successfully connected.');

    const result = await illumass.signal.listByHolderKey(`/devices/${SERIAL_NUMBER}`);
    const pressure = result.items.find(item => item.data.signalTypeKey === '/signalTypes/processStaticPressure');
    const signalStrength = result.items.find(item => item.data.signalTypeKey === '/signalTypes/signalStrength');
    const temperature = result.items.find(item => item.data.signalTypeKey === '/signalTypes/deviceTemperature');
    const battery = result.items.find(item => item.data.signalTypeKey === '/signalTypes/batteryVoltage');

    if (pressure) {
      console.log(`Last pressure reading ${pressure.data.status.reading}kPa at ${pressure.data.status.timestamp}`);      
    }

    if (signalStrength) {
      console.log(`Last signal strength reading ${signalStrength.data.status.reading}dBa at ${signalStrength.data.status.timestamp}`);      
    }

    if (temperature) {
      console.log(`Last temperature reading ${temperature.data.status.reading}°C at ${temperature.data.status.timestamp}`);      
    }

    if (battery) {
      console.log(`Last battery reading ${battery.data.status.reading}V at ${battery.data.status.timestamp}`);      
    }

  } catch (e) {
    console.log(e);
  } finally {
    illumass.disconnect();
    console.log('Disconnected.');
  }
}

main();


이것은 항상 필요한 정보를 제공하고 플랫폼의 데이터와 일치해야 합니다!

좋은 웹페이지 즐겨찾기