Translate

2020年6月17日水曜日

aws-iot-device-sdk-js を使っている人へ



こんなトラップに引っかかるのは
私だけかもしれませんが..



AWS IoT Core をJavaScriptから使いたくて

(2020/6/17 本記事執筆段階の)公式ドキュメント

AWS IoT Device SDK for JavaScript をインストールする
https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/iot-device-sdk-node.html


にかかれている

git clone https://github.com/aws/aws-iot-device-sdk-js.git

を実行して JavaScript SDK をつかっていた。


実は
この記事を書く1年前ほどから
この JavaScript SDK を使っていたのだけど、

なんとなく
機能がしょぼいなあ..
とか
デバイスシャドウを使うとき
pub/subするためのデバイスのコネクションが一旦切れる
(デバイスシャドウを使い終わるとreconnectする)
なあ..
とか
なんか洗練されていないなあ
ださいなあ..


とおもいながら
使っていた。

で、
昨日重大なことに気づいた。

先程書いた GitHub サイトを
ブラウザで開くと
README.mdの先頭に


New Version Available
A new AWS IoT Device SDK is now available. It is a complete rework, built to improve reliability, performance, and security. We invite your feedback!

This SDK will no longer receive feature updates, but will receive security updates.



..


....


.....最新バージョンじゃないじゃん....


しかも
最新バージョンは
別のリポジトリだと...


公式ドキュメント(これを書いている時点)も
ふるいほうのリポジトリじゃん..

公式ドキュメントの手順だと
このサイトのREADME.mdひらかず
いきなり git clone しろって
書いてあるじゃん..




v2のリポジトリはこちら

[GitHub] aws/aws-iot-device-sdk-js-v2
https://github.com/aws/aws-iot-device-sdk-js-v2




p.s.

v2のサンプル、読みづらい。

jsってかいてるけど
TypeScriptでサンプル書かれてるし..
しかも非同期 async や Promise つかってるし..
yield とかつかってるし..
リファレンスマニュアル全然読みにくいし..


つかってもらおうっていう
おもてなしの心が
まったく感じられん...


ルンバ980の充電がなかなか終わらない件

ITではない記事を書きます。
まあ..IoTの記事..なのか..な..

今回の記事は、自分の推測がかなりはいっています。
それを踏まえて参考にしてください。


ルンバ980を使って4年になるが、
先日ファイアウォール
(此処から先は行くなと指定できる黒い直方体)の電池が切れ、
論場が自力では復活できない場所にはいってしまい、
結果バッテリのほぼすべての電力を使い果たした状態で
とまっていた。

クリーンボタンを押すと、電池マークが赤く点灯するので、
ホームベースに本体を戻して、
翌日の定期清掃開始時間まで充電させることにした。

ホームベースにもどすと
電池マークは橙色の長点滅状態になっており、
充電状態にはいったことは確認している。
#1分ほどで消灯する

そして翌日、あらかじめ指定した時刻にルンバは起動するが、
走行開始時点から
電池マークは赤点灯状態で、
しばらく走行するも
すぐにホームベースにもどってしまった。

そして1時間ほどした頃、
突然また掃除を開始するのだ。

でも電池マークは赤のまま
充電不足でホームベースへ戻る。

これの繰り返し。


これは購入後4年もたつので
バッテリがへたったのだとおもい、
某量販店でバッテリを購入した。
値段、約1万2千円


裏蓋を+バッテリーで開いて
バッテリーを交換、
ホームベースに乗せると、
電池マークが橙色の長点滅に。

このとき
なんか嫌な予感はしていたが、
購入したバッテリの充電は
できていなかったのだろう
まあ翌日の掃除までには
充電できているだろう
と思っていた。

..が
現象は交換前と全く同じ

ホームベースとルンバ本体の接点の接触が悪いのかと
掃除してもだめ。

FAQにあるように前輪をはずして
ホームベースに乗せてもだめだった。


バッテリ交換しても
ルンバが復帰しない..

これは買い替えか..
と思い始めた。


実はルンバを購入したのは
これで2度め。

前回もバッテリがヘタってしまい
交換しても動作しなかったのが
原因だったのだ。


そんなことが2度も起こるか?!


ルンバって、欠陥品じゃないの?



思い
サイトを真剣に検索し始めた。


そしてひとつの未実施の方法を見つけた。

それは

クリアボタンを長押ししてルンバをリセットしてから
ホームベースに乗せて充電する

という方法。

リセットする方法は
なんとなくしっていたが
この減少が起こったのは
バッテリが切れたためなんだから
リセットされているはず

思い込んでいた。


..が、
結局この方法を試すと
翌朝からルンバは正常動作に戻った..



考えてみると
ルンバがとまっていたにもかかわらず
クリアボタンを押すと
電池マークが赤く光った
つまり
バッテリはゼロではなく
ほとんどゼロに近かったのだ。

ルンバには
2種類の充電状態がある。

それは通常の充電、
掃除しおえたルンバがホームベースで行うやつ。

そしてもう一つの充電が
ルンバ購入時にやる初期充電。

ルンバ980は
バッテリ交換したことが判断できず、
リセットをおこなわないと
通常充電ではなく初期充電がはじまらない仕様
なんじゃないか
と。


..そうすると
バッテリ自体も
交換する必要がなかったのではないか..


リセットを実行して
初期充電をしなおしてやれば
復帰できたんじゃないか..

そして先代ルンバも...


..でも
そんな現象
アイロボット社は承知しているはず..

..なのに
そんな注意を明記していないのは..

定期的に新製品を買わせるため..





..という憶測まみれの記事を書いてみました..


p.s.

もしそうなら

さすが

外資系

えげつない商売しやがって..





いいたいが


正しいかどうかは


判断できない...

AWS Glueジョブ(Python/Spark)にPythonパッケージを追加する方法

 AWS Glueジョブには2つの種類が存在します。 ETLジョブ(Spark) PySparkコードが実行できるジョブ。 最低でも10並列で実行するので、DynamicFrame/DataFrame操作以外の処理はPython Shellジョブを使ったほうがよい。 Python...