Rapportera temperatur via The Things Network (TTN)

Om du har en LoRaWAN-temperatursensor ansluten till The Things Network kan du enkelt rapportera temperaturen till temperatur.nu. Den här guiden visar hur du ställer in din befintliga TTN-sensor att skicka data till temperatur.nu via en webhook.

Det finns också en guide för att sätta upp gateway och sensor från början.

Vad du behöver

  • En temperatursensor ansluten till TTN (t.ex. Dragino D20-LS, LHT65 eller liknande)
  • Sensorn måste vara registrerad i en TTN-applikation och skicka uplinks till den
  • En payload formatter (decoder) konfigurerad i TTN som avkodar temperaturen till ett namngivet fält (t.ex. TempC1 eller temperature). Ser du temperaturen i TTN Console är det klart.

Steg 1: Aktivera TTN under Mina mätpunkter

  1. Logga in på Mina mätpunkter (www.temperatur.nu/egenadmin/).
  2. Klicka på Byt rapporteringssätt i rutan Sensor 1.
  3. Välj Använd TTN (The Things Network) och klicka Aktivera.
  4. Du får nu en Webhook-URL som ser ut så här:
https://www.temperatur.nu/report/ttn_webhook.php?hash=DIN_HASH
  1. Klicka på Kopiera för att kopiera URL:en.

Steg 2: Konfigurera webhook i TTN Console

  1. Gå till TTN Console (https://eu1.cloud.thethings.network/console/) och logga in.
  2. Välj din applikation.
  3. Gå till Integrations → Webhooks.
  4. Klicka + Add webhook → Custom webhook.
  5. Fyll i:
    • Webhook ID: Valfritt namn, t.ex. `temperatur-nu`
    • Webhook format: JSON
    • Base URL: Klistra in URL:en du kopierade från egenadmin
    • Under Enabled event types, kryssa i Uplink message.
  6. Klicka Add webhook.

Webhooken är nu aktiv. Nästa gång din sensor skickar en uplink till TTN kommer temperaturen att rapporteras till temperatur.nu.

Fältmatchning
Webhooken letar automatiskt i decoded_payload efter ett numeriskt fält vars namn börjar med temp (stora eller små bokstäver spelar ingen roll) och vars värde ligger mellan −60 och +80 °C. Det täcker decoders som producerar temperature, TempC1, temp_c m.fl. utan att du behöver konfigurera något.

Använder din avkodare andra fältnamn (t.ex. outdoor_reading eller my_temp) kan du ange dem som en kommaseparerad lista i URL:en:

https://www.temperatur.nu/report/ttn_webhook.php?hash=DIN_HASH&field=outdoor_reading,my_temp

Fälten i listan provas före den automatiska matchningen.

Enheter som inte mäter temperatur
Skickar du även data från andra enhetstyper i samma TTN-applikation (dörrsensorer, rörelsesensorer, vattenmätare m.m.) är det inget problem – uplinks utan giltigt temperaturvärde hoppas över (svaret är ändå HTTP 200), så TTN pausar eller stänger inte av webhooken.

Steg 3: Välj enhet (device)

För att temperatur.nu ska veta vilken sensor som ska läsas måste detta konfigureras (gäller även om du bara har en sensor)

  1. Gå tillbaka till www.temperatur.nu/egenadmin/
  2. Under Device i rutan Sensor 1 visas antingen:
    • En lista med de enheter som har skickat data – välj rätt enhet och klicka på Spara.
    • Ett textfält om inga data har kommit in ännu – skriv in enhetens device-ID (t.ex. `eui-a84041892c6111be`). Du hittar device-ID:t i TTN Console under din applikation → End devices. Enklast är dock att vänta på att en sensor rapporterar data så du kan välja den i listan.

När du klickat på spara är du klar och temperatur.nu kommer att använda din sensor från TTN.

Två sensorer

Om du vill rapportera från två sensorer i samma TTN-applikation till samma mätpunkt:

  1. Konfigurera Sensor 1 enligt stegen ovan.
  2. I rutan Sensor 2 (frivilligt) väljer du Använd TTN (The Things Network).
  3. Sensor 2 använder samma webhook – välj bara en annan enhet i listan.

Temperatur.nu använder automatiskt den lägsta av de två temperaturerna.

Felsökning

  • Ingen enhet i listan efter några minuter: kontrollera i TTN Console under Webhooks > Activity att uplinks skickas till URL:en och att svaret är 200. Svaret ”200 skipped: …” betyder att uplinken kom fram men att avkodaren inte skickade något temperaturfält.
  • Värdet uppdateras inte: säkerställ att rätt device är vald i egenadmin och att den faktiskt rapporterar ett temp*-fält (eller anpassa URL:en med &field=…).
  • Värdet ligger fast på samma siffra: kolla payload formatter i TTN – vanligt fel är att decodern returnerar samma värde varje gång (till exempel batterispänningen i stället för temperaturen).