Forum: Haus & Smart Home Das Protokoll im Bus


von Gabba gandalf (Gast)


Lesenswert?

Moinsen zusammen ich baue gerade an einem Hausbus Dir Hardware besteht 
aus Rs485 und Mega8 Bausteinen.
Das Problem liegt in bei mir im Protokoll. Ich habe zb etliche 
identische Relayskarten mit jeweils 2 Relays. Jedes Gerät im Bus hat 
eine Adresse.
Das klappt soweit super. Wenn ich aber 20 Relays Gleichzeitig schalten 
möchte müsste ich also 20 Befehle über den Bus senden. Jeder wird mit 
zum Absender bestätigt. macht 40 Befehle. Auch wenn es nur Millisekunden 
sind finde ich diese Lösung nicht so toll.

Ich würde lieber ähnlich wie beim Dmx einen zustand senden und die 
Empfänger wissen auf welcher Adresse sie Lauschen sollen. nur wie kann 
ich dann die Bestätigung zum Absender realisieren. Das nicht ein Gerät 
durch Übertragungsfehler den Befehl nicht mitbekommt.

Permanentes senden aller Daten fällt aus weil es ein Multimaster system 
ist. Jeder Lichtschalter jeder Sensor kann Senden. Daher benötige ich 
auch eine Bestätigung das das Paket wirklich angekommen ist.

Gibt es dazu ideen?

von Fabian F. (fabian_f55)


Lesenswert?

Kann man bei RS485 nicht mit Adresse 0 einen Broadcast senden?
In der Botschaft müsste dann eben drinstehen welche Lichter angehen 
sollen.
Die Bestätigungen der Schalter können dann nach und nach eintrudeln, 
aber die Lichter gehen alle gleichzeitig an.

von Peter II (Gast)


Lesenswert?

Das geht nicht. Entweder jedes Geräte wird einzeln angesprochen und 
bestätig den Empfang oder gibt eine Sammeladresse ohne Bestätigung.

und warum sollte es bei Relais Millisekunden wichtig sein?

Selbst das Multimaster und Rs485 passen nicht wirklich zusammen, damit 
kann man Bus nicht sehr stark auslasten.

von Heinz (Gast)


Lesenswert?

Gabba gandalf schrieb:
> Gibt es dazu ideen?

das hört sich an, als ob CAN hier besser zu deinen Anforderungen passt

von Thomas (kosmos)


Lesenswert?

So wird das bei CAN gemacht 
https://de.wikipedia.org/wiki/Controller_Area_Network#Arbitrierung.2C_Priorit.C3.A4t

Beide senden also los bis ein Sender merkt seine Bits werden 
überschrieben dann macht er erstmal eine Pause und probiert es nach der 
Nachricht des anderen Senders nocheinmal. Jeder Sender senden also nicht 
nur Daten sondern auch einen Identifier der die Priorität enthält. Ein 
Alarm ist z.B. wichtiger als ein Lichtschaltbefehl und wird deshalb beim 
gleichzeitigen lossenden als erstes durchkommen.

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.