ich habe vor ein System zu bauen, welches aus N-Nodes besteht (ich denke da an so 255 Stück, gerne auch mehr 512/1024…).
Nun stellt sich die Frage wie man das richtig angeht. Es gibt ja die 1% Hürde, sodass man ja ab einer gewissen Datengröße nur eine bestimmte Airtime belegen darf. Soweit so klar.
Mir geht es vorallem um die Reichweite in Gebäuden. Ich habe mal diesen Rechner angeschmissen: https://avbentem.github.io/airtime-calculator/ttn/eu868/10
Ich plane 10Byte als Payload-Size anzusetzen, sodass ich alle 3sec senden dürfte... Da kommen wir auch schon so langsam an die Fragen:
Wie sieht die Reichweite in Innenräume aus, bei der höchsten Frequenz, also mit der geringsten Airtime?
Werden Pakete, die verloren gegangen sind automatisch neu-gesendet, oder muss ich an die Nodes schicken, oh da ist nichts angekommen, schicke bitte nochmal.
Reicht es das Syncwort zu ändern, um fremde Nodes auszusperren oder sollte man eine verschlüsselte ID übertragen, welche das Filtern im Code übernimmt?
Mein Plan sieht wie folgt aus:
LoraGateway schickt schrittweise (alle 3sec) eine Nachricht an Node1,Node2,Node3… und fragt den Status ab, dann antworten schrittweise, die Nodes mit ihren Daten. Wenn jetzt der Node nicht antwortet (nach 100ms) wird der Node nochmal angefragt.
Dabei schicken Sie ihre individuelle ID mit, welche zuvor verschlüsselt wurde - da ja sonst nicht sichergestellt werden kann, dass die Daten von mir stammen ..
Oder kann das NodeGateway gleichzeitig alle Nodes empfangen und zuordnen? Ich stehe da noch auf dem Schlauch. Es sollte zumindest möglich sein, dass das Gateway die Nodes abfragen kann, die Nodes aber auch in Extremsituationen Daten senden kann. Prinzipiell würde ich eigentlich den Datenfluss zentral steuern, um keine Daten zu verlieren.
Wie würdet ihr das machen, wenn ihr viele Nodes zum abfragen habt. Außerdem würde mich interessieren, wie ihr die Zuordnung erledigen würdet. Gibt es Alternativen zu LoRa? Kann der Empfänger alle Nodes gleichzeitig „hören“ oder geht immer nur eine 1:1-Beziehung?
interpretier noch mal das Ergebnis aus der Tabelle.
bei 10Byte sind das bei DR5/SF7 BW125 486 Messages am Tag
das sind etwa 20 Messages pro Stunde, alle 3 Minuten
Wobei der Calculator für den Node gilt.
Wie es mit den Downlinks aussieht, müsstest du recherchieren.
Der Standard-Weg wäre, dass ein Node entweder periodisch oder eben bei einer Statusänderung etwas schickt.
Das "Reichweiten-Thema" ist ohne genaue Pläne und Gebäudebaustoffe aus meiner Sicht überhaupt nicht beantwortbar. Zu groß ist der Einfluss der Antennen. Ich komm jedenfalls locker vom Keller in das zweite Obergeschoss. "wird schon schaffbar sein" ist meines erachtens eine gültige Aussage. Reicht ein Gateway nicht, verteilt man eben mehrere.
"255 Nodes" kommt mir viel vor. Was wäre denn der konkrete Anwendungsfall der gelöst werden soll? Bei der Menge an Nodes würde ich auf alle Fälle mit TTN Kontakt aufnehmen, ob das im Free Plan enthalten ist oder ob ein bezahlter Plan besser wäre.
Danke für deine Antwort - ich plane keinen Gateway, welcher ins Internet angebunden werden soll. Ich möchte lediglich viele Nodes privat an ein Gateway anbinden, ohne die Daten entsprechend über einen Clouddienst abzurufen - vielleicht war das nicht so klar.
Wieso nimmst du zu deiner Kalkulation „DR5/SF7 BW125“ als Maßstab? Was passiert wenn ich mal mehr als die erlaubten Werte sende (Größenordnung +-10 Werte). Die 10bytes könnte man auch noch halbieren. Ich hatte nur mit etwas Puffer gerechnet
Edit:
Was ich erreichen will:
Daten zwischen Nodes (ohne Wifi) an ein Gateway schicken, dieses läuft aber auch lokal. Also es soll ein rein privates Netz werden.
weil SF7/BW125 meine erste Wahl ist wenns nicht auf Reichweite ankommt.
wenn du mehr als 10 Bytes senden willst, na dann musst im Kalkulator mehr als 10 Bytes eingeben.
Zur Payload ... da gibt es viele Maßnahmen wie man die Payload so klein wie möglich bekommt. Wenn du beschreibst welche Werte du exakt übertragen willst (Wert von bis mit welcher Auflösung) kann man da garantiert entsprechend komprimieren.
"Gleichzeitig" geht auf der gleichen Frequenz vermutlich schief. Daher senden die Nodes round-robin auf unterschiedlichen Frequenzen und ein echtes Gateway kann mehrere Frequenzen gleichzeitig empfangen.
Eindeutige ID, des Gerätes 16-Bit Wert, sodass ich da nicht in ein Limit mit der Anzahl der Geräte stoße. Diese ID wird vorher entsprechend verschlüsselt, sodass nur IDs die mir bekannt sind Werte an das Gateway schicken können Bzw. Das Gateway nicht ausgetrickst werden kann.
Zustand einer Variable (Max. 4Bit) eigentlich nur 0/1
Variable, die eine Nachricht entsprechend quittiert, wenn Gateway Nachricht empfangen hat, schickt er an den Node ein ACK Signal, damit der Node nicht erneut schickt.
Evtl. Uhrzeit
Was will ich eigentlich erreichen?
Jeder Node hat einen Sensor, welcher einen festen Zustand meldet (0/1)
Das Gateway soll in der Lage sein, jedes Node abzufragen (also jede ID) und eben diesen Datensatz zurückbekommen:
ID, ZustandVariable,Uhrzeit
Das Gateway sendet dann:
ID, ACK, Uhrzeit
Wenn der Node das ACK nicht empfangen hat, wird er so lange weitersenden, bis das ACK empfangen wurde.
Es ist unabdingbar, dass das Gateway innerhalb von 1-5sec den Angefragten Zustand erhält. Bzw. Wenn das Node sendet, muss dies das Gateway ebenfalls in 1-5sec empfangen. Es geht hier um die absolute Zuverlässigkeit bei einer noch unbekannten Anzahl der Nodes. Es soll so robust wie möglich laufen. Daher der Aufwand mit ACK etc.
Ich habe mir halt überlegt, dass jede Übertragung bestätigt werden muss, sodass man bei einem Verlust der Nachricht erneut sendet. Jeder Node befindet sich in einem Raum. Die Position des Gateways kann variieren. Dabei sollen die Nodes in verschiedenen Etagen angebracht werden. Da ich eine extrem hohe Zuverlässigkeit voraussetze, will ich halt im Voraus mir Gedanken machen, hast du ne andere Idee außer Wifi solche Daten zu übertragen?
Wie kann ich mehrere Frequenzen Gleichzeitig empfangen?
@combie
Dh.: Ich muss entweder mehrere LoRa-Empfänger nutzen, oder SDR. Hmmmm… Vielleicht sollte ich mal nach einer Alternative zu LoRa schauen. ESPNOW, Zigbee? Besonders letzteres besticht ja durch seine Mesh-Topologie.
Ich warte aber erstmal auf die Gedanken von @noiasca .. bevor ich was an meinem Plan ändere.
bei LoRa geht es um eine Datenübertragung mit geringer Sendeleistung und somit geringem Strombedarf über mehrere Kilometer. Wikipedia Artikel sollte bekannt sein:
Gateways können Daten an Nodes senden (Downlinks), aber bevorzugte Kommunikation ist dass ein Node (von sich aus) Daten an das Gateway sendet.
Wenn du die Daten ohnehin von deinem Gateway abfragen willst, dann hast meiner Meinung nach kein Problemstellung bezüglich "mehrere Senden" oder "mehrere Frequenzen".
Dein Anwendungsfall ist mir immer noch nicht klar.
Epic: Schloss Neuschwangau hat etwa 200 Räume, wenn du in jeden Raum 2-3 Nodes stellst, hast du etwa 500 Nodes. Jeder Node braucht eine Stromversorgung. Ich habe keine Messungen in Schloss Neuschwangau gemacht, aber ich nehme an, dass du dort mit einem Gateway nicht auskommen wirst. Wenn du 5 Gateways jede Sekunde einen Node abfragen lässt, wird aus 1 Sekunde Request/Response Zeit 100 Sekunden. Das passt aus meiner Sicht nicht zur Anforderung "Die Daten müssen innerhalb von 1-5 Sekunden da sein. Wenn es dir nicht um eine Raumüberwachung in Neuschwangau geht, beschreibe doch mal was du genau machen willst.
Aktuell bin ich mir nicht sicher ob LoRa das richtige für dich ist. Nichts desto trotz kannst du dir ja mal 3 Boards besorgen (z.B. von LilyGo/TTGO mit einem ESP32) und Feldversuche durchführen. 3 Boards, damit du auch gleich die Situation 1 Gateway - 2 Nodes probieren kannst. Mit Peer to Peer habe ich all zu viel gemacht, aber kannst du hier nachlesen: https://werner.rothschopf.net/201903_ttgo_lora32_v2.htm
dein Beispiel @noiasca mit Neuschwanstein ist eigentlich perfekt. Sowas in der Art Plane ich. Der Sensor kann ein Bewegungssensor aber auch eine Lichtschranke sein. Da jeder der Sensoren nur einen begrenzten Erfassungsbereich hat, braucht jedes Schlosszimmer 1-2 Nodes. Je nachdem ob’s für den König oder die Angestellten gedacht ist
Die Hauptzentrale soll alle x-Minuten wissen, ob der Node noch erreichbar ist und wie der Status in dem Raum ist (Bewegung ja oder nein). Allerdings soll ja der Zustand auch aktuell sein, wenn eine Bewegung im Raum erkannt wird, aber der Status seitens des Gateways erst vor einer Minute überprüft wurde, weshalb der Node eben auch senden muss. Man könnte überlegen, ob man das anfordern der Verfügbarkeit durch die nodes regelt, da habe ich aber wie gesagt bedenken, dass es dort zu Kollisionen kommt und somit Daten nicht rechtzeitig das Ziel erreichen.
Außerdem stellt sich die Frage wie lange das Gateway braucht um alle 200-500 Nodes abzufragen.
Batteriebetrieb ist nicht gefordert, es kann also auch Zigbee, Z-Wave etc sein. WiFi ungerne, da ich nicht das Netzwerk mit 200-500 Nodes zu müllen will.
so ein Teil hatte ich gar nicht auf dem Schirm. Könnte auch eine echte Option sein. Wo siehst du / ihr den Vorteil bei LoRa oder bei den von dir vorgeschlagenen Modulen?
Ich habe nur Sorge, dass mir 2.4GHZ um die Ohren fliegt, bei Räumen. Da das Gebäude mehrere Etagen hat, müsste man wahrscheinlich pro Etage einen Empfänger verwenden. Dies könnte man sich bei LoRa ggf. sparen. Ich muss da nochmal in mich gehen, was mir aber gut gefällt, die Sender / Empfänger senden ein automatische ACK.
Edit1:
Mit den entsprechenden Modulen ist wohl die Reichweite kein thema mehr. Die Module sind auch billiger als LoRa. Aber da muss ich nochmal recherchieren. Die Frage ist halt:
Welche Frequenz
Welches Protokoll
Wie baut man eine entsprechende Topologie auf, die auch transparent ist. Zigbee ist nicht transparent, da man nicht in das Routing eingreifen kann. Das Signal kann über mehrere Nodes gehen, das erschwert die Fehlersuche…
Die nrf24 würde ich mir gut überlegen. Unter freien Himmel haben die durchaus eine beachtliche Reichweite. In Innenräumen komme ich aber gerade so von meiner Garage in den 1. Stock (Stahltür und Stahlbeton dazwischen). Für ein bestehendes Projekt (Garagentorüberwachung) reicht mir das, auch die gelegentlichen Empfangsabbrüche stören mich da nicht.
Für ein weiteres Projekt bin ich aber auch auf Lora umgestiegen (Rfm95) und mit den teilen habe ich durchweg in jeder Ecke im Haus null Probleme.
Da es bei mir auf die Größe ankommt und ich die Teile so klein wie möglich benötigt habe die hier als Antenne nehme ich einen Draht/Kabel der im Gehäuse mit verschwindet.
Das ist ja der Vorteil vom Mesh. Jedes Modul dient als Knotenpunkt zum weitersenden. Da sowieso in jeden Raum mehrere Nodes existieren, ist die Reichweite eigentlich erschlagen. Batterie betrieb war ja keine Bedingung, wenn ich recht oben gelesen habe.
Ansonsten pro Zimmer ein Node als Mesh an dauerhafter Versorgung. Und im Zimmer verteilt dann schlafende batterieversorgte Sensoren.
Man könnte auch auf ein rfm69 (433MHz) umsteigen. Da weis ich aber nicht wie der Stand der Mesh Bibliotheken ist.
Jeder Node ist dauerhaft am Strom. Energiesparen muss nicht sein. Jeder Node besitzt eine eigene Stromversorgung.
Bleiben wir bei der Metapher von @noiasca ..
Das Schloss hat mehrere Etagen. Jedes Stockwerk hat mehrere Gänge.
Jetzt sah mein Plan so aus:
Pro Gang 1 Sub-Master (Master für den Gang).
An diesem werden jetzt alle Nodes des Ganges angebunden. Also alle Nodes senden die Infos an den Sub-Master. Der Submaster sendet dann die Daten an den Master der Etage.
Jede Etage sendet an den Hauptmaster, also ID 0. Dieser Wertet die Ergebnisse aus, fragt jeden Node entsprechend an.
So würde ich es machen:
Hautpmaster (0) <-> EtagenMaster <-> Gangmaster <-> Nodes
Nochwas: Wie verhindere ich, dass Dritte in meinem Netzwerk Daten einschleusen? Muss ich die Daten verschlüsseln und einen Key mitsenden? Habt ihr da Erfahrung?
Bei einem Mesh gibt es eigentlich kein Master. Alle funktionieren als Repeater untereinander. Es werden automatisch neue Verbindungen aufgebaut. Es besteht eigentlich ein relativ ausfallsichere Verbindung zur Bridge (solange genügend Nodes vorhanden / in Reichweite sind)
Bei den nRF24 gibt es einen 5Byte Code (Adresse) (auch mehrere). Auch lässt sich die Frequenz auf 125 verschiedene einstellen. Und drei verschiedene Übertragungsraten gibt es auch noch. Solange das niemand weiß, kann keiner falsche Daten funken.
Was für Reichweiten mit dedizierter Antenne Möglich ist kann ich nicht sagen, da nie probiert, da ich die Möglichkeit direkt ausgeschlossen habe.
Was ich aber sagen kann mit den nrf24 komme ich wie geschrieben gerade so von Garage in den 1. Stock.
Dann hatte ich mal Versuche mit den rfm69 gemacht mit Wurfantenne. Da kam ich schon durchs ganze Haus gab aber Ecken da verlor ich hin und wieder den Kontakt. Im freien Feld bin ich mit meinem Aufbau ca. 400 Meter gekommen.
Jetzt mit den rfm95 habe ich im Haus gar keine Probleme mehr, ganz im Gegenteil ich drossel die Leistung sogar etwas. Aber auf voller Leistung bin ich im freien Gelände ca 1 Km mit Wurfantenne gekommen.
Bei Lora kann jeder Mithören du also auch. Ich habe das ganze dadurch gelöst, dass ich meine Funkübertragung verschlüsselt sende/empfange. So kann zwar immer noch jeder mitlesen aber kann mit den Daten nichts anfangen.