INSTEON Commands (indigo.insteon.*)
Commands that are specific to INSTEON devices.
This command will send an INSTEON Scene Decrease (dim on dimmable loads) command to the specified PowerLinc scene. The value will decrease by 3% for each call.
Command Syntax Examples |
indigo.insteon.sendSceneDecrease(11)
|
indigo.insteon.sendSceneDecrease(11, repeatCount=5)
|
indigo.insteon.sendSceneDecrease(11, suppressLogging=True)
|
indigo.insteon.sendSceneDecrease(11, updateStatesOnly=True)
|
indigo.insteon.sendSceneDecrease("working in office scene")
|
Parameters |
Parameter | Required | Type | Description |
direct parameter | Yes | integer or string | either the scene number or the scene name - we encourage numbers since they won't change and the scene names can. |
repeatCount | No | integer | a value from 1-32 for the number of times to repeat the decrease (default is 1) |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
updateStatesOnly | No | boolean | use if you only want Indigo's internal device state representation to be updated - no actual INSTEON command will be sent on RF or the power line (default is False) |
This command will send an INSTEON Scene Increase (brighten on dimmable loads) command to the specified PowerLinc scene. The value will increase by 3% for each call.
Command Syntax Examples |
indigo.insteon.sendSceneIncrease(11)
|
indigo.insteon.sendSceneIncrease(11, repeatCount=5)
|
indigo.insteon.sendSceneIncrease(11, suppressLogging=True)
|
indigo.insteon.sendSceneDecrease(11, updateStatesOnly=True)
|
indigo.insteon.sendSceneIncrease("working in office scene")
|
Parameters |
Parameter | Required | Type | Description |
direct parameter | Yes | integer or string | either the scene number or the scene name - we encourage numbers since they won't change and the scene names can. |
repeatCount | No | integer | a value from 1-32 for the number of times to repeat the increase (default is 1) |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
updateStatesOnly | No | boolean | use if you only want Indigo's internal device state representation to be updated - no actual INSTEON command will be sent on RF or the power line (default is False) |
This command will send an INSTEON Scene ON command using the specified PowerLinc scene.
Command Syntax Examples |
indigo.insteon.sendSceneOn(11)
|
indigo.insteon.sendSceneOn(11)
|
indigo.insteon.sendSceneOn(11, sendCleanUps=False)
|
indigo.insteon.sendSceneOn(11, suppressLogging=True)
|
indigo.insteon.sendSceneOn(11, updateStatesOnly=True)
|
indigo.insteon.sendSceneOn("working in office scene")
|
indigo.insteon.sendSceneDecrease(11, updateStatesOnly=True)
|
indigo.insteon.sendSceneOn("working in office scene", sendCleanUps=False)
|
Parameters |
Parameter | Required | Type | Description |
direct parameter | Yes | integer or string | either the scene number or the scene name - we encourage numbers since they won't change and the scene names can. |
sendCleanUps | No | boolean | True if if cleanup messages should be sent to each device in the scene after the scene command - this will have the PowerLinc send each device a message to make sure it received the command. You might want to stop cleanup messages from being sent because it involves adding a lot of INSTEON traffic and might effect performance (particularly if a group has a lot of responders). But, of course, disabling it may reduce reliability of some modules receiving the scene command so it's usually best to ignore this setting. (default is True) |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
updateStatesOnly | No | boolean | use if you only want Indigo's internal device state representation to be updated - no actual INSTEON command will be sent on RF or the power line (default is False) |
This command will send an INSTEON Scene OFF command using the specified PowerLinc scene.
Command Syntax Examples |
indigo.insteon.sendSceneOff(11)
|
indigo.insteon.sendSceneOff(11, sendCleanUps=False)
|
indigo.insteon.sendSceneOff(11, suppressLogging=True)
|
indigo.insteon.sendSceneOff(11, updateStatesOnly=True)
|
indigo.insteon.sendSceneOff("working in office scene")
|
indigo.insteon.sendSceneOff("working in office scene", sendCleanUps=False)
|
Parameters |
Parameter | Required | Type | Description |
direct parameter | Yes | integer or string | either the scene number or the scene name - we encourage numbers since they won't change and the scene names can. |
sendCleanUps | No | boolean | True if if cleanup messages should be sent to each device in the scene after the scene command - this will have the PowerLinc send each device a message to make sure it received the command. You might want to stop cleanup messages from being sent because it involves adding a lot of INSTEON traffic and might effect performance (particularly if a group has a lot of responders). But, of course, disabling it may reduce reliability of some modules receiving the scene command so it's usually best to ignore this setting. (default is True) |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
updateStatesOnly | No | boolean | use if you only want Indigo's internal device state representation to be updated - no actual INSTEON command will be sent on RF or the power line (default is False) |
This command will send an INSTEON Scene Fast ON command using the specified PowerLinc scene.
Command Syntax Examples |
indigo.insteon.sendSceneFastOn(11)
|
indigo.insteon.sendSceneFastOn(11, sendCleanUps=False)
|
indigo.insteon.sendSceneFastOn(11, suppressLogging=True)
|
indigo.insteon.sendSceneFastOn(11, updateStatesOnly=True)
|
indigo.insteon.sendSceneFastOn("working in office scene")
|
indigo.insteon.sendSceneFastOn("working in office scene", sendCleanUps=False)
|
Parameters |
Parameter | Required | Type | Description |
direct parameter | Yes | integer or string | either the scene number or the scene name - we encourage numbers since they won't change and the scene names can. |
sendCleanUps | No | boolean | True if if cleanup messages should be sent to each device in the scene after the scene command - this will have the PowerLinc send each device a message to make sure it received the command. You might want to stop cleanup messages from being sent because it involves adding a lot of INSTEON traffic and might effect performance (particularly if a group has a lot of responders). But, of course, disabling it may reduce reliability of some modules receiving the scene command so it's usually best to ignore this setting. (default is True) |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
updateStatesOnly | No | boolean | use if you only want Indigo's internal device state representation to be updated - no actual INSTEON command will be sent on RF or the power line (default is False) |
This command will send an INSTEON Scene Fast OFF command using the specified PowerLinc scene.
Command Syntax Examples |
indigo.insteon.sendSceneFastOff(11)
|
indigo.insteon.sendSceneFastOff(11, sendCleanUps=False)
|
indigo.insteon.sendSceneFastOff(11, suppressLogging=True)
|
indigo.insteon.sendSceneFastOff(11, updateStatesOnly=True)
|
indigo.insteon.sendSceneFastOff("working in office scene")
|
indigo.insteon.sendSceneFastOff("working in office scene", sendCleanUps=False)
|
Parameters |
Parameter | Required | Type | Description |
direct parameter | Yes | integer or string | either the scene number or the scene name - we encourage numbers since they won't change and the scene names can. |
sendCleanUps | No | boolean | True if if cleanup messages should be sent to each device in the scene after the scene command - this will have the PowerLinc send each device a message to make sure it received the command. You might want to stop cleanup messages from being sent because it involves adding a lot of INSTEON traffic and might effect performance (particularly if a group has a lot of responders). But, of course, disabling it may reduce reliability of some modules receiving the scene command so it's usually best to ignore this setting. (default is True) |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
updateStatesOnly | No | boolean | use if you only want Indigo's internal device state representation to be updated - no actual INSTEON command will be sent on RF or the power line (default is False) |
This command will tell the specified PowerLinc scene to begin increasing/decreasing in value. It will continue to ramp each device in the scene until either the corresponding Send Scene Stop Change command is called or until the devices are at 100% for increase ramping or 0% for decrease ramping.
Command Syntax Examples |
indigo.insteon.sendSceneIncrease(11, increase=True)
|
indigo.insteon.sendSceneIncrease(11, suppressLogging=True)
|
indigo.insteon.sendSceneIncrease("working in office scene")
|
Parameters |
Parameter | Required | Type | Description |
direct parameter | Yes | integer or string | either the scene number or the scene name - we encourage numbers since they won't change and the scene names can. |
increase | Yes | boolean | True if you want to ramp up, False if you want to ramp down |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
This command will tell the specified PowerLinc scene to stop any ramping activity started by a Send Scene Start Change command.
Command Syntax Examples |
indigo.insteon.sendSceneIncrease(11)
|
indigo.insteon.sendSceneIncrease(11, suppressLogging=True)
|
indigo.insteon.sendSceneIncrease("working in office scene")
|
Parameters |
Parameter | Required | Type | Description |
direct parameter | Yes | integer or string | either the scene number or the scene name - we encourage numbers since they won't change and the scene names can. |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
This command will send an INSTEON Status Request command to the specified address.
reply = indigo.insteon.sendStatusRequest("0A.B9.DC")
indigo.server.log("reply success: %d, ack value: %02X" % (reply.cmdSuccess, reply.ackValue))
|
Parameters |
Parameter | Required | Type | Description |
direct parameter | Yes | string | the target INSTEON address as a hexidecimal string. |
waitUntilAck | No | boolean | true if the caller wants to wait for the result. (default is True) |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
This command will send a raw INSTEON standard command.
reply = indigo.insteon.sendRaw("0A.B9.DC", [0x10, 0x00])
indigo.server.log("reply success: %d, ack value: %02X" % (reply.cmdSuccess, reply.ackValue))
|
Parameters |
Parameter | Required | Type | Description |
direct parameter | Yes | string | the target INSTEON address as a hexidecimal string. |
cmdBytes | Yes | list | a list of 2 integer bytes that represent the command to be sent. |
waitUntilAck | No | boolean | True if the caller wants to wait for the result. (default is True) |
waitForStandardReply | No | boolean | True if the caller wants to wait for a follow-up direct standard reply. (default is False) |
waitForExtendedReply | No | boolean | True if the caller wants to wait for a follow-up direct extended reply. (default is False) |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
This command will send a raw INSTEON extended command (command payload can be between 2 and 16 bytes).
# Get KeypadLinc info (LED states, brightness, etc.)
reply = indigo.insteon.sendRawExtended("11.7B.2E", [0x2E, 0x00], waitForExtendedReply=True)
if reply.cmdSuccess:
indigo.server.log(" backlight brightness: %d" % (reply.replyBytes[10],))
indigo.server.log("button toggle mode bitmap: 0x%02X" % (reply.replyBytes[11],))
indigo.server.log(" button states bitmap: 0x%02X" % (reply.replyBytes[12],))
|
# Change the Keypad LED brightness from dim to bright
setKeypadLedBrightness = [
0x2E, 0x00,
0x00, # unused
0x07, # change LED backlight brightness
0x11, # brightness between 0x11 and 0x7F
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
]
for brightness in [0x07, 0x44, 0x66, 0x7F]:
setKeypadLedBrightness[4] = brightness
indigo.insteon.sendRawExtended("11.7B.2E", setKeypadLedBrightness)
|
Parameters |
Parameter | Required | Type | Description |
direct parameter | Yes | string | the target INSTEON address as a hexidecimal string. |
cmdBytes | Yes | list | a list of 2 to 16 integer bytes that represent the command to be sent. |
calcCrc | No | boolean | automatically calculate 8 bit CRC byte for message (used by i2CS firmware). (default is True) |
calc16bitCrc | No | boolean | automatically calculate 16 bit CRC byte for message (used by specific modules). (default is False) |
waitUntilAck | No | boolean | True if the caller wants to wait for the result. (default is True) |
waitForStandardReply | No | boolean | True if the caller wants to wait for a follow-up direct standard reply. (default is False) |
waitForExtendedReply | No | boolean | True if the caller wants to wait for a follow-up direct extended reply. (default is False) |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
This will command the PowerLinc to send its SET Button Press Message, which can be useful in some linking scenarios.
reply = indigo.insteon.sendPowerLincSetButtonPress()
|
Parameters |
Parameter | Required | Type | Description |
suppressLogging | No | boolean | True if if entries in the event log should be suppressed (default is False) |
Use the lower-level subscribeToIncoming()
and subscribeToOutgoing()
methods in the indigo.insteon
command space to see commands regardless of their effect on device state.
Low Level Commands |
indigo.insteon.subscribeToIncoming() |
indigo.insteon.subscribeToOutgoing() |
For example,
def startup(self):
self.logger.debug("startup called -- subscribing to all INSTEON commands")
indigo.insteon.subscribeToIncoming()
indigo.insteon.subscribeToOutgoing()
########################################
def insteonCommandReceived(self, cmd):
self.logger.debug(f"insteonCommandReceived: \n{str(cmd)}")
def insteonCommandSent(self, cmd):
self.logger.debug(f"insteonCommandSent: \n{str(cmd)}")