ESP8266 MQTT Mesh network

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

ESP8266 MQTT Mesh network

Post by eporocrail » 09.02.2019, 10:01

Hallo Rocrailer

Bei der weiter Entwicklung von der Eltraco Software bin ich auf eine sehr interessante Bibliothek gestossen. Nebst die schon erwähnte "EmbAJAX" Bibliothek könnte diese neue Bibliothek die Benutzer Freundlichkeit um einiges steigern. Zudem wäre ein umfangreiches WLAN Netzwerk überflüssig.

Weitere Gedanken über die mögliche Bedeutung dieser Bibliothek für die Nutzung von MQTT über Funk sind im Anhang.

Viel Spass
Ellard
Attachments
Introduction of the MESH.pdf.zip
(60.08 KiB) Downloaded 29 times

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

Re: ESP8266 MQTT Mesh network

Post by eporocrail » 09.03.2019, 13:54

Hallo Rocrailer

Es wird langsam Zeit für ein Update.
Ich habe eine "Empfänger" von MQTT Berichte fertig. Alle Berichte die eintreffen werden auf SD Karte gespeichert.
Um es möglich zu machen einen Ablauf zu verfolgen ist es nützlich jedem Bericht einen "timestamp" zu geben. Dazu wäre es sinnvoll um dieser "timestamp" nicht mit Sekunden Genauigkeit aber mit Millisekunden Genauigkeit zu erstellen. Damit ist es möglich Informationen zu kriegen über die Laufzeiten von Berichte vom Sender zum Empfänger. Es hat gedauert aber das funktioniert jetzt.

Beim Hochfahren vom Modul wird über das NTP Protokoll erstmal die Richtige Uhrzeit geholt. Dann wird mit Hilfe von micros() stat millis() einen Timer gestartet der die Millisekunden u.s.w. zählt.

Die Berichte werden alle im HEXA Format übermittelt. Also bevor ein Bericht gesendet wird wird es umgewandelt. Nach dem Empfang wird es wieder zurück gewandelt und dann gespeichert.

Weiter geht es.
Viel Spass
Ellard

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

Re: ESP8266 MQTT Mesh network

Post by eporocrail » 20.03.2019, 10:16

Hallo Rocrailer

Ich habe ein Bericht zusammen gesetzt mit die Ereignisse bis jetzt. (im Anhang).

Die Möglichkeiten die die Bibliothek bietet sind beachtlich und das ohne viel Aufwand!
Aber auch Einschränkungen sind da.
Der nächste Schritt wird daraus bestehen ein kleines Mesh mit vier Module zusammen zu setzen. Außerhalb diesen Mesh wird dann ein "Rocrail Emulator" betrieben um zu sehen ob die Daten Austausch zwischen die Komponente vom Mesh und der Simulator richtig funktioniert.
Die Hardware sind Eltraco Decoder. Die Software wird für den Test zusammen gesetzt. Also die Aufwand um die Software zu erstellen wird minimiert.

Dieser Aufwand wird auch wieder seine Zeit fragen. Die Resultate werde ich hier melden.

Viel Spass
Ellard
Attachments
MeshNetworkExploration.pdf
(37.61 KiB) Downloaded 20 times

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

Re: ESP8266 MQTT Mesh network

Post by eporocrail » 28.03.2019, 07:45

Hallo Rocrailer

Man hat nicht immer soviel Zeit für sein Hobby verfügbar wie man sich wünscht.
Beim Mesh Thema habe ich den Rat bekommen die Rocrail Adress Daten und die Mesh Adress Daten zu "mappen". Das heist die Daten werden übersetzt und zwar durch ein speziell dafür entwickelte Prozedur. Damit würde auch der Bedarf für Anpassung von Rocrail entfallen.
Der Nachteil ist das mehr Zeit vergeht bei die Verarbeitung und Übertragung von Daten zwischen Decoder und Rocrail.

Wo ich doch dabei bin zu prüfen ob das ganze Mesh verfahren für Rocrail zu benutzen ist, kann ich am besten gleich diese Idee im Test einbinden.

In diesem Sinne habe ich die Gedanken über Mesh ein wenig ausgebreitet. (ist im Anhang)

Viel Spass
Ellard
Attachments
MeshNetwork.pdf
(42.11 KiB) Downloaded 16 times

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

Re: ESP8266 MQTT Mesh network

Post by eporocrail » 07.04.2019, 13:06

Hallo Rocrailer

Mal wieder einer Update.

Ein sehr hilfreicher Bibliothek ist meiner Meinung nach "ArduinoTrace". Dieser Bibliothek erlaubt es "DUMP(var)" und "TRACE()" zu benutzen. Damit wird während der Program Ablauf der Wert von Variablen oder der derzeitige Position im Code am seriellen Monitor ausgegeben.

Beim Mesh wird die Kennung von der Mesh Knoten im MQTT Topic eingebunden bei die Berichte die der Knoten verschickt. Anders herum muss diese Kennung im Topic eingebunden werden damit ein Bericht ein bestimmten Knoten erreicht. Diese Kennung wird vom Mesh hergestellt und wird bestimmt durch der Chip-Id vom Wemos Modul.
Zudem hat dieser Knoten auch eine Rocnet Identität. Dieser Nummer ist im Bericht enthalten.

Um Berichte aus zu tauschen zwischen Rocrail und ein Mesh Knoten muss eine Umwandlung passieren von Rocnet Knoten Identität enthalten im Bericht zum Mesh Knoten Kennung im Topic, und anders herum.

Diese Umwandlung soll stat finden in einem "Gateway". Dieser Gateway befindet sich zwischen Rocrail und Mosquitto und zwischen Mosquitto und den Mesh.
Um diese Umwandlung zu ermöglichen, ist eine Tabelle benötigt die einerseits die Rocrail Knoten Nummern enthält und anderseits die Mesh Knoten Nummern.
Diese Tabelle soll automatisch ohne das der Benutzer etwas tut, erstellt werden.

Ich bin jetzt so weit das beim hochfahren vom Modul als Mesh Teilhaber eine Anmeldung regelmäßig verschickt wird bis eine Empfangsbestätigung vom Gateway eingetroffen ist.
Also es wird ein Bericht abgeschickt vom Mesh Knoten zu Mosquitto. Der Bericht wird weiter geleitet zum Gateway. Der Gateway speichert Mesh Knoten Nummer und Rocrail Identität. Der Gateway schickt mit den richtigen Topic ein Bericht über Mosquitto zum Mesh Knoten. Dieser Knoten erkannt die Inhalt vom Bericht und sendet keine Anmeldung mehr.

Wo ich jetzt so weit bin das diese Berichte hin und her geschickt werden zwischen Mesh Knoten und der Gateway außerhalb der Mesh bin ich zuversichtlich das es klappen wird den Mesh zu benutzen als Mittel um Berichte zwischen Rocrail und Eltraco Decoder aus zu tauschen.

Das einzige was noch immer fraglich ist ob die Zeit die benötigt ist für die Übertragung und dazu gehörende Verarbeitung der Daten kurz genug ist um das ganze System Reibungslos funktionieren zu lassen.

Aber das stellen wir auch noch klar.

Viel Spass
Ellard

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

Re: ESP8266 MQTT Mesh network

Post by eporocrail » 12.04.2019, 13:22

Hallo Rocrailer

Wieder ein Schritt nach vorne.

Um die Tabelle her zu stellen womit die Berichte richtig adressiert werden, müssen die Decoder sich eintragen.
Diese Prozedur läuft einwandfrei und ohne dass der Benutzer etwas tun muss. Ob zuerst der Gateway oder der Mesh hoch gefahren wird ist egal.
Berichte vom Decoder zu Rocrail kommen gut an bei Rocrail. Sensor Meldungen funktionieren.
Ein wenig Erfahrung mit die Zeit die benötigt ist für die Daten Verarbeitung und Uebertragung habe ich jetzt dann auch.
Der Gateway braucht weniger als 2 Millisekunden um die Berichte zu empfangen, zu bearbeiten und weiter zu leiten. Also da habe ich keine Bedenken mehr.

Jetzt die Berichte von Rocrail zu den Decoder im Mesh!

Viel Spass

Ellard

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

Re: ESP8266 MQTT Mesh network

Post by eporocrail » 14.04.2019, 10:12

Hallo Rocrailer

Wir sind da!

Wenn ich eine Taste betätige in Rocview, leuchtet ein Led am Decoder im Mesh.

Berichte werden ohne Fehler hin und her geschickt zwischen Rocrail und Decoder im Mesh via den Gateway.
Die Verzögerung durch die Daten Verarbeitung im Gateway ist etwa eine Millisekunde. Also damit könnte man leben!

Damit ist die Erprobung abgeschlossen.

Die Weiterentwicklung wird daraus bestehen die Konfiguration Software nach zu bessern und die Software richtig zu dokumentieren.

Viel Spass
Ellard

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

Re: ESP8266 MQTT Mesh network

Post by eporocrail » 14.04.2019, 16:00

Hallo Rocrailer

Weil es jetzt einer Gateway gibt muss man sich ueberlegen was und wie damit zu machen.

Ich habe eine Zeichnung gemacht um zu erklären wie das ganze zusammen hängt. Dazu habe ich ein par Sätze auf Papier gebracht ueber wie es weiter gehen kann.

Viel Spass

Ellard
Attachments
Rocrail_Eltraco Gateway.pdf
(80.63 KiB) Downloaded 21 times

Per
Posts: 703
Joined: 11.01.2012, 13:11
Location: FFM

Re: ESP8266 MQTT Mesh network

Post by Per » 15.04.2019, 15:55

Damit das keine One Man Show wird, möchte ich dir wenigstens mitteilen, dass ich das Thema interessiert verfolge, auch wenn ich bisher noch keine konkrete Anwendung für mich sehe.

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

Re: ESP8266 MQTT Mesh network

Post by eporocrail » 18.04.2019, 07:17

Hallo Rob

Ist es in Prinzip möglich über die "service/client" Schnittstelle aus eine Liste nur das Datenelement "bus" herunter zu laden?

Ich möchte wenn es geht aus den Plan aus die "fblist", die "swlist" und aus die "colist" den wert aus "bus" herunterladen und in drei verschiedene Dateien auf SD Karte speichern.

Geht so etwas vielleicht met ein XML script?

Danke im voraus
Ellard

rjversluis
Site Admin
Posts: 39977
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: ESP8266 MQTT Mesh network

Post by rjversluis » 18.04.2019, 07:28

Hi Ellard,

nein, das ist nicht möglich.

Mit XMLScript query kann man solche Attributen einlesen in Variablen...

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

Re: ESP8266 MQTT Mesh network

Post by eporocrail » 18.04.2019, 07:42

Hi Rob

Koennte man eine Serie übernehmen in einen Array?

rjversluis
Site Admin
Posts: 39977
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: ESP8266 MQTT Mesh network

Post by rjversluis » 18.04.2019, 07:55

Hi Ellard,

du musst dich damit abfinden wie das Server/Client Protokoll ist.
Ich werde kein Sub-Protokoll einbauen für schwache Hardware.

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

Re: ESP8266 MQTT Mesh network

Post by eporocrail » 24.04.2019, 06:23

Hallo Rocrailer

Wieder was neues.

Wie bekannt bin ich dabei die Mosquitto Berichte auf SD Karte zu speichern. Wenn ich mir diese Zusatz Karte besorgt habe, war das Original von Wemos nicht lieferbar. Also habe ich mir ein anderes besorgt. Diese Version hatte auch eine RTC also eine Echt Zeit Uhr. Um dieses Ding am laufen zu kriegen habe ich eine Menge Zeit verschwendet.
Es gibt mindestens zwei Probleme mit diesem RTC.
Erstens stellte sich heraus das es ein Fehler im Entwurf von dem Ding gibt. Nach viel Suchen im Internet habe ich letztendlich ein Artikel gefunden das den richtigen Hinweis enthielt. Der link ist: [url]https://sharedinventions.com/?p=663/url]

Wenn das mal erledigt war, kam das Nächste. Es stellte sich heraus das ich die Zeit zwar stellen konnte aber nur IM set-up und nicht an einen anderen Stelle. Also in eine Prozedur außerhalb set-up geht nicht.

Das ist für mich ein bisschen problematisch weil ich die Zeit mir besorgen lasse von Rocrail. Der Grund dafür ist das ich meistens kein Zugriff auf dem Internet habe weil ich die eingebaute WiFi Möglichkeit als Access Point benutze.
Und somit kann ich die Zeit im RTC nur während einen Compiler Durchgang setzen!

Wenn ich das auch noch mal anders hin kriege, melde ich mich wieder.

Zum Schluss gibt es noch ein anderes Thema aber das werde ich in ein separates Bericht ansprechen.

Viel Spass
Ellard

eporocrail
Posts: 925
Joined: 05.06.2012, 18:45
Location: Roosendaal, NL
Contact:

Re: ESP8266 MQTT Mesh network

Post by eporocrail » 24.04.2019, 07:38

Hallo Rob

Wie erwähnt lasse ich mir von Rocrail die Zeit besorgen.
Es stellt sich dabei heraus das die Felder im MQTT Bericht vom RR server nicht vollständig gefüllt werden. Die beide Felder die angeblich die Daten die den Jahr betreffen sind immer aus "0" gesetzt.
Die übliche Dateien sind im Anhang. Ich habe auch ein screenshot dazu gepackt.

Ellard
Attachments
YearInfoIssue.zip
(212.31 KiB) Downloaded 4 times

Post Reply

Return to “Arduino (DE)”