thompsonplc
@lthompson · Membre depuis mai 2025
Automation engineer · pharma · 14 years in the field
- Sujets
- 7
- Réponses
- 65
- Points
- 0
Toutes mes réponses sur les forums
Went with the PLC discrepancy bit, 3 s timer, plus the local trip. Hermetry alarms on sf1.discrepancy == true for all six supply fans through one profile rule. Tested by forcing the aux input and got the alarm and the e-mail within seconds. Kept your JSON version in my notes for the sites where I can’t touch the PLC program.
Traduit de English par IA ·
Nous en avons encore quelques-uns sur le terrain. La différence tient à qui pilote le DHCP.Avec wpa-conf, ifupdown démarre wpa_supplicant avec votre configuration, puis exécute dhclient sur wlan0 lui-même. wpa_supplicant choisit un réseau parmi les blocs du fichier, ifupdown ne se soucie pas de lequel. C’est simple, et suffisant pour « se connecter à celui des deux qui est à portée ».Avec wpa-roam, wpa_supplicant fonctionne en mode itinérance et appelle wpa_action à chaque connexion et déconnexion, lequel active alors une interface logique. Chaque bloc réseau peut porter un id_str qui désigne l’interface logique à utiliser ; ceux qui n’en ont pas utilisent iface default. Cela sert à avoir des paramètres IP différents selon le réseau. Le piège : wpa_action doit voir la déconnexion pour libérer l’ancien bail. Lorsque le nœud est emporté et que le point d’accès disparaît dans un ordre inattendu, vous restez associé sans bail. C’est votre symptôme sur le terrain.Pour deux réseaux DHCP, utilisez wpa-conf et des priorités :
# /etc/network/interfaces
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
# /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="LAB-WIFI"
psk="..."
priority=10
}
network={
ssid="FIELD-AP"
psk="..."
priority=5
}
Côté Hermetry, chaque changement de réseau interrompt la session MQTT ; faites donc en sorte que votre client se reconnecte avec un délai progressif (backoff) et se réabonne. Si le nœud dispose d’une alarme hors ligne, réglez son délai d’ouverture (open-after) au-delà du temps de trajet entre le laboratoire et la parcelle, sinon vous en recevrez une à chaque déplacement.
We still have a few of these in the field. The difference is who drives DHCP.
With wpa-conf, ifupdown starts wpa_supplicant with your config and then runs dhclient on wlan0 itself. wpa_supplicant picks a network from the blocks in the file, ifupdown doesn’t care which one. Simple, and enough for « connect to whichever of these two is around ».
With wpa-roam, wpa_supplicant runs in roaming mode and calls wpa_action on every connect and disconnect, which then brings up a logical interface. Each network block can carry an id_str that names the logical interface to use, and anything without one falls to iface default. It’s meant for different IP settings per network. The catch is that wpa_action must see the disconnect to take the old lease down; when the node is carried away and the AP disappears in a funny order, you end up associated with no lease. That’s your field symptom.
For two DHCP networks use wpa-conf and priorities:
# /etc/network/interfaces
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
# /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="LAB-WIFI"
psk="..."
priority=10
}
network={
ssid="FIELD-AP"
psk="..."
priority=5
}
On the Hermetry side, each move between networks drops the MQTT session, so make your client reconnect with backoff and resubscribe. If the node has an offline alarm, set its open-after time longer than a walk from the lab to the plot or you’ll get one every trip.
Traduit de English par IA ·
Sur quelle tension est réglé le convertisseur de niveau de la carte breakout ? L’OpenMV fonctionne en 3,3 V, la carte breakout de l’Edison peut être configurée par cavalier pour 5 V.
What voltage is the breakout’s level shifter set to? The OpenMV is 3.3 V, the Edison breakout can be jumpered for 5 V.
Traduit de English par IA ·
Deux questions différentes, donc deux réponses.Pourquoi SPECK et SIMON sont petits : ce sont tous deux des conceptions ARX (addition, rotation, XOR) sans S-boxes. AES nécessite des tables de correspondance ou une substitution d’octets assez complexe, ce qui coûte de la mémoire flash et de la RAM sur un composant 8 bits et laisse fuiter des informations de temps s’il est implémenté avec des tables. Le tour de SPECK se résume à quelques additions, rotations et XOR sur 16/32/64 bits, si bien qu’une implémentation complète tient en quelques centaines d’octets. Il en existe deux parce qu’ils ont été optimisés pour des cibles différentes : SIMON pour le matériel (très peu de portes), SPECK pour le logiciel sur microcontrôleurs. Ils existent aussi en de nombreuses tailles de bloc et de clé (de 32/64 à 128/256), ce qui est pratique pour de très petits paquets. Pour votre thèse, la controverse autour de la standardisation ISO et l’absence de justification de conception méritent aussi un chapitre.Pourquoi vous ne pouvez pas remplacer TLS par SPECK : un chiffrement par blocs n’est qu’une brique. TLS assure l’échange de clés, l’authentification du serveur et l’intégrité des messages, et la plateforme vérifie votre identifiant à l’intérieur de cette session. Si vous chiffrez une charge utile avec SPECK et l’envoyez, quelqu’un doit tout de même convenir d’une clé avec vous, et le broker ne verrait qu’un bloc opaque. Sur Hermetry, côté appareil, le minimum est TLS 1.2 (1.3 recommandé) avec des suites à confidentialité persistante : AES-GCM ou ChaCha20-Poly1305, sans échange de clés RSA ni CBC. Le MQTT non chiffré sur le port 1883 ne fonctionne que si un administrateur active MQTT en clair pour le profil ; la documentation traite cela comme une exception pour les appareils qui ne peuvent pas utiliser TLS sur un réseau privé ou un VPN. C’est pourquoi votre test sur 1883 a été refusé. Tout est détaillé sur la page de sécurité du transport des appareils.Côté pratique : l’ESP32 dispose d’un matériel AES, TLS coûte un peu de RAM et environ une seconde de négociation par connexion, puis cela ne se remarque pas aux débits des capteurs. L’ATmega est le vrai problème. Soit vous utilisez ChaCha20-Poly1305 (il est aussi ARX et rapide sans matériel dédié), soit vous laissez l’ATmega communiquer avec une passerelle qui conserve la session TLS.
Two different questions, so two answers.
Why SPECK and SIMON are small: both are ARX designs (add, rotate, xor) with no S-boxes. AES needs lookup tables or a fairly involved byte substitution, which costs flash and RAM on an 8-bit part and leaks timing if you do it with tables. SPECK’s round is a handful of 16/32/64-bit adds, rotates and xors, so a full implementation fits in a few hundred bytes. There are two because they were tuned for different targets: SIMON for hardware (very few gates), SPECK for software on microcontrollers. They also come in many block and key sizes (32/64 up to 128/256), which is handy for tiny packets. For your thesis, the ISO standardisation fight and the missing design rationale are worth a chapter too.
Why you can’t swap TLS for SPECK: a block cipher is one building block. TLS gives you key exchange, server authentication and message integrity, and the platform checks your credential inside that session. If you encrypt a payload with SPECK and send it, someone still has to agree a key with you and the broker would see an opaque blob. On Hermetry the device side is TLS 1.2 minimum (1.3 preferred) with forward-secret suites: AES-GCM or ChaCha20-Poly1305, no RSA key exchange, no CBC. Plain MQTT on 1883 only works if an admin switches Plain MQTT on for the profile, and the docs treat that as an exception for devices that can’t do TLS on a private network or VPN. That’s why your 1883 test was refused. It’s all on the device transport security page.
Practical side: the ESP32 has AES hardware, TLS costs you a bit of RAM and a second or so of handshake per connection, and after that it’s nothing you’d notice at sensor rates. The ATmega is the honest problem. Either use ChaCha20-Poly1305 thinking (it’s ARX too and fast without hardware), or let the ATmega talk to a gateway that holds the TLS session.
For the next 30, think about OTA from day one and give each one a sticker with its device name. Climbing to 40 wall boxes to re-flash is a weekend gone.

