Forum: PC-Programmierung Protokoll: Schaltbefehle über Netzwerk


von Android (Gast)


Lesenswert?

Hallo zusammen!

Ich möchte gerne kurze Schaltbefehle über mein bestehendes Heimnetzwerk 
übertragen. Im ersten Schritt soll die Übertragung zwischen zwei PCs 
erfolgen. Später soll die schaltende Einheit evtl. ein RaPi sein. Es 
muss sichergestellt sein, dass die Schaltbefehle auch wirklich ankommen. 
Der Datendurchsatz ist sehr gering.

Welches Protokoll würdet ihr mir empfehlen?

Schon mal vielen Dank!

von Frank W. (Firma: DB1FW) (frankw) Benutzerseite


Lesenswert?

Schau dir mal MQTT an

https://de.wikipedia.org/wiki/MQTT

von Noch einer (Gast)


Lesenswert?

Was meinst du mit "sichergestellt"? Muss es auch bei Hardwarefehlern 
funktionieren?

Handelt es sich um einen Futterautomaten und das Leben deiner Haustiere 
hängt von der sicheren Übertragung ab?

von PittyJ (Gast)


Lesenswert?

Ich habe so etwas bei mir über UDP gemacht.
Allerdings gibt es dabei keine Garantie, dass die Befehle auch wirklich 
ankommen. Um das sicher zu stellen, muss ein TCP Protokoll genommen 
werden. Am besten eines, wo es auch noch ein Antwort vom Empfänger 
zurück gibt.

von Android (Gast)


Lesenswert?

Mit "sichergestellt" meine ich, dass das Paket nochmal gesendet wird, 
wenn es auf dem Transportweg verloren geht.

Ich beabsichtige damit eine Hausautomation umzusetzen. Also von Licht, 
über Fensterkontakt, Temperatur, Luftqualität, usw...

Hab mir MQTT mal angeschaut. Das sieht ziemlich gut aus. Hat jemand von 
euch so ein System schon mal aufgesetzt?

von Stephan (Gast)


Lesenswert?

Android schrieb:
> Mit "sichergestellt" meine ich, dass das Paket nochmal gesendet wird,
> wenn es auf dem Transportweg verloren geht.

ist doch mit TCP alles sicher gestellt, wie bereits oben gesagt.

von dunno.. (Gast)


Lesenswert?

Android schrieb:
> Hab mir MQTT mal angeschaut. Das sieht ziemlich gut aus. Hat jemand von
> euch so ein System schon mal aufgesetzt?

ja.

von Android (Gast)


Lesenswert?

Den Broker würde ich mal mit mosquito aufsetzen oder vorab mal mit einem 
öffentlichen testen.
Könnt ihr mir ein Programm für IOS oder Android empfehlen, mit dem ich 
freie Testnachrichten publishen und subscriben kann?

von длинний зелёний тролль (Gast)


Lesenswert?

Ein sicheres Protokol mit Autoretry usw ist ja gut, reicht aber 
moeglicherweise nicht.
Ich wuerde auf den Controller eine sicherheitsbasierte Zustandsmaschine 
aufsetzen. Also definieren wie schaut jeweils ein eigensicherer Zustand 
aus. Es kann zB sein, dass ein Verbraucher/Pumpe/Heizung/.. eigensicher 
= "aus" sein soll. Dann setzt man das Protokoll so auf, dass nach einem 
setzbaren Timeout, der eigensichere Zustand eingenommen wird. Ein Befehl 
sieht dann zB so aus :
 Pumpe ein, Timeout, Pumpe aus, CRC

Falls also aufgrund von irgendwelchen nicht spezifizierten Gruenden* 
kein weiterer Befehl eintrifft, geht das System nach dem Timeout in den 
sicheren Zustand.

*nicht spezifizierte Gruende : jemand stolpert ueber das Kabel, 
dauerhafter Unterbruch, Batterie des Steuergeaetes ist leer, ...

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

PittyJ schrieb:
> Ich habe so etwas bei mir über UDP gemacht.
> Allerdings gibt es dabei keine Garantie, dass die Befehle auch wirklich
> ankommen. Um das sicher zu stellen, muss ein TCP Protokoll genommen
> werden.

Nö, stimmt nicht. Man kann oberhalb der Protokollebene von UDP natürlich 
trotzdem ein Handshake programmieren.

Und bei Mikrocontrollern ist das auch nicht völlig sinnlos, denn eine 
UDP-Implementation erfordert wesentlich weniger Resourcen als TCP.

von c-hater (Gast)


Lesenswert?

Frank E. schrieb:

> Nö, stimmt nicht. Man kann oberhalb der Protokollebene von UDP natürlich
> trotzdem ein Handshake programmieren.
>
> Und bei Mikrocontrollern ist das auch nicht völlig sinnlos, denn eine
> UDP-Implementation erfordert wesentlich weniger Resourcen als TCP.

JA!

Mehr noch: Im LAN kann man auch noch auf UDP und IP (samt aller zum 
Betrieb nötigen Anhängsel wie ARP und ICMP) verzichten. Das ist alles 
völlig über, wenn man in nur einem Netzwerksegment eine Art 
Fernsteuerung betreiben will.

Genau deswegen funktionieren auch industrielle Ethernet-basierte 
"Fernsteuerungen" knapp über dem MAC-Layer. Die brauchen diesen ganzen 
Kram dann nicht und benutzen ihn deshalb auch nicht. Wozu auch?

Benutzt wird das Zeug nur dann, wenn sich die Notwendigkeit einer 
Kommunikation über mehrere Ethernet-Netzwerksegmente hinweg ergibt. So 
war das mit den Protokollschichten ursprünglich auch mal gedacht: immer 
nur die benutzen, deren Features man wirklich benötigt...

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.