Falls jemand Interesse hat:
https://www.tindie.com/products/robe...e-for-lorawan/
Grüße
richimaint
Gesendet von iPhone XS mit Tapatalk
Falls jemand Interesse hat:
https://www.tindie.com/products/robe...e-for-lorawan/
Grüße
richimaint
Gesendet von iPhone XS mit Tapatalk
IP-Symcon 5.5, Windows x64, 02.01.2021, 03bc432e09ff, auf Windows 7 64bit, 24/7, ASRock N3700-ITX, Homematic CCU1, 24x Homematic Aktoren, 1-Wire DS9490R+ESERA 1-Wire Gateway mit 25x DS18B20, 23x Tasmota Devices, 4x Shelly
Das TTN-Device war meine erste Instanz. Die kann tatsächlich die Rohdaten verwalten wenn die Daten als solche gesendet werden, ist jedoch in den meinsten fällen nicht der Fall (Habe ich auch dazu gelernt)
Daher habe ich auch in der Doku geschrieben, dass ich diese Instanz auch nicht mehr weiterentwickle. Falls sie doch noch jemand verwendet wollte ich sie aber nicht ersatzlos raus werfen. Durch die Struktur von TTN werden die Daten ja im Decoder bereits zerteilt und werden dann als Objekte über die API raus gegeben. Daher macht es wenig Sinn mit den Rohdaten zu arbeiten sondern mit dem Objekten und das dann im "TTN Object Device".
Danke da verliert man beim Programmieren gerne den Überblick![]()
Beim nächsten Update passt das wieder![]()
Da Bist du schon auf dem richtigen Weg die Daten werden im Decoder zerlegt und werden dann in das "TTN Object Device" weiter gegeben. Hierbei muss "RAW-Payload" deaktiviert sein, da das bedeuten würde, dass die Daten als JSON im Payload des LoRa Gerätes stehen (macht aus Sicht des Overheads keinen Sinn)
Wenn du "Variablen automatisch erstellen" aktiviert hast sollten sich diese beim Empfang der ersten Nachricht selbst erstellen.
Wenn RSSI-Werte vorhanden sind aber keine Daten erstellt werden stimmt vermutlich etwas mit deinem Decoder nicht.
Beispieldecoder:
die Variablen müssen unter decoded stehen. Wie z.B. decodet.value. Dann wird die Variable "value" erstellt.Code:function Decoder(bytes, port) { var decoded = {}; decoded.value = parseFloat(String.fromCharCode.apply(null, bytes).substring(0, 4))/10 return decoded; }
Tiefere Verschachtelungen sind hier nicht möglich.
Viel einfacher geht das wenn der Node das Cayenn LPP-Format unterstützt. Dann geht das alles automatisch
Der Enviroment Sensor ist im Grunde ein "TTN Object Device" mit festen Keys für die Parameter:
- Temperatur
- Luftfeuchtigkeit
- Luftdruck
- Batteriespannung
- Solarzellen-Spannung
- Fehler
Diese Variablen werden dann auch geloggt wenn man das aktiviert hat.
Eigentlich sollte das noch nicht online gehen weil die Doku noch nicht fertig ist aber beim Update für Symcon 5.5 war es heimlich dabei![]()
IP-Symcon auf Raspberry PI / Windows / Docker / Synology (Docker)
Homematic CCU2, Wago, LoRaWAN und Mikrocontroller
Moin,
ich nutze folgenden Decoder:
https://github.com/Alpha-Omega-Technology/ttn-klax
Bei mir wird nichts automatisch angelegt, dafür bekomme ich, aber folgenden Fehler:
Die Instanz #38498 ist das "TTN Object Device"Code:21.09.2020, 06:02:03 | FlowHandler | Kann Daten nicht zur Instanz #38498 weiterleiten: <br /> <b>Fatal error</b>: Uncaught Error: Object of class stdClass could not be converted to string in C:\ProgramData\Symcon\modules\.store\firebuster.thethingsnetwork\TtnObjectDevice\module.php:113 Stack trace: #0 C:\Windows\System32\-(3): TtnObjectDevice->ReceiveData('{"DataID":"{474...') #1 {main} thrown in <b>C:\ProgramData\Symcon\modules\.store\firebuster.thethingsnetwork\TtnObjectDevice\module.php</b> on line <b>113</b><br />
Habe noch ein zweites Gerät angelegt, ein Tabs Door Sensor, da funktionierte das automatische Anlegen einwandfrei.
Eine weitere Frage habe ich aber auch noch, muss ich für jedes Gerät ein extra "TTN HTTP Integration Gateway" anlegen?
Hein09
IP-Symcon auf Raspberry PI / Windows / Docker / Synology (Docker)
Homematic CCU2, Wago, LoRaWAN und Mikrocontroller
Beim anschauen der Debug-Dateien sieht man, dass die Daten in mehreren Ebenen verschachtelt sind.
Das wird von der Instanz so zur Zeit nicht abgedeckt. Dies ist auch der erste Fall wo dieses Problem Auftritt.
Es gibt zwei Lösungsmöglichkeiten um damit umzugehen.
1. Den Decoder so umbauen, dass es nur noch eine Ebene ist
2. Die Daten selbst aus dem Feld holen.Code:{ "header_batteryPerc":100, "header_configured":true, "header_connTest":false, "header_deviceType":"SML Klax", "header_meterType":"SML", "header_version":1, "msgInfo_msgCnt":1, "msgInfo_msgIdx":176, "msgInfo_msgNum“:1 ..
Hierfür kannst du in der Instanz ein Script anlegen und auf die Aktualisierung der Frame ID dieses Script ausführen.
Im Script rufst du das Payload-Feld ab und holst dir die Daten selbst raus:
PHP-Code:
$data = TTN_GetData(TTN_Object_Device_ID);
$header = $data->payload_fields->header;
$msgInfo = $data->payload_fields->msgInfo;
…
$batteryPerc = $header->batteryPerc;
...
IP-Symcon auf Raspberry PI / Windows / Docker / Synology (Docker)
Homematic CCU2, Wago, LoRaWAN und Mikrocontroller