Mein Pi zeigt nach 20 Minuten Leerlauf Offline an und wacht auf, wenn ich mich per SSH anmelde
Von English mit KI übersetzt ·
Hallo zusammen. Abschlussprojekt: Ein Pi 3B+ im Gewächshaus, das wir für das Projekt nutzen, liest alle 15 Minuten einen BME280 aus und sendet die Werte über MQTT an Hermetry (paho, keepalive auf Standard 60 belassen). Der Pi ist im dortigen gemeinsamen WLAN.Nach dem Booten läuft er eine Weile, dann geht das Gerät in Hermetry offline und die Messwerte bleiben aus. Seltsam ist: Sobald ich mich per SSH einlogge, um nachzusehen (die Verbindung dauert sehr lange), ist alles wieder da und das Gerät ist wieder online. Es sieht so aus, als würde der Pi in den Ruhemodus gehen.Der Log-Tab des Geräts in Hermetry zeigt:
Disconnected Reason: keepalive_timeout
Gibt es einen Ruhemodus unter Raspberry Pi OS, den ich deaktivieren kann? In raspi-config habe ich keinen gefunden.Bereits versucht: das Sendeintervall auf 1 Minute gesenkt (dann hielt es etwas länger, vielleicht 40 Minuten), ein anderes Netzteil (das offizielle mit 2,5 A) und dmesg geprüft, das zum Zeitpunkt des Abbruchs nichts Auffälliges zeigt. Der Pi selbst läuft eindeutig, denn ein Cron-Job, der jede Minute die CPU-Temperatur in eine lokale Datei schreibt, schreibt die ganze Zeit weiter, auch wenn Hermetry offline meldet. Ich nutze Raspberry Pi OS Bookworm Lite, 32 Bit.
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.
Von English mit KI übersetzt ·
Ich glaube, in raspi-config gibt es eine Option zum Ausschalten des Bildschirms, vielleicht versetzt die ihn in den Ruhezustand? Bei mir schaltet sich das HDMI nach 10 Min. aus.
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.
Von English mit KI übersetzt ·
Er ist headless, es gibt gar keinen Bildschirm. Ich habe das Blanking trotzdem vorsichtshalber ausgeschaltet, ohne Änderung.
It’s headless, no screen at all. I turned blanking off anyway just in case, no change.
Von English mit KI übersetzt ·
Bildschirmabschaltung bewirkt das nicht. Klassisches WLAN-Energiesparen beim Broadcom-Chip des Pi; ich hatte dasselbe mit einem Pi 3B+ in einem Pumpenhaus. Der Pi schläft nicht, das WLAN schon, und eingehende Pakete werden verzögert oder verloren. Dein paho-Client sendet alle 60 s einen Ping, die Antwort kommt nicht rechtzeitig zurück, Hermetry sieht innerhalb des Keepalive nichts und beendet die Sitzung, daher keepalive_timeout. Dein SSH-Zugriff weckt das Funkmodul auf, deshalb kommt dann alles zurück.
Prüfe das:
iw wlan0 get power_save
Power save: on
Dauerhaft deaktivieren unter Bookworm mit NetworkManager:
sudo tee /etc/NetworkManager/conf.d/wifi-powersave.conf <<EOF
[connection]
wifi.powersave = 2
EOF
sudo systemctl restart NetworkManager
(2 bedeutet deaktiviert.) Wenn du ein älteres Image mit dhcpcd verwendest, füge iw wlan0 set power_save off in ein Skript ein, das nach dem Start des Netzwerks läuft.
Sorge außerdem dafür, dass dein Client sich selbst wieder verbindet: client.reconnect_delay_set(1, 120) und loop_forever oder loop_start, damit sich ein kurzer Verbindungsabbruch von selbst behebt.
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.
Von English mit KI übersetzt ·
Der Energiesparmodus war aktiviert. Ich habe die conf-Datei hinzugefügt, NetworkManager neu gestartet, und seitdem ist er jetzt seit 3 Tagen ununterbrochen online, seitdem gibt es auch keinen keepalive_timeout mehr im Log-Tab. SSH reagiert ebenfalls sofort, was ich gar nicht mit dem Problem in Verbindung gebracht hatte. Danke, 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!
Von English mit KI übersetzt ·
Haha, also war das WLAN im Ruhemodus und nicht der Pi. Ich schaue jetzt bei meinem nach.
Ha, so the Wi-Fi was asleep, not the Pi. Checking mine now.
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.
Mitdiskutieren
Melde dich an, um Fragen zu stellen und zu beantworten, hilfreiche Beiträge mit „Gefällt mir“ zu markieren und die Antwort zu kennzeichnen, die dein Problem gelöst hat. Jeder Beitrag bringt Punkte und Stufen.

