Receiving command flow

With the discovery of the need to link each controller group to the PLM, it is simple to determine that a button has been tapped or a switch switched. The problem remains that in most cases there are devices linked to that controller which do not report their state to the PLM.

To overcome this, the PLMProtocol upon receipt of a button push message will convey that to the Engine Thread directly (for macro expansion) then will request the link table from the controller and use it to request status from the linked devices, this status will then be used to create commands to be sent to the EngineThread, ensuring that the EngineThread always has a good understanding of the network status.

This will unfortunately create a flurry of activity on the insteon network shortly after every button push, especially those buttons that have a lot of responders linked to them, but the can be mitigated by reducing the number of responders and allowing a plcd macro to handle the multiple responders.