Ulanzi TC001 を有効活用するために
先日 Ulanzi TC001 を注文したが、このスマートクロックを動作させる方法として、純正のファームウェアを使う方法と、 AWTRIX 3 のファームウェアをインストールして使う方法がある。
純正ファームウェアでも YouTube チャンネル登録者数や天気などの情報をネットから取得して表示させることができる。ただし、SNSカウンターとして対応しているのは他に Bilibili, Weibo, Douyin と中国系ばかりで、 Facebook, Instagram, X には非対応。
一方、AWTRIX 3 だと外部から情報をプッシュすることで様々な内容を表示させることができるようになる。ただし、基本的には情報を外からプッシュさせる必要があるため、外部に何らかの仕組みを作る必要がある。
プッシュさせるデータ形式は JSON でよいので、 curl や Python を使って行う人もいるが、
海外の活用例を見ると、 MQTT という仕組みを使うのが一般的のようだ。
外部センサー情報などもプッシュして TC001 に表示させることができる。
MQTT の仕組みはこちらを参照。
MQTT アプリで動作する、 Awtrix 用のスクリプトを集めたサイトも公開されている。
ここで公開されているスクリプトの多くは Home Assistant や Node-Red で動作するため、どちらかの環境を入れておくとよさそうだ(ちなみに Home Asssistant はアドオンで Node-Red を入れることができるらしい)。
今回は MeePet(Android)に入れやすい Node-Red をインストールすることにした。
インストールは非常に簡単
MeePet にはすでに Termux をインストールしてあるので、公式サイトのインストール方法を順に進めるだけであっという間にインストールが完了する。
補足するとしたら、 node-red
で起動するとフォアグラウンドで動くため、バックグラウンドで起動し続けるためには &
オプションを使う必要がある程度である(この件は後段あり)。
Node-Red を試す
ビジュアルプログラミングはほとんどやったことがないので、いくつかのチュートリアルを参考に Node-Red を試してみる。
いちおうできたことはできたが、 Android か Termux の仕様なのか、バックグラウンドだと動かしている最中に Node-Red が何度も落ちてしまった。
フォアグラウンドで動かすと落ちずに使えているので、しばらくこれで運用してみる。
あれ? Brokerは別途必要?
別の情報で MQTT 通信の設定は色々めんどくさいものがありそうだったが、 Node-Red にそれが無いのが気になっていた。
どうやら Node-Red には mqtt in と mqtt out しかなく、MQTT Broker は別途用意しなければいけないようだ。
とりあえずこちらのテキストにあった Beebotte のアカウントを取得しつつ、 mosquitto をインストールすることも考える。
Aedes MQTT broker のインストール
mosquitto をインストールした後に気がついたのだが、 Node-Red にも MQTT Broker の機能を持たせる node-red-contrib-aedes というノードがあることを見つけた。
Node-Red 内での通信、うまくいっている(隠れてしまっているが、下に mqtt in ノードと debug ノードを置いてある)。
最後にスマホの MyMQTT から。
最初は接続に失敗したが、接続方式を MQTT V5 から MQTT V3 に変更したところ接続できた。
ということで、あとは Ulanzi TC001 の到着を待つばかり。