Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

Réponse : Vingt sondes DS18B20 sur un seul Pi : pertes au-delà de huit capteurs et comment nommer les clés

Traduit de English par IA ·

James a le bon câblage. Deux bus, 2.2k chacun, et ça ira. Nous faisons tourner 14 sondes par bus dans un local de pompage de cette façon.85.0 est la valeur à la mise sous tension du DS18B20 : cela signifie que la lecture a eu lieu avant la fin d’une conversion, généralement une chute de tension sur le bus. Écartez-la dans le code, ne l’envoyez jamais.Pour les clés, changez-les maintenant, avant d’avoir un historique. Les clés sont des noms distincts à l’échelle de toute l’organisation (Starter est limité à 250), donc les ID ROM par capteur vont épuiser ce quota rapidement dès que vous construirez une deuxième cave. Nommez-les par position, gardez dans un fichier sur le Pi une correspondance entre l’ID ROM et la position, et envoyez les 20 dans un seul message. Un message contenant 20 points coûte le même quota qu’un message avec un seul point.

import glob, json, paho.mqtt.client as mqtt
MAP = {"28-0316a2794bff": "rack1.top", "28-0316a27a11ff": "rack1.mid"}  # etc
vals = {}
for p in glob.glob("/sys/bus/w1/devices/28-*/temperature"):
    rom = p.split("/")[-2]
    t = int(open(p).read()) / 1000
    if rom in MAP and t != 85.0:
        vals["cellar." + MAP[rom]] = round(t, 2)
c.publish("v1/telemetry", json.dumps(vals), qos=1)

Les règles relatives aux clés figurent dans Telemetry keys.

QoS 1 and a lot of patience.
Solution acceptée♥ 2