kevin.cto
@kevinharris · Haziran 2025 tarihinde katıldı
Startup founder · logistics · new to IoT
- Konular
- 10
- Yanıtlar
- 54
- Puan
- 0
Oluşturulan forum yanıtları
Yapay zekâ tarafından English dilinden çevrildi ·
Yani 30 küsur kişisel panom, 5 hakkımdan düşmüyor mu?
So my 30-odd personal boards don’t eat into the 5?
Yapay zekâ tarafından English dilinden çevrildi ·
868 MHz sinyalini tuş takımından bir SDR ile yakalayıp Pi üzerinden tekrar oynatamaz mısın?
Couldn’t you capture the 868 MHz signal from the keypad with an SDR and replay it from the Pi?
Yapay zekâ tarafından English dilinden çevrildi ·
Bu durum kalıcı olarak bir yerde kaydediliyor mu, yoksa yalnızca olurken mi?
Is that logged anywhere permanently, or only while it’s happening?
Yapay zekâ tarafından English dilinden çevrildi ·
Her rafa ucuz bir ESP32 koymak daha kolay olmaz mı? Ben de öyle yapardım ama donanım konusunda uzman değilim.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Harita, gittiği yerlerin bir izini mi tutuyor yoksa yalnızca en son noktayı mı?
Does the map keep a trail of where it’s been or only the latest point?
Yapay zekâ tarafından English dilinden çevrildi ·
tamam, bu aslında VPN kurulumumuzdan daha iyi
ok that’s actually nicer than our VPN setup
Yapay zekâ tarafından English dilinden çevrildi ·
Bunun yerine doğrudan çiftlik ağına VPN ile bağlanamaz mısın?
Can’t you just VPN into the farm network instead?
Yapay zekâ tarafından English dilinden çevrildi ·
pull-up dirençleri? 4.7k ekleyene kadar okumalarım dengesizdi
pull-ups? I had flaky reads until I added 4.7k
Yapay zekâ tarafından English dilinden çevrildi ·
Bunu geçen yıl römork takip cihazlarımızda ölçtüm, çünkü operatör faturamız çok saçmaydı. SIM7600 üzerinde, TLS 1.2 ile platformun broker’ı kullanılarak paket yakalamalarından alınan kaba değerler:
- tam yeniden bağlantı (TCP + sertifika zincirli TLS el sıkışması + CONNECT + SUBSCRIBE’lar): yaklaşık 5 ila 6 KB
- bir keepalive gidiş-dönüşü (TLS içinde PINGREQ/PINGRESP, artı TCP/IP başlıkları ve ACK’ler): yaklaşık 150 ila 200 bayt
- 80 baytlık okumanız, TLS içinde PUBACK ile QoS 1 publish olarak: yine birkaç yüz bayt
Yani her 5 dakikada bir yeniden bağlanmak ayda yaklaşık 8.640 el sıkışma, 45+ MB demek. Çok daha kötü. Keepalive 60 ayda 43.200 ping, yaklaşık 8 MB demek. Bu, 25 MB’lik kotanızın büyük bir kısmı.Bizde işe yarayan yöntem:Keepalive’ı 300 s’ye kadar çıkarın (broker, maksimumunun üzerindeki değerleri zaten 300 olarak kabul ediyor). Bu, ping sayısını beşte bire indirir. Operatörünüzün boşta kalan NAT oturumlarını daha hızlı düşürmediğini kontrol edin; bizimki 6 dakika tuttu, bazıları 2 ila 4 dakikada düşürüyor. Cihazın Log sekmesinde keepalive_timeout görürseniz değeri aşağı çekin.Toplu gönderim. Her 5 dakikada bir publish yerine, 3 okumayı tamponlayın ve zaman damgalarıyla tek bir dizi olarak gönderin (ESP32’de NTP var, bu yüzden ts kullanmak sorunsuz):
[{"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}}]
Veri aynı, tek publish, ayrıca aylık kotaya üç mesaj yerine tek mesaj olarak sayılır.Gereksiz trafik kaynaklarına bakın. Bizde en kötüsü, firmware’in her publish’te istemci özniteliklerini (IP, RSSI, firmware sürümü) göndermesiydi. Bunları yalnızca değiştiğinde gönderin.Çevrimdışı durumu hakkında: Çevrimiçi kuralı olarak Live connection kullanıldığında, MQTT oturumu açık olduğu sürece cihazlar çevrimiçi kalır; dolayısıyla keepalive 300 iken hiçbir şey değişmez. Eğer bağlan-gönder-bağlantıyı kes yöntemine geçerseniz, cihazları Recent message olan bir profile geçirin; aksi halde gönderimler arasında çevrimdışı görünürler.
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;
Yapay zekâ tarafından English dilinden çevrildi ·
Şebeke kısmını neden yapmak zorundasın ki? Fişe takılan 5V adaptör kullan ve yalnızca alçak gerilim kutusunu yap.
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.

