johnsonsec
@brian-johnson · Nisan 2026 tarihinde katıldı
IT and security admin · software · 20 years in the field
- Konular
- 1
- Yanıtlar
- 24
- Puan
- 0
Oluşturulan forum yanıtları
As far as I know Espressif has never officially said what WROOM stands for, so don’t trust the three answers you found. In practice it’s their name for a module family: the chip, flash, crystal and antenna on one shielded board you can solder on.
The suffixes:
- WROOM = module without PSRAM, WROVER = with PSRAM, MINI = smaller footprint.
- -E = ESP32 chip revision 3 (fixes several early silicon bugs). Buy E, not the old plain -32.
- U in the name (32UE) = u.FL connector for an external antenna instead of the PCB antenna.
- N4/N8/N16 = MB of flash, R8 = MB of PSRAM.
For your station: a DevKitC board with a WROOM-32E N4 to start, like Aisha has. 4 MB flash leaves room for two OTA partitions if you ever want to update it over the air. If the box ends up outdoors in a metal housing, switch to the 32UE as Grace said. Wake every 5 minutes, send one HTTPS POST to Hermetry’s device API, sleep: that keeps the board cool too, so it doesn’t heat the sensor.
Yapay zekâ tarafından English dilinden çevrildi ·
Kişisel olarak, ayakta kalması gereken o tek parçayı binadaki en zayıf çipe koymazdım. Ama diğerlerinin ne yaptığını merak ediyorum.
Personally I wouldn’t put the one piece that must stay up on the weakest chip in the building. But curious what others did.
Another Kiwi here. Cable already run to the workshop is a good start, plenty of people would love that. Buy two of whatever sensor you pick, one always turns out to be dodgy.
Yapay zekâ tarafından English dilinden çevrildi ·
Orada çalışırken küçük bir şey: cihaz belirtecini betiğin içine değil, yalnızca servis kullanıcınızın okuyabildiği bir dosyaya koyun. Git depolarında bunun çok fazla örneğini gördüm.
One small thing while you’re in there: put the device token in a file only your service user can read, not in the script. Saw too many of those in git repos.
Yapay zekâ tarafından English dilinden çevrildi ·
Bunlar string, ve iki ondalıklı değer. Bu bilerek mi yapıldı?
Those are strings, and two decimals. Is that on purpose?
Wireless power works over centimetres (phone chargers). Over metres you get microwatts and terrible efficiency. Your owner saw a demo.
Yapay zekâ tarafından English dilinden çevrildi ·
HVAC tarafından bağımsız bir nokta. Bu priz sunucu odanızda duruyor ve orada bir yükü anahtarlayabiliyor, bu yüzden erişimi olan diğer cihazlar gibi ele alın. Profilini yalnızca TLS olarak tutun, sensör profilini paylaşmak yerine kendi profilini verin ve ofisinizin genel aralığını İzin verilen ağlar altına ekleyin; böylece prizden kopyalanan bir token başka hiçbir yerde işe yaramaz. Ucuz prizlerin açılıp verilerinin dökülmesi insanların düşündüğünden daha sık oluyor.
Separate point from the HVAC side. That plug sits in your server room and can switch a load there, so treat it like any other device with access. Keep its profile TLS only, give it its own profile instead of sharing the sensor one, and put your office’s public range under Allowed networks so a copied token from that plug is useless anywhere else. Cheap plugs get opened up and dumped more often than people think.
Yapay zekâ tarafından English dilinden çevrildi ·
Mobil uygulama, onu kuran herkesin telefonuna bildirim getirir. Diğerleri için ise tarayıcıdaki zil, e-posta, bir yöneticinin bağladığı sohbet uygulamaları veya bir akıştan gelen SMS vardır.
The mobile app brings notifications to phones, for whoever installs it. For the rest it’s the bell in the browser, e-mail, chat apps an admin has connected, or SMS from a flow.
Did my master’s on state estimation before I drifted into IT, so this one I can answer.
Rahul is right that you check rank, just locally. Linearise at the current estimate: F = df/dx, H = [1 0 0]. Build O = [H; HF; HF^2] and check its rank (or better its condition number) along the trajectory. With your model, the q_in and k columns of HF are dt/A and -dt/A*sqrt(h). They’re independent only if sqrt(h) changes over the window. When the level sits still, O drops to rank 2 and the filter can trade q_in against k forever, which is exactly what you see.
What I’d change:
Give the two states different time scales. k changes over months, q_in over minutes. Make the process noise of k tiny (orders of magnitude below q_in) so the filter only moves k when there is evidence.
Use the excitation you have. When the pump runs, Q_p is known and the level moves, which is when k becomes identifiable. Some people only update k during pump cycles and dry-weather periods where q_in is near zero.
Keep k positive: estimate log(k), or clamp it.
If budget allows, one outlet flow measurement once a week (a portable meter) pins k and the problem goes away.
For the ops board, send the diagnostics too, not just the estimates:
{"h_m": 2.41, "q_in_ls": 38.2, "k_est": 0.0164, "innov_m": 0.004, "obs_cond": 1.2e3}
A chart of the innovation and the condition number tells you when to trust k. An alarm rule on obs_cond above some limit with a duration debounce is a cheap way to flag “k estimate unreliable right now”.
QElectroTech is free and has IEC terminal symbols plus terminal plan generation, if you’re not on a paid CAD.
Yapay zekâ tarafından English dilinden çevrildi ·
Anahtarı, bir gün bir bilete yapıştıracağınız betikte değil, yalnızca root kullanıcısının erişebildiği bir dosyada saklayın.
Store the key in a root-only file, not in the script you’ll paste into a ticket some day.
Yapay zekâ tarafından English dilinden çevrildi ·
Gateway ve her alt cihaz, yani hava durumu istasyonuyla birlikte 27, problarla birlikte daha fazla.
The gateway plus every child, so 27 with the weather station, more with the probes.
Yapay zekâ tarafından English dilinden çevrildi ·
Hermetry, cihazlardan MQTT 3.1.1 ve HTTPS kabul eder; ayrıca kendi ağ sunucusu üzerinden LoRaWAN, ve sorgulanan SNMP ile kameralar. MQTT-SN yok, CoAP yok. Dolayısıyla IP’si olmayan her şey için çözüm, saha tarafıyla konuşan ve yukarı MQTT ile bağlanan yerel bir ağ geçidi. Bunu iki şekilde yaptım:Hermetry Edge ile lisanslı ağ geçidi. RS-485 üzerinden Modbus RTU’yu ve Modbus TCP’yi okur (modele bağlı), kendi sertifikasıyla TLS üzerinden dışarı bağlantı kurar, kesintilerde verileri tamponlar ve her invertör ayrı bir alt cihaz olarak görünür. Yerel Cloud sayfasındaki kodla sahiplenirsiniz; sahada kimsenin kimlik bilgisi girmesi gerekmez.Kendi ağ geçidiniz. Bir Pi veya endüstriyel PC, veriyolarını pymodbus ile okur, hava istasyonunun seri radyosunu ve 433 MHz alıcısını okur ve hepsini v1/gw/connect ve v1/gw/telemetry üzerinden yayınlar:
{"INV-07": {"ts": 1793000000000, "values": {"p_ac_kw": 41.2, "e_day_kwh": 188.4}},
"WX-1": {"values": {"irradiance": 612, "t_amb": 9.8}}}
Cihazı eklerken “Bu cihaz bir ağ geçididir” olarak işaretleyin; aksi halde her v1/gw mesajı reddedilir ve oturum üç denemeden sonra kapatılır. İnvertörlere bir gün komut göndermeniz gerekirse, komutları alt cihaza gönderirsiniz ve ağ geçidi bunları v1/gw/rpc üzerinden alır. Kendi ağ geçidiniz bu komutları veriyoluna iletmek zorundadır; lisanslı olan bunu sizin yerinize yapar.Haftalarca gözetimsiz kalması muhtemel bir saha için lisanslı kutuya para ödemenizi öneririm.
Hermetry takes MQTT 3.1.1 and HTTPS from devices, plus LoRaWAN through its own network server and polled SNMP and cameras. No MQTT-SN, no CoAP. So for anything non-IP the answer is a gateway on site that speaks the field side and talks MQTT up. Two ways I’ve done it:
Licensed gateway with Hermetry Edge. It reads Modbus RTU over RS-485 and Modbus TCP (depends on the model), dials out over TLS with its own certificate, buffers during outages, and each inverter appears as its own child device. You claim it with the code on its local Cloud page, nobody types credentials on site.
Your own gateway. A Pi or industrial PC reads the buses with pymodbus, reads the weather station’s serial radio and a 433 MHz receiver, and publishes for all of them on v1/gw/connect and v1/gw/telemetry:
{"INV-07": {"ts": 1793000000000, "values": {"p_ac_kw": 41.2, "e_day_kwh": 188.4}},
"WX-1": {"values": {"irradiance": 612, "t_amb": 9.8}}}
Mark the device “This device is a gateway” when you add it, or every v1/gw message is refused and the session gets closed after three. If the inverters ever need commands, you send them to the child device and the gateway receives them on v1/gw/rpc. Your own gateway has to pass them on to the bus, a licensed one does that for you.
For a site that is probably unattended for weeks, I’d pay for the licensed box.
Possible, but with the pin you’re using I’d bet on power first. The Uno’s 3.3 V comes from a small LDO (an LP2985 on most boards) rated about 150 mA. An ESP8266 pulls 70-80 mA idle with Wi-Fi on and spikes to 300+ mA during transmit and association. The rail sags, the ESP browns out mid-connect and resets. When it does survive, every busy moment risks the same, which fits your half-hourly drop-offs.
What I’d do:
- Feed the ESP from its own regulator off the Uno’s 5 V: an AP2112K-3.3 (600 mA) or an AMS1117-3.3 module, with 10 µF plus 100 nF right at the ESP’s VCC pin. A 470 µF electrolytic nearby helps with the transmit spikes.
- Level-shift Uno TX to ESP RX with a 1k/2k divider. The ESP isn’t 5 V tolerant, whatever forum posts claim.
- Keep the Uno’s 5 V source decent. USB from a laptop is fine for the bench, a cheap phone charger often isn’t.
Michael’s point is worth checking after that. rst cause 4 is the watchdog, and a brownout that half-crashes the code can also end in a watchdog reset, so fix power and see what’s left.
For the Hermetry side, once it’s stable, keep the MQTT keepalive around 60 s. A short keepalive plus a flaky supply gives you exactly that pattern of timeouts in the Log tab.
Yapay zekâ tarafından English dilinden çevrildi ·
Safe hakkında: Ne eklediğine dair bir dokümantasyon sayfası bulamadım, bu yüzden size bir şey söyleyemem. Cihaz profilindeki alarm kuralları “birine haber verme” kısmını karşılıyor, biz de bunu kullanıyoruz.
On Safe: I found no doc page on what it adds, so I can’t tell you. Alarm rules on the device profile cover the “tell someone” part, that’s what we use.

