Blinds with MQTT not working with Homekit added

I am attempting to automate blinds using Arduino and a stepper motor. The arduino subscribes to a MQTT topic which then opens or closes the blinds depending on whether MQTT says OPEN or CLOSED. There are buttons to manually open or close the blinds, which updates the MQTT topic to keep things synced. I have an item configured as a switch which gets updated by a rule based on sunrise / sunset from the Astro plugin. This seems to work fine as long as I don’t use HomeKit.

If I add HomeKit to the item as WindowCovering it won’t work since it requires rollershutter item type. If I change the item to rollershutter then MQTT doesn’t send updates so the blinds don’t do anything. I think rollershutter requires a numberic value 0-100, so I changed the MQTT channel to rollershutter. Again this doesn’t seem to do anything, so I changed things back.

I was watching the MQTT topic with mosquito_sub, I got updates with the first configuration without HomeKit.

Q: What needs to be changed to get HomeKit to work?

Things I tried:

  1. MQTT channel as switch and ON:OPEN OFF:CLOSED
    Item as switch
    Item toggle changes MQTT state
    Works but no HomeKit

  2. MQTT channel as Rollershutter and UP:0 DOWN:100
    Item as rollershutter with Homekit rollershutter
    Item toggle doesn’t change MQTT state or HomeKit
    Doesn’t work, MQTT sends nothing. HomeKit changes item state

  3. MQTT channel as Rollershutter and UP:OPEN DOWN:OPEN
    Item as rollershutter with Homekit rollershutter
    Doesn’t work, MQTT sends nothing. HomeKit changes item state

I also tried a mapping in the item to convert 0=OPEN and 100=CLOSED, but it didn’t seem to have an effect.

I used the UI to set up MQTT and the items which doesn’t make posting a configuration easy.

Blinds MQTT Thing

UID: mqtt:topic:MY-MQTT:9986825e41
label: Blinds
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:MY-MQTT
channels:
  - id: NBrBlind1
    channelTypeUID: mqtt:rollershutter
    label: North Bedroom Blind 1
    description: null
    configuration:
      commandTopic: NBrBlind1/positionState
      stateTopic: NBrBlind1/positionState
      off: CLOSED
      on: OPEN

Blinds item

{
  "link": "http://openhab.home.local:8080/rest/items/NorthBedroomBlind1",
  "state": "100",
  "stateDescription": {
    "pattern": "%s",
    "readOnly": false,
    "options": []
  },
  "editable": true,
  "type": "Rollershutter",
  "name": "NorthBedroomBlind1",
  "label": "North Bedroom Blind 1",
  "category": "blinds",
  "tags": [
    "Point"
  ],
  "groupNames": []
}

blinds.map

OPEN=0
CLOSED=100
  • Platform information:
    • Hardware: Raspberry Pi 3 B+
    • OS: Debian / Raspbian Buster
    • Java Runtime Environment: Zulu11.50+19-CA (build 11.0.12+7-LTS)
    • openHAB version: 3.2.0