2

問題を解決しました。解決策については、この質問の最後を参照してください。

私は Mosquitto|MQTT 初心者なので、以下のすべてについてお詫び申し上げます。

Ubuntuなどにmosquittoをインストールすると、すべてが機能します。これを心ゆくまで行うことができます。

mosquitto_pub \
--host mqtt.googleapis.com \
--port 8883 \
--id ${LONG_REGISTRY}/devices/${DEVICE} \
--username unused \
--pw ${PASSWORD} \
--cafile /roots.pem \
--tls-version tlsv1.2 \
--protocol-version mqttv311 \
--debug \
--qos 1 \
--topic /devices/${DEVICE}/events \
--message "$(date --rfc-3339=seconds) Hello Henry!"

Onion Omega2 デバイスから同等の処理を実行したいと考えており、openwrt-x86-generic-rootfsそのための開発プロキシとして実行されているコンテナーを使用しています (おそらく問題 #1)。

docker run -i -t openwrt-x86-generic-rootfs /bin/ash
mkdir -p /var/lock
opkg update
opkg install mosquitto mosquitto-client libmosquitto

そして、上記のUbuntuバージョンとは異なるバージョンがmosquitto_pubありますが、フォームのフラグはサポートされていません。ツールはバージョン情報を提供していないようです。mosquitto_sub-f--flag

これらのバージョンは古くなっていると思いますが、opkg install上記よりも最新のものに更新できるかどうかはわかりません (issue #2)。

Unix の例のように、接続したい Google Cloud IoT ブローカーには TLS (相互ではない) が必要ですが、OpenWRT Mosquitto クライアントには TLS を許可するオプションが含まれていないようです。に相当するものはありません--cafile。これがなければ、私はブロックされていると思います。(問題#3)。

質問:

  • Onion Omega2 デバイスの Mosquitto は TLS をサポートしていますか?
  • OpenWRT Mosquitto クライアントは時代遅れですか? アップグレードできますか?
  • TLS を使用して Onion を Google の MTQQ に接続する方法はありますか?

ありがとう!!

Onion Omega2 デバイスでは、Mosquitto をインストールすると、cafileフラグを含むツールの別の/現在のバージョンが提供され、これは私にとってはうまくいきました。不思議なことに、このバージョンのツールは、たとえば次のことを規定するヘルプを提供します-uが、ツールは受け入れます--username

したがって、Omega2 で次のコマンドを実行でき、どちらも機能します。

mosquitto_pub \
--host mqtt.googleapis.com \
--port 8883 \
--id ${LONG_REGISTRY}/devices/${DEVICE} \
--username unused \
--pw ${PASSWORD} \
--cafile /roots.pem \
--tls-version tlsv1.2 \
--protocol-version mqttv311 \
--debug \
--qos 1 \
--topic /devices/${DEVICE}/events \
--message "Hello Henry!"

と:

mosquitto_sub \
--host mqtt.googleapis.com \
--port 8883 \
--id ${LONG_REGISTRY}/devices/${DEVICE} \
--username unused \
--pw ${PASSWORD} \
--cafile /roots.pem \
--tls-version tlsv1.2 \
--protocol-version mqttv311 \
--debug \
--qos 1 \
--topic /devices/${DEVICE}/config

どこ:

LONG_REGISTRY=projects/${PROJECT}/locations/${REGION}/registries/${REGISTRY}

そして、私の質問に答えます:

  • Onion Omega2 にインストールされた Mosquitto ツールは TLS をサポートします
  • OpenWRT Mosquitto クライアントは時代遅れだと思います。違います
  • はい、上記の例は Cloud IoT を使用したパブリッシュとサブスクライブのデモです

私は Cloud IoT に参加していない Google 社員ですが、Mosquitto のサポートが最も必要だと思います。

4

0 に答える 0