← Back to Harvestree
Harvestree v5 LoRaWAN documentation

Ingest & targets

Transport patterns and where data usually lands.

All paths assume you end up with decoded JSON from the MOIZ reference codec. Run it on the LNS when codecs are hosted there; otherwise decode FPort 1 bytes in your ingestion worker. Prefer that reference decoder; avoid a second incompatible implementation.

Transports

  • MQTT — LNS topic → worker (e.g. ChirpStack application/+/device/+/event/up)
  • HTTP webhook — LNS POST → your API
  • Payload may arrive as already-decoded JSON (LNS codec) or as raw bytes / hex (decode in the worker)
  • Runnable examples live under integration_doc/examples/ (Python / Node MQTT and HTTP)

Typical targets

  • Timescale / Postgres + Grafana
  • Historians (PI, Aveva, …) via MQTT or OPC-UA
  • SCADA (Ignition, WinCC, …)
  • Cloud IoT hubs · Node-RED for prototyping

Idempotency and timestamps

Recommended dashboard views

ViewMetrics
Fleet healthLast seen, storageVoltage, boardTemperature, RSSI/SNR
ProcessPort keys per device config
Alarmsstatus = 2, alarm source flags, event log
Energy proxythermogenVoltage, baseTemperature gradient indicator
Practice

Store raw + normalized. Business alarms belong in your app — device Alarm mode is threshold telemetry, not a complete alarm management system.