Issues with update frequency of Shelly sensors: trying to use auxiliary sensors

  • Hello!

    I have three battery-operated Shelly sensors (H&T, Door/Window 2 and Motion). I put this in the DW2 subforum because the system won't let me select more than one Shelly, but this applies to all three of them.

    Firmware version is v1.10.1 for the H&T, v1.1.0 for the Shelly Motion, and v1.10.2 for the DW2. I've configured them to use CoIoT and specified my host IP (my host is a Raspberry Pi with Home Assistant).

    My issue is, they don't seem to update values regularly, or very often, when left on their own. For instance, if I open and close the door my DW2 is on, it will report the illuminance, temperature, vibration, and open/close values. It might update frequently for a while, but after some time it stops (or takes a few hours to report again).

    Same thing happens if I shake my Shelly Motion, triggering the vibration sensor.

    I imagine the updates are not meant to be at regular intervals, and are instead triggered by changes sensed by the auxiliary sensors, in order to lower energy consumption. However, it seems that it only reports if the "main" sensor. Does anyone know how this works? Would it be possible, for example, to get my Shelly DW2 to report the values of all of its sensors if any of them change?

    Not trying to reverse-engineer the firmware here 🙂 I just want to know if I can use the DW2 as a temperature sensor as well as a door sensor, or if it's limited exclusively to being an auxiliary sensor for door status updates.

    Also, I'm now aware that the Shelly Motion has a bug that makes it go offline if no activity takes place for a long time.

    tl;dr: I've been trying to use secondary sensors in my Shelly sensors, like the illuminance sensor in the DW2 and Motion. However, these values don't get reported often (and the device often appears unavailable). Any info about how the Shellies decide when and which values to send would help.

    Thanks in advance!

  • I came accross the same issue with Shelly Motion.
    My application for Shelly motion is to monitor LUX value, however, i get only hourly updates, so it's either light or dark before i get the reading.

    I've raised a ticket (somewhere around april '21) and reminded them (somewhere around september '21) however the issue has not been fixed.
    My current version: 20211004-105639/v2.0.2@7eba4128

    If you look into the documentation, you will find this:

    Since v1.4.3: on MQTT connect, Shellies will publish:

    • an announce message on shellies/announce and, since v1.6.0, on shellies/<shellymodel>-<deviceid>/announce. The message is JSON-formatted and contains a list of attributes: id, mode (if applicable), model, mac, ip, new_fw (true when an update is available), fw_ver (contains the current firmware version);
    • availability message on shellies/<shellymodel>-<deviceid>/online with payload true;
    • complete current state. This is device specific and is described in detail for each device below.

    Device state is reported periodically, every 30 seconds by default. This can be changed by setting a new period for updates: mqtt_update_period under /settings. A value of 0 will disable periodic updates.

    So the design does allow to set a different update_period, however when i enter http://<ipaddress>/settings i see mqtt_update_period is set to 60.
    You should be able to change the value (for example to 1) through an URL by entering http://<ipaddress>/settings?mqtt_update_period=1

    But nothing changes in the settings, value remains at 60, i still receive updates hourly, so i suspect that in the system somewhere hardcoded is 3600 as update frequency.

    So please raise a ticket if you come accross the same issue... this feature should work by design i think, so it's a BUG!