RaspAP ağ geçidi Pi'mde salt okunur dosya sistemi: tamponlanmış okumalara ne olur?
Yapay zekâ tarafından English dilinden çevrildi ·
Sera Pi’sine geri döndüm (internete açmadığım o, tekrar teşekkürler). Artık altı ESP8266 sensör için küçük bir erişim noktası olarak RaspAP çalıştırıyor. Veriler Pi üzerindeki mosquitto’ya yayınlanıyor, bir Python betiği de her şeyi v1/gw/telemetry üzerinden bir ağ geçidi olarak Hermetry’ye iletiyor; her ESP için bir alt cihaz var.Bir hafta içinde iki elektrik kesintisi yaşandı ve SD kart bir keresinde bozuk bir mosquitto.db ile geri geldi. İnsanlar salt okunur dosya sistemi kullanmamı söylüyor. Ama RaspAP’nin dosya sistemini “kilitlediğini” ya da overlay’lerden hoşlanmadığını da okudum. Ayrıca iletici, 4G koptuğunda kullanmak üzere bir SQLite dosyasında tampon tutuyor. Dosya sistemi salt okunursa bu veriler nereye gidecek?Kusura bakmayın, tek seferde üç soru sordum.
Back with the greenhouse Pi (the one I didn’t expose to the internet, thanks again). It now runs RaspAP as a little access point for six ESP8266 sensors. They publish to mosquitto on the Pi, and a Python script forwards everything to Hermetry as a gateway on v1/gw/telemetry, one child per ESP.
Two power cuts in a week and the SD card came back with a corrupted mosquitto.db once. People say use a read-only filesystem. But I also read that RaspAP “locks” the filesystem or doesn’t like overlays? And my forwarder keeps a buffer in a SQLite file for when the 4G drops. If the filesystem is read-only, where does that go?
Sorry, three questions in one.
Yapay zekâ tarafından English dilinden çevrildi ·
Güç kesintisinde SD kart bozulması Pi’de klasik bir arızadır. raspi-config üzerinden Overlay FS (Performance Options > Overlay File System) iyi çalışır.
SD corruption on power loss is the classic Pi failure. Overlay FS through raspi-config (Performance Options > Overlay File System) works well.
Yapay zekâ tarafından English dilinden çevrildi ·
Kesintiler genellikle ne kadar sürer? Dakikalar mı, saatler mi?
How long are the outages usually? Minutes or hours?
Yapay zekâ tarafından English dilinden çevrildi ·
4G kesintileri dakikalar sürüyor. Elektrik kesintileri ise bahçe parselinin sorunu, birkaç saat.
4G drops are minutes. Power cuts are the allotment’s fault, a few hours.
Yapay zekâ tarafından English dilinden çevrildi ·
RaspAP hiçbir şeyi kilitlemez; yapılandırmasını /etc/raspap ve hostapd/dnsmasq dosyaları altına yazar. Overlay açık olduğunda, web arayüzünde yaptığın her değişiklik yeniden başlatmadan sonra kaybolur. “Overlay’lerden hoşlanmıyor” hikâyesi budur.
RaspAP doesn’t lock anything, it writes its config under /etc/raspap and the hostapd/dnsmasq files. With the overlay on, any change you make in its web UI is gone after reboot. That’s the “it doesn’t like overlays” story.
Yapay zekâ tarafından English dilinden çevrildi ·
Küçük bir UPS HAT, elektrik kesintilerinin hiç sorun olmasını engellerdi.
A small UPS HAT would stop the power cuts being a problem at all.
Yapay zekâ tarafından English dilinden çevrildi ·
Kesinti sırasındaki okumalar gönderildiklerinde yine doğru zamanda görünecek mi?
Would the readings from the outage still show at the right time when they finally get sent?
Yapay zekâ tarafından English dilinden çevrildi ·
Trafo merkezlerinde aynı düzende yaklaşık otuz tane bu küçük ağ geçidini çalıştırıyorum.Kök dosya sistemi için overlay açık, evet. RaspAP değişikliklerini overlay kapalıyken yap, yeniden başlat, sonra tekrar aç. Sinir bozucu ama nadir.Tampon, yeniden başlatmalara ve güç kesintilerine dayanabilecek bir yere ihtiyaç duyar: karttaki ikinci bir bölüm (veya bir USB bellek), ext4 ve günlüğüyle okuma-yazma olarak bağlanmış, overlay’in dışında. SQLite’ı oraya yönlendir; PRAGMA journal_mode=WAL ve synchronous=NORMAL ile. Böylece bir kesinti en fazla son birkaç yazmaya mal olur, veritabanına değil. mosquitto’nun kalıcılığını da oraya taşı ya da iletici zaten tamponladığı için kalıcılığı kapat.Rachel’ın sorusuna gelince: ESP gönderdiğinde her okumaya UTC milisaniye cinsinden ts damgası basarsan evet (Pi’nin saati yalnızca 4G açıldıktan sonra senkronize olduğunda geçerli, ayrıca güç kesintisinden sonra 1970 görünmemesi için fake-hwclock kullan). Birikmiş verileri çocuk cihaz başına gruplar halinde gönder:
{"esp-bed3": [{"ts": 1767254400000, "values": {"soil_pct": 41}},
{"ts": 1767254460000, "values": {"soil_pct": 41}}]}
Kayıtlar geçmişte kendi zamanlarına yerleşir. Tüm kayıtları bir dakikadan eski olan bir mesaj yeniden oynatma sayılır ve profilin yeniden oynatma hızına uymak zorundadır, bu yüzden uzun bir birikim bir süre içinde boşalır. Hepsi bir saniyede görünmezse panik yapma. Ve satırları silmeden önce PUBACK’i bekle. Bkz. Devices behind a gateway.
I run about thirty of these little gateways on substations, same pattern.
Overlay on for the root filesystem, yes. Do your RaspAP changes with the overlay switched off, reboot, switch it back on. Annoying but rare.
The buffer needs a place that survives reboots and power loss: a second partition on the card (or a USB stick) mounted read-write with ext4 and its journal, outside the overlay. Point SQLite there, with PRAGMA journal_mode=WAL and synchronous=NORMAL. A cut then costs you at most the last few writes, not the database. Move mosquitto’s persistence there too, or turn persistence off since your forwarder already buffers.
On Rachel’s question: yes, if you stamp each reading with ts in UTC milliseconds when the ESP sends it (only if the Pi’s clock is synced, which it is once 4G is up, and keep a fake-hwclock so it isn’t 1970 after a power cut). Send the backlog in batches per child:
{"esp-bed3": [{"ts": 1767254400000, "values": {"soil_pct": 41}},
{"ts": 1767254460000, "values": {"soil_pct": 41}}]}
Records land at their own time in history. A message whose every record is older than a minute counts as a replay and has to fit the profile’s replay rate, so a long backlog drains over a while. Don’t panic when it doesn’t all appear in one second. And wait for the PUBACK before deleting rows. See Devices behind a gateway.
Yapay zekâ tarafından English dilinden çevrildi ·
Overlay açık, buffer.db ext4 biçimli bir USB bellekte, WAL modunda, mosquitto kalıcılığı kapalı. 4G kesintisi sırasında bilerek fişi çektim: Pi geri geldi, 20 dakikalık okumalar yaklaşık bir dakikada boşaldı ve grafikte doğru zamanlarda yer alıyor. Emily, teşekkürler, neden olduğunu bilmeden AP ayarlarımı kaybedecektim.
Overlay on, buffer.db on a USB stick with ext4, WAL mode, mosquitto persistence off. Pulled the plug during a 4G outage on purpose: Pi came back, the 20 minutes of readings drained over about a minute and sit at the right times on the chart. Emily, thanks, I’d have lost my AP settings without knowing why.
- 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.

