Forum: Haus & Smart Home Hausbus Projekt


von Daniel Widmann (Gast)


Lesenswert?

Es gibt viele Leute, die Intersse an einem Hausbus haben oder bereits
einen entwickelt haben. Die meisetn haben dabei den CAN-Bus verwendet,
haben aber auch meistens ein eigenes Application-Layer-Protokoll
entwickelt. Da hab ich mir überlegt, man könnte doch ein Projekt
starten, das ein möglichst felxiebles Protokoll besitzt und möglichst
universell einsetzbar ist. Hier mal ein paar Ideen von mir. Was Haltet
ihr davon, was würdet ihr anders machen, hätte jemad interesse daran
mit  zu entwickel?

Ein Application-Layer-Protokoll(ALP), das Bus-unabhängig ist. Als
Bussysteme denke ich an
-Can
-Rs485
-Zweidraht Bus, I2C

Man hätte die Möglichkeit, den jeweils am besten passenden Bus zu
verwenden. Man könnte zum Beispiel eine kurze Stichleitung mit IIC
Ausführen.
Sinnvoll wäre es auch, das Protokoll so auszulegen, das auch andere
Übertragungsmedien in frage kommen (Powerline, Funk, Infrarot). Wenn
ich zum Beispiel eine Lampe habe, zu der keine Busleitung führ und ich
nicht die Decke aufklopfen will könnte man einfach von einer Steckdose
aus, die am Bus angeschlossen ist, die Lampe schalten. Wenn man dann
noch einen "Rückkanal" mit einer anderen Modulationsfrequenz hat,
kann man erkennen, wenn jemand im weg steht und einfach noch mal
senden.
Das ALP würde ich auf CAN zuschneiden, denn das CAN Protokoll hat die
meisten Vorgaben. RS485 gibt kein Übertragungsprotokoll vor, man kann
es sich zurechtschneiden. Jeder Teilnehmer bekommt eine feste Adresse.
Wenn man 11 bit Adressen verwendet gibt es 2048 verschiedene Adressen.
Für ein Normales Haus müsste es gut reichen. Bei extended CAN frames
würden dann abzüglich Sender und Empfängeradresse noch 7 bit für eine
art Register- oder Portadressierung übrig bleiben. Dabei gibt es
Standartports, die jeder Teilnehmer unterstützen muss. Zu diesen
Standartports gehört ein Ping port, eine eindeutige Hardwarekennung und
die Typenkennung(gleiche Typen, die sich auch gleich ansteuern lassen,
haben eine andere Hardwarekennung). Auf einem Port würde ich ein
electronical data sheet realisieren. In ihm sind die wichtigsten
Informationen zum ansteuern des Teilnehmers gespeichert. Auf welchem
Port man was für Daten in Welchem Format Abrufen kann. Weitere
Information, wie zum Beispiel ausführliche Bezeichnungen, würde ich in
Form von "INI-Format" Dateien auf dem Computer bereitstellen.
Eine weitere Sache, die man implementieren sollte sind Broadcasts. Mit
ihnen kann man sehr schnell alle Teilnehmer auf dem Bus anzeigen. Ideal
wäre es, wenn man auch Events durch das Netzt schicken kann und jeder
Teilnehmer entscheidet, ob es für ihn wichtig ist( Wie es eigentlich
bei CAN gedacht ist). Dem I2C würde ich noch eine besondere Rolle
zukommen lassen. Da I2C andere Adressen hat( 7 oder 10 bit), die
teilweise fest vom Hersteller vorgegeben sind. Deshalb kann man diese
Geräte nicht direkt mit dem Bus verbinden. Ich denke man könnte diese
am Router zum I2C Bus als Virtuelle Teilnehmer einbinden, die spezielle
I2C Schreib- und Leseroutinen haben und allgemein angesteuert werden.
Für Bekannte Geräte( z.B. Temperaturfühler) kann man dann einen
Virtuellen Busteilnehmer einblenden der dann die Temperaturfunktionen
unterstützt. Mit Hilfe der Reservierten Adresse bei I2C für andere
Protokolle könnte man dann Pakete mit 11 bit Adressen auch durch einen
I2C Bus schleusen.

von Christian Wonschina (Gast)


Lesenswert?

ist zwar nicht exakt dass, was du realisieren
moechtest, aber vielleicht trotzdem  interessant...

http://www.hth.com/snap/

von norpo (Gast)


Lesenswert?

Hört sich im ersten Augenblick gut an.
Ich halte aber nichts von einer solchen EierlegendenWollMilchSau.
Der Code Overhead ist mir zu groß. Da muss man ja schon für kleine
Sachen einen fetten Mega nehmen.
Ich verstehe auch nicht genau wieso du die unterschiedlichen Busse
willst.Die 2 Drähte von CAN kann man überall hinlegen und somit auch
alles steuern.
Bei solchen komplexen Systemen ist auch die Fehlersuche komplex.

gruß
Norbert

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.