Es gibt eine Vielzahl von Geräten, die sich als Smart Home Geräte bezeichnen lassen. Fast ebenso vielfältig sind ihre Verbindungsmöglichkeiten. ZigBee, Bluetooth, LAN, WiFi sind nur einige davon. Aber das Thema lässt sich gut strukturieren.
LAN / RJ45
Der Kern eines jeden Smarthomes sollte ein IP-basiertes Netzwerk sein, beginnend mit dem Internet-Router. An dieser Stelle lassen sich bereits erste Geräte per Kabel anbinden. Laptops, PCs, Funkbridges und weitere Netzwerkverteiler (Switches) sind gängige Beispiele. Das IP-basierte LAN dürfe damit die einfachste Methode sein, Geräte einzubinden. Vorteile: Die Datenübertragung mittels Kabel ist sehr schnell und sehr energiearm. Nachteile: Das Verlegen der Kabel ist oft unbequem oder unschön.
Da Smart-Home-Devices oft allerdings nur geringe Datenmengen versenden, ist der Verzicht auf die hohe Übertragungsrate normalerweise unproblematisch. Dauerhaft verwendetes WLAN allerdings benötigt allerdings Energie. Das fällt bei einzelnen Geräten vielleicht noch nicht ins Gewicht, läppert sich aber bei einer Vielzahl.
USB
Daten lassen sich prima via USB übertragen. Über kurze Strecken. Vor allem dieser Punkt disqualifiziert USB für die meisten Smart Home Anwendungen. Darüber hinaus sind mir keine Geräte in dem Bereich bekannt, die USB ernsthaft als Übertragungsmittel benutzen. Lediglich als Stromversorung.
Arduino-Kompatible Methoden
Eine Vielzahl von Kabelverbindungen lässt sich nicht so einfach in unser Netz einbinden. Für diese gibt es allerdings viele kostgünstige Sensoren, also willst du vielleicht nicht darauf verzichten. Arduinos sind kleine ebenfalls kostgünstige Mikroprozessoren, an die sie solche Sensoren anschließen lassen. Arduinos selbst können dann per LAN angebunden werden, häufiger und einfacher noch mittels WiFi. In meinem Fall habe ich eine Anzahl dieser Geräte, welche mittels WiFi im Netz sind und mittels MQTT die an ihnen angeschlossenen Sensoren an meine Smart Home Zentrale kommunizieren
OneWire
1-Wire heisst so, weil über einen einzelnen Draht Daten in beide Richtungen ausgetauscht werden. Theoretisch kann über diese Leitung das Slave-Gerät auch mit Energie versorgt werden. In der Praxis werden mit zusätzlicher Stromzufuhr und Ground normalerweise jedoch insgesamt 3 Drähte verwendet.
Die maximale Reichweite liegt bei ca. 300m mit bis zu 32 Slaves.
I2C und SPI
I2C und SPI sind im Arduino-Bereich häufig verwendete Protokolle. Manchmal bieten Sensoren beides an, manchmal eines. Beide Protokolle haben ihre Anwendungsgebiete und häufig entscheidet man anhand ihrer Unterschiede, welches zu einem Bestimmten Zweck eingesetzt werden soll.
I2C | SPI | |
Leitungen | 2 +GND und VCC | 4 +GND und VCC |
Leitungslänge | abhängig von der Taktfrequenz, bis 3m allerdings habe ich mit sehr niedrigen Busfrequenzen auch bereits mehr als 25m stabil übebrückt | bis 10m |
Geschwindigkeit | 100KHz – 5MHz | 80MHz – 100MHz |
Benötigte Leistung | i.d.R. mehr als SPI | i.d.R weniger als SPI |
Störanfälligkeit | niedriger | höher |
Analoge und digitale Direktanbindung
Arduinos und kompatible Geräte haben häufig verschiedene Eingangstypen. Die primitivsten Unterscheidungen sind dabei digitale und analoge Pins. Analoge Pins messen die Spannung, die gerade an ihnen anliegt und dieser lässt sich als Wert (häufig im Intervall 0 – 1023) auslesen. Der Maximale Wert entspricht dabei der maximalen Spannung des Pins (häufig 3.3V oder 5V) und 0 eben 0V. Damit lassen sich bereits viele einfache Sensoren auswerten. Dabei besteht häufig noch ein wenig Kalibrierungsbedarf, da die tatsächliche Spannung manchmal eben nicht 5V sondern vielleicht 4,8V beträgt. Außerdem ist diese Spannung noch von der Länge des Drahtes abhängig.
Digitale Pins funktionieren genauso, allerdings setzen diese einen Schwellwert fest. Ist die anliegende Spannung über diesem Schwellwert, kann HIGH ausgelesen werden, ist sie darunter, wird LOW ausgelesen. Oft haben Sensoren nur digitale Ausgänge, manchmal digitale und analoge. Dann kann die Empfindlichkeit, wann der digitale Sender-Pin auslöst, häufig mit einem Rädchen (Potentiometer) eingestellt werden.