<< Click to Display Table of Contents >> Navigation: Schnittstellen > TTN TheThingsNetworkLink |
Der Xhome-Server unterstützt die iot TheThingsNetwork.org Cloud.
Alle LoRa Sensoren müssen an die Daten an die TTN Cloud senden.
Im Xhome Server unter Einstellungen wird die TTN als Gateway mit dem Application Name und dem Apllication Key angelegt.
Der Application Name wird auf der Webseite TTN als Application ID dargestellt! Hier muss der Name und nicht die Nummer eingetragen werden.
Alle Geräte werden automatisch in einer Liste angelegt.
Der Payload im Uplink kann wie folgt formartiert werden:
String data = "DI_3="+String(di3)+";DO_4="+String(do4)+";Temp_1="+String(tem)+";Hum_1="+String(hum);
Hex:
44495F333D66616C73653B444F5F343D66616C73653B54656D705F313D32322E30303B48756D5F313D34352E3030
ASCII:
DI_3=false;DO_4=false;Temp_1=22.00;Hum_1=45.00
Die einzelnen Parameter können mit einem Semikolon getrennt werden.
Eingänge können mit DI_*** und Ausgänge mit DO_*** definiert werden.
Beim Import werden diese anschließend als Bool Datenpunkt importiert. Die Restlichen als Dezimal oder Text Datenpunkt.
Payload Uplink:
String data = "Wert_1:Ich bin ein Text";
Würde einen String Datenpunkt mit dem Namen Wert_1 anlegen.
Name und Wert werden durch einen Doppelpunkt getrennt.
Dezimal Status mit Byte Position:
Byte eines Payloads auslesen:
Payload:
00 00 00 AA
Byte 4 als Status verwenden:
Variable Name: Byte=3
Würde den Wert 170 ausgeben.
Bit Status mit Byte und Bit Position:
Payload:
00 00 00 AA
Byte 4 und Bit 2 als Status verwenden:
Variable Name: Byte=3.1
Würde den Wert 1 ausgeben da im 4. Byte das 2. Bit gesetzt ist.
Befehle senden:
Im Befehl Feld Variable Namen können Werte eingetragen werden. Diese werden an den Sensor als Payload gesendet.
Für Bool An/Aus Datenpunkte können An und Aus getrennt werden. Dies erfolgt über die Parameter on=xxxx und of=xxxx
Beispiel:
on=03 00 64 FF;off=03 00 00 FF
Beispiel Adruino:
static uint8_t opencml[4]={0x03,0x00,0x64,0xFF},closecml[4]={0x03,0x00,0x00,0xFF};
if ((received[0]==opencml[0])&&(received[1]==opencml[1])&&(received[2]==opencml[2])&&(received[3]==opencml[3])) {
Serial.println("Set pin to HIGH.");
digitalWrite(ctl_pin, HIGH);
}
if ((received[0]==closecml[0])&&(received[1]==closecml[1])&&(received[2]==closecml[2])&&(received[3]==closecml[3])) {
Serial.println("Set pin to LOW.");
digitalWrite(ctl_pin, LOW);
}