Hi all,

I’m looking for a reliable smart plug with current/energy monitoring that meets these requirements:

  • Ideally <1s time resolution (I need fast updates, not just averaged every few seconds.)
  • Wi‑Fi connectivity preferred, with MQTT client support out of the box (similar to how Shelly devices can publish to a local MQTT server when the load current changes. I’d rather not have to poll a device’s HTTP endpoint a few times per second.)
  • Provisioning/config: Bluetooth for setup would be a big bonus (I think the Shelly Plug S Gen3 can do this, too.)
  • Reliability/manufacturer: Needs to be from a well‑supported brand or at least something that’s proven stable and not a “cheap no‑name” option.

I’ve been testing a few devices already. Most average power consumption over longer periods, while e.g. newer Shelly devices come frustratingly close to being exactly what I need.

Does anything on the market provide sub‑second resolution for current measurement? Most consumer plugs I’ve tried either average readings or only publish once every few seconds, which isn’t quite enough for my use case (measuring transient behavior and categorising operating modes of certain appliances).

Has anyone come across a plug that ticks these boxes? Or maybe a hidden configuration with Shelly devices that I’ve missed?

Thanks a lot for any help!

Edit: What I’m actually looking for is a fast response time to significant changes in power consumption (by more than a set amount or a percentage), so a high sample rate within the plug. A constant delay until the message is sent out wouldn’t be a problem at all.

  • Munkisquisher@lemmy.nz
    link
    fedilink
    English
    arrow-up
    3
    ·
    4 days ago

    I’ve got several of the AthomTech smart plugs, they run Esphome, and you can fork their firmware and modify it as you see fit. I’ve got one pinging a fairly unstable server and will power cycle it if it doesn’t get a response for 10min, all on device so it works without home assistant running.

    Here’s it’s config, defaults to 10sec, but you can change that easily

    github://athom-tech/athom-configs/athom-smart-plug-v2.yaml

    • Munkisquisher@lemmy.nz
      link
      fedilink
      English
      arrow-up
      2
      ·
      4 days ago

      You can probably sample the data on the device at a much higher rate and send updates instantly if it’s over a certain threshold

      • tofubl@discuss.tchncs.deOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 days ago

        This together with runtime configurable thresholds would solve my problem completely.

        I ordered one of their ESPHome and one of their Tasmota models yesterday. When you talk about configuration, that actually means compiling a firmware binary and doing an OTA update, right? Or is it actually just a config file I give the device?

        • Munkisquisher@lemmy.nz
          link
          fedilink
          English
          arrow-up
          2
          ·
          3 days ago

          It’s a config that lives in Esphome on your home assistant server. Esphome has a Web based editor with some syntax help. When you click update it compiles it for you and uploads it ota.

        • Claude Flammang@dju.social
          link
          fedilink
          arrow-up
          1
          ·
          3 days ago

          @tofubl
          With EspHome you can easily report only changes that are above a defined threshold:

          sensor:
          - platform: adc
          pin: GPIO34
          name: “ADC Sensor”
          update_interval: 10s # read every 10s
          filters:
          - delta: 0.05 # only report if change ≥ 0.05

  • wildbus8979@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    4
    ·
    4 days ago

    Sonoff S31with Tasmota or ESPHome probably would do it. I’m not 100% sure the update interval sub second, but it’s fast

    • tofubl@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      4 days ago

      Thanks, I’ll look at that device.

      It’s actually not so much the fast interval that I’m looking for, but fast response to changes in power consumption. In fact, I’d prefer not to be flooded by multiple messages per second but to only receive them on significant change (where “significant” would have to be configurable.)

      The Shelly AZ I have been thoroughly testing sends out MQTT messages when power consumption changes, but has a delay between 1.5 and 2.5s, sometimes up to 5s. If this were either faster or at least consistently delayed by the same time, I could use it.

      Reading up on Tasmota I’ve seen the PowerDelta configuration value which I think is what I am looking for…

      • wildbus8979@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        5
        ·
        4 days ago

        Since you have very specific requirements I would read up some more to make sure it fits the bill before you purchase one.

        You should also know that for either ESPHome or Tasmota you’ll require a flasher (usb to TTL serial device) and some soldering skills (for the S31 there’s also a 3d printable jig that exists)

      • onslaught545@lemmy.zip
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 days ago

        You’d be better off using helpers to do that, although I believe Esphome can do it using sensor filters.

        • tofubl@discuss.tchncs.deOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          4 days ago

          You mean fire out data as fast as possible and take care of processing on the server? I’d be okay with that if necessary, but so far I haven’t found one that seems to even measure the power consumption fast enough. They all average over some time frame between a few seconds and even minutes. This is of course fine for regular home appliances, but not fast enough for the problem I’m trying to solve.

  • Zwuzelmaus@feddit.org
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 days ago

    with MQTT client support out of the box

    I’m afraid you’d better give up that convenience of MQTT. It is a bit bulky when your highest prio is a speedy communication.

    • tofubl@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 days ago

      That’s not a hard requirement, but I thought it would be easier if the device pushes out a single message when there is significant change in current (as the Shellies do) instead of having to poll as fast as possible and hope for a timely response. My limited experience with these devices is that they are not the fastest or most reliable HTTP servers. I can poll a Shelly AZ’s state at a maximum of around 3 or 4 times per second, for example.

      A tight power_delta threshold and a millisecond timestamp in the MQTT message would probably solve my problem very nicely, but the Shelly I tested has no configurable threshold and only sends timestamps in minutes, which is of course unusable for me.

    • tofubl@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      4 days ago

      To be honest, my question is not actually related to HA. I asked it here because it is by far the largest topic adjacent community on Lemmy and I was hoping to increase my chances of getting a good answer because all the home automation pros surely hang out here. You busted my con!

    • tofubl@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      4 days ago

      Thanks for the reply!

      I have no experience with esphome. This list has many of the “usual suspects” (Nous A1T which I have yet to test, Shelly Plug S) but how will this solve my problem?

      I see that there are a few like this one that come with esphome preinstalled (a requirement for me, I can’t use smart plugs I individually have to reflash.) In the device’s config file I see a variable sensor_update_interval: 10s. Is that what you mean?

      • Rogan Dawes@infosec.exchange
        link
        fedilink
        arrow-up
        0
        arrow-down
        1
        ·
        4 days ago

        @tofubl yeah, the idea would be to flash your own firmware configured precisely how you want it to work. update_interval: would be one of the knobs you could tweak. Just be aware that whatever you are feeding the readings to may end up storing a huge amount of data, if it is updating at more than 1Hz! The esphome sensor filters might also allow you to get rapid updates when it’s changing significantly, and reduce the rate when you don’t need it.

    • tofubl@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 days ago

      The goal is to measure precise on-time for certain kitchen appliances, and to be able to differentiate operating modes (e.g. standby vs. operating, potentially power setting when on.)

      It’s not exactly that, but let’s say you’d like to measure exactly how long a mixing device is mixing something, and you could guess the speed setting with some confidence.

      It actually isn’t so much about receiving the data as fast as possible, but about precision in timing, which the plugs I’ve tested so far don’t really offer. Best I have seen so far is ~2s delay with a standard deviation of up to another second on a Shelly AZ… Not good enough. The investigation continues.

      • Claude Flammang@dju.social
        link
        fedilink
        arrow-up
        2
        ·
        3 days ago

        @tofubl
        I use smart plugs frm EVE and ONVIS and both show the behavior you describe.
        On the other hand I have several Shelly EM respectively PM and those reliability report any change virtually immediately.
        In my RV I even use a Pro4 PM to manage the 10Amp breaker: Electrical heating draws roughly 8 Amps so when the toaster or coffee maker are switched on the breaker would fire after a few secs. ->

        • tofubl@discuss.tchncs.deOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          3 days ago

          Hm, is it possible that “virtually immediately” means different things to us? I have now thoroughly benchmarked a Shelly AZ and am currently investigating a Shelly PlusPlug S (Gen2 I think), and they are both far from where I would like them to be.

          Here’s the result from a 1.5h run, toggling the load every few seconds:

          Shelly AZ Turn-ON delay (standard deviation) Turn-OFF delay (standard deviation)
          HTTP Polling 2.0s (0.8s) 2.3s (0.7s)
          MQTT Subscription 1.9s (0.8s) 2.2s (0.8s)

          The PlusPlugS V2 is even worse.

          The real problem with this, other than delayed and missed events, is the standard deviation. A constant delay would be okay.

            • tofubl@discuss.tchncs.deOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              3 days ago

              Ah, I see. I thought EM and PM are just other smart plug models. Sadly, not a viable solution for me- I need it to be a smart plug type of device. I wonder if those have more precise or faster measuring circuitry or if it’s just a different firmware for a different use case.