This is a homebridge plugin to control blinds via mqtt. 🌞🌚
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
"accessories": [{
"accessory": "BlindsMQTT",
"name": "Living Room Blind",
"manufacturer": "DIY",
"model": "Prototype",
"serialNumberMAC": "01.01.01.01",
"mqttBrokerUrl": "mqtt://192.168.0.10:1883",
"mqttUsername": "username",
"mqttPassword": "password",
"mqttMainTopic": "myBlind",
"mqttSetTopics": {
"targetPosition": "SET/targetPosition"
},
"mqttGetTopics": {
"currentPosition": "GET/currentPosition",
"positionState": "GET/positionState",
"targetPosition": "GET/targetPosition"
},
"mqttPositionStateValue": ["0", "1", "2"]
}
],
"platforms": [
]
}
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
"accessories": [{
"accessory": "BlindsMQTT",
"name": "Living Room Blind",
"manufacturer": "Allterco",
"model": "Shelly2",
"serialNumberMAC": "01.01.01.01",
"mqttBrokerUrl": "mqtt://192.168.0.10:1883",
"mqttUsername": "username",
"mqttPassword": "password",
"mqttMainTopic": "shellies/shellyswitch-<YOUR_SHELLYID>/roller/",
"mqttSetTopics": {
"targetPosition": "0/command/pos"
},
"mqttGetTopics": {
"currentPosition": "0/pos",
"positionState": "0",
"targetPosition": "0/dummy"
},
"mqttPositionStateValues": ["open", "close", "stop"]
}
],
"platforms": [
]
}
Variable | Description | Example |
---|---|---|
accessory | Name of the accessory plugin. | BlindsMQTT |
name | Name for your blinds. | Living Room Blind |
manufacturer | Manufacturer of your blind | DIY |
model | Model of your blind. | Prototype |
serialNumberMAC | Serial number of your blind. | 01.01.01.01 |
Variable | Description | Example |
---|---|---|
mqttBrokerUrl | IP Adress of your MQTT Broker | mqtt://192.168.0.10:1883 |
mqttUsername | Your MQTT Broker username | username |
mqttPassword | Your MQTT Broker password | password |
mqttMainTopic | The main topic of your blind | myBlind |
Use these variables to set topics to inform the plugin about the current status of your blind. The plugin subscribes these topics.
Variable | Description | Example |
---|---|---|
currentPosition | Topic to get the current position of your blind. The value has to be between 0-100. | GET/currentPosition |
positionState | Topic to get the current position state of your blind. Custom PositionStates messages from your device can be configured with mqttPositionStateValues. | GET/positionState |
targetPosition | Topic to get the target position of your blind. The value has to be between 0-100. | GET/targetPosition |
Use these variables to define the topic that the plugin uses to control your blind. The plugin will publish on these topics.
Variable | Description | Example |
---|---|---|
targetPosition | Topic to set the target position of your blind. The value has to be between 0-100. | SET/targetPosition |
Use this variable to configure custom payloads for positionState messages for your device.
Variable | Description | Example |
---|---|---|
mqttPositionStateValues | ["DECREASEING_STATE", "INCREASING_STATE", "STOPPED_STATE"] | ["open", "close", "stop"] or ["0", "1", "2"] |
Build up your blind. Use MQTT to communicate with homebridge. To explain how it works i will use the values of the examples above.
For example, if you use the home app to open your blind 100%, the plugin will publish 100
on the topic myBlind/SET/targetPosition
. The blind should send the current position on the topic myBlind/GET/currentPosition
, the position state on myBlind/GET/positionState
an the target position on myBlind/GET/currentPosition
.
Have fun with this plugin. Let me know if you find a issue. 👍 😄