← Back to Harvestree
Harvestree v5 LoRaWAN documentation

Payload & JSON

Dense reference: binary header unpack + decoder field families.

This page is focused on server-side usage: how to decode each field into business data, what units to expose in APIs and dashboards, and how to handle keepalive vs measurement payloads. Prefer the manufacturer JS decoder on FPort 1 rather than re-implementing the codec.

Binary header

BytesContent
0Reserved 0xFF (not in JSON)
1–4Port types port1..4
5–7serial_number 24-bit little-endian
8, 9boardTemperature, baseTemperature = byte − 40 (°C)
10–12Packed voltages + status nibble
≥13Concatenated active port payloads

JSON key families (port n = 1..4)

FamilyKeys
Temperaturept_n, tc{k|j|t|n|s|e|b|r}_n_{cjt|hjt}, dtempA_n, irA_n
WeatherweatherA_n_{temp,humidity,frost}
SoundsoundA_n
PressurepressA_n, pressA_n_temp
Voltagedcv_n, acv_n, acv_n_hz, dcdv_n, acdv_n, acdv_n_hz, dcdvEx_n, acdvEx_n, acdvEx_n_hz
Magneticdcmh_n, acmh_n, acmh_n_hz
Currentdccs_n, accs_n, accs_n_hz, acct_n, acct_n_hz, dcch_n, acch_n, acch_n_hz
Analogfourtwenty_n, pot_n
Vibrationvib_n_rms_lf, vib_n_rms_hf, vib_n_ratio_lf_0..2, vib_n_ratio_hf_0..1
Contactdryc_n, async_dryc_n

Source of truth for on-wire parity: the reference decoder — see JS decoder.