What are "modules"? Are those basically macros? Or do modules communicate with devices?
Modules are program code developed in VBscript. A Module can be a new device driver, a functional enhancement, a new web-interface, etc.
Premise has an object-oriented framework that defines core classes and their methods. Everything in Premise is an object. If I want to build a collection of all Lights in my Premise Home, I'll use the
Home object and its
GetObjectsByType method and specify what kind of object (schema) I want.
set oLights = Home.GetObjectsByType(Schema.Device.Lighting.Lighting.Path)
Consider an ELK M1 driver. The classic way of handling its Zones is to create an array and have each element represent a zone. That's not how you'd do it in Premise. You'd define a new "M1 Zone" class that inherits from an existing, core Premise class called "Security Zone" and define new properties like Status, LogicState, PhysicalState, Area, Trouble, etc.
Consider an IR receiver driver. The classic way is to create a text property that holds the received IR command as a text string. In Premise, you'd define a new "IR Receiver" class that inherits from the existing "Infrared Input" class and use the inherited "RxData" property.
Modules can also call on Premise services such as serial communications, web services, e-mail, etc and external COM objects. The one thing you cannot do with a Module is create a multi-threaded application. Native drivers, and external apps that use the MiniBroker interface, can be multi-threaded.