Are you using RUI3 or the Arduino BSP? Your initial post suggests Arduino, but want to be sure.
For both RUI3 and Arduino using the SX126x-Arduino library, the LoRa transceiver will be automatically in low power mode unless
LoRaWAN class C is used (RX always on)
LoRa P2P RX is enabled
It will be woken up when required, e.g. you force P2P RX, or you do initiate sending a payload.
In RUI3 the sleep/low power mode is complete controlled by the framework. In the SX126x-Arduino library you can force the transceiver into low power mode with the Radio.Sleep() function.
For “best practices” in RUI3, I have written some examples in the RUI3 Best Practices.
As you can see in the screenshot below, I am using your LoRa library in the last version: beegee-tokyo/SX126x-Arduino @ ^2.0.26. Where are the low power settings for LoRa Radio in the library? I would like to study to understand what we have as options, ok?
I was thinking, in some cases, using the “Wire.end()”(where make sense) to reduce the power consumption for the sensors and storage: RAK1904, RAK1906, RAK12500, RAK15007, RAK5801. What do you think about it?
When using LoRaWAN, it is better not to tinker around with the commands that select standby and sleep, because the status is controlled by the LoRaWAN stack.
When using LoRa P2P, you can actively control the status. Sleep is the lowest current consumption, Standby is higher, TX is the highest. Best info about the status is in the SX1262 datasheet.
The library has commands Radio.Standby(), Radio.Sleep() to force these status.
CAD and RX Duty Cycle can reduce the power consumption in scenarios where you need to have RX active all the time. They are not that easy to use, best information about them can be found in Semtechs documents SX1261-2_RxDutyCycle_V1.0.pdf and SX126X CAD performance evaluation V2_1.pdf (not sure if the versions of the documents are the latest)
Wire.end() can help to reduce power consumption, but the saving is not very high.