NEQTO Docs
  • Languages icon日本語
    • English
  • ドキュメント
  • API
  • FAQ

›neqto.js

Getting Started

  • NEQTO Hello World!
  • Tutorial Step 1. NEQTO Console設定
  • Tutorial Step 2. デバイス設定とサービスの開始 (NEQTO Bridge)
  • Tutorial Step 2. デバイス設定とサービスの開始 (STM32 Discovery)
  • Tutorial Step 2. デバイス設定とサービスの開始 (SPRESENSE)
  • Tutorial Step 3. スクリプトを使ったアプリケーション開発

NEQTO

  • NEQTO アカウント登録
  • サブアカウント
  • APIの利用
  • GCP用NEQTO CloudSync
  • NEQTO Engineファームウェアリスト
  • お問い合わせに関するガイドライン

NEQTO Console

  • はじめに
  • 基本情報
  • 管理者専用の操作
  • デバイス管理
  • Linuxデバイス管理
  • 一括登録
  • スクリプト
  • アクション & コンタクト
  • Consoleでデータを表示
  • NEQTO Apps

    • NEQTO Apps について
    • NEQTO Infinitypool
    • NEQTO Insights
    • NEQTO Custodia
    • NEQTO Flow
  • Machine Driver
  • 推奨ブラウザ
  • 請求情報

SPRESENSE

    ハードウェア仕様

    • 01. About Spresense

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. Spresense Wi-Fi 初期設定
    • 04. Spresense LTE-M 初期設定
    • 05. デバッグログ取得方法
    • 06. システムLED動作
    • 07. イベントメッセージ
    • 08. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. GPIO
    • 12. UART
    • 13. SPI
    • 14. I2C
    • 15. ADC
    • 16. GNSS
    • 17. Camera
    • 18. Utils
    • 19. nqSpresense
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte

STM32 Discovery

    ハードウェア仕様

    • 01. About STM32 Discovery Kit (B-L4S5I-IOT01A)

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. STM32 Discovery Wi-Fi 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 18. Utils
    • 19. nqDiscovery
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi

NEQTO Bridge

    ハードウェア仕様

    • 01. NEQTO Bridge Module
    • 02. NEQTO Bridge Wi-Fi Module
    • 03. NEQTO Bridge LTE-1 Module
    • 04. NEQTO Bridge LTE-M/NB Module
    • 05. NEQTO Bridge IO Board
    • 06. NEQTO Bridge Digital IO Board
    • 07. NEQTO Bridge Connector Board

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. NEQTO Bridge Wi-Fi Module 初期設定
    • 03. NEQTO Bridge LTE Module 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 17. BLE
    • 18. Utils
    • 19. nqBridge
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte
    • 25. nqLAN
    • 26. nqEx

Linux-based device

    ソフトウェア仕様

    • 01. システム要件
    • 02. インストール
    • 03. ソフトウェア構成
    • 04. 動作フロー
    • 05. デバッグログ取得方法
    • 06. イベントメッセージ
    • 07. ソフトウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. RTC
    • 10. UNIXSocket
    • 11. FileSystem
    • 12. SubProcess
    • 13. Utils
    • 14. nqLinux
    • 15. nqService
    • 16. nqMqtt
    • 17. nqFOTA
    • 18. nqLAN

neqto.js Libraries

  • About neqto.js Libraries
  • UART

    • GM65 Barcode Reader
    • SRF Ultrasonic Range Finder - Serial Mode

    I2C

    • HTS221 v2 Temperature and Humidity Sensor
    • LIS2DW12 v2 Accelerometer
    • SRF Ultrasonic Range Finder - I2C Mode
    • [Archive] HTS221 Temperature and Humidity Sensor
    • [Archive] LIS2DW12 Accelerometer

    Utils

    • RTC Alarm Synchronized Scheduler

    Integration

    • AWS S3 v2
    • AWS IoT Core v2
    • Azure IoT v2
    • GCP IoT Core
    • [Archive] AWS S3
    • [Archive] AWS IoT Core

neqto.js Snippets

  • About neqto.js Snippets
  • DataDog
  • Dropbox
  • Google Sheets
  • InfluxDB
  • Oracle Cloud Object Storage
  • Salesforce
  • SAP Cloud Platform Internet of Things
  • Splunk
  • Niagara

Release Notes

  • NEQTO Console アップデート
  • NEQTO Firmware (Bridge Wi-Fi/LTE Module) リリース
  • NEQTO Firmware (STM32 Discovery Wi-Fi) リリース
  • NEQTO Firmware (Spresense Wi-Fi/LTE-M) リリース
  • NEQTO Engine Linux版 リリース

16. nqMqtt

nqMqttオブジェクトは、NEQTO ConsoleとのMQTT通信機能を提供する組み込みオブジェクトです。

機能概要:

  • NEQTO Console上のコンポーネントへLwM2Mデータを送信する機能を提供します。
  • NEQTO Consoleからのプッシュ通知(カスタムメッセージ)を受信する機能を提供します。



nqMqtt Global Object

Methods()/PropertiesSummaryVersionNote
nqMqtt.on()イベントハンドラを登録します。
nqMqtt.publish()NEQTO Consoleにメッセージをパブリッシュします。
nqMqtt.end()nqMqttを終了します。
nqMqtt.isConnected()接続状態を取得します。
nqMqtt.isReconnecting()再接続中状態を取得します。
nqMqtt.canPublish()パブリッシュ可否状態を取得します。
nqMqtt.get() ⁽¹⁾指定されたフォーマットのLwM2Mデータを取得します。
nqMqtt.get() ⁽²⁾指定されたフォーマットのLwM2Mデータを取得します。



Details

nqMqtt.on(event,callback)

イベントハンドラを登録します。

NameTypeM/OSummaryNote
eventstringmandatoryイベント名
使用できるイベント名は、push, connect, reconnect, close, errorとなります。
callback()functionmandatoryイベント発生時にコールバック処理を実行します。
returnundefined--

event: ’push’

NEQTO Consoleからカスタムメッセージのプッシュ通知を受信した時にコールバック処理を実行します。
コールバック処理の引数は以下の通りです。

ArgumentsTypeSummaryNote
messagestring受信したメッセージ
最大380バイトの文字列です。
最大バイト数を超えた場合、そのメッセージは破棄されます。

event: ’connect’

MQTT接続、再接続が成功した時にコールバック処理を実行します。
スクリプト起動前にMQTT接続が完了している場合があります。その場合、コールバックは実行されません。
コールバック処理の引数は以下の通りです。

ArgumentsTypeSummaryNote
connackObjectconnackは受信したconnack packetの内容となります。
この引数を使用する必要はありません。

event: ’reconnect’

MQTTの再接続が開始された時にコールバック処理を実行します。

event: ’close’

MQTTが切断された時にコールバック処理を実行します。

event: ’error’

エラーが発生した時、またはMQTTの接続が失敗した時などにコールバック処理を実行します。
コールバック処理の引数は以下の通りです。

ArgumentsTypeSummaryNote
err{MqttError}エラー情報

nqMqtt.publish(topic,message[,options][,callback])

NEQTO Consoleにメッセージをパブリッシュします。

NameTypeM/OSummaryNote
topicnullmandatoryトピック名
常にnullを設定してください。
messageObject, stringmandatoryパブリッシュするメッセージ
nqMqtt.get() ⁽¹⁾ ⁽²⁾ により取得したLwM2Mデータを指定します。
尚、一度にパブリッシュ可能なメッセージサイズは2500バイト未満とする必要があります。許容サイズを超えた場合は引数エラーとなり、.on('error')のコールバック処理が実行されます。
optionsObjectoptionalパブリッシュのオプション
未使用。省略してください。
callback(err)functionoptionalパブリッシュ処理終了時にコールバック処理を実行します。
err : {MqttError}
エラー情報
引数のerr.codeが0の場合、成功となります。
returnundefined, {MqttError}-{MqttError} : 引数不正エラーや切断等で要求が受け付けられなかった場合、{MqttError}が返却されます。

注意 : パブリッシュ実行中、処理終了コールバック処理が実行される前に、次のパブリッシュを行うと、後者のパブリッシュデータが破棄される場合があります。パブリッシュを行う前に、現在パブリッシュが処理中であるか確認する又は.canPublish()を使用してパブリッシュの可否を確認することをお勧めします。

パブリッシュするメッセージの結合について

nqMqtt.get() ⁽¹⁾ ⁽²⁾ により取得したLwM2Mデータを最大4つまで結合してパブリッシュすることが可能です。
但し、メッセージの許容サイズを超えないように注意してください。

下記は、nqMqtt.get('LwM2MObject*')で取得したLwM2Mオブジェクトデータを結合し、パブリッシュするサンプルです。各LwM2Mオブジェクトデータを配列化し、メッセージに指定します。

var utime = Date.now();
var obj1 = nqMqtt.get('LwM2MObject', utime, 3303, 0, 5700, 'Float', '25.0');
var obj2 = nqMqtt.get('LwM2MObject', utime, 3304, 0, 5700, 'Float', '50.0');
var obj3 = nqMqtt.get('LwM2MObject', utime, 3313, 0, 5702, 'Float', '0.01', 5703, 'Float', '0.02', 5704, 'Float', '0.03', 'G');

var pubObj = [obj1, obj2, obj3];

nqMqtt.publish(null, pubObj, function(err) {
    if(err.code == 0) {
        print('Publish OK');
    } else {
        print('Publish failed');
    }
});

下記は、nqMqtt.get('LwM2MArgStr*')で取得したLwM2M文字列データを結合し、パブリッシュするサンプルです。各LwM2M文字列データを','区切りで結合し、メッセージに指定します。

var utime = Date.now();
var str1 = nqMqtt.get('LwM2MArgStr', utime, 3303, 0, 5700, 'Float', '25.0');
var str2 = nqMqtt.get('LwM2MArgStr', utime, 3304, 0, 5700, 'Float', '50.0');
var str3 = nqMqtt.get('LwM2MArgStr', utime, 3313, 0, 5702, 'Float', '0.01', 5703, 'Float', '0.02', 5704, 'Float', '0.03', 'G');

var pubStr = str1 + ',' + str2 + ',' + str3;

nqMqtt.publish(null, pubStr, function(err) {
    if(err.code == 0) {
        print('Publish OK');
    } else {
        print('Publish failed');
    }
});

nqMqtt.end([callback])

nqMqttを終了します。
このメソッドはスクリプトを終了させる必要がある場合のみ、使用してください。

NameTypeM/OSummaryNote
callback()functionoptionalnqMqtt終了時にコールバック処理を実行します。
returnundefined--

nqMqtt.isConnected()

MQTTの接続状態を取得します。

NameTypeM/OSummaryNote
returnboolean-MQTTの接続状態
true: MQTT接続済み
false: MQTT接続済みでない

nqMqtt.isReconnecting()

MQTTの再接続中状態を取得します。

NameTypeM/OSummaryNote
returnboolean-MQTTの再接続中状態
true: MQTT再接続中
false: MQTT再接続中でない

nqMqtt.canPublish()

MQTTのパブリッシュ可否状態を取得します。

NameTypeM/OSummaryNote
returnboolean-MQTTのパブリッシュ可否状態
true: パブリッシュできる状態
false: パブリッシュできない状態

nqMqtt.get(format,timestamp,objId,insId,resId,datatype,value[,resId2,datatype2,value2][,resId3,datatype3,value3][,resId4,datatype4,value4][,unit])

指定されたフォーマットのLwM2Mデータを取得します。

オプション指定により、タイムスタンプ、オブジェクトID、インスタンスID、単位が同一で、リソースID、データ種別、値がそれぞれ異なるデータを最大4つまで連結したLwM2Mデータを生成することが可能です。

オブジェクトID、インスタンスID、リソースID及びデータ種別については、こちらを参照してください。
尚、この設定値はNEQTO Console上のコンポーネント設定と合わせる必要があります。

NameTypeM/OSummaryNote
formatstringmandatoryLwM2Mデータフォーマット名を指定します。
'LwM2MObject', 'LwM2MObjectS',
'LwM2MArgStr', 'LwM2MArgStrS',
'LwM2MString', 'LwM2MStringS'
timestampnumbermandatoryタイムスタンプ
unixtime[ms]を指定します。
objIdnumbermandatoryオブジェクトID
LwM2Mによって定義されているIDを使用します。
insIdnumbermandatoryインスタンスID
同じリソース/オブジェクトIDのペアが複数ある場合、それらを区別するために使用されます。
resIdnumbermandatoryリソースID
LwM2Mによって定義されているIDを使用します。
datatypestringmandatoryデータ種別
LwM2Mによって定義されているデータ種別を使用します。
('Float', 'Integer', 'String', 'Boolean')
valuestringmandatory値
文字列型の値を指定します。
数値型のデータを参照する場合は、文字列に変換して指定してください。
resId2numberoptional2つ目のリソースID
resIdと同様です。
resId, resId2, resId3, resId4はそれぞれに異なる値を指定する必要があります。
datatype2stringoptional2つ目のデータ種別
datatypeと同様です。
value2stringoptional2つ目の値
valueと同様です。
resId3numberoptional3つ目のリソースID
resIdと同様です。
resId, resId2, resId3, resId4はそれぞれに異なる値を指定する必要があります。
datatype3stringoptional3つ目のデータ種別
datatypeと同様です。
value3stringoptional3つ目の値
valueと同様です。
resId4numberoptional4つ目のリソースID
resIdと同様です。
resId, resId2, resId3, resId4はそれぞれに異なる値を指定する必要があります。
datatype4stringoptional4つ目のデータ種別
datatypeと同様です。
value4stringoptional4つ目の値
valueと同様です。
unitstringoptional単位
単位を表す任意文字列を指定します。
undefinedが指定された場合は単位を使用しません。
('G', 'm', 's', 'ms', ...)
デフォルト値はundefinedとなります。
returnObject,
string,
undefined
-戻り値の型はformatで決定されます。
'LwM2MObject*'を指定した場合はObject型、
'LwM2MArgStr*'を指定した場合はstring型、
'LwM2MString*'を指定した場合はstring型、
作成が失敗した場合はundefinedが返却されます。

下記は使用例となります。

var obj = nqMqtt.get('LwM2MObject', Date.now(), 3303, 0, 5700, 'Float', '23.4');
var arg = nqMqtt.get('LwM2MArgStr', Date.now(), 3303, 0, 5700, 'Float', '23.4');
var str = nqMqtt.get('LwM2MString', Date.now(), 3303, 0, 5700, 'Float', '23.4');

var obj = nqMqtt.get('LwM2MObject', Date.now(), 3313, 0, 5702, 'Float', '0.01', 5703, 'Float', '0.02', 5704, 'Float', '0.03', 'G');
var arg = nqMqtt.get('LwM2MArgStr', Date.now(), 3313, 0, 5702, 'Float', '0.01', 5703, 'Float', '0.02', 5704, 'Float', '0.03', 'G');
var str = nqMqtt.get('LwM2MString', Date.now(), 3313, 0, 5702, 'Float', '0.01', 5703, 'Float', '0.02', 5704, 'Float', '0.03', 'G');

format : ’LwM2MObject’, ’LwM2MObjectS’

nqMqtt.publish()のmessageで使用するLwM2Mオブジェクトデータを作成します。

’LwM2MObjectS’は個人情報保護モードを使用する際に指定します。

format : ’LwM2MArgStr’, ’LwM2MArgStrS’

nqMqtt.publish()のmessageで使用するLwM2M文字列データを作成します。
文字列を扱う他オブジェクト機能との連携に活用できます。

’LwM2MArgStrS’は個人情報保護モードを使用する際に指定します。

format : ’LwM2MString’, ’LwM2MStringS’

nqServiceの一括送信メソッドで使用するLwM2M文字列データを作成します。

’LwM2MStringS’は個人情報保護モードを使用する際に指定します。

個人情報保護モードについて

個人情報保護モードを指定した場合、値(value)部分が暗号化されます。
個人情報保護モードでフォーマットされたLwM2MデータはNEQTO Consoleへ送信された後、NEQTO Console上のデータストレージに暗号化された状態で格納され、値を読み出す際に復号表示されます。
尚、個人情報保護モードを使用する場合は、事前にNEQTO Console上のコンポーネント設定で個人情報保護モードを有効に設定する必要があります。

nqMqtt.get(format,timestamp,component1[,component2[,component3[,component4]]])

指定されたフォーマットのLwM2Mデータを取得します。

オプション指定により、タイムスタンプが同一で、オブジェクトID、インスタンスID、単位、リソースID、データ種別、値がそれぞれ異なるデータを最大4つまで連結したLwM2Mデータを生成することが可能です。

NameTypeM/OSummaryNote
formatstringmandatoryLwM2Mデータフォーマット名を指定します。
'LwM2MObjectA', 'LwM2MArgStrA', 'LwM2MStringA'
timestampnumbermandatoryタイムスタンプ
unixtime[ms]を指定します。
component1Arraymandatoryコンポーネントデータ配列
component2Arrayoptionalコンポーネントデータ配列
component3Arrayoptionalコンポーネントデータ配列
component4Arrayoptionalコンポーネントデータ配列
returnObject,
string,
undefined
-戻り値の型はformatで決定されます。
'LwM2MObjectA'を指定した場合はObject型、
'LwM2MArgStrA'を指定した場合はstring型、
'LwM2MStringA'を指定した場合はstring型、
作成が失敗した場合はundefinedが返却されます。

下記は使用例となります。

var component1 = [3303, 0, 5700, 'Float', '0.1'];
var component2 = [3303, 1, 5700, 'Float', '0.2', 'deg'];
var component3 = [3300, 0, 5700, 'Integer', '123', '%', 1];
var component4 = [3341, 0, 5527, 'String', 'ABC', , 1];
var obj = nqMqtt.get('LwM2MObjectA', Date.now(), component1, component2, component3, component4);
var arg = nqMqtt.get('LwM2MArgStrA', Date.now(), component1, component2, component3, component4);
var str = nqMqtt.get('LwM2MStringA', Date.now(), component1, component2, component3, component4);

format : ’LwM2MObjectA’

nqMqtt.publish()のmessageで使用するLwM2Mオブジェクトデータを作成します。

format : ’LwM2MArgStrA’

nqMqtt.publish()のmessageで使用するLwM2M文字列データを作成します。
文字列を扱う他オブジェクト機能との連携に活用できます。

format : ’LwM2MStringA’

nqServiceの一括送信メソッドで使用するLwM2M文字列データを作成します。

コンポーネントデータ配列 : [objId,insId,resId,datatype,value,unit,privacyMode]

オブジェクトID、インスタンスID、リソースID及びデータ種別については、こちらを参照してください。
尚、この設定値はNEQTO Console上のコンポーネント設定と合わせる必要があります。

IndexNameTypeM/OSummaryNote
0objIdnumbermandatoryオブジェクトID
LwM2Mによって定義されているIDを使用します。
1insIdnumbermandatoryインスタンスID
同じリソース/オブジェクトIDのペアが複数ある場合、それらを区別するために使用されます。
2resIdnumbermandatoryリソースID
LwM2Mによって定義されているIDを使用します。
3datatypestringmandatoryデータ種別
LwM2Mによって定義されているデータ種別を使用します。
('Float', 'Integer', 'String', 'Boolean')
4valuestringmandatory値
文字列型の値を指定します。
数値型のデータを参照する場合は、文字列に変換して指定してください。
5unitstringoptional単位
単位を表す任意文字列を指定します。
undefinedが指定された場合は単位を使用しません。
('G', 'm', 's', 'ms', ...)
デフォルト値はundefinedとなります。
6privacyModenumberoptional個人情報保護モード
1: 有効
0: 無効
デフォルト値は0となります。



Appendix

オブジェクトID、インスタンスID、リソースID及びデータ種別

NEQTO Consoleでは、リソースIDによってデータ表示形式及びグラフを選択することができます。
オブジェクトIDは使用可能なIDの中から任意に選択します。
オブジェクトIDとリソースIDの組み合わせについては、LwM2M仕様を参考にしてください。
インスタンスIDは、同じリソースIDとオブジェクトIDの組み合わせが複数ある場合、それらを区別するために使用します。
データ種別は、リソースIDに関連して定義されています。

NEQTO ConsoleでサポートしているオブジェクトID、リソースID及びデータ種別は下記となります。

NameオブジェクトID
汎用センサー3300
照度3301
温度3303
湿度3304
加速度3313
磁力3314
電流3317
圧力3323
酸性度(pH)3326
伝導度3327
距離3330
カラー3335
位置3336
テキスト表示3341
On/Offスイッチ3342
マルチステートセレクター3348
NameリソースIDデータ表示形式データ種別
デジタル入力ステート5500Boolean
デジタル入力カウンター5501Float,
Integer
緯度5514String
経度5515String
テキスト5527String
マルチステート入力5547Float,
Integer
センサ値5700Float,
Integer
X軸5702Float,
Integer
Y軸5703Float,
Integer
Z軸5704Float,
Integer
カラー5706String
アプリケーションタイプ5750Float,
Integer

以下は温度センサ、湿度センサ、加速度センサの凡例です。

//value,Xvalue,Yvalue,Zvalueは任意の数値文字列です

var timestamp = Date.now();

//温度センサ (オブジェクトID:温度, リソースID:センサ値, データ種別:Float)
nqMqtt.get('LwM2MObject', timestamp, 3303, 0, 5700, "Float", value);

//湿度センサ (オブジェクトID:湿度, リソースID:センサ値, データ種別:Float)
nqMqtt.get('LwM2MObject', timestamp, 3304, 0, 5700, "Float", value);

//加速度センサ (オブジェクトID:加速度, リソースID:X/Y/Z軸, データ種別:Float)
nqMqtt.get('LwM2MObject', timestamp, 3313, 0, 5702, "Float", Xvalue, 5703, "Float", Yvalue, 5704, "Float", Zvalue);

{MqttError}

Methods()/PropertiesTypeSummaryNote
.codenumberエラーコード
詳細はmqtt errors tableを参照してください。
.messagestringエラー内容
詳細はmqtt errors tableを参照してください。

mqtt errors table

下記は、エラーコード表となります。
✓は通知先のコールバックを示します。

.code.messageNote.on('error',cb).publish(cb)
0OKエラーなし✓
1Connection failed接続(再接続)失敗✓
10Illegal argument引数不正エラー✓✓
11Disconnected切断エラー
12Publish failedパブリッシュ失敗✓✓
13Subscribe failedサブスクライブ登録失敗✓
14Unsubscribe failedサブスクライブ解除失敗✓
255Other errorその他のエラー✓



オブジェクトの使用例

Sample 1

nqMqtt.get() ⁽¹⁾を使用したサンプルです。
3軸加速度データ、温度データ、カラーデータをNEQTO Consoleへパブリッシュします。
又、​NEQTO Consoleから受信したカスタムメッセージを表示します。

//==============================================================
// nqMqtt event handler
//==============================================================
nqMqtt.on('connect', function(connack) {
    print(Date() + ': nqMqtt connect');
});
nqMqtt.on('close',function() {
    print(Date() + ': nqMqtt close');
});
nqMqtt.on('error', function(error) {
    print(Date() + ': nqMqtt error: ' + error.code.toString());
});
nqMqtt.on('push', function(message) {
    print(Date() + ': nqMqtt push: ' + message);
    //TODO: Custom message handling from NEQTO
});

//==============================================================
// Main routine
//==============================================================
//Publish "Acceleration"
while(!nqMqtt.canPublish()) { setTimeout(100).wait(); }
var x = (1.0).toFixed(1); /* dummy X value */
var y = (1.1).toFixed(1); /* dummy Y value */
var z = (1.2).toFixed(1); /* dummy Z value */
var utime = Date.now();
var acceObj = nqMqtt.get('LwM2MArgStr', utime, 3313, 0, 5702, 'Float', x, 5703, 'Float', y, 5704, 'Float', z);
nqMqtt.publish(null, acceObj, function(err) {
    if(err.code == 0) {
        print('publish OK');
    } else {
        print('publish NG');
    }
});

//Publish "Temperature"
while(!nqMqtt.canPublish()) { setTimeout(100).wait(); }
var temp = (20.2).toFixed(1); /* dummy Temperature */
var utime = Date.now();
var tempObj = nqMqtt.get('LwM2MArgStr', utime, 3303, 0, 5700, 'Float', temp);
nqMqtt.publish(null, tempObj, function(err) {
    if(err.code == 0) {
        print('publish OK');
    } else {
        print('publish NG');
    }
});

//Publish "Color"
while(!nqMqtt.canPublish()) { setTimeout(100).wait(); }
var color = '#FFFF99'; /* dummy Color */
var utime = Date.now();
var colorObj = nqMqtt.get('LwM2MArgStr', utime, 3335, 0, 5706, 'String', color);
nqMqtt.publish(null, colorObj, function(err) {
    if(err.code == 0) {
        print('publish OK');
    } else {
        print('publish NG');
    }
});

Sample 2

nqMqtt.get() ⁽²⁾を使用したサンプルです。
同じタイムスタンプの温度データと湿度データをNEQTO Consoleへ一度にパブリッシュします。
又、​NEQTO Consoleから受信したカスタムメッセージを表示します。

//==============================================================
// nqMqtt event handler
//==============================================================
nqMqtt.on('connect', function(connack) {
    print(Date() + ': nqMqtt connect');
});
nqMqtt.on('close',function() {
    print(Date() + ': nqMqtt close');
});
nqMqtt.on('error', function(error) {
    print(Date() + ': nqMqtt error: ' + error.code.toString());
});
nqMqtt.on('push', function(message) {
    print(Date() + ': nqMqtt push: ' + message);
    //TODO: Custom message handling from NEQTO
});

//==============================================================
// Main routine
//==============================================================
//Publish "Temperature" and "Humidity"
while(!nqMqtt.canPublish()) { setTimeout(100).wait(); }
var temp = (20.4).toFixed(1); /* dummy Temperature */
var humi = (52.5).toFixed(1); /* dummy Humidity */
var msg = nqMqtt.get('LwM2MArgStrA', Date.now(), [3303, 0, 5700, 'Float', temp], [3304, 0, 5700, 'Float', humi]);
nqMqtt.publish(null, msg, function(err) {
    if(err.code == 0) {
        print('publish OK');
    } else {
        print('publish NG');
    }
});



Updated: 2022-09-01
← 前次 →
  • nqMqtt Global Object
  • Details
    • nqMqtt.on(event,callback)
    • event: ’push’
    • event: ’connect’
    • event: ’reconnect’
    • event: ’close’
    • event: ’error’
    • nqMqtt.publish(topic,message[,options][,callback])
    • パブリッシュするメッセージの結合について
    • nqMqtt.end([callback])
    • nqMqtt.isConnected()
    • nqMqtt.isReconnecting()
    • nqMqtt.canPublish()
    • nqMqtt.get(format,timestamp,objId,insId,resId,datatype,value[,resId2,datatype2,value2][,resId3,datatype3,value3][,resId4,datatype4,value4][,unit])
    • format : ’LwM2MObject’, ’LwM2MObjectS’
    • format : ’LwM2MArgStr’, ’LwM2MArgStrS’
    • format : ’LwM2MString’, ’LwM2MStringS’
    • 個人情報保護モードについて
    • nqMqtt.get(format,timestamp,component1[,component2[,component3[,component4]]])
    • format : ’LwM2MObjectA’
    • format : ’LwM2MArgStrA’
    • format : ’LwM2MStringA’
    • コンポーネントデータ配列 : [objId,insId,resId,datatype,value,unit,privacyMode]
  • Appendix
    • オブジェクトID、インスタンスID、リソースID及びデータ種別
    • {MqttError}
    • mqtt errors table
  • オブジェクトの使用例
    • Sample 1
    • Sample 2
NEQTO とはニュースサービスFAQプライバシーポリシー}
NEQTO Console
はじめに基本情報管理者専用の操作デバイス管理NEQTO Apps
NEQTO Bridge
NEQTO Bridge ピン配置NEQTO Bridge Wi-Fi ModuleNEQTO Bridge LTE-1 Moduleデバッグログ取得方法イベントメッセージ
APIのドキュメント
APIの利用グローバル APIリージョン APIAPIサービス利用規約
Jigsaw, Inc.
© 2023 JIG-SAW INC.