長い時間でならすと、ほぼ五分五分の確率のようです。
両方撮れる時の方が少ない印象です。
センスウェイ前田建設さんの投稿
-
RE: Logtta CO2に接続できない原因
ビーコンモードにしない場合は、必ず接続処理を行う必要があるということですね。
本日ビーコンモードと通常モード(?)両方を試しておりますが、
最初のうちはペリフェラルを受信できていたのですが、
ある時から全然受信できなくなってしまいました。
ゲートウェイとLogttaは並べて置いてあり、距離が遠いからということはなさそうです。この原因と回避方法はありますでしょうか。
-
iBS01Tのペリフェラル取りこぼしにつきまして
Obniz Wi-Fi GatewayとiBS01T(2台)と、LogttaCO2(1台)を並べて置いてある状態で、Obnizに接続後startWait(null, { duplicate: true, duration: null })で継続的にスキャンをかけてます。
5分に一度iBS01Tからペリフェラルを受信しておりますが、
頻繁に片側が受信できません。
交互に取りこぼすわけでもなく、必ず取れる方と取れたり取れない方で明確に分かれます。
さらにLogttaからの受信は20分スキャンしておりますが、一度も受信できておりません。このような現象は何故起こるのでしょうか。
回避する方法はないものでしょうか。 -
RE: Logtta CO2に接続できない原因
ご連絡ありがとうございます。
やはりconnectWaitの後onfinishが呼ばれることになりますが、この時Logttaとのやりとり中の場合の振る舞いを返る必要がありそうですね。
それとLogttaCO2にはビーコンモードというのがあるようなのですが、これを利用するとiBS01Tのようにonfindの引数(peripheral)から値(co2)が取れるという認識でよろしいでしょうか。
iBS01Tの場合は温度や湿度が取れます。
Logttaへの接続処理が不要になるイメージですか? -
RE: Logtta CO2に接続できない原因
ご連絡ありがとうございます。
1つめのエラーは単純にLogttaとの接続不良で、2つめのエラーはscan接続に起因するものですね。
これはconnectWaitの結果を待ってから再接続する必要があると。
3つめは上記2つのエラーに対して正しく対処してない為Gatewayから切断されたということでよろしいでしょうか。 -
RE: Logtta CO2に接続できない原因
連投すいません。
別のトピックでリトライをかけると良いとのことでしたので、5回ほどリトライするも全て失敗しました。
同じエラーの中に以下のエラーが出る時もあります。(node:16765) UnhandledPromiseRejectionWarning: ObnizBleScanStartError: startScanning enable=true was failed. Maybe Connection to a device is under going. state=12(Command Disallowed ) at Gap.setScanEnabledWait (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/central/gap.js:243:19) at processTicksAndRejections (internal/process/task_queues.js:93:5) at async Gap.startScanningWait (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/central/gap.js:66:9) at async NobleBindings.startScanningWait /path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/central/bindings.js:69:9) at async BleScan.startWait (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/bleScan.js:113:9) (Use `node --trace-warnings ...` to show where the warning was created) (node:16765) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2) (node:16765) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. connectWait Exception: ObnizBleHciStateError: Connection Failed to be Established / Synchronization Timeout {"peripheralAddress":"f0ab544cf013"} at NobleBindings.onDisconnComplete (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/central/bindings.js:186:27) at Hci.emit (/path/to/app/node_modules/eventemitter3/index.js:203:33) at Hci.onHciEventData (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/hci.js:860:18) at Hci.onSocketData (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/hci.js:926:18) at ObnizBLEHci.notified (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/hci.js:68:22) at ObnizBLE.notifyFromObniz (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/ble.js:120:22) at Obniz.notifyToModule (/path/to/app/node_modules/obniz/dist/src/obniz/ObnizComponents.js:262:37) at Obniz.notifyToModule (/path/to/app/node_modules/obniz/dist/src/obniz/ObnizDevice.js:149:15) at Obniz.wsOnMessage (/path/to/app/node_modules/obniz/dist/src/obniz/ObnizConnection.js:406:26) at WebSocket.emit (events.js:315:20) { code: 10, state: 62 }
元のトピックと上記が混ざって出てくるのですが、しばらくすると下記のエラーが連続します。
ObnizTimeoutError: Receive data timeout. Waiting for readAclStream handle:0 cid:4 firstData:2 at Timeout.onTimeout [as _onTimeout] (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/hci.js:162:28) at listOnTimeout (internal/timers.js:554:17) at processTimers (internal/timers.js:497:7) { code: 2, waitingFor: 'readAclStream handle:0 cid:4 firstData:2' }
以上です。併せてご確認よろしくお願い致します。
-
Logtta CO2に接続できない原因
BLE Wi-Fi Gatewayを経由してLogtta_CO2に接続しようとしております。
以下の環境を利用しております。❯ npm -v
6.14.10❯ tsc -v
Version 4.1.3"obniz": "^3.13.0",
"obniz-cloud-sdk": "^0.1.0"処理の流れと致しましては、下記のようになります。
obniz.ble.scan.startWait()については、duration: nullとしております。
行数が長くなるので、try catchはだいぶ省いております。const obniz = new Obniz(device.id) obniz.onconnect = async () => { console.log("onconnect:") const LOGTTA_CO2 = Obniz.getPartsClass("Logtta_CO2") await obniz.ble.initWait() obniz.ble.scan.onfind = async (peripheral) => { if (LOGTTA_CO2.isDevice(peripheral)) { const logtta = new LOGTTA_CO2(peripheral) logtta.ondisconnect = async (reason: any) => { console.log("Logtta_CO2 ondisconnect") console.log(reason) } console.log("connectWait") await logtta.connectWait() console.log("connected") console.log("getWait") const co2 = await logtta.getWait() console.log(`co2=${co2}`) } await obniz.ble.scan.startWait(null, { duration: null }) console.log("First startWait") }
この結果、Logtta_CO2にconnectWait()した段階でobniz.ble.scan.onfinishが呼ばれているようです。
onconnect First startWait connectWait onfinish Reconnect startWait connectWait Exception: ObnizBleHciStateError: Connection Failed to be Established / Synchronization Timeout {"peripheralAddress":"f0ab544cf058"} at NobleBindings.onDisconnComplete (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/central/bindings.js:186:27) at Hci.emit (/path/to/app/node_modules/eventemitter3/index.js:203:33) at Hci.onHciEventData (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/hci.js:860:18) at Hci.onSocketData (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/hci.js:926:18) at ObnizBLEHci.notified (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/hci.js:68:22) at ObnizBLE.notifyFromObniz (/path/to/app/node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/ble.js:120:22) at Obniz.notifyToModule (/path/to/app/node_modules/obniz/dist/src/obniz/ObnizComponents.js:262:37) at Obniz.notifyToModule (/path/to/app/node_modules/obniz/dist/src/obniz/ObnizDevice.js:149:15) at Obniz.wsOnMessage (/path/to/app/node_modules/obniz/dist/src/obniz/ObnizConnection.js:406:26) at WebSocket.emit (events.js:315:20) { code: 10, state: 62 }
この原因は何が考えられるでしょうか。