Hi,
I have just completed the installation of 4 external blinds using Neo motors from Canada (
http://neosmartblinds.com/ ) installed by a local (Australian) blind manufacturer. Each blind has its own individual remote.
I have interfaced these to Indigo using their "Neo Smart Controller" (
http://neosmartblinds.com/smartcontroller/ ). The controller has an API (available from Neo on request) that I use to control the blinds (Up, Down, Stop and Go to Favourite are available). Using a simple Python script in an action group has allowed Indigo integration including Alexa voice control:
- Code: Select all
##NeoBlindsGENERIC_0.0
## A Python Script to to be tailored to provide required
## local control of a blind connected to a Neo Smart Controller
# Rev 0.0 - initial alpha script
#
## Import the required modules
import requests
## DEBUGGING
debug = 1 ## Set to 1 to print debug messages, to 0 for no debug
## ACTION
## Configure the action required to be sent to the target blind
## by uncommenting the ACTION required to be sent
#action = 'up' # blind moves UP
#action = 'dn' # blind moves DOWN
action = 'sp' # blind STOP moving
#action = 'gp' # go to FAVOURITE position
## BLIND ID
## Blind Code in format (get from Neo Smart App): XXX.YYY-NN
## Blind Code =
ID1 = 'XXX'
ID2 = 'YYY'
CHANNEL = 'NN'
## ASSEMBLE COMMAND
## Syntax of the command is ID1.ID2-CHANNEL-ACTION
myCommand = ID1 + '.' + ID2 + '-' + CHANNEL + '-' + action
## CONTROLLER ID
# Enter valid 24 character controller id number found in the app
# in "Your Controller"
controlID = '<INSERT YOUR CONTROLLER ID HERE>'
## CONTROLLER IP AND PORT ADDRESS
## Enter address and port number of target Controller
addr = '<INSERT YOUR CONTROLLER IP ADDRESS>'
prt = "8838"
## Assemble the request
url = 'http://' + addr + ':' + prt + '/neo/v1/transmit?command='+ myCommand +'&id=' + controlID
## Send the request and catch the response
response = requests.get(url)
## For debugging
if debug:
# log url sent
indigo.server.log(response.url,"URL sent was:")
#log controller response
indigo.server.log(response.text,"Controller response was:")
As a side comment, if there is simpler means of achieving this (Flying Diver's HTTPd plugin perhaps?) I would be please to give it a try!
The Smart Controller Module connects to your network using wifi, and needs to be located centrally to provide RF coverage to each blind.
Note that if someone clever was to upgrade the Broadlink plugin (
http://www.indigodomo.com/pluginstore/197/ ) to
readily/easily learn RF commands (please, please!) I believe that you could replace the Neo controller with a much cheaper module for this and other similar RF control instances.
mclass