Historie

wie alles anfing

Ja entstanden ist das alles rudimentär so 2010, als wir in einen neue Wohnung ziehen wollten. Allerdings wollte ich die ganze aus den 50ern stammende Elektroverkabelung neu haben und es kamen auch die ersten Smart Home Ideen auf. KNX war zu teuer aber mal sehen was es so Open Source gibt, Da stieß ich auf ein Projekt iSysBUS. Das basierte auf intelligenten Knoten die über den aus der KfZ Technik bekannten CAN Bus. Zu dieser Zeit gab es zwei fertige Knoten den DevNode und und den TopRailNode, passend in ein auf standard DIN Hutschiene montierbares Gehäuse. Ersterer hatte neben dem CAN Interface eine serielle Schnittstelle zur Kommunikation mit dem PC und letzter hatte 8 optronisch entkoppelte Eingänge (für Taster, Schalter etc.) sowie 8 ebenfalls optronische entkoppelte Ausgänge (zum schalten von Relais) und natürlich ein CAB Bus Interface.

Auf den Knoten war ein damals gängiger kleiner ATMega verbaut, die Software in C geschrieben. Auf der PC Seite war ein Java Programm über das die Knoten initialisiert wurden bzw. deren Konfiguration eingestellt werden konnte. Das System selbst lief ohne PC, das die Knoten selbst ihre Konfiguration im EEProm hatten, auch ein Softwareupdate vom PC über einen CAN Bootloader war möglich.

Für die beiden Knoten konnte man professionell gefertigte Platinen kaufen und selbst bestücken und in Betriebe nehmen. Leider gab es noch keinen geplanten Knoten der in eine 55er Unterputzdose passte. Mehr als ein fehlerhafter Prototyp wurde es auch nicht mehr.

Da ich nicht warten konnte wollte habe ich die Leitungen zu den Schalterdosen sternförmig verlegt, wenn man ein hin und einen Rückleistung einplant, hat man trotz Stern einen Bus den CAN benötigt. Bis der Knoten für die 55er Dosen kam, konnte ich so direkt Schalter und Taster anschliessen und über die Eingänge die Relais für  Licht, Rollos etc. schalten. So blieb es dann auch. Das Projekt schlief halbfertig ein. Die Software PC seitig in Java (ist eh nicht mein Ding) extrem Modular, extrem unübersichtlich, schlecht zu installieren, da nur innerhalb der ECLIPSE lauffähig. Die C Software dto. Mager dokumentiert, total überkandidelt flexibel, modular. Trotz intensiven Bemühens kein Durchblick.

Aber lief stabil, das muss man anerkennen.

Die Idee

Dann war es mal wieder soweit, ein neuer Umzug stand an. Logischerweise sollte auch die neu Wohnung zum Smart Home werden.

Gesetzt waren CAN Bus (ich mag kein WLAN für solche Dinge), ebenso die Sternverkabelung, da Betrieb auch ohne Elektronik möglich, d.h. Schalter in den U-Putz Dosen, die Relais direkt schalten könnten. Eine zentrale Stelle im Unterverteiler an der alle Verbraucher (Lichter und Rollos, die Steckdosen habe ich diesmal nicht mit einbezogen) kommen am Unterverteiler an und werden über Relais geschaltet. In einem zweiten Unterverteiler ist eine Zentrale Platine auf der alle Bus Leitungen zusammen laufen und ein Mikrocontroller über IO Extender (PCF8574) die Relais steuert.

Sonstige Hardware, Arduino Nanos, a günstig, klein, gut mit der Arduino IDE auf beliebiger Plattform zu programmieren sowie einen Raspberry PI als LAN/WLAN Anbindung.

Näheres zu Hardware

Hier hatte ich 2 Vorgaben.

a) günstig und vermutlich langfristig verfügbare Standardbaugruppen.

b) Open Source IDE

Da ich mit dem Arduinos schon einige kleine Projekt gemacht hatte und der Arduino Nano, sowohl sehr günstig ist und über ausreichend Schnittstellen und gut Softwareunterstützung vorhanden ist fiel de Wahl leicht. Ferner  sollte alles so modular und flexibel wie möglich sein. Es entstanden in der Folge 3 Platinen.

"Node Basis", eine runde Platine die in die U-Putzdose passt und unten einen Sockel mit langen Beinen für den Arduinio hat sowie den Stecker zum CAN Bus und den DC-DC (12V > 5V) Wandler. Hinzu kommen der CAN Controller mit Quarz un der CAN Bustreiber (beides SMD) und Blockkondensatoren. Auf der Oberseite kann nun eine Huckpackplatine gesteckt werden die alle Arduino NANO Anschlüsse verfügbar hat. Somit eignet sich die Basisplatine auch als beliebiger CAN Knoten.

"Node Taater" eine ebenfalls rund ePlatine die eine U-Putzdose abdeckt und am Rand  4 Löcher wie die U-Putzdosen hat. Mit Sockeln auf der Unterseite kann diese auf die "Node Basis" gesteckt werden. Oben können wahlweise 4 oder 1 Standard 12mm Taster aufgebaut werden, zusätzlich ist ein I2C Anschluss für Display etc. vorhanden und es ist ein Anschluss für einen DHT 22 alternativ eine DS18B20. auch 4 2 farbige LEDs (mittels PWD dimmbar sind vorhanden. Gleichzeit betrieben werden können, die 4 Taster, die 4 (8 wenn man beide Farben rechnet) LEDs die i2c Schnittstelle und einer der Sensoren.

Ein entsprechende Abdeckung kommt aus dem 3D Drucker.

"Node Center" ist eine größere Platine mit 12V > 5V DC-DC Wandler 10 CAN Schnittstellen, via Portextender 32 I/O Kanälen einer RTC (I2C) einem Display Anschluss (I2C) und einem CAN Interface, Ein 2 CAN Interface mit Pegelwandlern 5V <-> 3,3V stellt die Verbindung zum PI her, der auch darüber mit 5V versorgt wird.

Es können bei Bedarf mehrere solcher Zentralen implementiert werden.

Käufliche Relaisplatinen schalten die Verbraucher.

Maximale Anzahl an knoten bei der aktuellen Adressierung 254, Gruppen können zusätzlich adressiert werden.

Ein RASPI ebenfalls als CAN Knoten bietet die Öffnung zur Außenwelt.

Software Grundsätzliches

Wichtig war mir hier alles muss ohne WLAN funktionieren, Erweiterung sollen jedoch möglich sein.

Die Software für alle Konten ist identisc.h Unterschiede in Hardwareausstattung, d.h. Anzahl und Art Taster (Auch verschieden Schalter bzw. Umschalter wären möglich), Anzahl und Art der LEDs, der Sensoren, des Displays, RTC, Expander wird über eine im EEPROM liegende Tabelle gesteuert, Die Tabelle ist über den Bus modifizierbar. Somit muss nur ein Softwarestand gepflegt werden. Es können somit auch fertige programmierte Arduinos als Ersatzteil vorgehalten werden, denen nur noch die Node ID und die Konfiguration mitgeteilt werden muss. Programmerstellung und Programmierung der Arduinos erfolgt über die Arduino IDE.

Die CAN Schnittstelle auf dem RASPI wird mittels Python angesteuert. Es gibt Pythonprogramme zu Auslesen als auch schreiben der Konfiguration als auch der Node IDs, zu stellen der RTC, ein PING zum checken der Knoten etc. Weitere Python Programme können Statis der Knoten abfragen bzw. Funktionen starten. Somit ist über den PI die Verbindung zur Außenwelt, Intratnet, Internet, PC, Smartphone etc. möglich. über ein CAN MQTT Gateway erfolgt die Anbindung an den Homeassitant.

Schaltpläne und Layouts gibt es hier zum Daownload

Hardware
Software