home Sonstiges Linux OpenBSD Links

LoRaWAN Dragino LDS02 Door Sensor mit Helium und Datacake auslesen

Von Dragino gibt es den Tür/Fenstersensor LDS02. Diese Seite versucht eine Kurzanleitung zu bieten wie man diesen in Helium/Datacake einbindet.

Der Sensor besteht aus zwei Teilen:

Mit in der Box sollte ein Aufkleber mit den wichtigen Daten sein:

Als erstes muss der Sensor in der Helium Console angelegt werden. Dazu mit der E-Mail Adresse auf https://console.helium.com/devices einloggen. In der Basisvariante kann man bis zu zehn LoRaWAN Sensoren hier anlegen.

Links Devices auswählen, danach auf das Pluszeichen unten rechts klicken und Add Device auswählen:

Die benötigten Angaben befinden sich auf dem Aufkleber.

Der Sensor muss neu gestartet werden. Dazu die Batterie für mindestens eine Minute entfernen und wieder einlegen. Es kann bis zu 20 Minuten dauern bis ein Erstkontakt in der Console sichtbar ist.

Weiter geht es mit einer Function, diese mittels Add Function anlegen:

Das Script habe ich von https://docs.helium.com/use-the-network/devices/ready-to-use/dragino/lds02/:

function Decoder(bytes, port) {
  // Decode an uplink message from a buffer
  // (array) of bytes to an object of fields.
  var value = ((bytes[0] << 8) | bytes[1]) & 0x3fff
  var bat = value / 1000 //Battery,units:V

  var door_open_status = bytes[0] & 0x80 ? 1 : 0 //1:open,0:close
  var water_leak_status = bytes[0] & 0x40 ? 1 : 0

  var mod = bytes[2]
  var alarm = bytes[9] & 0x01

  if (mod == 1) {
    var open_times = (bytes[3] << 16) | (bytes[4] << 8) | bytes[5]
    var open_duration = (bytes[6] << 16) | (bytes[7] << 8) | bytes[8] //units:min
    if (bytes.length == 10 && 0x07 > bytes[0] < 0x0f)
      return {
        BAT_V: bat,
        MOD: mod,
        DOOR_OPEN_STATUS: door_open_status,
        DOOR_OPEN_TIMES: open_times,
        LAST_DOOR_OPEN_DURATION: open_duration,
        ALARM: alarm,
      }
  } else if (mod == 2) {
    var leak_times = (bytes[3] << 16) | (bytes[4] << 8) | bytes[5]
    var leak_duration = (bytes[6] << 16) | (bytes[7] << 8) | bytes[8] //units:min
    if (bytes.length == 10 && 0x07 > bytes[0] < 0x0f)
      return {
        BAT_V: bat,
        MOD: mod,
        WATER_LEAK_STATUS: water_leak_status,
        WATER_LEAK_TIMES: leak_times,
        LAST_WATER_LEAK_DURATION: leak_duration,
      }
  } else if (mod == 3)
    if (bytes.length == 10 && 0x07 > bytes[0] < 0x0f) {
      return {
        BAT_V: bat,
        MOD: mod,
        DOOR_OPEN_STATUS: door_open_status,
        WATER_LEAK_STATUS: water_leak_status,
        ALARM: alarm,
      }
    } else {
      return {
        BAT_V: bat,
        MOD: mod,
      }
    }
}
Weiter geht es auf https://app.datacake.de/login. Hier einen Account anlegen.
Einmalig einen Workspace erstellen:

Oben links auf seine E-Mail Adresse klicken, danach auf Edit Profile:

Zu API navigieren und den Key kopieren:

Zurück in die Helium Console, hier eine Integration anlegen:

Datacake suchen:

Der Token ist der API Key von Datacake:

Zum Abschluss muss nun noch ein Flow erstellt werden:

Im Idealfall sollte man nun unter Devices schon etwas Aktivität sehen. Eventuell ist es notwendig das Fenster einmal zu öffnen/schließen.

Weiter geht es wieder mit Datacake. Auch hier muss das Device erst einmal angelegt werden:

LoRaWAN auswählen:

Nach LDS02 suchen:

Helium auswählen:

DEVEUI (siehe Aufkleber) und Name eingeben:

Free reicht erst einmal aus:

Wenn alles funktioniert hat, sollte sich in der Übersicht (Devices) etwas tun:

Hinweis: True bedeutet hier "offen". Durch Klick auf den Namen kommt man in ein Dashboard. Dieses kann man anpassen nach belieben und auch einen public Link erstellen.


Letzte Aktualisierung dieser Seite: 11. Juni 2023