Pi, 20 dakika boşta kaldıktan sonra çevrimdışı görünüyor ve SSH ile bağlandığımda uyanıyor
Yapay zekâ tarafından English dilinden çevrildi ·
Merhaba herkese. Final projesi için, projede kullandığımız serada BME280 okuyan ve her 15 dakikada bir MQTT üzerinden Hermetry’ye gönderen bir Pi 3B+ var (paho, keepalive varsayılan 60 bırakıldı). Pi, oradaki ortak Wi-Fi’ye bağlı.Açılıştan sonra bir süre çalışıyor, sonra cihaz Hermetry’de çevrimdışı oluyor ve okumalar duruyor. Garip olan kısım, bakmak için SSH ile bağlandığımda (bağlanması çok uzun sürüyor) her şeyin geri gelmesi ve cihazın yeniden çevrimiçi olması. Pi’nin uyku moduna geçtiği gibi görünüyor.Cihazın Hermetry’deki Log sekmesi şunu söylüyor:
Disconnected Reason: keepalive_timeout
Raspberry Pi OS’ta kapatabileceğim bir uyku modu var mı? raspi-config içinde bulamadım.Şunları zaten denedim: yayın aralığını 1 dakikaya düşürmek (biraz daha uzun dayandı, belki 40 dakika), farklı bir güç kaynağı (resmi 2.5 A olan) ve dmesg kontrolü; düşme zamanı civarında belirgin bir şey göstermiyor. Pi’nin açıkça çalıştığını biliyorum, çünkü CPU sıcaklığını her dakika yerel bir dosyaya yazan bir cron işi, Hermetry çevrimdışı derken de sürekli yazmaya devam ediyor. Raspberry Pi OS Bookworm Lite, 32 bit kullanıyorum.
Hi all. Final year project, a Pi 3B+ in the greenhouse we use for the project reading a BME280 every 15 minutes and sending to Hermetry over MQTT (paho, keepalive left at default 60). Pi is on the shared Wi-Fi there.
It works for a while after boot, then the device goes offline in Hermetry and the readings stop. The weird bit is that as soon as I SSH in to look (which takes a long time to connect), everything comes back and the device is online again. Feels like the Pi is going to sleep.
The device’s Log tab in Hermetry says:
Disconnected Reason: keepalive_timeout
Is there a sleep mode on Raspberry Pi OS I can turn off? I couldn’t find one in raspi-config.
What I already tried: lowering the publish interval to 1 minute (made it last a bit longer, maybe 40 minutes), a different power supply (official 2.5 A one), and checking dmesg, which shows nothing obvious around the time it drops. The Pi itself is clearly running, because a cron job writing the CPU temperature to a local file every minute keeps writing the whole time, even while Hermetry says offline. I’m on Raspberry Pi OS Bookworm Lite, 32-bit.
Yapay zekâ tarafından English dilinden çevrildi ·
Bence raspi-config içinde bir ekran kararma seçeneği var, belki de Pi’yi uykuya sokan bu olabilir? Benimkinde HDMI 10 dakika sonra kapanıyor.
I think there’s a screen blanking option in raspi-config, maybe that’s putting it to sleep? Mine turns the HDMI off after 10 min.
Yapay zekâ tarafından English dilinden çevrildi ·
Başsız, hiç ekranı yok. Yine de ihtimale karşı ekran kararmasını (blanking) kapattım, değişiklik olmadı.
It’s headless, no screen at all. I turned blanking off anyway just in case, no change.
Yapay zekâ tarafından English dilinden çevrildi ·
Ekran kararması bunu yapmaz. Pi’nin Broadcom çipinde klasik Wi-Fi güç tasarrufu var; bir pompa odasındaki Pi 3B+ ile aynı sorunu yaşamıştım. Pi uyumuyor, Wi-Fi uyuyor ve gelen paketler gecikiyor ya da kayboluyor. paho istemcin her 60 sn’de bir ping gönderiyor, yanıt zamanında dönmüyor, Hermetry keepalive süresi içinde hiçbir şey görmüyor ve oturumu kapatıyor; bu yüzden keepalive_timeout. SSH bağlantın radyoyu uyandırıyor, bu yüzden her şey o anda geri geliyor.
Kontrol et:
iw wlan0 get power_save
Power save: on
Bookworm’da NetworkManager ile kalıcı olarak kapatmak için:
sudo tee /etc/NetworkManager/conf.d/wifi-powersave.conf <<EOF
[connection]
wifi.powersave = 2
EOF
sudo systemctl restart NetworkManager
(2 kapalı anlamına gelir.) dhcpcd kullanan eski bir imajdaysan, iw wlan0 set power_save off komutunu ağ ayağa kalktıktan sonra çalışan bir betiğe koy.
Ayrıca istemcinin kendi kendine yeniden bağlanmasını sağla: client.reconnect_delay_set(1, 120) ve loop_forever ya da loop_start kullan; böylece kısa bir kopma kendiliğinden düzelir.
Screen blanking won’t do it. Classic Wi-Fi power saving on the Pi’s Broadcom chip, I had the same with a Pi 3B+ in a pump house. The Pi doesn’t sleep, the Wi-Fi does, and incoming packets get delayed or lost. Your paho client sends a ping every 60 s, the answer doesn’t come back in time, Hermetry sees nothing within the keepalive and closes the session, hence keepalive_timeout. Your SSH wakes the radio up, which is why everything comes back then.
Check it:
iw wlan0 get power_save
Power save: on
Turn it off for good on Bookworm with NetworkManager:
sudo tee /etc/NetworkManager/conf.d/wifi-powersave.conf <<EOF
[connection]
wifi.powersave = 2
EOF
sudo systemctl restart NetworkManager
(2 means disabled.) If you’re on an older image with dhcpcd, put iw wlan0 set power_save off in a script that runs after the network is up.
Also make your client reconnect on its own: client.reconnect_delay_set(1, 120) and loop_forever or loop_start, so a short drop fixes itself.
Yapay zekâ tarafından English dilinden çevrildi ·
Güç tasarrufu açıktı. Yapılandırma dosyasını ekledim, NetworkManager’ı yeniden başlattım ve o zamandan beri 3 gündür kesintisiz çevrimiçi. O zamandan beri Log sekmesinde keepalive_timeout yok. SSH bağlantısı da anında gerçekleşiyor; bunun bağlantılı olduğunu fark etmemiştim bile. Teşekkürler Ciaran!
Power save was on. Added the conf file, restarted NetworkManager, and it’s been online for 3 days straight now, no keepalive_timeout in the Log tab since. SSH is instant too, which I hadn’t even realised was related. Thank you Ciaran!
Yapay zekâ tarafından English dilinden çevrildi ·
Haha, demek ki uyuyan Wi-Fi’ymiş, Pi değil. Ben de kendiminkine bakıyorum.
Ha, so the Wi-Fi was asleep, not the Pi. Checking mine now.
- 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.

