You can create custom applications (apps), drivers, and web pages for the SmartServer.
You can develop a custom app to provide a custom service on the SmartServer or to provide an interface to other IoT services. A custom app can use any services provided by IAP/MQ or IAP/REST, including services to read and write datapoints, provision and manage devices, manage data logs, or manage alarms. You can also create an app that implements a virtual IAP or LON device on the SmartServer. You can use virtual IAP or LON devices to make datapoints available through the IAP/MQ and IAP/REST APIs. For example, you can create a custom app that implements a virtual LON device that makes any IAP/MQ datapoints available as LON network variables that can be used by LON tools and applications such as IzoT CT or any IzoT Net Server or LNS applications.
You can create a driver to provide an interface to devices that communicate with a protocol not already supported by the SmartServer.
You can create a custom web page to provide a customized interface to a SmartServer that you customize for the devices managed by the SmartServer and custom apps that you install on your SmartServer.
Many of the topics in the Developer's Guide reference example apps, example drivers, example web pages, and the SmartServer Driver Framework. Small examples are included inline in the following topics. Longer examples and the SmartServer Driver Framework are available in the SmartServer IoT GitHub repository at SmartServer-IoT. You can download the entire repository as a ZIP archive file or you can clone the repository on your local computer. To download a ZIP archive, click SmartServer-IoT, then click Clone or Download, and then click Download ZIP. To clone the repository, you can use the git application or you can use a development tool such as Visual Studio Code that includes an integrated git interface. To clone with git, open a Windows command prompt, navigate to the directory you plan to use for the repository, and then type:
The following topics describe how to set up your computer for developing customer apps or drivers, provide a programming tutorial that will take you through some basic steps related to writing programs for the SmartServer IoT, describe how to develop custom apps and drivers, and describe how you can create custom web pages.
This section describes a development environment for creating custom apps and drivers to run on the SmartServer IoT.
This section provides general information about creating applications for the SmartServer IoT.
This section provides a introductory tutorial for developing a custom app. It includes:
- Setting Up Tutorial Hardware
- Create Your Node.js Hello World
- Create Your MQTT Hello World
- Run the helloMqtt App on the SmartServer IoT
- Your First IAP/MQ App
- Interacting with Devices Using IAP/MQ
- IAP/MQ Device Interaction Example
- Data Monitoring Application
- Installing the Data Monitoring Application on Your SmartServer IoT
This section describes how to create internal apps for the SmartServer IoT.
- Selecting a Profile
- Setting up an Internal Application Program Example Network
- Internal LON Application Example
- Creating an XIF for an Internal LON App
- Building and Managing the Example Network
- Internal LON Device Application in Node.js
This section describes how to create custom drivers for the SmartServer IoT.
- Driver Framework
- Driver Framework Installation
- Driver Framework Modules
- Modifying the literals.js Module
- Running the Driver Framework
- Debugging the Driver Framework
- Running the Driver Framework from a Remote Computer
- Interfacing with a C/C++ Library
- Creating Your Custom Driver
- SmartServer IoT Ethernet, RS-485 Ports, and USB Ports
This section provides some basic information about the SmartServer IoT APIs.
This section provides instructions on performing various programming tasks. It includes:
This section helps you create custom web pages for the SmartServer IoT.
- Custom Web Page Examples
- Simple Sensor Web Page Example (Web Page Template)
- Custom Web Page Tutorial
- Using WebSockets with Custom Web Pages