Skip to content
mstovenour edited this page Mar 26, 2013 · 5 revisions

Insteon Class Diagrams

Creation Tools

Created using UML::Class::Simple and Graphviz and the following command lines:

perl -I lib/site `which umlclass.pl`  -o insteon.gif -p "Insteon.*" lib/Serial_Item.pm  lib/Generic_Item.pm lib/Insteon.pm lib/Insteon_PLM.pm lib/Insteon*/*.pm
umlclass.pl -o insteon_message.gif -p "Insteon::.*Message" -s 4.5x5.5 lib/Generic_Item.pm lib/Insteon.pm lib/Insteon_PLM.pm lib/Insteon*/*.pm
umlclass.pl -o insteon_aldb.gif -p "Insteon::AllLinkDatabase|Insteon::ALDB.*" -s 5x6 lib/Generic_Item.pm lib/Insteon.pm lib/Insteon_PLM.pm lib/Insteon*/*.pm
perl -I lib/site `which umlclass.pl` -o insteon_interface.gif -p "Insteon_PLM|Insteon::BaseInterface" -s 2x7 lib/Serial_Item.pm lib/Generic_Item.pm lib/Insteon_PLM.pm lib/Insteon*/*.pm
perl -I lib/site `which umlclass.pl`  -o insteon_devices.gif -p "Insteon::.*Object|Insteon::.*Controller|Insteon::.*Device|Insteon::.*Linc.*|Insteon::MotionSensor|Insteon::.*Light" lib/Serial_Item.pm  lib/Generic_Item.pm lib/Insteon.pm lib/Insteon_PLM.pm lib/Insteon*/*.pm

Insteon Devices

Class Diagram: Insteon Devices

Insteon Interface

Class Diagram: Insteon Interface

Insteon AllLinkDatabase

Class Diagram: Insteon AllLinkDatabase

Insteon Message

Class Diagram: Insteon Message

Mapping to User Interface


Note: This is rough guide only. See code for conditional logic which updates the UI based on device specific values.

Insteon_PLM:

UI                                  Action                                          Notes
complete linking as responder       $obj->complete_linking_as_responder             
initiate unlinking                  $obj->initiate_unlinking_as_controller
cancel linking                      $obj->cancel_linking
show link table to log              $obj->log_alllink_table
scan link table                     $obj->scan_link_table($self->log_alllink_table)
delete orphan links                 $obj->delete_orphan_links
AUDIT - delete orphan links         $obj->delete_orphan_links(1)
scan all device link tables         &Insteon::scan_all_linktables
sync all links                      &Insteon::sync_all_links(0)
AUDIT - sync all links              &Insteon::sync_all_links(1)

BaseController

UI                                  Action                                          Notes
initiate linking as controller      $obj->initiate_linking_as_controller("$group")
cancel linking                      $obj->interface()->cancel_linking
status                              $obj->request_status
get engine version                  $obje->get_engine_version
scan link table                     $obje->scan_link_table($self->log_alllink_table)
log links                           $obj->log_alllink_table()
sync links                          $obj->sync_links(0)
on                                  ($obj, 'on')
off                                 ($obj, 'off')

BaseDevice

UI                                  Action                                          Notes
<list of states>                    <take action with the state>                    
log links                           $obj->log_alllink_table()
status                              $obj->request_status
get engine version                  $obj->get_engine_version
update onlevel/ramprate             $obj->update_local_properties
scan link table                     $obj->scan_link_table($self->log_alllink_table)
link to interface                   $obj->link_to_interface
unlink with interface               $obj->unlink_to_interface
Clone this wiki locally