ULPM vs allowing cloud sync

My FX30 runs on battery (256 Wh) and in order to get the desired month of battery life (more would be nice) I rely on ULPM to sleep in between measurements.

However, while my data is sent to the cloud when writing them to “cl://” the synchronization with the cloud is not complete. For instance, if I change an edge action or alter the value of a resource in the web interface, it will never get written to the device - the spinner at the device just keeps spinning.

Is there any way of postponing the ULPM shutdown until all data have been exchanged with the cloud? I have failed to find any resource indicating the state of the cloud synchronization process. It would be nice if the shutdown resource had a “lazy” shutdown feature that would not shut down until housekeeping was completed.

Overall I am really impressed with Octave but things have gotten quite complex due to a lot of implications of the battery powered operation.

Best Regards

1 Like

Hi @jj1 ,
Can you please clarify the observation that you are getting?

It means did you try to synchronize in ULPM?
In my practice, Octave provides real time for synchronization. It means it is automatically synchronized when there are any changes from the Octave page you can check the synchronized state as below

And the synchronize state from the device

Please share if you have any concerns.

Hi Vianney,

My device wakes up to sample a few sensors, transmits the data to the cloud and then goes to ULPM sleep. My hope was that synchronizing edge actions etc. would be able to take place during the awake periods but this is not the case. Since setting the ULPM to true puts the device to sleep no matter if the device is synchronized with the cloud (edge action etc) or not I need to find a way of postponing putting the device to ULPM sleep. To do that it would be very handy to know whether or not the synchronization was complete.

I have now tried a different approach which uses a cloud action to put the device in ULPM sleep. As I have had tremendous problems with ULPM “boot loops” where I cannot disable ULPM before the device goes to ULPM again, the cloud action solution also provides a nice way of solving this issue. Now I just need to verify that edge actions etc are properly synchronized when using this way of managing ULPM.

function (event) {

var deviceName = event.path.split("/")[3];

// Your code here…

var result = {};

var cmdPath = “/everfuel/devices/” + deviceName + “/:command”;

console.log("send ulpm to " + cmdPath);

result[cmdPath] = [


  "elems": {

    "util": {

      "ulpm": {

        "shutdown": [true]






return result;


Hi Jes,

Via an edge action, you should be able to determine if you need to hold off ULPM due to allow a configuration to complete.

Handling Configuration Events Programmatically. You will need firmware 3.2.0 or above. FW 3.2.0 should be available in the near future.

OK, thanks, I guess I was not the only one needing this.

Can you provide a list of bugfixes and changes to firmware 3.2.0? I see quite a bit of strange behavior with firmware 3.1.0 and it would be interesting to see if some of that has been resolved.
Can I sign up for a prerelease? :slight_smile: