Back to Support

Hardware protocol & SDK reference

Hotel guestroom Modbus RS485 integration — protocol maps, SDK notes and gateway references for developers.

Note: PurePoint Smart is a guestroom RCU and smart panel hardware manufacturer, focused on volume supply and OEM/ODM. This page is an optional protocol integration / secondary development reference for integrators or customers building their own software — not a PurePoint Smart core product.

Hardware ready — open protocol integration

We deliver stable RCU, panel and module production plus Modbus / MQTT protocol docs and sample code so integrators can implement scene logic on their own platforms. PurePoint Smart handles hardware definition and manufacturing; application software, PMS and cloud platforms are built by partners or third parties.

import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

public class MqttClientDemo {
public static void main(String[] args) {
String broker = "tcp://127.0.0.1:1883";
String clientId = "JavaClient";
String pub_topic = "hotel/light/control";
String sub_topic = "hotel/light/status";
String content = "Smart lighting control";
int qos = 1;

try {
MemoryPersistence persistence = new MemoryPersistence();
MqttConnectOptions connOpts = new MqttConnectOptions();
MqttClient client = new MqttClient(broker, clientId, persistence);
client.connect(connOpts);
MqttMessage message = new MqttMessage(content.getBytes());
message.setQos(qos);
client.publish(pub_topic, message);
System.out.println("Message published");
client.subscribe(sub_topic, qos);
System.out.println("Subscribed to topic: " + sub_topic);
} catch (MqttException e) {
e.printStackTrace();
}
}
}
void publish(MQTTClient client, char *topic, char *payload) {
MQTTClient_message message = MQTTClient_message_initializer;
message.payload = payload;
message.payloadlen = strlen(payload);
message.qos = QOS;
message.retained = 0;
MQTTClient_deliveryToken token;
MQTTClient_publishMessage(client, topic, &message, &token);
MQTTClient_waitForCompletion(client, token, TIMEOUT);
printf('Send `%s` to topic `%s` ', payload, PUB_TOPIC);
}
def publish(client):
    msg_count = 0
    while not FLAG_EXIT:
        msg_dict = {
            'type': 'info'
        }
        msg = json.dumps(msg_dict)
        if not client.is_connected():
            logging.error('publish: MQTT client is not connected!')
            time.sleep(1)
            continue
        result = client.publish(PUB_TOPIC, msg)
        status = result[0]
        if status == 0:
            print(f'Send `{msg}` to topic `{PUB_TOPIC}`')
        else:
            print(f'Failed to send message to topic {PUB_TOPIC}')
        msg_count += 1
        time.sleep(1)
func publish(client mqtt.Client) {
qos := 0
msgCount := 0
for {
payload := `{'type':'info'}`
if token := client.Publish(pub_topic, byte(qos), false, payload); token.Wait() && token.Error() != nil {
fmt.Printf('publish failed, topic: %s, payload: %s', pub_topic, payload)
} else {
fmt.Printf('publish success, topic: %s, payload: %s', pub_topic, payload)
}
msgCount++
time.Sleep(time.Second * 1)
}
}
client.on('connect', () => {
console.log(`${protocol}: Connected`)
client.subscribe(sub_topic, { qos }, (error) => {
if (error) {
console.log('subscribe error:', error)
return
}
console.log(`${protocol}: Subscribe to topic '${sub_topic}'`)
client.publish(pub_topic, payload, { qos }, (error) => {
if (error) {
console.error(error)
}
})
})
})
static void Publish(MqttClient client, string topic)
{
int msg_count = 0;
while (true)
{
System.Threading.Thread.Sleep(1*1000);
string msg = '{'type':'info'}';
client.Publish(topic, System.Text.Encoding.UTF8.GetBytes(msg));
Console.WriteLine('Send `{0}` to topic `{1}`', msg, topic);
msg_count++;
}
}
$payload = array(
'type' => 'info'
);
$jsonp = json_encode($payload);
$mqtt->publish(
$jsonp,
0,
true
);
printf('msg send $jsonp to $pub_topic');
$mqtt->subscribe($sub_topic, function ($topic, $message) {
printf('Received message on topic [%s]: %s', $topic, $message);
}, 0);

Built for software developers
with capable IoT smart devices

Since 1996, PurePoint Smart supplies RCU hosts, hotel smart switch panels with glass touch and guestroom modules for hotel, residential and commercial projects — with Modbus / MQTT protocol docs for integrator software teams.
Fully open device functions
Fully open device functions

PurePoint Smart opens all device capabilities so developers can build applications for more IoT scenarios and unlock greater IoT potential.

Unified device protocol
Unified device protocol

Across chip-based designs, PurePoint Smart maintains a unified communication protocol — all support MQTT and TCP.

Global regional variants
Global regional variants

Each device gets region-specific versions to meet local standards and requirements, with dedicated tooling and assembly.

OEM/ODM support
OEM/ODM support

OEM available from 1,000 units per batch to customer specs; contact PurePoint Smart for ODM requirements.

WiFi or 4G connectivity for network services
PurePoint Smart WiFi devices typically reach 10–50 m; they can connect to customer local or cloud services. 4G supports major carriers and suits wide-spread or hard-to-wire sites — cloud services only.
WiFi connection
WiFi connection

With WiFi smart devices, deploy servers on LAN or cloud. Devices use MQTT pub/sub or TCP listen modes to exchange data — suited to concentrated deployments.

4G multi-carrier connection
4G multi-carrier connection

With 4G devices, servers must be cloud-hosted. Devices use MQTT pub/sub or TCP listen for data exchange — suited to dispersed deployments.

MQTT or TCP for reliable device communication
Run your own MQTT broker for pub/sub device messaging to control devices or collect data. Or connect devices to a TCP Server for traditional comms — e.g. Netty TCP Server or a host PC link. Three common networking patterns are listed below for reference.
MQTT server communication
MQTT server communication

Connect PurePoint Smart devices via standard MQTT — reliable, efficient and secure to start your IoT business.

TCP server communication
TCP server communication

Custom TCP Server with TCP protocol to extend existing networks alongside other devices.

Host PC communication
Host PC communication

Configure PurePoint Smart devices as TCP host; use SCADA tools to collect data and control devices directly.

Stable core functions — build your business freely
PurePoint Smart wraps complex hardware commands into standard JSON messages. After MQTT connection, simple pub/sub enables data collection and control. Front-end and back-end developers can take over devices quickly for custom apps.
Power on/off control

Power on/off control

Publish MQTT topic messages or send via TCP Server to client

Send JSON (power on)
{
"type":"event",
"key":1
}
Return JSON message
{
"type":"Socket-mini",
"key":1,
"wifiLock":0,
"keyLock":0,
"ip":"192.168.0.101"
}
Energy query

Energy query

Query real-time voltage, current and cumulative energy for load monitoring

Send JSON message
{
"type":"statistic"
}
Return JSON message
{
"voltage": 226.024,
"current": 15.027,
"power": 2921.511,
"energy": 25.047
}
WiFi provisioning lock

WiFi provisioning lock

Lock device WiFi config to prevent on-site misconfiguration

Send JSON message
{
"type":"setting",
"wifiLock":1
}
Return JSON message
{
"type":"Socket-mini",
"key":1,
"wifiLock":1,
"keyLock":0,
"ip":"192.168.0.101"
}
Function key lock

Function key lock

Lock device function keys to prevent long-press factory reset on site

Send JSON message
{
"type":"setting",
"keyLock":1
}
Return JSON message
{
"type":"Socket-mini",
"key":1,
"wifiLock":1,
"keyLock":1,
"ip":"192.168.0.101"
}
Status query

Status query

Current device status including MAC address, WiFi name and more

Send JSON message
{
"type":"info"
}
Return JSON message
{
"mac":"Socket-mini",
"type":"Socket-mini",
"version":"2.0.0",
"key":1,
"wifiLock":1,
"keyLock":1,
"ip":"192.168.0.101",
"ssid":"open-wifi"
}
Secondary development workflow
01
Select smart devices
Purchase smart hardware for your application scenario
02
Initial device setup
Configure network and server connection settings
03
Control & data collection
Try sending control commands and receiving device reports
04
Business system integration
Launch your business system and complete private deployment
Provisioning workflow (smart socket example)
Step 1:

Connect phone or PC to device hotspot hc-xxxxxxxx, password: Aa123456.

Step 1:
Step 2:

After connection, the provisioning page opens automatically (or browse to 192.168.4.1).

Step 2:
Step 3:

Tap WiFi config, select the network (refresh to rescan), enter password and save.

Step 3:
Step 4:

With correct password, tap Save — provisioning validates WiFi and completes setup.

Step 4:
Flexible access options for every developer
Multi-scenario, freely combined control of PurePoint Smart hardware. JSON data transfer, response under 50 ms, multi-language development supported.
Flexible access options for every developer
MQTT Client
Bidirectional MQTT pub/sub between device and server for data collection and control
TCP Client
Device initiates TCP connection to a TCP Server and listens for server commands
TCP Server
Device runs TCP Server as host; TCP clients connect for collection and control
MQTT Client

Need hardware BOM or wiring manuals?

Browse the product catalog and engineering docs; developer API for system integration.