====== INSTEON Commands ====== This plugin is a collection of miscellaneous INSTEON commands that aren't yet available natively in the UI (and may never be). There are several reasons for adding some INSTEON commands as actions via this plugin: it's sometimes desirable to be able to perform these actions more frequently than just once during setup (so it's in addition to the native UI) and it's often faster than adding it into the native UI. In any event, here are the actions available: ====Set LED Brightness==== This action will set the brightness of the LEDs on certain devices. Newer KeypadLincs are supported as well as some SwitchLinc models. Unfortunately there isn't really a way to tell you which devices are supported so you'll just have to try it and see if it works. Available in v1.0.0. ====Turn On/Off KeypadLinc Buttons==== This action allows you to turn on/off groups of buttons. Why not just have multiple actions using the built-in Turn ON/Turn OFF LED actions? Because each of those requires a lot of INSTEON traffic - and if you need to set several buttons at once this action will do it in one (or two if you want to maintain some buttons) action(s). It's more efficient and easier to configure (one action versus potentially seven actions). Select the action you want to take for each button: **''Turn On''**, **''Turn Off''**, **''Leave Alone''**. The latter option will require that we query the KPL to find the states first so if you select that for any of the buttons the action may execute a bit slower than it would otherwise. Note: using this action, which is sending raw INSTEON commands through the IndigoServer, will cause the KeypadLinc's button states in Indigo to become out of sync. This is because the server doesn't know that you're changing the button states given that it's just a raw command message that it's being asked to send to the PowerLinc. If you need to keep the states in sync then add another action to do a status request to the KeypadLinc (after a short delay to avoid collisions). Available in v1.0.0. ====Set KeypadLinc Auto-Off Button Group==== This action will allow you to specify what buttons will go off automatically when you press any other button. Useful in conjunction with Toggle Mode below for creating "radio groups". See the [[:FanLinc and KeypadLinc]] article for usage examples. Available in v1.0.0. ====Set KeypadLinc Button Toggle Mode==== This action will allow you to specify whether a button toggles (alternates between ON and OFF when pressed) or whether it sends a single command anytime it's pressed (can send either ON or OFF). Useful in conjunction with Auto-Off groups above for creating "radio groups". See the [[:FanLinc and KeypadLinc]] article for usage examples. Available in v1.0.0. ====Set Motion Sensor LED Brightness==== This action will set the brightness of the LED that flashes inside the motion sensor when motion is detected. While the brightness value is between 0 and 255, 0 does not mean the LED is completely off - it's just very dim. Note: only revision 2 Motion Sensors with jumper 5 set can be configured. Available in v1.0.1. ====Set Motion Sensor Timeout==== This action will set the timeout value between the time the motion sensor stops detecting motion and when it sends the OFF command. The timeout values work like this: 0 is equal to 30 seconds and 255 is equal to 2 hours. Values in between are proportional to those values. **Note**: only revision 2 Motion Sensors with jumper 5 set can be configured. **Note**: a value of 0 will be interpreted as 3 for Motion Sensor II models. Available in v1.0.1. ====Set Motion Sensor Day/Night Sensitivity==== This action will set the sensitivity for when the motion sensor detects changes from dawn to dusk and vice versa. The sensitivity values work like this: 0 will make the sensor register day all the time and 255 is equal to night all the time. Values in between are proportional to those values. Note: only revision 2 Motion Sensors with jumper 5 set can be configured. Available in v1.0.1. ====Set I/O Linc Momentary Mode==== This action will allow you to set the momentary mode of an I/O Linc to A, B, C, or None (the built-in UI only sets A or None). Available in v1.0.0. ====Configure SynchroLinc==== This action will allow you to configure the Trigger Watts, Threshold Watts, and Delay Seconds in a SynchroLinc. Here are the details of those settings: * Trigger Watts (0 to 1800 watts in 0.5 watt steps): the wattage needed before the SynchroLinc broadcasts. * Threshold Watts (aka hysteresis, 0 to 127.5 watts in 0.5 watt steps): tolerance before on/off toggle is sent. * Delay Seconds (0.15 to 38.25 seconds): prevents message flooding if thresholdWatts is too low. Available in v1.0.0. ====Send Raw INSTEON Command==== This action will allow you to send a raw INSTEON command to any INSTEON device. You can send standard messages (2 bytes) or extended messages (16 bytes). You can also have the results of the command inserted into a variable for later processing. Available in v1.0.0. ====== ====== As of v1.0.2 all the above actions can be run interactively from the plugin's menu so you don't need to create a separate Action Group to run them. We'll add other functionality here where it makes sense. Drop us an email if you have an idea. ===== Scripting Support ===== As with all plugins, actions defined by this plugin may be executed by [[indigo_5_documentation:plugin_scripting_tutorial&#scripting_indigo_plugins|Python scripts]]. Here's the information you need to script the actions in this plugin. **Plugin ID**: com.perceptiveautomation.indigoplugin.InsteonCommands ==== Action specific properties ==== === Set LED Brightness === **Action id**: setLedBrightness Properties for scripting: | //''device''// | required |the ID of the target device | | //''brightness''// | optional |desired brightness of the device from 1-100 (100 is default) | | //''brightenMethod''// | optional |method to use to try the command, one of "kpl" (default) or "swl" | Example: acId = "com.perceptiveautomation.indigoplugin.InsteonCommands" actionPlugin = indigo.server.getPlugin(acId) if actionPlugin.isEnabled(): actionPlugin.executeAction("setLedBrightness", props={'device':'1435361545','brightness':'1', 'brightenMethod':'kpl'}) === Turn On/Off KeypadLinc Buttons === **Action id**: setKPLLeds Properties for scripting: | //''keypadlinc''// | required |the ID of the target keypadlinc | | //''button2''// | optional |one of the following actions for button: "turnOn" (default), "turnOff", "leaveAlone" | | //''button3''// | optional |one of the following actions for button: "turnOn" (default), "turnOff", "leaveAlone" | | //''button4''// | optional |one of the following actions for button: "turnOn" (default), "turnOff", "leaveAlone" | | //''button5''// | optional |one of the following actions for button: "turnOn" (default), "turnOff", "leaveAlone" | | //''button6''// | optional |one of the following actions for button: "turnOn" (default), "turnOff", "leaveAlone" | | //''button7''// | optional |one of the following actions for button: "turnOn" (default), "turnOff", "leaveAlone" | | //''button8''// | optional |one of the following actions for button: "turnOn" (default), "turnOff", "leaveAlone" | Example: acId = "com.perceptiveautomation.indigoplugin.InsteonCommands" actionPlugin = indigo.server.getPlugin(acId) if actionPlugin.isEnabled(): actionPlugin.executeAction("setKPLLeds", props={'keypadlinc':'1435361545','button4':'leaveAlone'}) === Set KeypadLinc Auto-Off Button Group === **Action id**: setAutoOffButtonGroup Properties for scripting: | //''keypadlinc''// | required |the ID of the target keypadlinc | | //''controlButton''// | required |the control button (the one that turns off the others) - value from 1-8 | | //''button2''// | optional |True if you want a press on the controlButton to turn off, False (default) otherwise | | //''button3''// | optional |True if you want a press on the controlButton to turn off, False (default) otherwise | | //''button4''// | optional |True if you want a press on the controlButton to turn off, False (default) otherwise | | //''button5''// | optional |True if you want a press on the controlButton to turn off, False (default) otherwise | | //''button6''// | optional |True if you want a press on the controlButton to turn off, False (default) otherwise | | //''button7''// | optional |True if you want a press on the controlButton to turn off, False (default) otherwise | | //''button8''// | optional |True if you want a press on the controlButton to turn off, False (default) otherwise | Example: acId = "com.perceptiveautomation.indigoplugin.InsteonCommands" actionPlugin = indigo.server.getPlugin(acId) if actionPlugin.isEnabled(): # Here we set button 3 so that it turns off buttons 4, 5, and 6 actionPlugin.executeAction("setAutoOffButtonGroup", props={'keypadlinc':'1435361545','controlButton':'3', "button4":True, "button5":True, "button6":True}) === Set KeypadLinc Button Toggle Mode === **Action id**: setKPLToggleMode Properties for scripting: | //''keypadlinc''// | required |the ID of the target keypadlinc | | //''button1toggle''// | optional |True if you to put the button into non-toggle mode, False (default) if you want it to toggle (standard behavior) | | //''button1onMode''// | optional |True (default) if you want a press on the button to always send ON when in non-toggle mode, False to have it send OFF (has no effect if the button isn't set to non-toggle mode) | | //''button2toggle''// | optional |True if you to put the button into non-toggle mode, False (default) if you want it to toggle (standard behavior) | | //''button2onMode''// | optional |True (default) if you want a press on the button to always send ON when in non-toggle mode, False to have it send OFF (has no effect if the button isn't set to non-toggle mode) | | //''button3toggle''// | optional |True if you to put the button into non-toggle mode, False (default) if you want it to toggle (standard behavior) | | //''button3onMode''// | optional |True (default) if you want a press on the button to always send ON when in non-toggle mode, False to have it send OFF (has no effect if the button isn't set to non-toggle mode) | | //''button4toggle''// | optional |True if you to put the button into non-toggle mode, False (default) if you want it to toggle (standard behavior) | | //''button4onMode''// | optional |True (default) if you want a press on the button to always send ON when in non-toggle mode, False to have it send OFF (has no effect if the button isn't set to non-toggle mode) | | //''button5toggle''// | optional |True if you to put the button into non-toggle mode, False (default) if you want it to toggle (standard behavior) | | //''button5onMode''// | optional |True (default) if you want a press on the button to always send ON when in non-toggle mode, False to have it send OFF (has no effect if the button isn't set to non-toggle mode) | | //''button6toggle''// | optional |True if you to put the button into non-toggle mode, False (default) if you want it to toggle (standard behavior) | | //''button6onMode''// | optional |True (default) if you want a press on the button to always send ON when in non-toggle mode, False to have it send OFF (has no effect if the button isn't set to non-toggle mode) | | //''button7toggle''// | optional |True if you to put the button into non-toggle mode, False (default) if you want it to toggle (standard behavior) | | //''button7onMode''// | optional |True (default) if you want a press on the button to always send ON when in non-toggle mode, False to have it send OFF (has no effect if the button isn't set to non-toggle mode) | | //''button8toggle''// | optional |True if you to put the button into non-toggle mode, False (default) if you want it to toggle (standard behavior) | | //''button8onMode''// | optional |True (default) if you want a press on the button to always send ON when in non-toggle mode, False to have it send OFF (has no effect if the button isn't set to non-toggle mode) | Example: acId = "com.perceptiveautomation.indigoplugin.InsteonCommands" actionPlugin = indigo.server.getPlugin(acId) if actionPlugin.isEnabled(): # Here we set button 3 so that it always sends an OFF command actionPlugin.executeAction("setKPLToggleMode", props={'keypadlinc':'1435361545', "button3toggle":True, "button3onMode":False}) === Set Motion Sensor LED Brightness=== **Action id**: setMotionSensorLedBrightness Properties for scripting: | //''device''// | required |the ID of the target motion sensor | | //''brightness''// | optional |desired brightness of the motion sensor from 0-255 (100 is default) | Example: acId = "com.perceptiveautomation.indigoplugin.InsteonCommands" actionPlugin = indigo.server.getPlugin(acId) if actionPlugin.isEnabled(): actionPlugin.executeAction("setMotionSensorLedBrightness", props={'device':'554249383','brightness':'0'}) === Set Motion Sensor Timeout=== **Action id**: setMotionSensorTimeout Properties for scripting: | //''device''// | required |the ID of the target motion sensor | | //''timeout''// | optional |desired timeout of the motion sensor from 0-255 (1 is default) | Example: acId = "com.perceptiveautomation.indigoplugin.InsteonCommands" actionPlugin = indigo.server.getPlugin(acId) if actionPlugin.isEnabled(): actionPlugin.executeAction("setMotionSensorTimeout", props={'device':'554249383','timeout':'5'}) === Set Motion Sensor Day/Night Sensitivity=== **Action id**: setMotionSensorSensitivity Properties for scripting: | //''device''// | required |the ID of the target motion sensor | | //''sensitivity''// | optional |desired sensitivity of the motion sensor from 0-255 (128 is default) | Example: acId = "com.perceptiveautomation.indigoplugin.InsteonCommands" actionPlugin = indigo.server.getPlugin(acId) if actionPlugin.isEnabled(): actionPlugin.executeAction("setMotionSensorSensitivity", props={'device':'554249383','sensitivity':'200'}) === Set I/O Linc Momentary Mode === **Action id**: setIOLincMomentaryMode Properties for scripting: | //''iolinc''// | required |the ID of the target device | | //''momentaryMode''// | optional |the mode, one of "A", "B", "C", and "None" - see the I/O Linc docs for details | Example: acId = "com.perceptiveautomation.indigoplugin.InsteonCommands" actionPlugin = indigo.server.getPlugin(acId) if actionPlugin.isEnabled(): actionPlugin.executeAction("setIOLincMomentaryMode", props={'iolinc':'1053088701','momentaryMode':'A'}) === Configure SynchroLinc === **Action id**: configureSynchroLinc Properties for scripting: | //''synchrolinc''// | required |the ID of the target device | | //''triggerWatts''// | optional |(0 to 1800 watts in 0.5 watt steps): the wattage needed before the SynchroLinc broadcasts (will retain existing setting if not included) | | //''thresholdWatts''// | optional |(aka hysteresis, 0 to 127.5 watts in 0.5 watt steps): tolerance before on/off toggle is sent (will retain existing setting if not included) | | //''delaySeconds''// | optional |(0.15 to 38.25 seconds): prevents message flooding if thresholdWatts is too low (will retain existing setting if not included) | Example: acId = "com.perceptiveautomation.indigoplugin.InsteonCommands" actionPlugin = indigo.server.getPlugin(acId) if actionPlugin.isEnabled(): actionPlugin.executeAction("configureSynchroLinc", props={'synchrolinc':'662726927','triggerWatts':'14.5','thresholdWatts':'4.0','delaySeconds':'4.50'}) === Send Raw INSTEON Command === Use the indigo.insteon.sendRaw() and indigo.insteon.sendRawExtended() commands. FIXME add links when those methods get documented