A node.js library for interfacing with Motion Blinds from Coulisse B.V
MIT License
node.js library for interfacing with Motion Blinds from Coulisee B.V. including derivative products such as OmniaBlinds.
The Motion Blinds API uses a 16 character key that can be retrieved from the official "Motion Blinds" app for iOS or Android. Open the app, click the 3 dots in the top right corner, go to "Settings", go to "About MOTION", then quickly tap the screen five times. A popup will appear showing your key.
See hiltest/hiltest.ts
for examples of reading and writing to blinds.
import MotionGateway from 'motionblinds'
(async function main () {
// Initialize the MotionGateway class. Passing in the optional `key` parameter
// enables write commands
const gw = new MotionGateway({ key: '<YOUR_MOTION_KEY>' })
// Open read and write sockets for UDP multicast communication with Motion
// blinds. This will automatically be called when any outgoing message needs
// to be sent, so it only needs to manually be called if you intend to
// passively listen for broadcast messages
// gw.start()
// Listen for "report" events, broadcast by devices when a state transition
// has completed
gw.on('report', (report) => {
console.dir(report)
})
// Sends the `getDeviceList()` command followed by a `readDevice()` for each
// returned device. This calls `start()` as a side effect of communication.
// The `token` member will also be set as a side effect of the
// `getDeviceList()` call, enabling write commands after this completes
const devices = await gw.readAllDevices()
for (const device of devices) {
if (device.deviceType === MotionGateway.Blind) {
// Send a Close/Down command for each discovered device of type Blind
await gw.writeDevice(device.mac, device.deviceType, {
operation: MotionGateway.Operation.CloseDown,
})
}
}
// Disconnect the send and receive UDP sockets
gw.stop()
}())
Run yarn test
to verify basic offline functionality of the library. To run the
hardware-in-the-loop tests against real blinds, use
MOTION_KEY="<YOUR_MOTION_KEY>" yarn test:hil
node-motionblinds is licensed under MIT.