State Change - But How? Zigbee2MQTT


Just a strange request or help, if I may?

I have added Aqara Roller Blind E1 to Zigbee2MQTT, since July, all is working fine, and still is (sort off), what keeps happening is that the state of the Roller Blind changes itself to ‘open’ when there is no request or set instruction set out by any of my automation or scripts, so it was misleading to me that in Lovelace/dashboard it says blind is ‘Open’ when it is not as at 6am in the morning it is now getting darker, so I checked the blind - it is physically shut/closed, but lovelace/dashboard card says ‘open’

So I set about checking in history of the entity of when it change to open, and logged the time - 05:48:03, so I checked home assistant log, there is an entry at that time but just to state that MQTT received information, but it’s not a set instruction:-

Home assistant Log:-
2022-08-30 05:48:03.940 DEBUG (MainThread) [homeassistant.components.mqtt.client]
Received message on zigbee2mqtt/Dining Room Blind: b’{“battery”:50,“charging_status”:null,

So I looked in Zigbee2MQTT log at the same time, but it states just info:-

Zigbee2MQTT Log:-
info 2022-08-30 05:48:03: MQTT publish: topic ‘zigbee2mqtt/Dining Room Blind’, payload
info 2022-08-30 05:48:03: Update available for ‘Dining Room Blind’

So I have no idea where or what actually change the state to ‘Open’ when blind is still physically close (which is correct, until my automation scripts kicks in 30mins after Sunrise, and it does at 06:45hrs which are this:-

Automation Script is as follows:-

- id: '99999999999'
  alias: Dining Room Blinds - Open
  description: ''
  - platform: sun
    event: sunrise
    offset: +00:30:00
  condition: []
  - repeat:
      - condition: time
        after: 05:59:00
        - mon
        - tue
        - wed
        - thu
        - fri
        - sat
        - sun
      sequence: []
  - service: mqtt.publish
      topic: zigbee2mqtt/Dining Room Blind/set
      payload: ' {  "state" :  "open"  }'
  - service: python_script.set_state
      entity_id: cover.dining_room_blind
      state: open
    data: {}
  mode: single

So Zigbee2MQTT successfully sends a message to open the blind - there are no other message sent earlier! This actually physically opens a blind and change the state as well by python_script.set_state.
2022-08-30 06:45:37.022 DEBUG (MainThread) [homeassistant.components.mqtt.client]
Transmitting message on zigbee2mqtt/Dining Room Blind/set: ’ { “state” : “open” }’, mid: 198

You may wonder why I have to manually change the state status as for some reason the Roller Blind don’t seem to change status itself when it opens or closed by automation, so I had to find ways to manually change it and that is by python_script.set_state.

Strangely enough it does not behave like this on ‘closed’, just open when it receives information to MQTT. So any idea’s as to how I can trouble shoot this, to ensure that I get an accurate status, of the actual physical blind being open or close?


Same problem. Device state not refresh!!