LoRaWAN Thermostat1 -- Next-Generation Thermostat for Connected Buildings

Last modified by Xiaoling on 2025/09/16 18:31

1757582457811-937.png

Table of Contents:

1. Introduction

1.1 What is LoRaWAN Thermostat1

The Dragino Thermostat1 is a LoRaWAN-based smart thermostat designed specifically for the North American HVAC market. It is compatible with a wide range of 24VAC HVAC systems, including:

  • Conventional Heating & Cooling: Supports 2H/2C and 1H/1C configurations
  • Heat Pump Systems: Supports 3H/2C and 4H/2C configurations
  • Boiler or Radiant Heating Systems with air handler and conventional cooling/heating

Leveraging LoRaWAN long-range wireless communication, the Thermostat1 enables remote temperature monitoring and control, significantly reducing the cost and complexity of installation and maintenance—especially in large or distributed facilities.

1.2 ​Features

  • LoRaWAN US915 Class C protocol
  • Local and remote temperature control for flexible operation
  • Easy integration into building automation and energy management systems
  • Wireless deployment minimizes wiring requirements and installation costs
  • Scalable for large commercial facilities with centralized control needs

1.3 Specification

Power supply mode: 18-30VAC 60Hz
Temperature setting accuracy: 0.5 ℉
Temperature setting range: 41 ℉ ~ 95F
Temperature display accuracy: 0.5 ℉
Transportation temperature range: 14 ℉ ~ 140 ℉
Working environment temperature: 32 ℉ ~ 122 ℉

1.4 Applications

  • Offices, industrial buildings, campuses
  • Hotels and resorts
  • Retail chains with multiple locations
  • Schools & universities
  • Healthcare facilities

Thermostat1 delivers a cost-effective, scalable, and reliable solution for modern commercial HVAC management.

1.5 Panel and Function

1758006988844-379.png

1.5.1 Operation Instructions

ButtonFunction
1758015565312-691.pngPower/child lockShort press the power button to turn on/off the device; long press to turn on/off the child lock.
1758015583649-767.pngMode  Button

1. With the power on, briefly press the Mode button to    switch between Manual and Automatic modes.

2. With the power off, press and hold for 3 seconds to    enter the Advanced menu settings. Short presses allow you to switch between advanced options.

3. With the power on, press and hold for 3 seconds to switch between Cooling and Heating modes (if the current output mode is Automatic and the system is multi-stage).

Slide Bar

1. When the device is powered on, slide the bar left or right
to adjust the temperature. The minimum unit is 0.5°F.

2. Slide left or right to adjust the parameter (see Advanced Options Settings below).

1.5.2 Programming mode setting

Device is powered on, programming can be done on the client side.

ModeTime periodDefault timeDefault temp
Coolingworking day06:0077℉
08:0066℉
11:3077℉
12:3066℉
17:0077℉
22:0066℉
Rest Day08:0077℉
23:0066℉
Heatingworking day06:0072℉
08:0061℉
11:3072℉
12:3061℉
17:0072℉
22:0061℉
Rest Day08:0072℉
23:0061℉

1.5.3 Advanced Options Settings

In the off state, press and hold the mode button for 3 seconds to enter the advanced option settings, press the mode button to switch the advanced option parameters, slide the slider left and right to set the parameters, and press the power button to save and exit .

Parameter itemParameter Name (Factory Default)Select by sliding left and right on the sliderUnitFunctional meaning
1System (0)0 ~ 4/

0: Single cooling;  1: Single heating; 

2. One cooling and one heating;   

3: One cooling and two heating;             

4: Two cooling and two heating

2Output Mode (0)0 ~ 3/0: Cooling; 1: Heating; 2: Automatic; 3: AUX mode
3Startup Mode (0)0 ~ 1/

0: Slow speed -- When the temperature difference is>=3 ℉, start heating/cooling;

1: Quick -- When the temperature difference is>=1 ℉, start heating/cooling

1.6 Dimension

1757923076221-914.png

1.7 Pin Mapping

1757918328032-666.png

TerminalFunction
24+ / 24 -24-volt AC power supply from the HVAC system’s transformer. 24+ is the hot side, 24- is the common/neutral side.
RC (Red Cooling). Power (24VAC) for cooling systems.
C(Common).  The return path for the 24VAC power (often called “common wire” or “C-wire”).
Y1First-stage cooling output.
Y2Second-stage cooling output.
GControls the fan relay (blower fan)
S(Sensor) , External temperature or sensor input (varies by manufacturer).
RH(Red Heating): Power (24VAC) for heating systems.
O/BHeat pump reversing valve control.
W1First-stage heating output.
W2Second-stage heating output.

1.8 Wiring

1.8.1 Traditional single-stage and multi-level systems

1757928529801-820.png

1.8.2 Heat pump+auxiliary heating system

1757928568574-414.png

1.8.3 Boiler+air conditioning system

1757928597486-735.png

1.9 Installation

1758005159365-697.png

2. Configure Thermostat1 to connect to LoRaWAN network

2.1 How it works

The Thermostat1 is configured as LoRaWAN OTAA Class C mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the Thermostat1. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 1 hour.

2.2 ​Quick guide to connect to LoRaWAN server (OTAA)

Following is an example for how to join the TTN v3 LoRaWAN Network. Below is the network structure; we use the LPS8v2  as a LoRaWAN gateway in this example. 

The LPS8v2 is already set to connected to TTN network , so what we need to now is configure the TTN server.

1757984690102-526.png

Step 1: Create a device in TTN with the OTAA keys from Thermostat1.

Each Thermostat1 is shipped with a sticker with the default device EUI as below:

图片-20230426084152-1.png

You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:

Create the application.

  • On the home screen, click the + Add application button.

1754298671647-982.png

1754298685721-106.png

Add devices to the created Application

  • After creating the application, you will be redirected to the Application overview page.
  • On the Application overview page, click the + Register end device button.

1754298708270-733.png

1754298719336-394.png

Enter end device specifics manually

We use Over The Air Activation (OTAA) to activate Thermostat1 with The Things Stack. OTAA is the most secure way of activating an end device with a LoRaWAN network server.

  • On the Register end device page, select the ‘Enter end device specifics manually’ option under the input method.
  • Select the correct Frequency plan and LoRaWAN versionThe Regional parameters version will appear automatically based on the LoRaWAN version

The Frequency plan should match the  frequency of the Thermostat1.

Using the registration information sheet that comes with the Thermostat1,

  • Fill the JoinEUI. The Thermostat1 uses AppEUI instead of JoinEUI. You can enter it in the JoinEUI text box. Then click the Confirm button.

1754298737089-161.png

Add DevEUI and AppKey

  • Enter the DevEUI and AppKey.
  • Enter an End device ID that can be used to identify your Thermostat1 within this application.

Click the Register end device button.

1754298751553-229.png

Step 2: Add decoder

LoRaWAN uplink and downlink payloads are encoded. To understand the data, you need a small script to decode them. We use a JavaScript function for this. It is called a payload formatter. It reads the payload and extracts useful information, such as relay status, event type, and timestamp. We have written a JavaScript function to decode uplinks from the Thermostat1 device.

To add an uplink payload formatter code to The Things Stack, follow the steps below:

1754298862776-783.png

You can now test the formatter code with a sample payload.

  • Enter 68 90 7A 1F 01 C1 23 09 25 0F 1A 64 50 D7 00 D1 00 D7 D1 00 D7 00 D1 00 in the Byte payload box. 
  • Change the FPort to 2 (because our payload formatter only accepts uplinks from FPort 2).
  • Click the Test decoder button.

The payload will be decoded into the following JSON object and shown in the Decoded test payload box.

To save the payload formatter, click the Save changes button.

1754299076396-787.png

After applying the uplink payload formatter, you can see that all uplink payloads shown in the Live Data section are decoded into fields.

Step 3: Activate the Thermostat1

Press the ACT button for 3 seconds to activate the Thermostat1.
After a successful join, it will start uploading messages to The Things Stack, and you can see them in the Live data panel.

2.3 ​Uplink Payload

2.3.1 Device Status, FPORT=5

Users can use the downlink command(0x26 01) to ask Thermostat1 to send device configure detail, include device configure status. Thermostat1 will uplink a payload via FPort=5 to server.

The Payload format is as below.

Device Status (FPORT=5)
Size (bytes)1211
ValueSensor ModelFirmware VersionFrequency BandSub-band

Example parse in TTNv3

image-20250507171948-10.png

Sensor Model: For Thermostat1, this value is 0x46

Firmware Version: 0x0110, Means: v1.1.0 version

Frequency Band:

0x01: EU868

0x02: US915

0x03: IN865

0x04: AU915

0x05: KZ865

0x06: RU864

0x07: AS923

0x08: AS923-1

0x09: AS923-2

0x0a: AS923-3

0x0b: CN470

0x0c: EU433

0x0d: KR920

0x0e: MA869

Sub-Band:

AU915 and US915:value 0x00 ~ 0x08

CN470: value 0x0B ~ 0x0C

Other Bands: Always 0x00

2.3.2  Sensor Data. FPORT=2

Sensor Data is uplink via FPORT=2

Size(bytes)

4111
Value

Unix TimeStamp

EventTypePlugstatusRelaystatus

image-20250427155703-5.png

Unit timestamp

Unit TimeStamp Example: 680DE31F(H) = 1745740575(D)

Put the decimal value into this link(https://www.epochconverter.com))to get the time.

Plugstatus

Example:

If payload is: 01H: Electrical INSERT

If payload is: 00H: Electrical PULL_OUT

Event

Example:

If payload is: 01H:  PLUG_INSERT_EVENT

If payload is: 02H : PLUG_PULL_EVNET

If payload is: 03H :HEARTBEAT_EVNET

If payload is: 04H :RELAY_ACK_EVENT

Relaystatus

Example:

If payload is: 01H:  Relay open

If payload is: 00H : Relay closed

2.4 Payload Decoder file

In TTN, use can add a custom payload so it shows friendly reading

In the page Applications --> Payload Formats --> Custom --> decoder to add the decoder from: https://github.com/dragino/dragino-end-node-decoder/tree/main/

2.5 Datalog Feature

Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, Thermostat1  will store the reading for future retrieving purposes.

2.5.1 Ways to get datalog via LoRaWAN

With the platform downlink 07 01, turn on the device to send None-ACK message function automatically, Thermostat1  will wait for every upstream ACK, when there is no LoRaWAN network, Thermostat1 will mark these records as non ack message and store the sensor data, and wait for the network to be restored (10s interval) to send all the messages.

  • a) Thermostat1  will do an ACK check for data records sending to make sure every data arrive server.

  • b) When automatic sending of None-ACK messages is enabled, the Thermostat1  will send data in CONFIRMED mode, but if an ACK is not received, the Thermostat1  will not resend the packet, it will only mark it as a NONE-ACK message. On subsequent uplinks, if the Thermostat1  receives an ACK, the Thermostat1  will consider the network connected and resend all NONE-ACK messages.

2.5.2 Unix TimeStamp

Thermostat1 uses Unix TimeStamp format based on

image-20250328173339-5.jpeg

User can get this time from link:  https://www.epochconverter.com/ :

Below is the converter example

image-20250328173355-6.jpeg

So, we can use downlink 3060137afd00 to set the current time 2021 – Jan -- 29 Friday 03:03:25

2.5.3 Set Device Time

Users need to run downlink command 28 01 to enable the synchronization time.

Once Thermostat1  Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to Thermostat1 . If Thermostat1  fails to get the time from the server, Thermostat1  will use the internal time and wait for next time request (The default time is once every 10 days.).

Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if when the automatic time synchronization function is turned on.

Downlink Command: 0x28

  • Example: 0x28 01        // Automatic time synchronization Enabled
  • Exampie: 0x28 00       //  Automatic time synchronization Disable.

2.5.4 Datalog Uplink payload (FPORT=3)

The Datalog uplinks will use below payload format.

Retrieval data payload:

Size(bytes)

41111
Value

 Unix Time Stamp

EventPlugstatusRelaystatusDatalogReply

No ACK Message:  1: This message means this payload is fromn Uplink Message which doesn't get ACK from the server before ( for Automatically send None-ACK feature)

DatalogReply: 1: This message is a poll message reply.

  • Poll Message Flag is set to 1.
  • Each data entry is 8 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.

For example, in US915 band, the max payload for different DR is:

a) DR0: max is 11 bytes so one entry of data

b) DR1: max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)

c) DR2: total payload includes 11 entries of data

d) DR3: total payload includes 22 entries of data.

If devise doesn't have any data in the polling time. Device will uplink 8 bytes of 0    

Example:

If user sends below downlink command:  31681D4580681D6FB005

Where : Start time: 681D4580 = time 25/5/9 08:00:00

             Stop time: 681D6FB0 = time 25/5/9 11:00:00

Thermostat1  will uplink this payload.

image-20250509112830-1.png

68 1D 5C 51 04 00 00 40 68 1D 6A 61 03 00 00 40

Where the first 8 bytes is for the first entry:

68 1D 5C 51 04 00 00 40

Unix time is 0x68 1D 5C 51=1746754641s=25/5/9 09:37:00

Event=0x04 = RELAY_ACK_EVENT

Plugstatus=0x00 = PULL_OUT

Relaystatus = 0x00 = Relay closed

DatalogReply = 0x40 = Represents the current data as polled data

 

数据 URI 图片数据 URI 图片数据 URI 图片数据 URI 图片

2.6 Frequency Plans

The Thermostat1  uses OTAA mode and below frequency plans by default. Each frequency band use different firmware, user update the firmware to the corresponding band for their country.

http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/

2.7 Use Remote Temperature Sensor

3. Configure Thermostat1

3.1 Configure Methods

Thermostat1  supports below configure method:

3.2 General Commands

These commands are to configure:

  • General system settings like: uplink interval.
  • LoRaWAN protocol & radio related command.

They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:

http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/

3.3 Commands special design for Thermostat1

These commands only valid for Thermostat1 , as below:

3.3.1 Set Transmit Interval Time

AT Command:

There is no AT command to set TDC time.

Feature: Change LoRaWAN End Node Transmit Interval.

Downlink Command: 0x01

Format: Command Code (0x01) followed by 3 bytes time value.

If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.

  • Example 1: Downlink Payload: 0100001E       //  Set Transmit Interval (TDC) = 30 seconds
  • Example 2: Downlink Payload: 0100003C       //  Set Transmit Interval (TDC) = 60 seconds

3.3.2 Get Device Status

Send a LoRaWAN downlink to ask device send Alarm settings.

Downlink Payload:  0x26 01

Sensor will upload Device Status via FPORT=5. See payload section for detail.

3.3.3 Clear Flash Record

AT Command:

No AT command to control relay enable or disable

Feature: Clear flash storage for data log feature.

Downlink Command: 0x08

  • Example: 0x0801        // Clear all saved data in flash.

3.3.4 Relay enable or disable

AT Command:

There is no AT Command to control the Relay Output

Feature: Controls the turning on and off of appliances plugged into the socket

Downlink Command: 0x06

  • Example: 0x06 01        // Relay Enabled.
  • Exampie: 0x06 00       //  Relay Disable.

3.3.5 Relay -- Control Relay Output time

Feature: Controls the relay output time.

AT Command:

There is no AT Command to control the Relay Output

Downlink Payload (prefix 0x09):

0x09 aa bb cc dd ee ff      // Sets relays with time control

This controls the relay output time and includes 4 bytes:

First byte : Type code (0x09)

Second byte (aa): Inverter Mode

01: Relays will change back to their original state after a timeout.

00: Relays will change to the inverter state after a timeout.

Third byte (bb): Control Method and Ports status:

image-20250509161958-1.png

Fourth/Fifth/Sixth/Seventh bytes (cc dd ee ff): Latching time. (Min:6 seconds ,Unit: seconds)

The device will uplink a packet if the downlink code executes successfully.

Example payload:

1. 09 01 01 00 00 00 06

Relay will be set to NC, lasting 6 seconds, then revert to their original state

2. 09 01 00 00 00 00 06

Relay will change to NC, lasting 6 seconds, and then will will change to NO.

3. 09 00 01 00 00 00 06

Relay1 will change to NO, lasting 6 seconds, and then Relay will change to NC.

4. 09 01 01 00 00 00 06

Relay will change to NO, lasting 6 seconds, and then will revert to their original state.

3.3.6 Confirmed Mode

AT Command:

There is no AT command to control whether Confirmed mode is enabled or disabled.

Feature: Mode for sending data for which acknowledgment was not received

Downlink Command: 0x06

  • Example: 0x07 01        // Confirmed Mode enabled.
  • Exampie: 0x07 00       //  Confirmed Mode Disable.

3.3.7 Set the time synchronization interval

Feature: Set how often to perform time synchronization.(default is 10 days, Unit: days)

Downlink Command: 0x28

  • Example: 0x28 01        // Synchronize once a day
  • Exampie: 0x28 03       //  Synchronize once every three days

4. OTA Firmware update

User can change firmware Thermostat1  to:

  • Change Frequency band/ region.
  • Update with new features.
  • Fix bugs. 

Firmware and changelog can be downloaded from : Firmware download link

Methods to Update Firmware:

5. FAQ

6. Order Info

  • Thermostat1: LoRaWAN Thermostat
  • LHT52-TH: Remote Temperature Sensor for Thermostat1

7. ​Packing Info

Package Includes:

  • Thermostat1: LoRaWAN Thermostat
  • LHT52-TH: Remote Temperature Sensor for Thermostat1

Dimension and weight:

  • Device Size: cm
  • Device Weight: g
  • Package Size / pcs : cm
  • Weight / pcs : g

8. Support

  • Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule.
  • Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to Support@dragino.cc.