Tasmota-Integration information delay

Hi Guys,

i have some Cover-Blinds and all the states are exposed to hass-io. So i can see the sensor-informations for Position, Target, Direction.

But the values get not updated in time. It looks like they get pulled instead of pushed. Sometimes i can see the Direction (1 = Up, -1 = Down, 0 = Do nothing). But in most cases not. I think that a process is quering the tasmotas every 60 seconds.

My automatisation scripts rely on the Direction Status.

How can i improve the update interval?

With MQTT i can see the direction every second to be updated via push notification.
But with plain TASMOTA-Integration not.

7:45:54.560 MQT: ro/stat/sys-04/STATUS10 = {"StatusSNS":{"Time":"2021-12-14T17:45:54","ANALOG":{"A0":182},"Shutter1":{"Position":76,"Direction":0,"Target":76},"Shutter2":{"Position":46,"Direction":0,"Target":46},"Shutter3":{"Position":0,"Direction":0,"Target":0},"Shutter4":{"Position":0,"Direction":0,"Target":0}}}
17:46:48.440 MQT: ro/tele/sys-04/STATE = {"Time":"2021-12-14T17:46:48","Uptime":"0T23:33:11","UptimeSec":84791,"Heap":28,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":20,"MqttCount":1,"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","POWER4":"OFF","POWER5":"OFF","POWER6":"OFF","POWER7":"OFF","POWER8":"OFF","Wifi":{"AP":1,"SSId":"iot.rsm-connect.net","BSSId":"E2:63:DA:15:DB:25","Channel":6,"Mode":"11n","RSSI":82,"Signal":-59,"LinkCount":2,"Downtime":"0T00:02:54"}}
17:46:48.485 MQT: ro/tele/sys-04/SENSOR = {"Time":"2021-12-14T17:46:48","ANALOG":{"A0":158},"Shutter1":{"Position":76,"Direction":0,"Target":76},"Shutter2":{"Position":46,"Direction":0,"Target":46},"Shutter3":{"Position":0,"Direction":0,"Target":0},"Shutter4":{"Position":0,"Direction":0,"Target":0}}
17:48:16.164 MQT: ro/stat/sys-04/RESULT = {"POWER1":"ON"}
17:48:16.166 MQT: ro/stat/sys-04/POWER1 = ON
17:48:16.169 MQT: ro/stat/sys-04/RESULT = {"ShutterOpen1":100}
17:48:16.174 MQT: ro/stat/sys-04/RESULT = {"Shutter1":{"Position":76,"Direction":1,"Target":100}}
17:48:16.408 MQT: ro/stat/sys-04/RESULT = {"Shutter1":{"Position":77,"Direction":1,"Target":100},"Shutter2":{"Position":46,"Direction":0,"Target":46},"Shutter3":{"Position":0,"Direction":0,"Target":0},"Shutter4":{"Position":0,"Direction":0,"Target":0}}
17:48:17.407 MQT: ro/stat/sys-04/RESULT = {"Shutter1":{"Position":80,"Direction":1,"Target":100},"Shutter2":{"Position":46,"Direction":0,"Target":46},"Shutter3":{"Position":0,"Direction":0,"Target":0},"Shutter4":{"Position":0,"Direction":0,"Target":0}}
17:48:18.408 MQT: ro/stat/sys-04/RESULT = {"Shutter1":{"Position":84,"Direction":1,"Target":100},"Shutter2":{"Position":46,"Direction":0,"Target":46},"Shutter3":{"Position":0,"Direction":0,"Target":0},"Shutter4":{"Position":0,"Direction":0,"Target":0}}
17:48:19.416 MQT: ro/stat/sys-04/RESULT = {"Shutter1":{"Position":88,"Direction":1,"Target":100},"Shutter2":{"Position":46,"Direction":0,"Target":46},"Shutter3":{"Position":0,"Direction":0,"Target":0},"Shutter4":{"Position":0,"Direction":0,"Target":0}}
17:48:20.417 MQT: ro/stat/sys-04/RESULT = {"Shutter1":{"Position":92,"Direction":1,"Target":100},"Shutter2":{"Position":46,"Direction":0,"Target":46},"Shutter3":{"Position":0,"Direction":0,"Target":0},"Shutter4":{"Position":0,"Direction":0,"Target":0}}
17:48:21.418 MQT: ro/stat/sys-04/RESULT = {"Shutter1":{"Position":96,"Direction":1,"Target":100},"Shutter2":{"Position":46,"Direction":0,"Target":46},"Shutter3":{"Position":0,"Direction":0,"Target":0},"Shutter4":{"Position":0,"Direction":0,"Target":0}}
17:48:22.417 MQT: ro/stat/sys-04/RESULT = {"Shutter1":{"Position":100,"Direction":1,"Target":100},"Shutter2":{"Position":46,"Direction":0,"Target":46},"Shutter3":{"Position":0,"Direction":0,"Target":0},"Shutter4":{"Position":0,"Direction":0,"Target":0}}
17:48:22.517 MQT: ro/stat/sys-04/RESULT = {"POWER1":"OFF"}
17:48:22.522 MQT: ro/stat/sys-04/POWER1 = OFF
17:48:23.027 MQT: ro/stat/sys-04/SHUTTER1 = 100
17:48:23.032 MQT: ro/stat/sys-04/RESULT = {"Shutter1":{"Position":100,"Direction":0,"Target":100}}

I am not Tasmota expert, but I reduced the TelePeriod and this helped my automation trigger response time tremendously.

Hi,
just found this as I tried to move from manual MQTT to Tasmota Integration.
The position is updated by the integration from the topic:

stat/shutter/buero/suedwest/SHUTTER1 64

This topic is only sent once after the position is reached.
The device sends status updates often enough, but with a different topic:

stat/shutter/buero/suedwest/RESULT {“Shutter1”:{“Position”:74,“Direction”:-1,“Target”:0,“Tilt”:0}}
stat/shutter/buero/suedwest/RESULT {“Shutter1”:{“Position”:73,“Direction”:-1,“Target”:0,“Tilt”:0}}
stat/shutter/buero/suedwest/RESULT {“Shutter1”:{“Position”:64,“Direction”:-1,“Target”:0,“Tilt”:0}}

This topic seems not used by the integration and is the root cause of this weakness.

BTW: With my manual MQTT cover it works just fine (Tasmota 8.1 and 11.1):

- platform: mqtt
  name: "buero_suedwest"
  device_class: "window"
  command_topic: "cmnd/shutter/buero/suedwest/Backlog"
  availability_topic: "tele/shutter/buero/suedwest/LWT"
  qos: 0
  retain: false
  payload_open: "SHUTTEROPEN"
  payload_close: "SHUTTERCLOSE"
  payload_stop: "SHUTTERSTOP"
  state_open: "ON"
  state_closed: "OFF"
  payload_available: "Online"
  payload_not_available: "Offline"
  position_topic: "stat/shutter/buero/suedwest/RESULT"
  position_template: >
    {% if ('Shutter1' in value_json) and ('Position' in value_json.Shutter1) %}
      {{ value_json.Shutter1.Position }}
    {% else %}
      {% if is_state('cover.buero_suedwest', 'unknown') %}
        50
      {% else %}
        {{ state_attr('cover.buero_suedwest','current_position') }}
      {% endif %}
    {% endif %}
  position_open: 100
  position_closed: 0
  set_position_topic: "cmnd/shutter/buero/suedwest/shutterposition"

Many regards, Dieter

Hi Dieter,

that is the same issue as i am seeing. MQTT pushes will be sent from TASMOTA but the Integration does not use that information.

I had also added a mqtt-sensor to get updates for position very fast.

I think that the integration for hassio uses the wrong topic.

Hi Michael,
looks like we should open an issue or feature request. I will do that now.

Feature request