Skip to content

Latest commit

 

History

History
2403 lines (1870 loc) · 64 KB

ta652fc-w-mqtt-api.rst

File metadata and controls

2403 lines (1870 loc) · 64 KB

TA652FC-W MQTT API

Tip

  • This section applies to both TA652FC-W and TA652FH-W.
  • Unless otherwise specified, all specifications applicable to TA652FC-W are also applicable to TA652FH-W.

Overview

TA652FC-W & TA652FH-W MQTT API is an implementation of /thingsboard/thingsboard-mqtt-device-api (MQTT is a lightweight publish/subscribe messaging protocol).

node "nThingsBoard Servern" as TBSrv { }

node "nDevicen" as TBDev { }

node "nServer-side Applicationn" as TBApp { }

TBSrv <-down-> TBDev : <color:#FF0000> TA652FC-W / TA652FH-W MQTT API </color> TBSrv <-down-> TBApp : REST API, Websocket API

Features

  • MQTT protocol:
    • Support MQTT over TCP
    • NOT support MQTT over SSL with mbedtls, MQTT over Websocket, MQTT over Websocket Secure
  • Base on /thingsboard/thingsboard-mqtt-device-api:
    • Support telemetry upload API
    • Support client-side & shared attributes, and attributes API:
      • Request attribute values from the server
      • Publish attribute update to the server
      • Subscribe to attribute updates from the server
    • Support PRC API:
      • Server-side RPC: one-way and two-way
      • Client-side RPC: one-way and two-way
    • Support Claiming devices API
    • Support Firmware API
    • NOT support Device provisioning API

MQTT Special

  • Currently support mqtt schemes
  • Currently NOT support mqtts, ws, wss schemes
  • MQTT over TCP samples:
    • mqtt://mqtt.eclipse.org : MQTT over TCP, default port 1883:
    • mqtt://mqtt.eclipse.org:1884 : MQTT over TCP, port 1884:

Flow Chart

Tip

The range of values for message fields is referred to in the following sections, see Telemetry (Time-series data), Shared attributes, Client-side attributes and Server-side RPC.

TELE.01 Time-series Data Upload

Chart:

caption Time-series Data Upload

participant "TA652FC-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

[-> TBDev: Timer(telemetry, period: uploadFreq) TBDev -> TBSrv: Telemetry upload (MQTT, PUBLISH) nTopic: v1/devices/me/telemetry nPayload: {"roomTemp":26.2,"changeOverTemp":26.3}

[-> TBDev: (telemetry, If temprature change n exceeds uploadThreshold, n upload immediately) TBDev -> TBSrv: Telemetry upload (MQTT, PUBLISH) nTopic: v1/devices/me/telemetry nPayload: {"roomTemp":26.2,"changeOverTemp":26.3}

caption Time-series Data Upload

participant "TA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

[-> TBDev: Timer(telemetry, period: uploadFreq) TBDev -> TBSrv: Telemetry upload (MQTT, PUBLISH) nTopic: v1/devices/me/telemetry nPayload: {"roomTemp":26.2,"floorTemp":26.3}

[-> TBDev: (telemetry, If temprature change n exceeds uploadThreshold, n upload immediately) TBDev -> TBSrv: Telemetry upload (MQTT, PUBLISH) nTopic: v1/devices/me/telemetry nPayload: {"roomTemp":26.2,"floorTemp":26.3}

Message:
// Message Type:  Telemetry upload (MQTT, PUBLISH) 
// Topic:         v1/devices/me/telemetry
// Payload - TA652FC-W:
{"roomTemp":26.2,"changeOverTemp":26.3}
// Payload - TA652FH-W:
{"roomTemp":26.2,"floorTemp":26.3}

See roomTemp, changeOverTemp (only for TA652FC-W), floorTemp (only for TA652FH-W).

See uploadFreq.

See uploadThreshold.

CTRL.01 Control Mode

Chart:

caption Control Mode

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

== local operate == [-> TBDev TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"controlMode":"On"}

== remote operate == TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteSetControlMode","params":"Off"} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"controlMode":"Off"}

Message 1:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"controlMode":"On"}
Message 2:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteSetControlMode","params":"Off"}

See controlMode and remoteSetControlMode.

CTRL.02 Fan Mode & Fan Status (only for TA652FC-W)

Chart:

caption Fan Mode & Fan Status

participant "TA652FC-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

== local operate == [-> TBDev TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"fanMode":"Auto"} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"fanStatus":"Low"}

== remote operate == TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteSetFanMode","params":"Med"} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"fanMode":"Med"} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"fanStatus":"Med"}

Message 1:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FC-W:
{"fanMode":"Auto"}
Message 2:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FC-W:
{"fanStatus":"Low"}
Message 3:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload - TA652FC-W:
{"method":"remoteSetFanMode","params":"Med"}

See fanMode (only for TA652FC-W), fanStatus (only for TA652FC-W) and remoteSetFanMode (only for TA652FC-W).

CTRL.03 Set Point & Override Status

Chart:

caption Setpoint & Override Status

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

== local adjust setpoint == [-> TBDev TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"spValue":27.5} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"overrideStatus":false}

== remote adjust setpoint == TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteSetSpValue","params":34} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"spValue":34} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"overrideStatus":true}

== remote adjust to progrm setpoint == TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteSetOverrideStatus","params":{}} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"overrideStatus":false} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"spValue":25.5}

Message 1:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"spValue":27.5}
Message 2:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"overrideStatus":false}
Message 3:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteSetSpValue","params":34}
Example 4:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteSetOverrideStatus","params":{}}

See spValue, overrideStatus, remoteSetSpValue and remoteSetOverrideStatus .

PRG.01 Program Mode & Program Status

Chart:

caption Program Mode & Program Status

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

== local operate == [-> TBDev TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgMode":"Every-day"} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgNextEnable":true} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgNextSetpoint":24.5} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgNextDaysTime":"Wed, 06:00 PM"}

== remote operate == TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteSetPrgMode","params":"Sun_mon-fri_sat"} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgMode":"Sun_mon-fri_sat"} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgNextEnable":true} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgNextSetpoint":25.5} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgNextDaysTime":"Mon, 10:00 PM"}

Message 1:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"prgMode":"Every-day"}
Message 2:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"prgNextEnable":true}
Message 3:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"prgNextSetpoint":24.5}
Message 4:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"prgNextDaysTime":"Wed, 06:00 PM"}
Message 5:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteSetPrgMode","params":"Sun_mon-fri_sat"}

See prgMode, prgNextEnable, prgNextSetpoint, prgNextDaysTime and remoteSetPrgMode.

PRG.02 Program Setpoint & Time

Chart:

caption Program Setpoint & Time

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

== local operate == [-> TBDev TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgSpTime00":"10:00"} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgSpValue00":27.5}

== remote operate == TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteSetPrgSpTime27","params":"23:00"} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgSpTime27":"23:00"} TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteSetPrgSpValue14","params":21.5} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"prgSpValue14":21.5}

note over TBDev, TBSrv prgSpTime00 ~ prgSpTime27 prgSpValue00 ~ prgSpValue27 remoteSetPrgSpTime00 ~ remoteSetPrgSpTime27 remoteSetPrgSpValue00 ~ remoteSetPrgSpValue27 end note

Message 1:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"prgSpTime00":"10:00"}
Message 2:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"prgSpValue00":27.5}
Message 3:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteSetPrgSpTime27","params":"23:00"}
Message 4:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteSetPrgSpValue14","params":21.5}

See prgSpTimeXX, prgSpValueXX, remoteSetPrgSpTimeXX and remoteSetPrgSpValueXX.

SET.01 Upload Device Attributes when the device is started

Chart:

caption Upload Device Attributes when the device is started

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

[-> TBDev : power on

== Upload Device Fixed attributes == TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"model":"TA652FC-W-TB","mac":"24:0A:C4:2C:EB:C8",n"wifiFWVersion":"1.5.4.0","mcuFWVersion":"1.4.4.1",n"wifiRSSIMin":0,"wifiRssiMax":255,"wifiRssiResolution":1,n"uploadFreqMin":2,"uploadFreqMax":2592000,"uploadFreqStep":1,n"syncTimeFreqMin":1800,"syncTimeFreqMax":2592000,"syncTimeFreqStep":1}

note over TBDev, TBSrv send these attributes only once when the device is started end note

== Upload temperature unit related attributes == TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"currentTempUnit":"°C",n"envirTempMin":0,"envirTempMax":50,"envirTempStep":0.1,n"spValueMin":5,"spValueMax":40,"spValueStep":0.5,n"internalOffsetMin":-5,"internalOffsetMax":5,"internalOffsetStep":0.5,n"uploadThresholdMin":0.2,"uploadThresholdMax":5,"uploadThresholdStep":0.1} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"floorTempLimitedMin":20,"floorTempLimitedMax":40,"floorTempLimitedStep":0.5,n"switchingDiffHeatingMin":1,"switchingDiffHeatingMax":4,"switchingDiffHeatingStep":0.5,n"switchingDiffCoolingMin":1,"switchingDiffCoolingMax":4,"switchingDiffCoolingStep":0.5,n"changeOverTempHeatingMin":27,"changeOverTempHeatingMax":40,"changeOverTempHeatingStep":0.5,n"changeOverTempCoolingMin":10,"changeOverTempCoolingMax":25,"changeOverTempCoolingStep":0.5}

note over TBDev, TBSrv send these attributes only once when the device is started end note

Message 1:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"model":"TA652FC-W-TB","mac":"24:0A:C4:2C:EB:C8",
"wifiFWVersion":"1.5.4.0","mcuFWVersion":"1.4.4.1",
"wifiRSSIMin":0,"wifiRssiMax":255,"wifiRssiStep":1,
"uploadFreqMin":2,"uploadFreqMax":2592000,"uploadFreqStep":1,
"syncTimeFreqMin":1800,"syncTimeFreqMax":2592000,"syncTimeFreqStep":1}
Message 2:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"currentTempUnit":"°C",
"envirTempMin":0,"envirTempMax":50,"envirTempStep":0.1,
"spValueMin":5,"spValueMax":40,"spValueStep":0.5,
"internalOffsetMin":-5,"internalOffsetMax":5,"internalOffsetStep":0.5,
"uploadThresholdMin":0.2,"uploadThresholdMax":5,"uploadThresholdStep":0.1}
Message 3 - TA652FC-W:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FC-W:
{"switchingDiffHeatingMin":1,"switchingDiffHeatingMax":4,"switchingDiffHeatingStep":0.5,
"switchingDiffCoolingMin":1,"switchingDiffCoolingMax":4,"switchingDiffCoolingStep":0.5,
"changeOverTempHeatingMin":27,"changeOverTempHeatingMax":40,"changeOverTempHeatingStep":0.5,
"changeOverTempCoolingMin":10,"changeOverTempCoolingMax":25,"changeOverTempCoolingStep":0.5}
Message 3 - TA652FH-W:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FH-W:
{"floorTempLimitedMin":20,"floorTempLimitedMax":40,"floorTempLimitedStep":0.5,
"switchingDiffHeatingMin":1,"switchingDiffHeatingMax":4,"switchingDiffHeatingStep":0.5,
"switchingDiffCoolingMin":1,"switchingDiffCoolingMax":4,"switchingDiffCoolingStep":0.5}

See model, mac, wifiFWVersion, mcuFWVersion, wifiRSSIMin, wifiRssiMax, wifiRssiStep, uploadFreqMin, uploadFreqMax, uploadFreqStep, syncTimeFreqMin, syncTimeFreqMax and syncTimeFreqStep.

See currentTempUnit, envirTempMin, envirTempMax, envirTempStep, spValueMin, spValueMax, spValueStep, internalOffsetMin, internalOffsetMax and internalOffsetStep, uploadThresholdMin, uploadThresholdMax and uploadThresholdStep.

See floorTempLimitedMin (only for TA652FH-W), floorTempLimitedMax (only for TA652FH-W), floorTempLimitedStep (only for TA652FH-W), switchingDiffHeatingMin, switchingDiffHeatingMax, switchingDiffHeatingStep, switchingDiffCoolingMin, switchingDiffCoolingMax, switchingDiffCoolingStep, changeOverTempHeatingMin (only for TA652FC-W), changeOverTempHeatingMax (only for TA652FC-W), changeOverTempHeatingStep (only for TA652FC-W), changeOverTempCoolingMin (only for TA652FC-W), changeOverTempCoolingMax (only for TA652FC-W) and changeOverTempCoolingStep (only for TA652FC-W).

SET.02 Settings

Chart:

caption Settings

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

== local operate temperature unit == [-> TBDev TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes n{"tempUnit":"°C}

note over TBDev take effect after it reboots end note

== remote operate temperature unit == TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteSetTempUnit","params":"°F"} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"tempUnit":"°F"}

note over TBDev take effect after it reboots end note

== local operate time format == [-> TBDev TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes n{"timeFormat":"12hours"}

== remote operate time format == TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteSetTimeFormat","params":"24hours"} TBDev -> TBSrv: publish client-side attributes update to the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"timeFormat":"24hours"}

note over TBDev, TBSrv internalOffset, remoteSetInternalOffset switchingDiffHeating, remoteSetSwitchingDiffHeating switchingDiffCooling, remoteSetSwitchingDiffCooling

systemMode, remoteSetSystemMode (only for TA652FH-W) sensorMode, remoteSetSensorMode (only for TA652FH-W) floorTempLimited, remoteSetFloorTempLimited (only for TA652FH-W) adaptiveControl, remoteSetAdaptiveControl (only for TA652FH-W)

forceVent, remoteSetForceVent (only for TA652FC-W) changeOverMode, remoteSetChangeOverMode (only for TA652FC-W) changeOverTempHeating, remoteSetChangeOverTempHeating (only for TA652FC-W) changeOverTempCooling, remoteSetChangeOverTempCooling (only for TA652FC-W) end note

Message 1a:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"tempUnit":"°C"}
Message 1b:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteSetTempUnit","params":"°F"}
Message 2a:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"timeFormat":"12hours"}
Message 2b:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteSetTimeFormat","params":"24hours"}
Message 3a:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"method":"remoteSetInternalOffset","params":-3.5}
Message 3b:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"internalOffset":-3.5}
Message 4a:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"switchingDiffHeating":3.5}
Message 4b:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteSetSwitchingDiffHeating","params":3.5}
Message 5a:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"switchingDiffCooling":2.5}
Message 5b:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteSetSwitchingDiffCooling","params":2.5}
Message 6a - TA652FH-W:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FH-W:
{"systemMode":"Cool"}
Message 6b - TA652FH-W:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload - TA652FH-W:
{"method":"remoteSetSystemMode","params":"Heat"}
Message 7a - TA652FH-W:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FH-W:
{"sensorMode":"Internal"}
Message 7b - TA652FH-W:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload - TA652FH-W:
{"method":"remoteSetSensorMode","params":"External"}
Message 8a - TA652FH-W:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FH-W:
{"floorTempLimited":29.5}
Message 8b - TA652FH-W:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload - TA652FH-W: 
{"method":"remoteSetFloorTempLimited","params":29.5}
Message 9a - TA652FH-W:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FH-W:
{"adaptiveControl":false}
Message 9b - TA652FH-W:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload - TA652FH-W:
{"method":"remoteSetAdaptiveControl","params":true}
Message 10a - TA652FC-W:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FC-W:
{"forceVent":true}
Message 10b - TA652FC-W:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload - TA652FC-W:
{"method":"remoteSetForceVent","params":false}
Message 11a - TA652FC-W:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FC-W:
{"changeOverMode":"Heat"}
Message 11b - TA652FC-W:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload - TA652FC-W:
{"method":"remoteSetChangeOverMode","params":"Auto"}
Message 12a - TA652FC-W:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FC-W:
{"changeOverTempHeating":27}
Message 12b - TA652FC-W:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload - TA652FC-W:
{"method":"remoteSetChangeOverTempHeating","params":27}
Message 13a - TA652FC-W:
// Message Type:  publish client-side attributes update to the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload - TA652FC-W:
{"changeOverTempCooling":11.5}
Message 13b - TA652FC-W:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload - TA652FC-W:
{"method":"remoteSetChangeOverTempCooling","params":10}

See tempUnit and remoteSetTempUnit, timeFormat and remoteSetTimeFormat, internalOffset and remoteSetInternalOffset, switchingDiffHeating and remoteSetSwitchingDiffHeating, switchingDiffCooling and remoteSetSwitchingDiffCooling.

See systemMode and remoteSetSystemMode, sensorMode and remoteSetSensorMode, floorTempLimited and remoteSetFloorTempLimited, adaptiveControl and remoteSetAdaptiveControl.(only for TA652FH-W)

See forceVent and remoteSetForceVent, changeOverMode and remoteSetChangeOverMode, changeOverTempHeating and remoteSetChangeOverTempHeating, changeOverTempCooling and remoteSetChangeOverTempCooling.(only for TA652FC-W)

ADM.01 Request all remote parameters when the device is started

Chart:

caption Request all remote parameters when the device is started

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

TBDev -> TBSrv: request attribute values from the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes/request/$request_id nPayload: {"sharedKeys":"uploadFreq,uploadThreshold,nsyncTimeFreq,timezone,timeNTPServer"}

TBDev <-- TBSrv: receive response (MQTT, PUBLISH) nTopic: v1/devices/me/attributes/response/$request_id nPayload: {"shared":{"uploadFreq":300,"uploadThreshold":1.5,n"syncTimeFreq":86400,timezone":480,n"timeNTPServer":"pool.ntp.org"}}

Message 1:
// Message Type:  request attribute values from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes/request/$request_id
// Payload: 
{"sharedKeys":"uploadFreq,uploadThreshold,syncTimeFreq,timezone,timeNTPServer"}
Message 2:
// Message Type:  receive response (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes/response/$request_id
// Payload: 
{"shared":{"uploadFreq":300,"uploadThreshold":1.5,"syncTimeFreq":86400,
"timezone":480,"timeNTPServer":"pool.ntp.org"}}

See uploadFreq, uploadThreshold, syncTimeFreq, timezone and timeNTPServer.

ADM.02 Timer Parameters & upload threshold

Chart:

caption Timer Parameters

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

== Modify Timer Parameters == TBDev <- TBSrv: receive attribute update from the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"uploadFreq":300} TBDev <- TBSrv: receive attribute update from the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"uploadThreshold":1.5} TBDev <- TBSrv: receive attribute update from the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"syncTimeFreq":86400}

Message 1:
// Message Type:  receive attribute update from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload:
{"uploadFreq":300}
Message 2:
// Message Type:  receive attribute update from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload:
{"uploadThreshold":1.5}
Message 3:
// Message Type:  receive attribute update from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"syncTimeFreq":86400}

See uploadFreq, uploadThreshold and syncTimeFreq.

ADM.03 Remote Sync Time

Chart:

caption Remote Sync Time

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20 participant "SNTP Server" as SNTPSrv order 30

== Set Device Timezone, SNTP Server == TBDev <- TBSrv: receive attribute update from the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"timezone":480} TBDev <- TBSrv: receive attribute update from the server (MQTT, PUBLISH) nTopic: v1/devices/me/attributes nPayload: {"timeNTPServer":"pool.ntp.org"} TBDev --> SNTPSrv: (get datetime)

== Remote Sync Time == TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id n{"method":"remoteSyncTimeRequest","params":{}} TBDev -> TBDev: (refresh datetime)

Message 1:
// Message Type:  receive attribute update from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"timezone":480}
Message 2:
// Message Type:  receive attribute update from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/attributes
// Payload: 
{"timeNTPServer":"pool.ntp.org"}
Message 3:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteSyncTimeRequest","params":{}}

See timezone, timeNTPServer and remoteSyncTimeRequest.

ADM.04 FUOTA (firmware update over the air)

The flow is to download the firmware from your HTTP server. For the flow of downloading firmware from ThingsBoard server, please refer to Firmware_API.

Chart:

caption FUOTA (firmware update over the air)

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20 participant "HTTP Server" as HTTPSrv order 30

== Wi-Fi FUOTA == TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteWiFiFUOTA","params":n"http://192.168.1.106/TA652FC-W_WiFi.ino.bin"} TBDev --> TBSrv: send response (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/response/$request_id nPayload: {"method":"remoteWiFiFUOTA","results":{"result":"success"}} TBDev --> HTTPSrv: (get Wi-Fi module firmware) TBDev -> TBDev: reboot

== MCU FUOTA (NOT implemented) == TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteMcuFUOTA","params":n"http://192.168.1.106/TA652FC-W-MCU.bin"} TBDev --> TBSrv: send response (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/response/$request_id nPayload: {"method":"remoteMcuFUOTA","results":{"result":"success"}} TBDev --> HTTPSrv: (get MCU firmware) TBDev -> TBDev: reboot

Message 1a:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteWiFiFUOTA",
"params":"http://192.168.1.106/TA652FC-W_WiFi.ino.bin"}
Message 1b:
// Message Type:  send response (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/response/$request_id
// Payload: 
{"method":"remoteWiFiFUOTA","results":{"result":"success"}}
Message 2a (NOT implemented):
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
 {"method":"remoteMcuFUOTA",
 "params":"http://192.168.1.106/TA652FC-W_MCU.bin"}
Message 2b (NOT implemented):
// Message Type:  send response (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/response/$request_id
// Payload: 
{"method":"remoteMcuFUOTA","results":{"result":"success"}}

See remoteWiFiFUOTA and remoteMcuFUOTA.

ADM.05 Remote Get Memeory Usage

Chart:

caption Remote Get Memeory Usage

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteGetMemoryUsage"} TBDev --> TBSrv: send response (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/response/$request_id nPayload: {"iram":162592,"spiram":4194252}

Message 1a:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteGetMemoryUsage"}
Message 1b:
// Message Type:  send response (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/response/$request_id
// Payload: 

{"iram":162592,"spiram":4194252}

See remoteGetMemoryUsage.

ADM.06 Remote Reboot Device

Chart:

caption Remote Reboot Device

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteRebootDevice","params":{}} TBDev -> TBDev: (reboot)

Message 1:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteRebootDevice","params":{}}

See remoteRebootDevice.

ADM.07 Remote Clear Wi-Fi Config

Chart:

caption Remote Clear Wi-Fi Config

participant "TA652FC-WnTA652FH-W" as TBDev order 10 participant "ThingsBoard Server" as TBSrv order 20

TBDev <- TBSrv: receive server-side RPC request from the server (MQTT, PUBLISH) nTopic: v1/devices/me/rpc/request/$request_id nPayload: {"method":"remoteClearWiFiConfig","params":{}} TBDev -> TBDev: (clear Wi-Fi config) TBDev -> TBDev: (reboot)

Message 1:
// Message Type:  receive server-side RPC request from the server (MQTT, PUBLISH)
// Topic:         v1/devices/me/rpc/request/$request_id
// Payload: 
{"method":"remoteClearWiFiConfig","params":{}}

See remoteClearWiFiConfig.

Claiming

Refer to Claiming_API.

Firmware update with ThingsBoard Server

Refer to Firmware_API.

Telemetry (Time-series data)

Tip

* All of these telemetry (timeseries data) is uploaded every uploadFreq seconds. * If these telemetry (timeseries data) change exceeds uploadThreshold, upload immediately.

roomTemp

changeOverTemp

floorTemp

wifiRssi

Telemetry (Time-series data)
Time-series Type Unit Min Max Step/Precision Value TA652 FC-W TA652 FH-W Memo
roomTemp float currentTempUnit envirTempMin envirTempMax envirTempStep Room temperature
changeOverTemp float currentTempUnit envirTempMin envirTempMax envirTempStep Change Over Temperatue
floorTemp float currentTempUnit envirTempMin envirTempMax envirTempStep Floor Temperatue
wifiRssi (deprecated)* int wifiRssiMin wifiRssiMax wifiRssiStep Received Signal Strength Indicator

Tip

In order to reduce the load on ThingsBoard server, wifiRssi is no longer sent.

Shared attributes

Tip

All of these shared attributes may be obtained from your ThingsBoard server.

uploadFreq

uploadThreshold

syncTimeFreq

timezone

timeNTPServer

Shared attributes
Shared attribute Type Unit Min Max Step/Precision Value TA652 FC-W TA652 FH-W Memo
uploadFreq int second uploadFreqMin uploadFreqMax uploadFreqStep Default: 300 Time-series (Telemetry) upload Frequency. see add-shared-attributes-of-ta652fc-w-cloudhost.
uploadThreshold double temperature uploadThresholdMin uploadThresholdMax uploadThresholdStep Default: 1.5 Time-series (Telemetry) upload Threshold. see add-shared-attributes-of-ta652fc-w-cloudhost.
syncTimeFreq int second syncTimeFreqMin syncTimeFreqMax syncTimeFreqStep Default: 86400 (24*3600) timer period of sync datetime. see add-shared-attributes-of-ta652fc-w-cloudhost.
timezone int minute Default: 480 (8*60) offset UTC. see add-shared-attributes-of-ta652fc-w-cloudhost.
timeNTPServer string Default: pool.ntp.org (127 char+'0') SNTP server, eg: pool.ntp.org . see add-shared-attributes-of-ta652fc-w-cloudhost.

Client-side attributes

Client-side attribute (static/fixed)

model

mac

wifiFWVersion

mcuFWVersion

Client-side attribute (static/fixed)
Client-side attribute (static/fixed) Type Unit Value TA652 FC-W TA652 FH-W Memo
model string "TA652FC-W-TB", "TA652FH-W-TB" Product Model
mac string eg: "34:02:86:5F:23:A9" Mac Address
wifiFWVersion string eg: "1.5.5" WiFi Module F/W version
mcuFWVersion string eg: "1.5.4" Main MCU F/W version

Client-side attribute (static/fixed, metadata)

wifiRssiMin

wifiRssiMax

wifiRssiStep

uploadFreqMin

uploadFreqMax

uploadFreqStep

syncTimeFreqMin

syncTimeFreqMax

syncTimeFreqStep

Client-side attribute (static/fixed, metadata)
Client-side attribute (static/fixed, metadata) Type Unit Value TA652 FC-W TA652 FH-W Memo
wifiRssiMin int 0 the minimum value of wifiRssi
wifiRssiMax int 255 the maximum value of wifiRssi
wifiRssiStep int 1 the step value of wifiRssi
uploadFreqMin int second 2 the minimum value of uploadFreq
uploadFreqMax int second 30*24*3600 (2592000) the maximum value of uploadFreq
uploadFreqStep int second 1 the step value of uploadFreq
syncTimeFreqMin int second 30*60 the minimum value of syncTimeFreq
syncTimeFreqMax int second 30*24*3600 the maximum value of syncTimeFreq
syncTimeFreqStep int second 1 the step value of syncTimeFreq

Client-side attribute (semi-static)

currentTempUnit

tempResolution

envirTempMin

envirTempMax

envirTempStep

spValueMin

spValueMax

spValueStep

internalOffsetMin

internalOffsetMax

internalOffsetStep

uploadThresholdMin

uploadThresholdMax

uploadThresholdStep

floorTempLimitedMin

floorTempLimitedMax

floorTempLimitedStep

switchingDiffHeatingMin

switchingDiffHeatingMax

switchingDiffHeatingStep

switchingDiffCoolingMin

switchingDiffCoolingMax

switchingDiffCoolingStep

changeOverTempHeatingMin

changeOverTempHeatingMax

changeOverTempHeatingStep

changeOverTempCoolingMin

changeOverTempCoolingMax

changeOverTempCoolingStep

Client-side attribute (semi-static)
Client-side attribute (semi-static) Type Unit Value TA652 FC-W TA652 FH-W Memo
currentTempUnit string "°C" / "°F" Centigrade, Fahrenheit
envirTempMin float currentTempUnit 0.0 (°C) / 32 (°F) the minimum value of roomTemp changeOverTemp, floorTemp
envirTempMax float currentTempUnit 50.0 (°C) / 120 (°F) the maximum value of roomTemp changeOverTemp, floorTemp
envirTempStep float currentTempUnit 0.1 (°C) / 0.5 (°F) the step value of roomTemp changeOverTemp, floorTemp
spValueMin float currentTempUnit 5.0 (°C) / 40 (°F) the minimum value of spValue prgSpValueXX
spValueMax float currentTempUnit 40.0 (°C) / 104 (°F) the maximum value of spValue prgSpValueXX
spValueStep float currentTempUnit 0.5 (°C) / 1.0 (°F) the step value of spValue prgSpValueXX
internalOffsetMin float currentTempUnit -5.0 (°C) / -10 (°F) the minimum value of internalOffset
internalOffsetMax float currentTempUnit 5.0 (°C) / 10 (°F) the maximum value of internalOffset
internalOffsetStep float currentTempUnit 0.1 (°C) / 0.5 (°F) the step value of internalOffset
uploadThresholdMin float currentTempUnit 0.2 (°C) / 32 (°F) the minimum value of uploadThreshold
uploadThresholdMax float currentTempUnit 5.0 (°C) / 41 (°F) the maximum value of uploadThreshold
uploadThresholdtep float currentTempUnit 0.1 (°C) / 0.5 (°F) the step value of uploadThreshold
floorTempLimitedMin float currentTempUnit 20.0 (°C) / 68 (°F) the minimum value of floorTempLimited
floorTempLimitedMax float currentTempUnit 5.0 (°C) / 10 (°F) the maximum value of floorTempLimited
floorTempLimitedStep float currentTempUnit 40.0 (°C) / 104 (°F) the step value of floorTempLimited
switchingDiffHeatingMin float currentTempUnit 0.5 (°C) / 1 (°F) the minimum value of switchingDiffHeating
switchingDiffHeatingMax float currentTempUnit 4.0 (°C) / 8 (°F) the maximum value of switchingDiffHeating
switchingDiffHeatingStep float currentTempUnit 0.5 (°C) / 1 (°F) the step value of switchingDiffHeating
switchingDiffCoolingMin float currentTempUnit 0.5 (°C) / 1 (°F) the minimum value of switchingDiffCooling
switchingDiffCoolingMax float currentTempUnit 4.0 (°C) / 8 (°F) the maximum value of switchingDiffCooling
switchingDiffCoolingStep float currentTempUnit 0.5 (°C) / 1 (°F) the step value of switchingDiffCooling
changeOverTempHeatingMin float currentTempUnit 27.0 (°C) / 80 (°F) the minimum value of changeOverTempHeating
changeOverTempHeatingMax float currentTempUnit 40.0 (°C) / 104 (°F) the maximum value of changeOverTempHeating
changeOverTempHeatingStep float currentTempUnit 0.5 (°C) / 1 (°F) the step value of changeOverTempHeating
changeOverTempCoolingMin float currentTempUnit 10.0 (°C) / 50 (°F) the minimum value of changeOverTempCooling
changeOverTempCoolingMax float currentTempUnit 25.0 (°C) / 77 (°F) the maximum value of changeOverTempCooling
changeOverTempCoolingStep float currentTempUnit 0.5 (°C) / 1 (°F) the step value of changeOverTempCooling

Client-side attribute (application state)

fanStatus

overrideStatus

prgNextEnable

prgNextDaysTime

prgNextSetpoint

Client-side attribute (application state)
Client-side attribute (application state) Type Unit Value TA652 FC-W TA652 FH-W Memo
fanStatus string "Off", "Low", "Med", "High"
overrideStatus bool true, false see spValue
prgNextEnable bool true, false Next program enabled
prgNextDaysTime float Next program weekday & time
prgNextSetpoint float currentTempUnit Next program set point

Client-side attribute (change by server-side RPC, settings)

tempUnit

timeFormat

systemMode

sensorMode

internalOffset

floorTempLimited

switchingDiffHeating

switchingDiffCooling

adaptiveControl

forceVent

changeOverMode

changeOverTempHeating

changeOverTempCooling

Client-side attribute (change by server-side RPC, settings)
Client-side attribute Type Unit Min Max Step/ Precision Value TA652 FC-W TA652 FH-W Memo
tempUnit string "°C" / "°F" Centigrade, Fahrenheit, see remoteSetTempUnit
timeFormat string "12hours", "24hours" see remoteSetTimeFormat
systemMode string "Heat", "Cool" see remoteSetSystemMode
sensorMode string "Internal", "External", "Combined" see remoteSetSensorMode
internalOffset float currentTempUnit internalOffsetMin internalOffsetMax internalOffsetStep "Internal", "External", "Combined" Internal Sensor Temperture Offset, see remoteSetInternalOffset
floorTempLimited float currentTempUnit floorTempLimitedMin floorTempLimitedMax floorTempLimitedStep floor temperature limited (combined mode), see remoteSetFloorTempLimited
switchingDiffHeating float currentTempUnit switchingDiffHeatingMin switchingDiffHeatingMax switchingDiffHeatingStep Switching Differential Heating, see remoteSetSwitchingDiffHeating
switchingDiffCooling float currentTempUnit switchingDiffCoolingMin switchingDiffCoolingMax switchingDiffCoolingStep Switching Differential Cooling, see remoteSetSwitchingDiffCooling
adaptiveControl bool true, false see remoteSetAdaptiveControl
forceVent bool true, false Force Ventialation, see remoteSetForceVent
changeOverMode string "Heat", "Cool", "Auto" see remoteSetChangeOverMode
changeOverTempHeating float currentTempUnit changeOverTempHeatingMin changeOverTempHeatingMax changeOverTempHeatingStep Change Over Temp Heating, see remoteSetChangeOverTempHeating
changeOverTempCooling float currentTempUnit changeOverTempCoolingMin changeOverTempCoolingMax changeOverTempCoolingStep Change Over Temp Cooling, see remoteSetChangeOverTempCooling

Client-side attribute (change by server-side RPC, control & program)

controlMode

fanMode

spValue

prgMode

prgSpTimeXX

0 <= XX <= 27, prgSpTime00 ~ prgSpTime27

prgSpValueXX

0 <= XX <= 27, prgSpValue00 ~ prgSpValue27

Client-side attribute (change by server-side RPC, control & program)
Client-side attribute Type Unit Min Max Step/ Precision Value TA652 FC-W TA652 FH-W Memo
controlMode string "Off", "On" see remoteSetControlMode
fanMode string "Auto", "Low", "Med", "High" see remoteSetFanMode
spValue float currentTempUnit spValueMin spValueMax spValueStep see remoteSetSpValue, see overrideStatus
prgMode string "No-program", "One-day", "Sun_mon-fri_sat", "Every-day" see remoteSetPrgMode
prgSpTimeXX string "hh:mm", eg: "23:50" see remoteSetPrgSpTimeXX
prgSpValueXX float currentTempUnit spValueMin spValueMax spValueStep see remoteSetPrgSpValueXX

Server-side RPC

Server-side RPC (remote change client-side attribute)

Tip

* All of these server-side RPC are one-way, no response * Request format of these server-side RPC: {"method":"remoteSetTempUnit", "params":"°F"} * params value see Client-side attribute (change by server-side RPC, settings) & Client-side attribute (change by server-side RPC, control & program)

remoteSetTempUnit

remoteSetTimeFormat

remoteSetSystemMode

remoteSetSensorMode

remoteSetInternalOffset

remoteSetFloorTempLimited

remoteSetSwitchingDiffHeating

remoteSetSwitchingDiffCooling

remoteSetAdaptiveControl

remoteSetForceVent

remoteSetChangeOverMode

remoteSetChangeOverTempHeating

remoteSetChangeOverTempCooling

remoteSetControlMode

remoteSetFanMode

remoteSetSpValue

remoteSetPrgMode

remoteSetPrgSpTimeXX

0 <= XX <= 27, remoteSetPrgSpTime00 ~ remoteSetPrgSpTime27

remoteSetPrgSpValueXX

0 <= XX <= 27, remoteSetPrgSpValue00 ~ remoteSetPrgSpValue27

Server-side RPC (remote change client-side attribute)
Server-side RPC (remote change client-side attribute) params value type params value TA652 FC-W TA652 FH-W Memo
remoteSetTempUnit string "°C" / "°F" tempUnit
remoteSetTimeFormat string "12hours" "24hours" timeFormat
remoteSetSystemMode string "Heat" "Cool" systemMode
remoteSetSensorMode string "Internal" "External" "Combined" sensorMode
remoteSetInternalOffset float internalOffset
remoteSetFloorTempLimited float floorTempLimited
remoteSetSwitchingDiffHeating float switchingDiffHeating
remoteSetSwitchingDiffCooling float switchingDiffCooling
remoteSetAdaptiveControl bool true false adaptiveControl
remoteSetForceVent bool true false forceVent
remoteSetChangeOverMode string "Heat" "Cool" "Auto" changeOverMode
remoteSetChangeOverTempHeating float changeOverTempHeating
remoteSetChangeOverTempCooling float changeOverTempCooling
remoteSetControlMode string "Off" "On" controlMode
remoteSetFanMode string "Auto" "Low" "Med" "High" fanMode
remoteSetSpValue float spValue
remoteSetPrgMode string "No-program" "One-day" "Sun_mon-fri_sat" "Every-day" prgMode
remoteSetPrgSpTimeXX string "hh:mm", eg: "23:50" remoteSetPrgSpTime00 ~ remoteSetPrgSpTime27, see prgSpTimeXX
remoteSetPrgSpValueXX float remoteSetPrgSpValue00 ~ remoteSetPrgSpValue27, see prgSpValueXX

Server-side RPC (remote control)

remoteSetOverrideStatus

remoteSyncTimeRequest

remoteClearWiFiConfig

remoteRebootDevice

remoteWiFiFUOTA

remoteMcuFUOTA

remoteGetMemoryUsage

Server-side RPC (remote control)
Server-side RPC one-way | two-way Request Response TA652 FC-W TA652 FH-W Memo
remoteSetOverrideStatus one-way {"method":"remoteSetOverrideStatus", "params":{}} Assign a prgSpValueXX to spValue, 0 <= XX <= 27
remoteSyncTimeRequest one-way {"method":"remoteSyncTimeRequest", "params":{}}
remoteClearWiFiConfig one-way {"method":"remoteClearWiFiConfig", "params":{}}
remoteRebootDevice one-way {"method":"remoteRebootDevice", "params":{}}
remoteWiFiFUOTA two-way {"method":"remoteWiFiFUOTA", "params":"http://192.168.1.2/x.img"} {"method":"remoteWiFiFUOTA", "results":{"result":"success"}}, or {"method":"remoteWiFiFUOTA", "results":{"result":"failure", "description":"xxx"}}
remoteMcuFUOTA (NOT implemented) two-way {"method":"remoteMcuFUOTA", "params":"http://192.168.1.1/y.img"} {"method":"remoteMcuFUOTA", "results":{"result":"success"}}, or {"method":"remoteMcuFUOTA", "results":{"result":"failure", "description":"xxx"}}
remoteGetMemoryUsage two-way {"method":"remoteGetMemoryUsage", "params":{}} {"method":"remoteGetMemoryUsage", "results":{"iram":123123, "spiram":2345678}}