Forum: Projekte & Code Protokoll für die Kommunication in einem Selfmade Smarthome


von Wer B. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Community,

ich habe ein Protokoll geschrieben, damit sich die Arduinos in meinem 
SmartHome über 433Mhz Sender austauschen können.

Euch wollte ich jetzt fragen, ob ihr irgendwelche Ergänzungen oder 
Vorschläge habt, um das Protokoll sinnvoll zu erweitern/verbessern.
Ich würde mich über Kritik/Anregungen sehr freuen.

Vielen Dank für eure Mühe


PS: Fragen sind auch gern gesehen :)

von Wer B. (Gast)


Lesenswert?

Korrektur:
//general information
#define Receiver          0
#define Transmitter       5
#define startConnection   100
#define endConnection     300

von Max M. (jens2001)


Lesenswert?

Eine .ino ist kein Protokoll!

von Wer B. (Gast)


Lesenswert?

Max M. schrieb:
> Eine .ino ist kein Protokoll!

Hab ich auch nicht behauptet.

Der Sketch in der .ino ist das Protokoll...
Ich werde es später in eine Library umwandeln

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Simon S. schrieb:
> Der Sketch in der .ino ist das Protokoll...

Ist es auch nicht. Das ist ein Programm, das ein Protokoll umsetzt.

Ein Protokoll aber ist nur mit einer Beschreibung sinnvoll.

Eine Beschreibung aber ist in Deinem Code nirgendwo zu sehen.

von Wer B. (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Simon S. schrieb:
>> Der Sketch in der .ino ist das Protokoll...
>
> Ist es auch nicht. Das ist ein Programm, das ein Protokoll umsetzt.
>
> Ein Protokoll aber ist nur mit einer Beschreibung sinnvoll.
>
> Eine Beschreibung aber ist in Deinem Code nirgendwo zu sehen.

Zu Beginn des Sketches wird ein Teil erklärt.
Der Rest ist hoffentlich selbsterkärend.

von Scelumbro (Gast)


Lesenswert?

Simon S. schrieb:
> Zu Beginn des Sketches wird ein Teil erklärt.
> Der Rest ist hoffentlich selbsterkärend.

Vielleicht ist es uncool, aber wenn ich so ein Protokoll entwickeln 
wollte, wäre mein Startpunkt kein Arduino Programm sondern ein 
(virtuelles) weißes Papier.
Dort würden zu erst die Sensoren und Aktoren stehen die ich anbinden 
wollte. Dann die Anforderungen an das Protokoll die sich daraus ergeben. 
Dann würde ich vorhande Protokolle recherchieren und prüfen ob sie meine 
Anforderungen nicht schon erfüllen. Wenn nicht würde ich ein gutes um 
meine Anforderungen ergänzen und dann das ganze zur Diskussion stellen.
Dann erst wäre die Arduino oder eine sonstige IDE für mich zu starten.

von Wer B. (Gast)


Lesenswert?

Scelumbro schrieb:
> Vielleicht ist es uncool, aber wenn ich so ein Protokoll entwickeln
> wollte, wäre mein Startpunkt kein Arduino Programm sondern ein
> (virtuelles) weißes Papier.
Das habe ich schon auf (nicht virtuellen) weißem Papier gemacht.
> Dort würden zu erst die Sensoren und Aktoren stehen die ich anbinden
> wollte.
Ich weiß ja gar nicht um was ich mein SmartHome alles in Zukunft 
erweitere.
>Dann die Anforderungen an das Protokoll die sich daraus ergeben.
Grob hab ich sie ja.
> Dann würde ich vorhande Protokolle recherchieren und prüfen ob sie meine
> Anforderungen nicht schon erfüllen.
Ich möchte ein eigenes schreiben.
>Wenn nicht würde ich ein gutes um meine Anforderungen ergänzen und dann das ganze 
zur Diskussion stellen.
s.o.
> Dann erst wäre die Arduino oder eine sonstige IDE für mich zu starten.
Soweit bin ich schon.

von Wer B. (Gast)


Lesenswert?

Grundsätzlich soll das "Protokoll" die Übertragung von Messwerte an die 
Basis (auf Abfrage) realisieren, welche diese dann verwaltet.
Die Slaves können aber auch empfangen und so kann die Basis bsp. eine 
Pumpe im Garten ansteuern.

von Scelumbro (Gast)


Lesenswert?

Simon S. schrieb:
> Das habe ich schon auf (nicht virtuellen) weißem Papier gemacht.

Dann stelle doch genau dieses vor und begründe deine Anforderungen. 
Insbesondere diese:

Simon S. schrieb:
> Ich möchte ein eigenes schreiben.

Dann ist es am einfachsten zu entscheiden ob sie erfüllt sind.

von Wer B. (Gast)


Lesenswert?

Scelumbro schrieb:
> Simon S. schrieb:
>> Das habe ich schon auf (nicht virtuellen) weißem Papier gemacht.
>
> Dann stelle doch genau dieses vor und begründe deine Anforderungen.
> Insbesondere diese:
>
> Simon S. schrieb:
>> Ich möchte ein eigenes schreiben.
Egoismus/Perfektionismus/Ehrgeiz ?
> Dann ist es am einfachsten zu entscheiden ob sie erfüllt sind.
Grundsätzlich soll das "Protokoll" die Übertragung von Messwerte an die
Basis (auf Abfrage) realisieren, welche diese dann verwaltet.
Die Slaves können aber auch empfangen und so kann die Basis bsp. eine
Pumpe im Garten ansteuern.

von Wer B. (Gast)


Lesenswert?

Bsp: Bei einer Übertragung mit der ID:1234 weis die Basis, dass es der 
Sensorwert XY ist.
Bei einer Übertragung mit der ID:4321 weis der Slave, das er, wenn die 
Übertragung 1 entspricht, die Pumpe anmachen soll.
Das ist nicht in dem Sketch/Protokoll enthalten, jedoch sehr einfach zu 
erweitern.

von Wer B. (Gast)


Lesenswert?

Das Protokoll soll die Übertragung zwischen Arduino ermöglichen, indem 
es Übertragungen zuordnen kann (anhand von ID's).

Das ganze soll wirken wie eine Verbindung der Arduinos, damit andere 
nicht mehr "zuhören" , wenn sie nicht gemeint sind (Erkennung anhand der 
ID)
Die Verbindung wird mit einem Start/Stop Signal begonnen/beendet.

von Scelumbro (Gast)


Lesenswert?

Simon S. schrieb:
> Bsp: Bei einer Übertragung mit der ID:1234 weis die Basis, dass es der
> Sensorwert XY ist.
> Bei einer Übertragung mit der ID:4321 weis der Slave, das er, wenn die
> Übertragung 1 entspricht, die Pumpe anmachen soll.
> Das ist nicht in dem Sketch/Protokoll enthalten, jedoch sehr einfach zu
> erweitern.

Wer kümmert sich um gestörte / beschädigte Übertragungen oder 
Übertragungen die gar nicht erst ankommen? Besonders im 433MHz Band ist 
schon einiges los.

von Wer B. (Gast)


Lesenswert?

Es werden nur Übertragungen ausgewertet die vollständig sind.

ID's sind sinnvoll, da, wenn ich nur 1/0 /An/Aus senden würde, alle 
Pumpen im Garten angehen würden. (nur ein Bsp.)

von Wer B. (Gast)


Lesenswert?

Scelumbro schrieb:
> [...]Besonders im 433MHz Band ist
> schon einiges los.
Bei mir nicht.

von Scelumbro (Gast)


Lesenswert?

Simon S. schrieb:
> Es werden nur Übertragungen ausgewertet die vollständig sind.
>
> ID's sind sinnvoll, da, wenn ich nur 1/0 /An/Aus senden würde, alle
> Pumpen im Garten angehen würden. (nur ein Bsp.)

Gibt es Prüfsummen um zu prüfen ob die Übertragung unbeschadet 
angekommen ist? Oder ob die 1 an die Pumpe unterwegs zur 0 geworden ist.

Und wird geprüft ob der Befehl an die Pumpe überhaupt angekommen ist?

Simon S. schrieb:
> Scelumbro schrieb:
>> [...]Besonders im 433MHz Band ist schon einiges los.
> Bei mir nicht.

Ich hoffe du designst dein Protokoll nicht über diese optimistische 
Annahme.

von Wer B. (Gast)


Lesenswert?

Scelumbro schrieb:
> Simon S. schrieb:
>> Es werden nur Übertragungen ausgewertet die vollständig sind.
>>
>> ID's sind sinnvoll, da, wenn ich nur 1/0 /An/Aus senden würde, alle
>> Pumpen im Garten angehen würden. (nur ein Bsp.)
>
> Gibt es Prüfsummen um zu prüfen ob die Übertragung unbeschadet
> angekommen ist? Oder ob die 1 an die Pumpe unterwegs zur 0 geworden ist.
Ich hatte bis jetzt nie eine Fehlerhafte Übertragung.
>
> Und wird geprüft ob der Befehl an die Pumpe überhaupt angekommen ist?
Ja, es wird überprüft.
>
> Simon S. schrieb:
>> Scelumbro schrieb:
>>> [...]Besonders im 433MHz Band ist schon einiges los.
>> Bei mir nicht.
>
> Ich hoffe du designst dein Protokoll nicht über diese optimistische
> Annahme.
Nein

von Scelumbro (Gast)


Lesenswert?

Simon S. schrieb:
>> Gibt es Prüfsummen um zu prüfen ob die Übertragung unbeschadet
>> angekommen ist? Oder ob die 1 an die Pumpe unterwegs zur 0 geworden ist.
> Ich hatte bis jetzt nie eine Fehlerhafte Übertragung.

Willst du eigentlich echtes Feedback oder einfach nur Lob für das 
genialste Protokoll seit TCP/IP?

von Wer B. (Gast)


Lesenswert?

Scelumbro schrieb:
> Simon S. schrieb:
>>> Gibt es Prüfsummen um zu prüfen ob die Übertragung unbeschadet
>>> angekommen ist? Oder ob die 1 an die Pumpe unterwegs zur 0 geworden ist.
>> Ich hatte bis jetzt nie eine Fehlerhafte Übertragung.
>
> Willst du eigentlich echtes Feedback oder einfach nur Lob für das
> genialste Protokoll seit TCP/IP?

Echtes Feedback...

Und mein Satz bezieht sich nicht auf mein Protokoll, sondern auf ganz 
normale Tests mit 433Mhz Modulen.

von Wer B. (Gast)


Lesenswert?

Entweder kam was an oder nichts.
Nie falsche Übertragungen.

Das meinte ich.

von Scelumbro (Gast)


Lesenswert?

Simon S. schrieb:
> Entweder kam was an oder nichts.
> Nie falsche Übertragungen.
>
> Das meinte ich.

Welche Entfernung, wieviele Wände dazwischen, welches Wetter? Und wie 
nah liegt der Empfänger neben dem Motor der Pumpe die er schalten soll? 
Alles unter Einsatzbedingungen getestet?

von Wer B. (Gast)


Lesenswert?

Scelumbro schrieb:
> Welche Entfernung,
20m
> wieviele Wände dazwischen,
3
>welches Wetter?
gutes
>Und wie nah liegt der Empfänger neben dem Motor der Pumpe die er schalten >soll?
1m
> Alles unter Einsatzbedingungen getestet?
Das war ein Beispiel...

von Pandur S. (jetztnicht)


Lesenswert?

Ein Protokoll beschreibt man anders. zB

Master-slave Block Protokol : Der Master sendet, der angesprochene Slave 
antwortet.
 -> Adressierung
 -> Begin & End des Blockes

Variable Block Laenge
 -> Laenge ist im Block enthalten

Detektion von Uebertragungsfehlern.
 -> CRC

Ja, es kann Schaden entstehen.
 -> Failsave Zustaende

Zustandsfreie Kommunikation. Dh die Rehenfolge der uebertragenen Bloecke 
ist egal.

Alles ASCII, zum per Teminal Mitlesen oder alles Binaer

Die Control Commands, die alle Teilnehmer unterstuetzen sind : ..
 -> Echo
 -> Set Powerup State
 -> Set Failsave State
 -> Get Info

..

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.