下一步是用于定义一个模块用于房间的开关选择。一个模块定义和一个功能块必须被创建。在这里两者都叫做“开关”,定义必须通过功能块实现。模块“开关”的定义不需要进行顶层选择,因为它将会被添加非顶层模块“灯”下方(之后定义)。由于它是强制性的将所有功能块的实现模块,功能块“开关”必须扩展 "AC.Module"。另一方面,功能块也包含一个接口实现 "ISwitch",必须要进行创建。之后要实现接口 "IModule" (由函数库 "AC_ModuleBase" 提供) ,同样的在其他方面也是为空的 (没有属性或者函数定义)。
进一步讲开关需要一个输入信号 (可能从一个扩展源 / 物理开关) 定义什么时候点击。这个信号定义在选项IO,在这里使用模块实现功能块的xIn变量。更多的一个参考时间需要区分开关的两个功能:点击开关给定时间tTimer将启动昏暗功能 - 否则等将作为一个点击处理。这个变量tTimer (也是实现功能块模块的一部分) 将会被作为模块参数进行定义 (选项Parameters),最后可以很容易的被“最终用户”进行编辑。
相关变量xIn 以及 tTimer 都作为功能块 "开关" 的输入进行定义,参数tTimer将会获得一个默认初始值 500ms。所以当用户长按开关大于 500ms 时,灯光将会被调暗。
文本列表以及图像池必须扩展包含必须的输入以及参数的描述文本。