Diese Dokumentation beschreibt das Sendeformat und die LoRa-Parameter des Wettersensors am Relais DB0SL. Damit kann man die Aussendungen korrekt empfangen und dekodieren.
| Parameter | Wert | Beschreibung | 
|---|---|---|
| Frequenz | 434.700.000 Hz | ISM-Band 70 cm | 
| Ausgangsleistung | 10 dBm | 10 mW EIRP | 
| Bandbreite | 125 kHz | LoRa Standard | 
| Spreading Factor | 12 | Maximale Reichweite (~293 bps) | 
| Coding Rate | 4/5 | Forward Error Correction | 
| Preamble Length | 8 | Standard | 
| CRC | aktiviert | Ja (Fehlererkennung) | 
| InvertIQ | nein | Normales Gateway-Format | 
Jedes empfangene Paket besteht aus folgenden Teilen:
Nur Pakete mit dieser ID sollten dekodiert werden. Diese ID ist fest und exklusiv für DB0SL.
Danach folgen mehrere Datenfelder mit Sensorwerten. Jedes Datenfeld hat folgenden Aufbau:
| Byte | Bedeutung | 
|---|---|
| [0] | Info-Byte: 5 Bit Sensor-Typ, 3 Bit Format | 
| [1..n] | Rohdaten (je nach Format 1–4 Bytes) | 
| Code | Typ | Größe | Beschreibung | 
|---|---|---|---|
| 0 | UINT8 | 1 B | 8-Bit Wert | 
| 1 | UINT16 | 2 B | Little Endian | 
| 2 | UINT24 | 3 B | Little Endian | 
| 3 | UINT32 | 4 B | Little Endian | 
| 4 | FLOAT | 4 B | IEEE754, Little Endian | 
| 5 | STRING | 1+len | Wird ignoriert (nur Anzeige) | 
| 6–7 | – | – | Ungültig / reserviert | 
| Code | Name | Beschreibung | Skalierung | 
|---|---|---|---|
| 0 | TEMPERATURE1 | Temperatur (°C) | 0..65534 → -30 bis +100 °C | 
| 4 | PRESSURE | Luftdruck (hPa) | 0..65534 → 700 bis 1100 hPa | 
| 5 | HUMIDITY | Luftfeuchte (%) | 0..254 → 0 bis 100 % | 
| 6 | VOLTAGE | Systemspannung (V) | 0..65534 → 0 bis 6 V | 
| 7 | PVVOLTAGE | Solarpanel-Spannung (V) | 0..65534 → 0 bis 6 V | 
Nicht dokumentierte Typen (1–3, 8–31) werden ignoriert.
Empfangenes Payload in Hex:
CA D4 27 4B D4 26 A7 9C 20 35 6C 24 3D 90 05 6B
Die ersten zwei Bytes bilden die Gerätekennung (Little Endian):
CA D4 → 0xD4CA = 54474 → gültig (korrektes Gerät)
Die restlichen Bytes bestehen aus mehreren Datenfeldern. Wir dekodieren sie Schritt für Schritt:
27 4B D4
| Byte | Wert (hex) | Bedeutung | 
| —— | ———— | ———– | 
| 27 | Info-Byte: 0b00100111 → Typ 7 (PVVOLTAGE), Format 1 (UINT16) | |
| 4B D4 | UINT16 LE → 0xD44B = 54347 | 
→ Skalierung für PVVOLTAGE: 0..65534 → 0..6V
PVVOLTAGE = 54347 / 65534 * 6 ≈ 4.97 V
26 A7 9C
| Byte | Wert | Bedeutung | 
| —— | —— | ———– | 
| 26 | Info-Byte: 0b00100110 → Typ 6 (VOLTAGE), Format 1 (UINT16) | |
| A7 9C | 0x9CA7 = 40103 | 
→ Skalierung für VOLTAGE: VOLTAGE = 40103 / 65534 * 6 ≈ 3.67 V
20 35 6C
| Byte | Wert | Bedeutung | 
| —— | —— | ———– | 
| 20 | Info-Byte: 0b00100000 → Typ 0 (TEMPERATURE1), Format 1 (UINT16) | |
| 35 6C | 0x6C35 = 27701 | 
→ Skalierung Temperatur: TEMPERATURE1 = -30 + (27701 / 65534) * 130 ≈ 25.9 °C
24 3D 90
| Byte | Wert | Bedeutung | 
| —— | —— | ———– | 
| 24 | Info-Byte: 0b00100100 → Typ 4 (PRESSURE), Format 1 (UINT16) | |
| 3D 90 | 0x903D = 36925 | 
→ Skalierung Druck (700–1100 hPa): PRESSURE = 700 + (36925 / 65534) * 400 ≈ 925.3 hPa
05 6B
| Byte | Wert | Bedeutung | 
| —— | —— | ———– | 
| 05 | Info-Byte: 0b00000101 → Typ 5 (HUMIDITY), Format 0 (UINT8) | |
| 6B | 0x6B = 107 | 
→ Skalierung Feuchtigkeit (0–254 → 0–100 %): HUMIDITY = 107 / 254 * 100 ≈ 42.1 %
| Sensor | Wert | Einheit | 
| ————– | ———- | ——— | 
| Temperatur | ≈ 25.9 | °C | 
| Luftdruck | ≈ 925.3 | hPa | 
| Luftfeuchte | ≈ 42.1 | % | 
| Spannung | ≈ 3.67 | V | 
| PV-Spannung | ≈ 4.97 | V | 
Dieses Beispiel zeigt, wie aus einem rohen LoRa-Paket die Werte extrahiert und skaliert werden können. Die Info-Bytes liefern Typ und Format, die Rohdaten werden abhängig davon interpretiert.
In regelmäßigen Abständen wird auch ein Textstring (Datenformat 5) gesendet, der Infos (Namen usw) enthält.