johnsonsec
@brian-johnson · Membre depuis avril 2026
IT and security admin · software · 20 years in the field
- Sujets
- 1
- Réponses
- 24
- Points
- 0
Toutes mes réponses sur les forums
Ordered an S type in an alumina tube and a MAX31856. Rule is in, the attribute trick works nicely, set max_c to 1240 tonight and the firing peaked at 1224 with no alarm. A hardware over-temp relay is going in next weekend, fair point. @Aoife mostly drift and the probe’s life, from what I’ve read since.
On the data side: a device profile allows 10 telemetry messages a second by default. At 200 a second you blow through it and a device that keeps doing that gets its session closed.
Traduit de English par IA ·
Il a tort concernant la partie Hermetry. Hermetry peut envoyer des commandes et des modifications d’attributs partagés aux appareils situés derrière une passerelle : la passerelle les reçoit sur v1/gw/rpc ou v1/gw/attributes et doit les appliquer. Tout dépend donc de la prise en charge de ces topics par le logiciel de passerelle du prestataire. Une commande adressée à l’appareil passerelle lui-même fonctionne aussi : le boîtier dans votre local électrique peut donc recevoir « démarrer l’échantillonnage de validation » depuis un bouton du tableau de bord ou une règle, puis le redistribuer localement. Cela fait une commande au lieu de 30. La partie radio relève du domaine d’Eric.
He’s wrong about the Hermetry half. Hermetry can send commands and shared attribute changes to devices behind a gateway: the gateway gets them on v1/gw/rpc or v1/gw/attributes and has to apply them, so it depends on whether the contractor’s gateway software handles those topics. A command to the gateway device itself works too, so the box in your electrical room can get « start validation sampling » from a dashboard button or a rule and fan it out locally. That’s one command instead of 30. The radio half is Eric’s territory.
Traduit de English par IA ·
Ceci est un identifiant d’appareil. Il permet à un appareil de se connecter, il ne lit rien pour vous. L’API de gestion demande une clé API. De plus, interroger toutes les 5 secondes, c’est beaucoup pour un buzzer.
That’s a device credential. It logs a device in, it doesn’t read anything for you. The management API wants an API key. Also every 5 seconds is a lot for a buzzer.
Traduit de English par IA ·
Le texte s’affiche uniquement comme dernière valeur, il n’est pas tracé sur un graphique. Avec 0/1, vous obtenez l’occupation par heure gratuitement grâce à la moyenne horaire.
Text only shows as the latest value, it isn’t charted. With 0/1 you get occupancy per hour for free with the hourly average.
Traduit de English par IA ·
Nous avons équipé 60 places sur le parking d’un centre commercial l’an dernier avec du LoRaWAN simple, et tout fonctionne bien. Vous n’avez besoin de rien de particulier pour un pilote. Voici ce que nous avons mis en place :
La passerelle est une passerelle Basics Station installée sur un lampadaire (l’ancien transmetteur de paquets UDP n’est pas pris en charge, vérifiez donc que la vôtre parle Basics Station). Les capteurs ont été ajoutés en tant qu’appareils OTAA. Si vous en avez 40 à ajouter, le mode d’appairage fait gagner beaucoup de saisie, mais il nécessite un AppKey partagé sur le profil, que notre fabricant de capteurs au sol ne voulait pas nous fournir. Nous avons donc ajouté les 60 appareils OTAA à la main. Pas très agréable, prévoyez un après-midi.
Le fabricant n’a livré qu’un décodeur JavaScript. Hermetry n’exécute aucun script de décodage : les codecs sont des tables JSON. Le nôtre était un cadre de mise en page sur le FPort 2 et nous a pris 15 minutes :
{
"id": "t.bay-puck",
"title": "In-ground parking puck",
"vendor": "Example maker",
"fports": [2],
"kind": "layout",
"frames": [{ "fport": 2, "min_length": 3, "fields": [
{ "at": 0, "field": "occupied", "fmt": "u8" },
{ "at": 1, "field": "battery_mv", "fmt": "u16be" }
]}],
"tests": [{ "name": "car present", "fport": 2, "hex": "010E74", "expect": { "occupied": 1, "battery_mv": 3700 } }]
}
Envoyez occupied sous forme de 0/1, afin que les graphiques puissent le tracer. Pour la carte, nous avons créé chaque place comme un asset avec ses coordonnées sous un site « Main Street » et placé le capteur dessous, puis une carte de type carte sur Status sous un asset. La couleur libre/occupé provient du statut du site.
Dernier point : une règle Device offline sur le profil. Avec un battement de 6 heures, utilisez Recent message avec un intervalle de 21600 et un facteur de 2, sinon les pucks morts restent cachés pendant des jours.
We did 60 bays for a shopping centre car park last year with plain LoRaWAN and it’s been fine. You don’t need anything special for a pilot. What we built:
Gateway is a Basics Station gateway on a lamp post (the old UDP packet forwarder is not supported, so check yours speaks Basics Station). Sensors added as OTAA devices. If you have 40 to do, pairing mode saves a lot of typing, but it needs a shared AppKey on the profile, which our puck vendor wouldn’t give us, so we added all 60 as OTAA devices by hand. Not fun, budget an afternoon.
The vendor only shipped a JavaScript decoder. Hermetry doesn’t run decoder scripts at all, codecs are JSON tables. Ours was a layout frame on FPort 2 and took 15 minutes:
{
"id": "t.bay-puck",
"title": "In-ground parking puck",
"vendor": "Example maker",
"fports": [2],
"kind": "layout",
"frames": [{ "fport": 2, "min_length": 3, "fields": [
{ "at": 0, "field": "occupied", "fmt": "u8" },
{ "at": 1, "field": "battery_mv", "fmt": "u16be" }
]}],
"tests": [{ "name": "car present", "fport": 2, "hex": "010E74", "expect": { "occupied": 1, "battery_mv": 3700 } }]
}
Send occupied as 0/1, then charts can draw it. For the map we made each bay an asset with its coordinates under a « Main Street » site and placed the sensor under it, then a map card on Status under an asset. Free/occupied colour comes from the site status.
Last thing: a Device offline rule on the profile. With a 6 hour heartbeat, use Recent message with interval 21600 and factor 2, otherwise dead pucks hide for days.
Strings over I2C waste bytes and you only get 32 per transfer. Show the master side, I bet that’s where it breaks.
Traduit de English par IA ·
Si vous scriptez cette exportation, donnez à la clé API le préréglage Lecture seule et restreignez-la au réseau de votre ordinateur portable. J’ai vu bien trop de clés avec accès administrateur complet dans des notebooks Python.
If you script that export, give the API key the Read-only preset and restrict it to your laptop’s network. Seen too many full-admin keys in Python notebooks.
UWB anchors give you decimetres but cost a lot per room and need calibration. For room-level, BLE is plenty.

