Vorab mal willkommen im Forum!
Wie hast du überprüft, ob die I_PRE_SLEEP_NOTIFICATION ankommt?
(Mit Bordmitteln: Verbose der Node auf 5 stellen oder Zeile 1105 so anpassen, dass dort ein kleinerer Verbose-Level genutzt wird).
Die paar Zeilen sind m.E. so korrekt, die machen folgendes:
- Timer setzen, der das sleepState-Reading nach kurzer Frist auf "schläft" setzt (und das Internal) - dieser Timer sollte auch ablaufen.
- Timer setzen, der bei Ablauf die Node als "dead" meldet - dieser Timer sollte nie ablaufen, sondern immer wieder rechtzeitig neu gesetzt werden.
- MYSENSORS::Timer($hash) versendet alle ausstehenden Messages der Node nochmal, für die erfolglos ein ACK angefordert wurde => das sollte auch aktiviert bleiben...
- Die letzte Zeile schließlich versendet "normale" Messages, die gequeuet wurden, weil die Node schlief (und die das GW deswegen noch gar nicht "kennt").
M.E. spricht einiges dafür, dass die I_PRE_SLEEP_NOTIFICATION zwar von der Node versendet wurde, aber nicht beim GW ankam => Funkproblem. Bitte wie oben beschrieben Verbose oder Log-Level der Zeile ändern und mal da nachsehen, ob wirklich was ankommt. Wenn Funkproblem, als erstes checken, ob das mit dem Kondensator paßt. (ist doch nRF24, oder?).
Kann aber auch sein, dass ich mich täusche.
Gruß, Beta-User