FAQ: TRIGGERING FROM INSTEON DEVICE CHANGES
Knowledge Notes

When an Insteon Device changes its state by means of its associated switch, or when commanded to change by a linked Controlling Device, Insteon commands are broadcast so that Linked Responders can be kept aware of what is happening. The actual trigger type In/Out is whether PH sends it (Out) or another device sends it (In)

Insteon communications traffic is monitored by PH, and recorded in the Event Log. It can be used to Trigger actions by setting up trigger events in the PowerHome Explorer>Triggers tab.

The triggers pretty much match the available Insteon command types. Insteon has group broadcast commands, direct commands, group cleanups (a type of Direct command), and standard broadcast commands. The In and Out refers to the whether the command is coming (In) or going (Out) as "seen" by the PLC/PLM controller on the computer running PowerHome.

command modes

The image below shows some sample Event Log entries ...

1) Four different actions from an Insteon wall switch (DWN SOFA) that sent an on, an off, brighten for a few seconds, then dim for a few seconds.
2) An Insteon command sent from PowerHome to turn the DWN SOFA light On.
3) A Trigger Check action sensed by a Triggers entry, monitoring "Insteon Device Change" and Any trigger type but filtered by the Boolean field to only pass Direct Command or Group Broadcast messages sent from the DWN SOFA switch. See TEMP variables trigger contents discussion below.
trigger types

Insteon devices typically only send group broadcast commands usually followed by the group cleanup command unless another Insteon transmission interrupts the process. Thus as seen below, the Group Broadcast On is followed moments later by a Group Cleanup command.
command types

When an Insteon device is switched on/off/brightened/dimmed, it sends a group broadcast.

When PowerHome "see" this, it is considered an "Insteon Group In" (it's incoming to PH).

If PH sends a group broadcast command, that is an "Insteon Group Out" (it's outgoing from PH).

If the remote device sends the group cleanup command, then that will be an "Insteon Direct In" trigger (with a "Grp Cleanup-From Any" selection used for the Trigger ID Number).

If PH sends a group cleanup, then that is an Insteon Direct Out with a "Grp Cleanup-To Any" selection used for the Trigger ID Number). Only a PLM will send Direct (non cleanup) commands. If PowerHome sends it, it's an Insteon "Direct Out" with "Direct-To Any" in the Trigger ID Number field. If another PLM sends a direct command and PH hears it, it's a "Direct In" with "Direct-From Any" in the Trigger ID Number.

Take for example a group cleanup command being sent from a remote device to the PLM itself. This will always be an Insteon Direct In trigger since PowerHome didn't send it. Typically, you will probably choose for a trigger ID, the device that is actually sending the group cleanup. If you do this, then the Trigger Number should be Grp Cleanup - To Any. This means that PH will trigger on all group cleanup commands for the device chosen as the Trigger ID. So if the cleanup is sent to the PLM (or any other device), a Trigger will occur.

Now if instead the Trigger ID is set to be the PLM, you need to set the Trigger Number to Grp Cleanup - From Any. The trigger type will stay the same as Insteon Direct In. In this version of the trigger, PowerHome will fire on a group cleanup from ANY device sending a group cleanup direct to the PLM.

A Broadcast type command is not commonly seen, as not many devices send it, although some EZIO devices use this command type to notify when a zone is changing.

When a device is controlled by other sources (ie, via linking and groups or PH controlling it via the PLC/PLM) then rather than attempt to trigger off specific senders or trigger types, it is often easiest to use the "Insteon Device Change" Trigger Type, which will watch all activities affecting a targeted device.

The "Insteon Device Change Trigger" can be "triggered" by any of the Insteon command types as long as it results in a status change for the device (even if the status is the same as it currently is. That action is still updating the status.

If the goal is to monitor and trigger off of a device status changing, the Insteon Device Chg trigger is probably the most logical option. If however, you're trying to trigger off of a specific command (take for instance a handheld remote link that isnt actually linked to anything other than the PLM and you're using it to execute a macro or some other function), then one of the others may make more sense.

There is a large range of events that can be used to fire a Trigger. Here are a number of examples ...

trigger examples

Following is a brief summary of many of the significant items in the table above.

  1. Note the Trigger IDs are a sorted list. When a Trigger Event occurs, the Triggers list is searched for a match. Thus any time critical items should be located at the beginning of the list by using a leading underscore (_) or numeric character to put them at the start of the list.
  2. There are different Action Types that can be used to respond to the trigger. These include macro calls, simulated key strokes, raw formulas, and direct Insteon device control. The "Action" field is used as appropriate for the Action "Type".
  3. There are an extraordinary range of Trigger Types than can be used. The example belows shows many of the commonly used types. NOTE: If a device (eg, light) is a responder to other controllers, then the "Insteon Device Change" Trigger Type will normally be used as that monitors the device state itself independant of what is sending the change command.

    Further NOTE that the Boolean filed can be used as a filter to control the trigger "firing" dependant on what the device change was (ie, was it turned on or off or dimmed, etc?)

    The next paragraph explains how different device state information is passed thru the Trigger to subsequent Actions that might be taken.
The Insteon Device Chg trigger includes addtional supporting info in the TEMP variables that may assist you in your efforts (most triggers include addl info in the TEMP vars).

Below is the data that is contained in the TEMP vars for the Insteon Device Chg trigger:

TEMP1 ID of Trigger [eg, "HALL ON-SR"]
TEMP2 0
TEMP3 Insteon CMD2
TEMP4 Type of trigger
  1 = Direct Command from PH PLC
2 = Group Cleanup from PH PLC
3 = Group Broadcast from PH PLC
4 = Direct Command from device
5 = Group Broadcast from device
6 = Group Cleanup from device
TEMP5 The address of the Trigger Sending device [eg, "1E.16.B2"]
TEMP6 Command Type
  20 = Direct type command
21 = Broadcast type command
TEMP7 The address of the receiving device [eg, "08.3C.12"]
TEMP8 The Group number for group type commands, 1 otherwise
TEMP9 Insteon CMD1 [eg, "19"]
TEMP10 ID of Trigger Sending device [eg, "MID-SOFA"]

You can effectively get a “Level Change” trigger by using the “Insteon Device Chg” trigger with [Any] group and [Any] command and then placing this formula in the “Boolean” field:
    case([TEMP9] when 21,22,24 then 1 else 0)
This will only allow the trigger to fire when a dim, bright, or stop manual change command affects the desired device. You could then create multiple “Insteon Device Chg” triggers with appropriate formulas in the “Boolean” field all executing different macros to pick up some granularity.