Sınır yönlendiricisinin arkasındaki Contiki 6LoWPAN ağındaki her düğüme tek bir komut gönderme
Yapay zekâ tarafından English dilinden çevrildi ·
Fabrika müdürüyüm, o yüzden kelime seçimime bakmayın. Yüklenicimiz iki yıl önce soğuk depolara 30 kablosuz sıcaklık düğümü yerleştirdi. Düğümler Contiki-NG üzerinde bir 6LoWPAN ağında çalışıyor ve sınır yönlendiricisini çalıştıran bir kutu elektrik odasında duruyor. Aynı kutu okumaları bir ağ geçidi olarak Hermetry’ye de iletiyor; her düğüm kendi alt cihazı olarak görünüyor. Bu kısım kusursuz çalıştı.Şimdi istediğim şu: QA ekibi bir doğrulama çalışması başlattığında her düğüm 5-minute örnekleme aralığından 30-second aralığına geçmeli, sonrasında tekrar geri dönmeli. Bugün yüklenici tek tek her düğüme SSH ile bağlanıp ayarı değiştiriyor; bu da neredeyse bir saat sürüyor. Ona “sadece yayın yap” dediğimde, sınır yönlendiricisi üzerinden multicast’in Contiki’de çalışmadığını ve Hermetry’nin zaten alt cihazlara komut gönderemediğini söyledi.Bu iki noktada da haklı mı? Radyo yığınının ayrıntılarına ihtiyacım yok; ona bir düzeltme için ödeme yapmam mı yoksa başka bir yaklaşım mı aramam gerektiğini bilmem lazım.
Plant manager, so forgive the vocabulary. Our contractor put 30 wireless temperature nodes in the cold stores two years ago. They run Contiki-NG on a 6LoWPAN mesh, and a box running the border router sits in the electrical room. The same box also reports the readings to Hermetry as a gateway, each node shows up as its own child device. That part has been rock solid.
What I want now: when the QA team starts a validation run, every node should switch from 5-minute to 30-second sampling, and back afterwards. Today the contractor SSHs in and pokes each node one by one, which takes most of an hour. I asked him to “just broadcast it” and he said multicast through the border router doesn’t work in Contiki and that Hermetry can’t send to children anyway.
Is he right on both counts? I don’t need the details of the radio stack, I need to know whether to pay him for a fix or look for another approach.
Yapay zekâ tarafından English dilinden çevrildi ·
Hermetry kısmı konusunda haklı değil. Hermetry, bir ağ geçidinin arkasındaki cihazlara komut ve paylaşılan öznitelik değişikliklerini gönderebilir: ağ geçidi bunları v1/gw/rpc veya v1/gw/attributes üzerinden alır ve uygulamak zorundadır; dolayısıyla bu, yüklenicinin ağ geçidi yazılımının bu konuları işleyip işlemediğine bağlıdır. Ağ geçidi cihazının kendisine gönderilen bir komut da çalışır; bu yüzden elektrik odanızdaki kutu, bir pano düğmesinden veya bir kuraldan “doğrulama örneklemesini başlat” komutunu alıp bunu yerel olarak dağıtabilir. Bu, 30 komut yerine tek bir komut demektir. Radyo kısmı Eric’in alanı.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Radyo kısmında kısmen haklı. Contiki-NG, RPL ağları için IPv6 çoklu yayın (multicast) desteğine sahip: SMRF ve MPL olmak üzere iki motor. Bunu derleme zamanında düğümlerin project-conf.h dosyasında ve sınır yönlendiricisinde (border router) etkinleştirirsiniz:
/* every node and the border router */
#define UIP_MCAST6_CONF_ENGINE UIP_MCAST6_ENGINE_MPL
/* for SMRF instead you also need storing mode with multicast: */
/* #define UIP_MCAST6_CONF_ENGINE UIP_MCAST6_ENGINE_SMRF */
/* #define RPL_CONF_MOP RPL_MOP_STORING_MULTICAST */
Haklı olduğu nokta, standart rpl-border-router’ın dış ağdan gelen çoklu yayın trafiğini mesh’e iletmemesi. Bu yüzden çoklu yayının sınır yönlendiricinin kendisinde başlatılması gerekir: Hermetry’den gelen bir komutla, düğümlerin üyesi olduğu bir gruba tek bir MPL datagramı gönderen küçük bir süreç. Bu, 30 düğümün tamamının çoklu yayın etkin olacak şekilde yeniden flash’lanması demek ve soğuk depo kurulumunda bu bir saha ziyareti gerektirir.Dürüst olmak gerekirse, 30 düğüm için çoklu yayından vazgeçerdim. Sınır yönlendirici 30 adresi döngüyle gezip yeniden deneme mekanizmalı tek yayın (unicast) gönderir. Mesh üzerinde 30 küçük paket hiçbir şey değil, saniyeler içinde biter ve her düğüm onay verir, böylece kimin kaçırdığını bilirsiniz. Yeniden flash gerekmez.Sonra Hermetry’de, ağ geçidinin profiline period_s parametreli sampling.set gibi bir komut ekleyin, tüm düğümler onayladığında bu süreçten yanıt verin ve QA panosuna iki düğme koyun. Düğümlerin güncel periyodunu istemci özniteliği (client attribute) olarak raporlamasını sağlayın, böylece QA değişikliğin uygulandığını görebilsin.
Partly right on the radio half. Contiki-NG does have IPv6 multicast for RPL networks: two engines, SMRF and MPL. You turn one on at build time in the nodes’ project-conf.h and in the border router’s:
/* every node and the border router */
#define UIP_MCAST6_CONF_ENGINE UIP_MCAST6_ENGINE_MPL
/* for SMRF instead you also need storing mode with multicast: */
/* #define UIP_MCAST6_CONF_ENGINE UIP_MCAST6_ENGINE_SMRF */
/* #define RPL_CONF_MOP RPL_MOP_STORING_MULTICAST */
Where he’s right is that the stock rpl-border-router does not forward multicast arriving from the outside network into the mesh. So the multicast has to originate on the border router itself: a small process on that box that, on a command from Hermetry, sends one MPL datagram to a group the nodes joined. It means reflashing all 30 nodes with multicast enabled, which on a cold store install is a site visit.
Honestly, for 30 nodes I’d skip multicast. Have the border router loop over the 30 addresses and send unicast with a retry. 30 small packets on a mesh is nothing, it finishes in seconds, and every node acks so you know who missed it. No reflash.
Then in Hermetry: add a command like sampling.set with a period_s parameter on the gateway’s profile, answer it from that process once all nodes acked, and put two buttons on the QA dashboard. Have the nodes report their current period as a client attribute so QA can see it took.
Yapay zekâ tarafından English dilinden çevrildi ·
Yüklenici, saha ziyareti yapmadan unicast döngüsünü iki günde tamamladı. Kalite ekibi “Validation on” düğmesine basıyor, ağ geçidi yaklaşık 8 saniye sonra 30/30 onayla yanıt veriyor ve düğümlerin sample_period özniteliği 30 oluyor. Bir saatlik işten bir düğme işine geçtik. İkiniz de teşekkürler, artık “sadece yayın yap” demeyi bıraktım.
Contractor did the unicast loop in two days, no site visit. QA presses “Validation on”, the gateway answers with 30/30 acked about 8 seconds later, and the nodes’ sample_period attribute flips to 30. Went from an hour to a button. Thanks both, and I’ve stopped saying “just broadcast it”.
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Sohbete katılın
Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

