Energy usage monitoring with Sonoff S31

Hey All,
I got my first Sonoff smart plug S31 a few days ago. The primary reason I got it was to monitor energy use, frankly I wish that's all it did. Anyway I've got it on my network and I'm getting data to my dashboard. I'm using eWelink on my cell phone and the eWelink palate in Node-Red.

I can fetch the daily and monthly usage regularly and without issue. However when I fetch the current power consumption it works if I have the app open. I get a few "current" readings and after a while I get the same reading over and over. I was playing with it before bed last night and when I got up this morning it was a flat line on my graph. When I opened the app on my phone I started getting "current" data again.

Seems like I need to ping the Sonoff in some way. How can I get continuous readings without having the app open?


A lot of people here use MQTT to monitor their Sonoff devices.

There is a 'but', most of us have migrated to Tasmota firmware instead of using the standard Sonoff firmware. This allows a lot more control over the device and means that the data is always available. If you are practical, it might be worth investigating.

As far as I can recall there is no direct access to the Sonoff without their App. Tasmota means you wouldn't need a cloud connection, it operates over your networks. A simple Node-RED MQTT node will read data from the MQTT server at whatever frequency you want, you can also use an HTTP request.

How do you feel about flashing it with Tasmota to cut it's ties with ewelink and China?

Some sockets can be flashed over wifi from a browser, but it looks like the Sonoff has to be disassembled and some wires soldered on to reflash it, and a serial to USB converter board used.

Alternatively there seem to be US power monitoring sockets available pre-flashed with tasmota

1 Like

My son had a similar problem with a different Sonoff device that only communicated when the app was open. He failed to find a solution so flashed it with Tasmota instead.