Traduit de English par IA ·
Oui. Ce blog concerne un broker sur votre propre réseau domestique, d’où l’adresse 192.168. Pour Hermetry, vous ne devez utiliser aucune IP : connectez-vous avec le nom d’hôte de la carte Connection details, TLS sur le port 8883. TLS nécessite le nom (SNI), donc l’IP testée par ping échoue, et le port 1883 non chiffré est refusé, sauf si le profil autorise le MQTT en clair, ce qui n’est pas le cas par défaut. rc=5 signifie « not authorised », et la raison réelle apparaît dans l’onglet Log de l’appareil, ça vaut le coup d’y jeter un œil.
import ssl, json, paho.mqtt.client as mqtt
HOST = "<host from Connection details>"
TOKEN = "<access token>"
c = mqtt.Client(client_id="reefer-01")
c.username_pw_set(TOKEN) # token as username, no password
c.tls_set(cert_reqs=ssl.CERT_REQUIRED) # normal public CA bundle
c.connect(HOST, 8883, keepalive=60)
c.loop_start()
c.publish("v1/telemetry", json.dumps({"temperature": -18.2}), qos=1)
Avec paho 2.x, il faut plutôt utiliser mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="reefer-01").
Yes. That blog is for a broker on your own home network, that’s why it has a 192.168 address. For Hermetry there’s no IP you should use at all: connect by the host name from the Connection details card, TLS on 8883. TLS needs the name (SNI), so the pinged IP fails, and plain 1883 is refused unless the profile allows plain MQTT, which it doesn’t by default. rc=5 is « not authorised », and the actual reason ends up on the device’s Log tab, worth a look.
import ssl, json, paho.mqtt.client as mqtt
HOST = "<host from Connection details>"
TOKEN = "<access token>"
c = mqtt.Client(client_id="reefer-01")
c.username_pw_set(TOKEN) # token as username, no password
c.tls_set(cert_reqs=ssl.CERT_REQUIRED) # normal public CA bundle
c.connect(HOST, 8883, keepalive=60)
c.loop_start()
c.publish("v1/telemetry", json.dumps({"temperature": -18.2}), qos=1)
With paho 2.x you need mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="reefer-01") instead.

