kevin.cto
@kevinharris · Membre depuis juin 2025
Startup founder · logistics · new to IoT
- Sujets
- 10
- Réponses
- 54
- Points
- 0
Toutes mes réponses sur les forums
Traduit de English par IA ·
Donc mes une trentaine de boards personnels ne décomptent pas des 5 ?
So my 30-odd personal boards don’t eat into the 5?
Traduit de English par IA ·
Ne pourrais-tu pas capturer le signal 868 MHz du clavier avec un SDR et le rejouer depuis le Pi ?
Couldn’t you capture the 868 MHz signal from the keypad with an SDR and replay it from the Pi?
Traduit de English par IA ·
Est-ce que cela est enregistré de façon permanente quelque part, ou seulement pendant que cela se produit ?
Is that logged anywhere permanently, or only while it’s happening?
Traduit de English par IA ·
Ne serait-il pas plus simple de mettre simplement un ESP32 bon marché sur chaque rack ? C’est ce que je ferais, mais je ne suis pas un spécialiste du matériel.
Would it be easier to just put a cheap ESP32 on each rack? That’s what I’d do but I’m not a hardware guy.
Traduit de English par IA ·
La carte conserve-t-elle une trace des positions précédentes ou seulement le dernier point ?
Does the map keep a trail of where it’s been or only the latest point?
Traduit de English par IA ·
ok, c’est en fait plus agréable que notre configuration VPN
ok that’s actually nicer than our VPN setup
Traduit de English par IA ·
Tu ne peux pas simplement passer par un VPN vers le réseau de la ferme à la place ?
Can’t you just VPN into the farm network instead?
Traduit de English par IA ·
Les résistances de pull-up ? J’avais des lectures instables jusqu’à ce que j’ajoute 4.7k
pull-ups? I had flaky reads until I added 4.7k
Traduit de English par IA ·
J’ai mesuré cela l’an dernier sur nos trackers de remorques, parce que notre facture d’opérateur était absurde. Chiffres approximatifs issus de captures de paquets sur un SIM7600, TLS 1.2, le broker de la plateforme :
- reconnexion complète (poignée de main TCP + TLS avec chaîne de certificats + CONNECT + SUBSCRIBEs) : environ 5 à 6 Ko
- un aller-retour keepalive (PINGREQ/PINGRESP dans TLS, plus en-têtes TCP/IP et ACK) : environ 150 à 200 octets
- votre relevé de 80 octets sous forme de publish QoS 1 dans TLS avec PUBACK : également quelques centaines d’octets
Donc se reconnecter toutes les 5 minutes coûterait environ 8 640 poignées de main par mois, soit plus de 45 Mo. Bien pire. Un keepalive de 60 représente 43 200 pings par mois, environ 8 Mo. C’est une grosse part de vos 25 Mo.Ce qui a fonctionné chez nous :Keepalive jusqu’à 300 s (le broker ramène de toute façon toute valeur supérieure à son maximum, soit 300). Cela divise les pings par cinq. Vérifiez que votre opérateur ne coupe pas les sessions NAT inactives plus vite ; chez nous elles tenaient 6 minutes, certaines coupent entre 2 et 4 minutes. Si vous voyez keepalive_timeout dans l’onglet Log de l’appareil, réduisez la valeur.Regroupement. Au lieu d’un publish toutes les 5 minutes, mettez en tampon 3 relevés et envoyez-les dans un seul tableau avec horodatages (l’ESP32 dispose de NTP, donc ts convient) :
[{"ts":1762336800000,"values":{"flow":12.1,"pressure":2.4,"pump":1}},
{"ts":1762337100000,"values":{"flow":12.3,"pressure":2.4,"pump":1}},
{"ts":1762337400000,"values":{"flow":11.9,"pressure":2.3,"pump":1}}]
Mêmes données, un seul publish, et cela ne compte qu’un message sur le quota mensuel au lieu de trois.Repérez les éléments superflus. Chez nous, le pire était que le firmware envoyait les attributs client (IP, RSSI, version du firmware) à chaque publish. Ne les envoyez qu’en cas de changement.Concernant le statut hors ligne : avec Live connection comme règle de connexion, les appareils restent en ligne tant que la session MQTT est ouverte, donc avec un keepalive de 300 rien ne change. Si vous passez un jour en mode connexion-envoi-déconnexion, basculez-les vers un profil avec Recent message, sinon ils apparaîtront hors ligne entre les envois.
I measured this on our trailer trackers last year because our carrier bill was silly. Rough numbers from packet captures on a SIM7600, TLS 1.2, the platform’s broker:
- full reconnect (TCP + TLS handshake with certificate chain + CONNECT + SUBSCRIBEs): about 5 to 6 KB
- one keepalive round trip (PINGREQ/PINGRESP inside TLS, plus TCP/IP headers and ACKs): roughly 150 to 200 bytes
- your 80-byte reading as a QoS 1 publish inside TLS with PUBACK: also a couple of hundred bytes
So reconnecting every 5 minutes would cost about 8,640 handshakes a month, 45+ MB. Way worse. Keepalive 60 is 43,200 pings a month, around 8 MB. That’s a big chunk of your 25 MB.
What worked for us:
Keepalive up to 300 s (the broker serves anything above its maximum at 300 anyway). That cuts pings by five. Check your carrier doesn’t drop idle NAT sessions faster; ours held 6 minutes, some drop at 2 to 4. If you see keepalive_timeout in the device’s Log tab, step it down.
Batch. Instead of one publish every 5 minutes, buffer 3 readings and send them as one array with timestamps (ESP32 has NTP, so ts is fine):
[{"ts":1762336800000,"values":{"flow":12.1,"pressure":2.4,"pump":1}},
{"ts":1762337100000,"values":{"flow":12.3,"pressure":2.4,"pump":1}},
{"ts":1762337400000,"values":{"flow":11.9,"pressure":2.3,"pump":1}}]
Same data, one publish, and it also counts as one message against the monthly quota instead of three.
Look for chatty extras. In our case the worst was the firmware sending client attributes (IP, RSSI, firmware version) on every publish. Only send them on change.
On offline: with Live connection as the online rule they stay online as long as the MQTT session is open, so with keepalive 300 nothing changes. If you ever do go connect-send-disconnect, switch them to a profile with Recent message, otherwise they’d show offline between sends.
Repacked it to 23 bytes (Daniel’s int32 trick) and turned ADR off on the tracker profile. A trailer 9 km out came through on SF11 all afternoon. I also finally get what a chip is.
Facepalm. Missing callbacks on node2, that was all. Both read every second now, and both meters showed up as their own devices in Hermetry. Thanks Ciaran!
Yes, set it to 2 on the front panel. If I swap and read only meter 2 with node (id 1 changed to 2) it works.
Maybe cast it to a String first? String s = (char*)payload;
Traduit de English par IA ·
Pourquoi construire la partie secteur ? Utilise un adaptateur 5V enfichable et ne construis que le boîtier basse tension.
Why build the mains part at all? Use a plug-in 5V adapter and only build the low-voltage box.
Our engineers ordered a DWM3000 dev kit and 6 anchors for the pilot aisle. The floor plan view works already with fake coordinates. We went with one message every 2 s per cart after doing the quota maths you hinted at. Thanks Owen.

