Skip to main content
Skip to main content
Smart thermostat

YOBIIQ iQ OpenTherm LoRaWAN decoder and payload format

The YOBIIQ iQ OpenTherm is a LoRaWAN smart thermostat that reports temperature, humidity and digital inputs.

Payload format

An uplink from the device as it arrives at the network server, and what the official decoder returns for it. Examples come from the decoder's own test cases.

Example 1 · fPort 1

Payload (hex)

DD 00 AA 03 02 DD 01 AA 28 00 DD 02 AA 00 0D DD 03 AA 11 12 DD 04 00 DD 05 AA 00 00 DD 06 00 DD 09 00 DD FD 65 CC E2 18

Decoded (JSON)

{
  "masterStatus": {
    "centralHeating": "enabled",
    "domesticHotWater": "enabled",
    "cooling": "disabled",
    "outsideTemperatureCompensation": "disabled",
    "centralHeating2": "disabled"
  },
  "slaveStatus": {
    "faultIndication": "no fault",
    "centralHeatingMode": "active",
    "domesticHotWaterMode": "inactive",
    "flame": "inactive",
    "coolingMode": "inactive",
    "centralHeating2Mode": "inactive",
    "diagnosticIndication": "no diagnostics"
  },
  "controlSetpointTemperature": 40,
  "masterMemberIdCode": 13,
  "slaveConfigurationFlags": {
    "domesticHotWaterPresence": "present",
    "controlType": "modulating",
    "coolingConfig": "not supported",
    "domesticHotWaterConfig": "instantaneous or not-specified",
    "pumpControlFunction": "not allowed",
    "centralHeating2Presence": "not present"
  },
  "slaveMemberIdCode": 18,
  "remoteCommand": null,
  "applicationSpecificFaultFlags": {
    "serviceRequest": "not required",
    "remoteReset": "disabled",
    "lowWaterPressure": "no fault",
    "gasOrFlame": "no fault",
    "airPressure": "no fault",
    "waterOverTemperature": "no fault"
  },
  "equipmentManufacturerFaultCode": 0,
  "remoteParameterTransferFlags": null,
  "remoteParameterReadOrWriteFlags": null,
  "remoteOverrideRoomSetpoint": null,
  "dataloggerTimestamp": 1707926040,
  "codecVersion": "1.0.0",
  "genericModel": "OTM",
  "productCode": "P1002004",
  "manufacturer": "YOBIIQ B.V."
}
FieldValue
masterStatus.centralHeatingenabled
masterStatus.domesticHotWaterenabled
masterStatus.coolingdisabled
masterStatus.outsideTemperatureCompensationdisabled
masterStatus.centralHeating2disabled
slaveStatus.faultIndicationno fault
slaveStatus.centralHeatingModeactive
slaveStatus.domesticHotWaterModeinactive
slaveStatus.flameinactive
slaveStatus.coolingModeinactive
slaveStatus.centralHeating2Modeinactive
slaveStatus.diagnosticIndicationno diagnostics
controlSetpointTemperature40
masterMemberIdCode13
slaveConfigurationFlags.domesticHotWaterPresencepresent
slaveConfigurationFlags.controlTypemodulating
slaveConfigurationFlags.coolingConfignot supported
slaveConfigurationFlags.domesticHotWaterConfiginstantaneous or not-specified
slaveConfigurationFlags.pumpControlFunctionnot allowed
slaveConfigurationFlags.centralHeating2Presencenot present
slaveMemberIdCode18
remoteCommandnull
applicationSpecificFaultFlags.serviceRequestnot required
applicationSpecificFaultFlags.remoteResetdisabled
applicationSpecificFaultFlags.lowWaterPressureno fault
applicationSpecificFaultFlags.gasOrFlameno fault
applicationSpecificFaultFlags.airPressureno fault
applicationSpecificFaultFlags.waterOverTemperatureno fault
equipmentManufacturerFaultCode0
remoteParameterTransferFlagsnull
remoteParameterReadOrWriteFlagsnull
remoteOverrideRoomSetpointnull
dataloggerTimestamp1707926040
codecVersion1.0.0
genericModelOTM
productCodeP1002004
manufacturerYOBIIQ B.V.

Example 2 · fPort 2

Payload (hex)

DD 10 00 DD 11 00 DD 12 AA 0D 00 DD 73 AA 12 0A DD 18 AB 17 2B DD 19 AA 29 00 DD 1A AA 23 80 DD 1B 00 DD 1C 00 DD FD 65 CC E2 54

Decoded (JSON)

{
  "roomSetpointTemperature": null,
  "relativeModulationLevel": null,
  "waterPressure": 13,
  "originalEquipmentManufacturerDiagnosticCode": 4618,
  "roomTemperature": 23.17,
  "boilerFlowWaterTemperature": 41,
  "domesticHotWaterTemperature1": 35.5,
  "outsideTemperature": null,
  "returnWaterTemperature": null,
  "dataloggerTimestamp": 1707926100,
  "codecVersion": "1.0.0",
  "genericModel": "OTM",
  "productCode": "P1002004",
  "manufacturer": "YOBIIQ B.V."
}
FieldValue
roomSetpointTemperaturenull
relativeModulationLevelnull
waterPressure13
originalEquipmentManufacturerDiagnosticCode4618
roomTemperature23.17
boilerFlowWaterTemperature41
domesticHotWaterTemperature135.5
outsideTemperaturenull
returnWaterTemperaturenull
dataloggerTimestamp1707926100
codecVersion1.0.0
genericModelOTM
productCodeP1002004
manufacturerYOBIIQ B.V.

Specifications

Manufacturer
YOBIIQ
Model
iQ OpenTherm
Type
Smart thermostat
Measures
temperature, humidity, digital inputs
LoRaWAN regions
EU863-870

Connect it to Cloud Studio IoT

  1. 1

    Register the device in your network server

    Add it to The Things Stack, ChirpStack, Actility ThingPark or LORIOT with its DevEUI, JoinEUI and AppKey and the frequency plan of your region.

  2. 2

    Apply the decoder

    In The Things Stack, pick the model from the device repository and its decoder is applied for you. In ChirpStack v4, paste the official decoder as the device profile's JavaScript codec.

  3. 3

    Connect the network server to Cloud Studio IoT

    Set up the integration once per network server; every device registered there then reaches Cloud Studio IoT with its decoded values.

  4. 4

    Build dashboards and alarms

    The decoded fields become device variables for dashboards, alarms by email or SMS, and scheduled reports.

See your YOBIIQ iQ OpenTherm on a dashboard

Start a free trial, add the device with its DevEUI and get dashboards and alarms from its next uplink.

Talk to us

Frequently asked questions

Device facts and decoder examples: The Things Network Device Repository (Apache-2.0) · commit 7693223, imported 2026-10-05.