Hallo,
wir sind vor ein paar Wochen in unser neu gebautes Einfamilienhaus eingezogen. Beim Neubau ist SmartHome für viele noch kein Thema und damit sind die Möglichkeiten schwierig zu sondieren. Dazu kommt das es aktuell kein System gibt das alle meine Anforderungen erfüllt und durch die geschlossenen Systeme die oft an einzelnen Herstellern hängen, auch die Zukunft nicht sicher ist.
Aus den genannten Gründen habe ich mich dafür entschieden mir entsprechende Schnittstellen schaffen zu lassen und die SmartHome Steuerung selbst zu bauern und programmieren.Für die Konzessionierung benötige ich aber noch ein paar Tipps.
Die SmartHome Software habe ich komplett selbst entwickelt und bin daher an keine vorgegebenen Schnittstellen gebunden. https://github.com/agent4788/SmartHome
Gegebenheiten:
- alle Aktoren werden mittels 24 V DC gesteuert
- alle Lampen werden durch einen Bistabilen Stromstoßschalter gesteuert (alle Lichtschalter sind Taster)
- Rollläden werden über zweit Taster pro Rollladen gesteuert
- Pro Stockwerk gibt es eine Unterverteilung mit allen Aktoren des Stockwerkes
- Optional kann später die Fußbodenheizung ebenfalls gesteuert werden
Zuerst hatte ich den Controllino im Auge. Aufgrund der Anzahl der benötigten Ein-/Ausgänge würde ich vier Controllino MEGA benötigen (für ~ 1 300 €). Daher habe ich mich entschlossen ein Konzept für eine eigene Steuerung, ebenfalls auf Arduino Basis, zu erarbeiten.
Anforderungen:
- Grundfunktionen und einfache Komfortfunktionen müssen auch ohne Verbindung zum SmartHome Server funktionieren
- Der Status aller Aktoren muss auch bei Neustart des Controllers erhalten bleiben
- Der SmartHome Server muss mit der Steuerung interagieren können (Tasten Drücke erkennen, Licht Ein/Aus, Rollo Auf/Zu)
- Es sind verschiedene Zeitliche Limits zu beachten
- Die Rollladenmotoren sollten per Relais angesteuert werden und dürfen niemals in beide Richtungen gleichzeitig angesteuert werden
- Alle Netzwerkkommunikation soll über Kabel laufen
Nun steht zuerst die Frage nach dem Controller selbst. Hier habe ich einen Arduino Due vorgesehen. Er hat von Haus aus viele Schnittstellen und fast unbegrenzt Speicher und Power. Dazu ein Ethernet Shield und entsprechende Platinen für die Porterweiterungen.
Hier kommen wir dann zu den eigentlichen Fragen.
Anzahl der Ein-/Ausgänge:
Um die nötige Anzahl der Ein und Ausgänge zu erreichen würde ich MCP23017 IC's verwenden (5 oder 6 Stück).
Bei den Eingängen konnte ich leider keine Zufriedenstellende Lösung zur Verwendung mit den 24 V der Taster finden. Kann mir dazu jemand einen Tipp geben (am besten mit IC's um den Aufwand gering zu halten).
Für die Ausgänge habe ich bei den Stromstoßrelais ULN2803A IC's angedacht, die dann direkt 24 V Ausgeben. Die Stromstoßrelais benötigen laut Datenblatt zum Schalten etwa 8 Watt für 100 ms.
Die Ausgänge für die Rolläden würde ich mit den allgemein erhältlichen Relais Platinen ausstatten. Da bin ich mir nur nicht sicher ob dazu auch noch einmal ULN2803A IC's notwendig sind (da der Due mit 3V3 Volt arbeitet und die Relais eigentlich immer mit 5 V).
Kommunikation mit dem SmartHome Server:
Für die Kommunikation mit meinem SmartHome Server habe ich an Sich eine einfache REST Schnittstelle angedacht. Ein Webserver ist auf dem Arduino mittlerweile kein Hindernis mehr. Allerdings benötigt meine Test Applikation auf dem Steckbrett für eine Lampe und Eine Rolladen schon ~ 50 ms für die Antwort an den SmartHome Server. Wenn ich dann davon ausgehe das insgesamt etwa 30 Aktoren pro Stockwerk zu steuern sind. Habe ich die Befürchtung das der Controller dann mehr mit den Anfragen vom SmartHome Server beschäftigt ist, als mit seinen eigentlichen aufgaben.
Eine Alternative dazu währe wohl MQTT? Damit habe ich aber keinerlei Erfahrung.
Speichern des Status:
Da der Arduino Due über keinen intigrierten EEPROM verfügt, habe ich jetzt einfach den EEPROM in der DS3231 RTC Platine aktiviert. Das hat gleich noch den Vorteil das man den EEPROM bei einem defekt einfach und günstig austauschen kann.
Ich hoffe ihr könnt mir ein paar Tipps geben. Der aktuelle Stand der Controller Software ist auf GitHub zu fineden:
https://github.com/agent4788/SmartHomeController