2021年08月08日

【スマートホーム】え?Beebotte終わり?

こんにちは。

我が家のスマートホームの構成要素の1つとして「マンションのエントランスドアを鍵を使わずに解錠する」というフローがあります。
このフローは次のような仕組みにしていました。
  1. スマホからMQTTブローカBeebotteにWebhook送信
  2. BeebotteからサブスクライバであるRespberryPiにメッセージ送信
  3. RaspberryPiのNode-REDでメッセージを受信しBluetooth経由でSwitchbotを操作
  4. Switchbotで室内インターホンのエントランスドア解錠ボタンを押下
このフローがひと月前ほどから不安定になり、エントランスで立ち往生することが頻発していました。
数回チャレンジすれば正常動作するので、私は上記3のBluetooth送信が不安定なのかなと思っていました。
ちなみにこの場合、普通に物理鍵を使って解錠してたので実害がありません。
こういう事態に備えて常に物理鍵を持ち歩くという全然スマートじゃないホームだったというわけです。

今日(2021/08/08)になって完全に動作しなくなってしまい、上記3を疑っている私はNode-REDのデバッグを実施。
その結果、Node-REDのBeebotteノードが受信待ちのままスタックしてしまっていることが分かりました。

MQTTでは実際のメッセージ送信前にブローカとサブスクライバの間で事前通信が行われます。
一応Beebotteノードが反応するので、この事前通信は問題ないようです。
おかしいなと思いBeebotteの公式サイトに何かしらの情報が無いかと確認してみました。

SS-2021-08-08 162956.jpg

・・・サーバ死んでるやんけ!
「GOTO HOMEPAGE」とかボタンが表示されていますが、これがそのホームページです。
え〜〜〜〜〜障害?メンテナンス?それともサービス終了?
ネット検索してみましたが何の情報も得られません。
いずれの原因にせよ何の事前通告も無いとなると突然の障害ということでしょうか?
ひと月前からの不安定さを放置し続けたとなれば、サービスを放棄したのでしょうか?
比較的最近書いた記事が現実となってしまい、サーバ設置を許可しないプロバイダに改めて舌打ちしてしまいましたよ。

さてこうなってしまった以上、対策を考えねばなりません。
別のMQTTブローカサービスを検討するのが現実的でしょう。
はあ、めんど。

追記:
本記事を投稿した2時間40分後の2021/08/08 20:00現在、復旧したようです。
サブスクライバとの疎通も確認出来ましたし、公式サイトも従来どおりアクセスできます。
ただし障害やメンテについての報告はどこにもありませんでした。
本件でいろいろネット検索している中で公式Twitterアカウントも確認しましたが、2019年以降ツイートしていないようです。
もうあまりやる気がないのかな・・・
もしものために引き続き他のMQTTブローカを検討しておこうと思います。






.
posted by Huwy at 17:40 | Comment(0) | スマートホーム | このブログの読者になる | 更新情報をチェックする

2021年07月21日

【スマートホーム】Nature Remo Local APIが安定しない

こんにちは。

Nature社サーバへの依存度を下げるために、公開されているLocal APIを利用して家電操作を自宅ネットワーク内で完結することにしました。
結論から言うと上手くいかず凍結しています。


セットアップ

Local APIの具体的な利用についてはもうたくさんの情報がネット上にあるので割愛します。
ざっくり書いておくと以下の段取りとなります。
  • Nature Remo本体のホスト名とIPアドレスを調べる。
  • 実行したい家電操作に対応したIRシグナル情報を取得する。
  • IRシグナル情報をHTTPリクエストする。

我が家での問題

セットアップに従って上手く行くには行くのです。
しかし、数時間のインターバルを空けて実行すると、最初の1発目が100%失敗します。
Nature Remo本体からは何のレスポンスもなく原因の特定に至っていません。
失敗の5秒後以降はまた問題なく成功します。


自宅ネットワークの問題?

問題の切り分けが出来ていません。
Nature社もAPI利用の問い合わせには消極的な態度です。

ネット上には同様の例が上がっていないので、もしかしたら我が家のネットワーク固有の問題でインターバル明け1発目のルーティングが失敗している可能性もあります。
自宅ネットワーク内のパケット監視などしてみるとボトルネックがハッキリするかもしれませんが、そこまでやる気もないです。


追記

パケット監視まではしていませんが、様々なパターンで検証してみました。
結果として私はNature Remo本体の問題と結論づけています。
指定したタイムアウト期限までにクライアントに応答できないことが多く家電操作も実行されず、受信後の処理がスタックしてしまってる印象を受けます。
またHTTPレスポンスステータスコード200(=成功)を返してくるもののやはり家電操作が行われなかったりといったことがありました。

いずれも数時間のインターバルを空けた最初のリクエストです。その数秒後からは正常に動作します。
久しぶりのリクエストを受けるとコンディションを整えきれずに失敗するようです。
暖機が必要になる冬の自動車みたいな感じ。

私はHTTPプロトコルについては全くの素人です。
クライアント側はこうしたことを想定して実装するのが常識なのでしょうか?
例えば、まずはサーバにお伺いを立ててから正式にリクエストする所謂コネクション型でリクエストすべき等。
ただしNature RemoのLocal API仕様にはその点には触れていません。
もしかしたらNature Remo本体はNature社サーバと常にコネクションを維持しており、LocalAPIに対しコネクションレスでリクエストしても聞く耳を持たないのかもしれません。

今後この分野に携わることは無いと思いますが、一つの貴重な経験として記憶しておこうと思います。


凍結

Cloud APIは問題なく利用できていて、Nature社サーバがメンテしたり障害が発生しない限りは困ることもありません。
というわけで、Local APIの利用は凍結しました。






.
posted by Huwy at 04:08 | Comment(0) | スマートホーム | このブログの読者になる | 更新情報をチェックする

2021年03月08日

【スマートホーム】マイナーなサービスを精算したい

こんにちは。

そろそろ半年以上ブログ更新していないので、無理矢理ネタを捻り出してみました。
以前の記事「なんちゃってスマートホーム」で書いたとおり、我が家のスマートホームの要はAmazon Echo(Alexa)とRaspberry Pi上で常時稼働させているNode-REDです。
ただしそれだけではなく、IFTTTなどさまざまなサービスも組み合わせています。
それらの中にはいつ停止するかも知れぬマイナーサービスもあり、出来れば自前リソースのみに置き換えていきたいと思っています。



Amazon EchoとNode-REDをブリッジするAmazon Alexaスキルです。
Alexaスキルは個人が自由に作成して公開することができ、このスキルも恐らくは海外の有志の方が作成したもので、ブリッジサーバも善意で無償公開してくれています。
私が使い始める以前はちょいちょいバグもあったようですし、つい先日もAWSのライセンス更新忘れかなにかで半日ほど使えない状況が発生しました。
無償で便利に利用させてもらってる身としては文句も言えませんが、このスキルが使えないと我が家では照明を点けることすら出来ず大変困ります。
※実際は照明のリモコンを使えばいいだけなんですが、もう納戸の奥に仕舞い込んじゃって探すのメンドクサイ....

いまこのスキルが急に取り下げられて機能しなくなったとしても、まったく同機能の別の方が作成したAlexaスキルがもう1つあるので、ただちに手詰まりになることはなさそうです。
いずれにしても個人が善意で運営しているのでいつなんどき停止するか戦々恐々です。
自分で作成しちゃうのもありかと思いますが、そもそもそんな技術も無いしなあ・・・



RESTやMQTTといった非常に小さなメッセージを送受信するためのブローカーサービスです。
Amazon Echoを介さずNode-REDのトリガとなるメッセージを送信するために使っています。
具体的には、外出して玄関ドアのスマートロックが自動ロックした時に室内の照明を消す、といった用途です。
※やろうと思えばIFTTTのみで可能ですが、私の場合ちょっと特殊な使い方をしたくて家電操作はすべてNode-RED経由にしています。

こちらは上述の用途を実現するためにネット検索している過程で初めて知ったサービスで、正直なところ認知度については理解していません。
私が勝手にマイナーだと思っていて勝手に急なサービス停止に戦々恐々としてるだけ、ということです。
ネット情報ではGoogleのFireBaseで置き換え可能とのことですが、そもそもスマートロック(SESAME)がWebhookに対応していますし、Raspberry PiにHTTPサーバを立てればIFTTTやFireBaseを経由せずに完全に自前で置き換え可能なので挑戦したいと考えています。

2021/03/29追記:
またなんか勘違いしてた。
SesameのWebhookはRaspberry Pi上で動いてるNode-REDでハンドリングさせるつもりですが、Node-REDってそのまま外部公開も出来るんですね。別途HTTPサーバを立てる必要があるのかと思って、Apacheのインストールとかしちゃったけど要らなかったみたい。
ただセキュリティ的に弱そうで設定を固めないと危なっかしい。

それとは別に、我が家はCATVのネット接続サービスを使っているけど、ルータのWAN側アドレスがグローバルなのかどうか確認しないといけません。固定IPでない場合はダイナミックDNSの設定もしないといけないけど、CATVから貸与されてる我が家のルータはなぜか有償のDynDNSしかホストに出来ないように制限されてるっぽい。なんじゃそら・・・。

2021/05/26追記:
紆余曲折を経ましたが、我がプロバイダ様は自宅サーバの設置を認めていないということが判明。
つまりNode-REDを外部公開出来ないのでBeebotteを使い続けるしかありません。
プロバイダを乗り換えるの面倒だし、Beebotteがサービス停止の危機にあるわけじゃなし、他の迂回策を探るのもう面倒くさいし・・・
というわけで本件は諦めるという形で幕を閉じます。ああああああああ(T_T)





.

posted by Huwy at 01:54 | Comment(0) | スマートホーム | このブログの読者になる | 更新情報をチェックする

2019年03月31日

【スマートホーム】なんちゃってスマートホーム

こんにちは。

スマートプラグ購入をきっかけに自宅(単身者向けワンルームマンション)をスマートホーム化することに最近ハマってます。 当ブログのコンセプトに相応しく、にわか興味です。
現在の構成などをつらつらと書いていきますが、それぞれの詳細を割愛したざっくり説明のみに留めます。
当記事で挙げるメソッドのほぼ全ては、先達のみなさんがネット上に公開してくれているものをパクっただけですので、詳細は適当にググってみてください。

続きを読む
posted by Huwy at 23:48 | Comment(0) | スマートホーム | このブログの読者になる | 更新情報をチェックする