Cannot get MQTT Cover Discovery to show up as a device, only as entity

Hello all. The background on this, in case it matters, is that I’m using an ESP8266 to send an RF signal to my blinds. The communication between the ESP82666 and Home Assistant appears to be working fine, and I can send and receive commands, but I just cannot get my MQTT Covers to show up as devices. They show up fine as entities, but even when I add the “device” config parameter to the JSON I’m sending, they don’t seem to show up as devices. Here is the JSON I’m sending:

    "name": "Guest Room Blinds",
    "~": "homeassistant/cover/guestRoomBlinds",
    "command_topic": "~/position/set",
    "state_topic": "~/position/state",
    "device": {
        "name": "Guest Room Blinds",
        "via_device": "esp8266"
    "device_class": "blind",
    "qos": 0,
    "retain": true,
    "payload_open": "U",
    "payload_close": "D",
    "payload_stop": "S",
    "state_open": "open",
    "state_opening": "opening",
    "state_closed": "closed",
    "state_closing": "closing",
    "payload_available": "online",
    "payload_not_available": "offline",
    "optimistic": true,
    "value_template": "'{{value_template}}'",
    "tilt_command_topic": "~/tilt/set",
    "tilt_status_topic": "~/tilt/state",
    "tilt_status_template": "'{{value_json.tilt_status_template}}'",
    "tilt_min": 0,
    "tilt_max": 1,
    "tilt_closed_value": 0,
    "tilt_opened_value": 1,
    "unique_id": "Guest Room Blinds"

Can someone please help me understand why my device parameter doesn’t seem to be working? Is my syntax wrong? In all the documentation I’ve read, I haven’t actually been able to find an example of using the device parameter. It only has the names of the options, so if it’s supposed to have a hyphen or something, it could just be a syntax error. If not that, is there something I should be doing in Home Assistant other than just restarting to get it to show up? The entities show up fine, it’s just no dice on devices.

Thanks for any help!

1 Like

May need to add a few additional parameters to your device data.
Here is an example of what I used:

              "device": {
                  "identifiers": ["Insteon Plug-in"],
                  "name": "On/Off Plug-in Module Dual Band",
                  "model": "On/Off Plugin",
                  "manufacturer": "Insteon",
                  "sw_version": "x46"

also maybe try a unique id without spaces.

1 Like

So I actually got it working in the end, and you and another guy both had the correct solution - the “identifiers” parameter is not optional as the documentation says, but mandatory or it won’t work. I’m going to do a pull request on the documentation page when I get a chance.

1 Like

I just found your post and I’m interested in doing something similar. What is the protocol for the RF signal that the blinds use? Is it a 433MHz transmission? How are you talking to it with the ESP8266. I haven’t bought the blinds yet and I’m not really sure what I’m about to get into… Any tips to an unsuspecting user?