# MotionBlinds Binding

This binding controls blind, curtain and gate motors that are directly connected to Wi-Fi and are operated with the Connector app (Dooya) or the Motion Blinds app. Many brands sell these motors under their own name.

The binding uses the local network API of the motors (UDP, WLAN API v1.03). It does not need the cloud or a hub, so the motors keep working when the vendor cloud is not available.

# Supported Things

Thing Type Description
wifi-motor A motor that is directly connected to Wi-Fi (device types 22000000, 22000002, 22000005)

Motors that are connected through a hub (e.g. DD7002B, CM-20) are not supported yet.

# Discovery

Motors in the local network are discovered with a multicast request. The openHAB server and the motors must be in the same network segment and the network must pass multicast traffic to 238.0.0.18.

After adding a discovered motor, set the key in the Thing configuration.

# Getting the Key

All requests are authorized with a 16 character key that is shown in the app:

  • Connector app: open Settings → About and tap the screen 5 times.
  • Motion Blinds app: open Settings → About and tap the screen 5 times.

The key looks like 12ab345c-d67e-8f: 16 ASCII characters. Enter it exactly as shown, including the dashes.

# Thing Configuration

Name Type Description Default Required Advanced
macAddress text MAC address of the motor (12 hex digits, as found by discovery) N/A yes no
key text Key from the app (16 ASCII characters including dashes) N/A yes no
refreshInterval integer Interval in seconds for polling the status 300 no yes
tiltTravel decimal Travel in percent that turns the slats from closed to closed 3 no no
tiltSlack decimal Travel in percent at the bottom that does not turn the slats 2 no no

The motor is identified by its MAC address only. The binding finds its IP address with a multicast request and follows the motor when it gets a new IP address, so no IP address has to be configured.

The motors push their status every 2 seconds while moving and send a heartbeat about once a minute, so polling is only a fallback.

# Channels

Channel Type Read/Write Description
position Rollershutter RW Position of the blind: 0% is fully open, 100% is fully closed
tilt Dimmer RW Tilt of the slats: 0% closed (bottom side visible), 50% open, 100% closed (top side visible)
angle Number:Angle RW Slat angle as estimated by the motor (0-180°)
rssi Number:Power R Wi-Fi signal strength in dBm

The position channel accepts UP, DOWN, STOP and a percentage.

# Tilt

Venetian blinds with these motors have no separate tilt mechanism: the slats are turned by the travel of the blind itself. Moving down turns them towards "closed, top side visible", moving up towards "closed, bottom side visible". A full swing takes only a few percent of travel (tiltTravel, 3% by default).

The last percents above fully lowered (tiltSlack, 2% by default) behave differently, because the bottom rail rests on the sill. Moving up from fully lowered does not turn the slats until the bottom rail lifts off; then they drop to horizontal and turn normally from there. Moving down in this zone turns them at about half the normal rate. So from fully lowered, a tilt between open and closed with the top side visible takes two moves: up to open, then down again.

The binding follows the slats from the movements of the blind, including movements started with the remote or the app, and turns them at the current height with the tilt channel. The slats are controlled mechanically without feedback, so expect a precision of about ±10%; send the tilt again to correct it. If the slats consistently end up too far or not far enough, adjust tiltTravel and tiltSlack for your blind, in steps of 0.1-0.3%:

  • Lower the blind fully and tilt to 50%. If the slats turn past open (bottom side visible), decrease tiltSlack; if they stay closed (top side visible), increase it.
  • Raise the blind a bit, tilt to 0% and then to 50%. If the slats turn past open (top side visible), decrease tiltTravel; if they do not reach open, increase it.

Larger values make the binding move the blind further for the same tilt change.

The motor keeps its own estimate of the slat angle (angle channel). It uses a wider range than the real slats, so it drifts from them when the blind changes direction. Its changes measure the travel of the blind more finely than the position, which is reported in whole percents, so the binding uses them to follow the slats. Use the tilt channel to control the slats.

# Full Example

# Thing Configuration

Thing motionblinds:wifi-motor:kitchen "Kitchen Blind" [ macAddress="244cab4e06b4", key="12ab345c-d67e-8f" ]

# Item Configuration

Rollershutter Kitchen_Blind      "Kitchen Blind [%d %%]" <blinds> { channel="motionblinds:wifi-motor:kitchen:position" }
Dimmer        Kitchen_Blind_Tilt "Kitchen Blind Tilt [%d %%]"     { channel="motionblinds:wifi-motor:kitchen:tilt" }
Number:Power  Kitchen_Blind_RSSI "Kitchen Blind RSSI [%d dBm]"    { channel="motionblinds:wifi-motor:kitchen:rssi" }

# Sitemap Configuration

sitemap blinds label="Blinds" {
    Switch item=Kitchen_Blind
    Slider item=Kitchen_Blind
    Slider item=Kitchen_Blind_Tilt
}