MQTT Cover Configuration state_topic

I wrote an integration that uses MQTT to control covers. I’m getting error messages in the logs and I need help understand what could be wrong.

The error message is:

Logger: homeassistant.components.mqtt.cover
Source: components/mqtt/cover.py:372
Integration: MQTT (documentation, issues)
First occurred: 08:27:03 (12 occurrences)
Last logged: 08:27:03

Payload is not supported (e.g. open, closed, opening, closing, stopped): "Stop"

It could be that I’m understanding the documentation incorrectly but in the MQTT discovery cover documentation there is “state_topic” which I point to my topic with the values. It also says State topic can only read (open, opening, closed, closing or stopped) state. which is clearly where the error is coming from. I do not have those values. I have values “Up”, “Down”, and “Stop”. So I also fill out state_opening: Up, state_closing: Down and state_stopped: Stop which I would assume HASSIO would then use those values to map the state and not the ones required. Am I understanding this incorrectly? If so then what is the purpose of the state_ options?

Here is an example of the config I send

{
  "name": "Office Blinds",
  "command_topic": "smartfriends2mqtt/sf_11716/rollingShutter/set",
  "state_topic": "smartfriends2mqtt/sf_11716/state",
  "qos": 0,
  "availability": {
    "topic": "smartfriends2mqtt/bridge/state"
  },
  "device": {
    "identifiers": [
      "sf_11716"
    ],
    "manufacturer": "Alfred Schellenberg GmbH",
    "model": "RollingShutter",
    "name": "Office Blinds",
    "via_device": "SmartFriendsBox"
  },
  "device_class": "shutter",
  "json_attributes_topic": "smartfriends2mqtt/sf_11716",
  "unique_id": "sf_11716_cover_smartfriends2mqtt",
  "position_topic": "smartfriends2mqtt/sf_11716/position",
  "position_template": "{{ 100 - value | int }}",
  "set_position_topic": "smartfriends2mqtt/sf_11716/position/set",
  "set_position_template": "{{ 100 - position }}",
  "state_stopped": "Stop",
  "state_opening": "Up",
  "state_closing": "Down",
  "payload_stop": "Stop",
  "payload_open": "Up",
  "payload_close": "Down"
}

No one can tell me what is going on?

I don’t know how helpful I will be, but I took a look at this some over the weekend, and here is what I did:

I used HA to publish an MQTT message to itself. This is the MQTT Discovery message I setup:

service: mqtt.publish
data:
  topic: homeassistant/cover/sf_11716_cover_smartfriends2mqtt/config
  payload: >-
    {
      "name":"Office Blinds",   
       "command_topic":"smartfriends2mqtt/sf_11716/rollingShutter/set",
       "state_topic":"smartfriends2mqtt/sf_11716/state",
       "qos":0,
       "availability":{"topic":"smartfriends2mqtt/bridge/state"},
       "device":{
           "identifiers":["sf_11716"],
           "manufacturer":"Alfred Schellenberg GmbH",
           "model":"RollingShutter",
           "name":"Office Blinds",
           "via_device":"SmartFriendsBox"
       },
       "device_class":"shutter",
       "json_attributes_topic":"smartfriends2mqtt/sf_11716",  
       "unique_id":"sf_11716_cover_smartfriends2mqtt",
       "position_topic":"smartfriends2mqtt/sf_11716/position",
       "set_position_topic":"smartfriends2mqtt/sf_11716/position/set",
       "state_stopped":"Stop",
       "state_opening":"Up",  
       "state_closing":"Down",
       "payload_stop":"Stop",
       "payload_open":"Up",  
       "payload_close":"Down"
    }

Note1: The two template topics are missing as I could not convince HA that these were part of a JSON message, as HA thought it was an actual template that it should use prior to publishing and it would fail to publish.
Note2: I removed the space after each “:”

This created the Office Blinds device successfully.
Note: As I don’t have an actual device, the state of the Office Blinds is always unavailable

I next published a “Stop” message to the state topic:

service: mqtt.publish
data:
  topic: smartfriends2mqtt/sf_11716/state
  payload: Stop

Using the UI: Config->Devices->Office Blinds->Device info->MQTT Info I see:
o smartfriends2mqtt/sf_11716/state
1 most recently received message(s)->Expand it:
Received 9:53:33 PM
QoS: 0
Payload: Stop

I checked the Logs and there were no error messages.

As another check, I created an automation to trigger on receiving the mqtt Stop message on the state topic and when the Stop was received, the automation was triggered.