brooksdata
@megan_b40 · Eylül 2025 tarihinde katıldı
Data analyst · water and wastewater
- Konular
- 2
- Yanıtlar
- 45
- Puan
- 0
Oluşturulan forum yanıtları
Yapay zekâ tarafından English dilinden çevrildi ·
Daha sonra paylaşılan bir yuva boşalırsa, sınır yüzünden kişisel olarak oluşturulmuş bir panoyu paylaşabilir miyim?
If a shared slot frees up later, can I share a board that came out personal because of the limit?
Yapay zekâ tarafından English dilinden çevrildi ·
İlk siteye dokunmadan, daha sıkı limitlerle ikinci bir site için Cold room controller profilini kopyalayabilir miyim?
Can I copy the Cold room controller profile for a second site with tighter limits, without touching the first?
Yapay zekâ tarafından English dilinden çevrildi ·
Haha, yanıldığımı kabul ediyorum. Ben de bir şey öğrendim.
Ha, I stand corrected. Learned something too.
Yapay zekâ tarafından English dilinden çevrildi ·
Bence ikisinden birini seçmen gerekiyor? Adaptörü kullanırken USB’yi her zaman çıkarırım.
I think you have to choose one or the other? I always unplug the USB when I use an adapter.
Yapay zekâ tarafından English dilinden çevrildi ·
Durum sütunundaki yeşil rozetleri nasıl elde ettiniz? Benimki düz metin gösteriyor.
How did you get the green badges in the status column? Mine shows plain text.
We had the same with tank level boxes in a pump yard and our network guy walked me through it.
Mechanism: with distance the signal-to-noise ratio drops. Wi-Fi then picks a slower, safer modulation and coding rate (rate adaptation), each symbol carries fewer bits, so the data rate falls from tens of Mbps to 1-6 Mbps. On top of that, weaker frames fail more often and get retried, and each retry costs airtime and backs off. So “weaker” turns into “slower”, and twilson’s point is real: at 1 Mbps your sensors use far more of the channel per byte than a laptop.
What helped us, in order of effect:
Fewer, bigger messages. Batch 2-4 readings into one telemetry array with their ts and send every couple of minutes. Same data, a fraction of the frames. Each message also counts once against the monthly quota whatever it holds.
Keepalive at 60-120 s, not 15. The docs recommend something between 30 and 300 s, and a short keepalive on a slow link is what gives you the odd keepalive_timeout.
Wait for PUBACK before deleting a buffered reading. Hermetry acks only after the message is safely queued, and a device can only have a limited number of unacknowledged QoS 1 messages in flight (20 by default), so on a slow link don’t fire them off blindly.
Fix the radio path properly: a point-to-point bridge to a small AP in the yard, or one gateway in the yard collecting the boxes over RS-485 or a short-range radio and sending on its own link. We did the bridge, the boxes now connect at 65 Mbps.
MQTT has the keepalive and in-flight numbers.
For the water network we use battery loggers that last years on a few readings a day. That is what “no wires” looks like in practice.
Yapay zekâ tarafından English dilinden çevrildi ·
James kablolamayı doğru yapmış. İki bus, her biri 2.2k, bu şekilde sorun olmaz. Biz bir pompa evinde bu yöntemle bus başına 14 probe çalıştırıyoruz.85.0, DS18B20’nin açılış değeridir; okumanın dönüşüm bitmeden yapıldığı anlamına gelir, genellikle bus üzerindeki bir brown-out. Kodda eleyin, asla göndermeyin.Anahtarlara gelince, geçmiş birikmeden şimdi değiştirin. Anahtarlar tüm organizasyon genelinde ayrı isimler olarak sayılır (Starter 250 ile sınırlar), bu yüzden sensör başına ROM id’leri ikinci bir bodrum kurmaya başladığınızda bu kotayı hızla tüketir. Onlara konumlarına göre isim verin, ROM id’den konuma giden bir eşlemeyi Pi üzerindeki bir dosyada tutun ve 20 değerin hepsini tek mesajla gönderin. 20 noktalı tek bir mesaj, tek noktalı bir mesajla aynı kotayı harcar.
import glob, json, paho.mqtt.client as mqtt
MAP = {"28-0316a2794bff": "rack1.top", "28-0316a27a11ff": "rack1.mid"} # etc
vals = {}
for p in glob.glob("/sys/bus/w1/devices/28-*/temperature"):
rom = p.split("/")[-2]
t = int(open(p).read()) / 1000
if rom in MAP and t != 85.0:
vals["cellar." + MAP[rom]] = round(t, 2)
c.publish("v1/telemetry", json.dumps(vals), qos=1)
Anahtar kuralları Telemetry keys sayfasında.
James has the wiring right. Two buses, 2.2k each, and you’ll be fine. We run 14 probes per bus in a pump house that way.
85.0 is the power-on value of the DS18B20, it means the read happened before a conversion finished, usually a brown-out on the bus. Drop it in code, never send it.
On the keys, change it now before you have history. Keys count as distinct names across the whole organisation (Starter caps you at 250), so ROM ids per sensor will eat that fast once you build a second cellar. Name them by position, keep a map from ROM id to position in a file on the Pi, and send all 20 in one message. One message with 20 points costs the same quota as one with one.
import glob, json, paho.mqtt.client as mqtt
MAP = {"28-0316a2794bff": "rack1.top", "28-0316a27a11ff": "rack1.mid"} # etc
vals = {}
for p in glob.glob("/sys/bus/w1/devices/28-*/temperature"):
rom = p.split("/")[-2]
t = int(open(p).read()) / 1000
if rom in MAP and t != 85.0:
vals["cellar." + MAP[rom]] = round(t, 2)
c.publish("v1/telemetry", json.dumps(vals), qos=1)
Key rules are on Telemetry keys.
Yapay zekâ tarafından English dilinden çevrildi ·
Ne sıklıkta okumaya ihtiyacınız var? Eğer yavaşsa, birçok geçici çözüm kabul edilebilir hale gelir.
How often do you need readings? If it’s slow, a lot of hacks become acceptable.
Yapay zekâ tarafından English dilinden çevrildi ·
Log satırındaki host’a bakın. Bu, ABD firmware’indeki broker host’udur.Hermetry, bölge başına ayrı dağıtımlar üzerinde çalışır (EU, US, TR) ve her organizasyon tek bir ana bölgede bulunur. Cihazlar, kendi organizasyonlarının bölgesindeki cihaz host’una bağlanmak zorundadır; bu host, her cihazın Connection details kartında yer alır. Bahsederim, ABD fabrikasının organizasyonu US bölgesinde, İngiltere’deki BT ekibinizin oluşturduğu sizinki ise EU bölgesinde. İngiltere’deki cihazlarınız, yalnızca sizin organizasyonunuzun bölgesinde var olan token’larla US broker’ına kapı çalıyor. Bu broker için bunlar tanınmayan token’lardır, bu yüzden 4 alıyorsunuz. Organizasyonunuza hiç sorulmadığı için Log sekmenize hiçbir şey ulaşmıyor.Tam olarak bunu, her bölgede birer tane olan iki kamu hizmeti şirketimiz arasında bir projeyi klonladığımızda yaşadım. Çözüm:
- Cihazlarınızdan herhangi birini açın, Credentials sekmesi, Connection details. MQTT broker host’unu not edin.
- Firmware’deki host’u değiştirin (HTTPS host’unu kullanıyorsanız onu da).
- Host adıyla bağlanmaya devam edin. SNI gereklidir, bu yüzden bir DNS sorgusundan aldığınız IP’yi sabit kodlamayın.
Owner ve admin kullanıcılar, ana bölgeyi organizasyon ayarlarındaki Residency bölümünde de görebilir. Sayfa: Regions and data residency.Ve 4 hataları aldığınıza göre: firmware 5 dakika geri çekiliyor, iyi. Bunu koruyun. Tek bir adresten tekrarlanan başarısız girişler o adresi bir süre engeller, sizin tüm fabrikanız ise tek bir NAT arkasında.
Look at the host in your log line. That’s the broker host from the US firmware.
Hermetry runs as separate deployments per region (EU, US, TR) and every organisation lives in one home region. Devices have to connect to the device host of their own organisation’s region, the one on each device’s Connection details card. I’d bet the US plant’s organisation is in the US region and yours, created by your IT from the UK, is in the EU. Your UK devices are knocking on the US broker with tokens that only exist in your organisation’s region. To that broker they’re unknown tokens, so you get a 4. Nothing reaches your Log tab because your org was never asked.
I hit exactly this when we cloned a project between two of our utilities, one in each region. Fix:
- Open any of your devices, Credentials tab, Connection details. Note the MQTT broker host.
- Replace the host in the firmware (and the HTTPS host if they use it).
- Keep connecting by host name. SNI is required, so don’t hardcode an IP from a DNS lookup.
Owners and admins can also see the home region under the organisation settings, Residency. The page is Regions and data residency.
And since you’re getting 4s: the firmware backs off 5 minutes, good. Keep that. Repeated failed logins from one address block that address for a while, and the whole plant is behind one NAT.
Yapay zekâ tarafından English dilinden çevrildi ·
Su ve atık su alanında çalışıyorum ve iki yıl önce aynı şeyi yaşadık.City hakkında: bunun için bir doküman sayfası yok, dolayısıyla sayaçlara ne eklediğini söyleyemem. Size söyleyebileceğim, sayaçların kendisinin nasıl eklendiği; bu, Hermetry’nin kendi LoRaWAN ağ sunucusuyla birlikte standart IoT tarafıdır. Frekans planı gateway’inizi takip eder, yani Avrupa’da EU868 cihazları, OTAA veya ABP ile ve Sınıf A veya C. Bir codec kütüphanesi var (son baktığımda 106 codec) bu yüzden birçok sayaç siz kod yazmadan çözümlenebiliyor ve aynı modelden yüzlercesini eklediğinizde eşleştirme modu işe yarıyor.Sayaçlar için kurduklarımız:
- Onaysız uplink’ler. Her onay gateway duty cycle’ını tüketir ve %1 alt bantlarda bu çok çabuk biter.
- Sayacın hacmini bir sayaç olarak kullanmak. Grafiklerde ve geçmiş API’sinde increase toplamı, bir sayaç taşma yaptığında dahil olmak üzere saatlik veya günlük tüketimi verir.
- Sessiz sayaçların görünmesi için, raporlama aralığından uzun ayarlanmış bir Device offline kuralı.
Müşteri beyaz boşluk radyosunda ısrar ederse, kendi gateway’inin sayaçları v1/gw topic’leri üzerinden MQTT ile child device olarak raporlaması gerekir. Mümkün, ama o gateway yazılımını sizin yazmanız gerekir.Codec listesi burada: The codec library
I work in water and wastewater and we went through the same thing two years ago.
On City: there’s no doc page for it, so I can’t tell you what it adds for meters. What I can tell you is how the meters themselves go in, which is the regular IoT side with Hermetry’s own LoRaWAN network server. The frequency plan follows your gateway, so EU868 gear in Europe, with OTAA or ABP and Class A or C. There’s a codec library (106 codecs last time I looked) so many meters decode without you writing anything, and pairing mode helps when you’re adding hundreds of the same model.
Things we set up for meters:
- Unconfirmed uplinks. Every ack costs gateway duty cycle, and on 1 % sub-bands that runs out fast.
- The meter’s volume as a counter. On charts and the history API the increase aggregate gives you consumption per hour or day, including when a meter rolls over.
- A Device offline rule so silent meters show up, set longer than the reporting interval.
If the client ever insists on the white space radio, its own gateway would have to report the meters as child devices over MQTT on the v1/gw topics. Possible, but you’d be writing that gateway software yourselves.
The codec list is here: The codec library
Yapay zekâ tarafından English dilinden çevrildi ·
Görmek kısmı için: dört anahtarın tamamını tek bir çizgi grafiğine koy; rh ve yüzdeler sağ eksende olsun. Hepsi ortak bir zaman ekseni paylaştığında faz ilişkisi hemen ortaya çıkar.
For the seeing part: put all four keys on one line chart, rh and the percentages on the right axis. The phase relationship jumps out once they share a time axis.
How often do you need the position? Once a second per cart is very different from once a minute, both for the radio and for what you store.
The Log tab saves so much guessing. +1
Same experience, two of my backpacks from the same seller were 0x3F.

