Raspberry Pi 2 Home Automation mit Windows 10 IoT Core: Komplettanleitung
Komponenten und Zubehör
| Raspberry Pi 2 Model B | × | 1 |
| HSRel5 – I²C-Relaisplatine (5 Relais, 3 GPIO, PCF8574) | × | 1 |
| HSRel8(+8) – 8-fach Relaisplatine (8 Relais, 8 GPIO, MAX7311) | × | 1 |
| I2C-Port 16 HS – 16-Bit Port Expander (MAX7311) | × | 1 |
| DR-60-12 Hutschienen-Netzteil 12 V / 54 W | × | 1 |
| Hutschienen-Netzteil 5 V / 3 A (MeanWell DR-30-5) | × | 1 |
| Prototyping Shield für Raspberry Pi (Status-LED, Interrupt-Eingang, Schraubklemmen) | × | 1 |
| I2C-Buffer HS (P82B96 Level-Shifter + Pull-ups) | × | 1 |
| Arduino Nano R3 (I²C-Slave für DHT22-Sensoren) | × | 1 |
| 433 MHz Sender & Empfänger (für Funk-Relais) | × | 1 |
Software und Dienste
Projektübersicht
Update 2: Projekt wächst stetig (Twitter-Client, Telegram-Bots). Details im GitHub-Repo und Releasenotes.
Update 1: Danke für Feedback! Projekt auf Maker Faire Rome 2015 & Microsoft Technical Summit 2015 vorgestellt.







Seit 3 Jahren Entwicklung einer kompletten Hausautomation: Hardware-Installation (230 V Verkabelung durch Elektriker) und Software (Windows 10 IoT Core auf Pi 2).
Features
Eingänge (Inputs)
- Taster (Busch-Jaeger 2020US)
- Bewegungsmelder (Abus 360° BW8085)
- Raumtemperatur (Eigenbau DHT22)
- Luftfeuchtigkeit (Eigenbau DHT22)
- Fensterzustand (Reed-Kontakt Honeywell Slimline)
- Sonnenauf-/untergang, Außentemperatur & -feuchte (OpenWeatherMap)
Ausgänge (Outputs)
- Deckenlampe (Relais, kein Dimmen)
- Steckdose (Relais, kein Dimmen)
- Rollladen (2 Relais für Auf/Ab)
- Deckenventilator (3 Relais für Stufen)
- Badlüfter (2 Relais für Stufen)
Weitere Funktionen
- Web-App für iOS, Android, Windows, macOS (Konfiguration wird vom Controller geladen)
- Event-Logging zu Microsoft Azure Event Hub und/oder CSV
- UDP-Tracing für Debugging (Konsolen-App)
- Benutzerdefinierte Aktoren erweiterbar
- Physische Ausgänge zu logischen Gruppen kombinierbar
- Animationen für logische Ausgänge
- Hohe Ausfallsicherheit: Teilsysteme funktionieren unabhängig
- Unterstützung 433-MHz-Funkrelais
Das Konzept
Alles wird vom Verteilerkasten aus über Relais geschaltet. Jeder Taster, jede Lampe, jeder Rollladen hat ein eigenes Kabel zum Verteiler. Kein Bussystem (KNX/EIB) nötig. Hinweis: Installation 230 V durch Fachmann!
Hardware-Details
Der neue Verteilerkasten



Der I²C-Bus (optimiert für lange Leitungen)
- Bus auf 5 V betreiben → Level-Shifter P82B96 direkt am Pi (kurzes Kabel).
- Verdrilltes Paar (CAT7): ein Paar für SDA+GND, eines für SCL+GND. Schirmung auf PE.
- Litzenkabel bevorzugen (bessere HF-Eigenschaften).
- Am Busende 10 kΩ Pull-ups für SDA & SCL.
- Busgeschwindigkeit auf 100 kBit/s begrenzen (Standard Mode).
- I²C-Buffer (P82B96) in Busmitte als Repeater/Segmentierung.
So lassen sich alle Platinen im Verteiler zuverlässig anbinden.
Relaisplatinen (Ausgänge)
CCTools (Deutschland) liefert I²C-Relaisplatinen. HSRel5: 5 Relais + 3 GPIO über PCF8574 (8 Bit). Relais brauchen 12 V → Treiber (ULN2803) + Inverter nötig, da PCF8574 nach Power-On HIGH ausgibt (Relais würden ungewollt einschalten). Logik: LOW am Port → Relais AN. HSRel8(+8): MAX7311, 8 Relais + 8 GPIO, kein Inverter nötig (HIGH = AN). Unterschied wird im Treiber behandelt. Adressierung: PCF8574 (8 Adressen) + PCF8574A (weitere 8) → max. 16 HSRel5 am Bus.

Port-Expander (Eingänge)
I2C-Port16 HS (MAX7311) mit 16 Eingängen, 10 kΩ Pull-ups (5 V), 100 nF Keramikkondensatoren als Glitch-Filter. Jedes Eingabegerät (Taster, Melder, Reed) hat eigenes CAT7-Kabel (Schirm auf PE). Mehrere Taster an einer Stelle teilen sich ein Kabel. Gemeinsamer Interrupt-Draht (Pull-up) verbindet alle Eingangsplatinen: Zustandsänderung zieht Interrupt auf LOW → Pi pollt nur bei Interrupt, nicht kontinuierlich.

Raspberry Pi 2
Läuft unter Windows 10 IoT, im Verteilerkasten montiert (Custom Case). Prototyping Shield mit Status-LED, Interrupt-GPIO (10 kΩ Pull-up, 1 kΩ Schutz, 100 nF Filter), Schraubklemmen für alle Leitungen.



Temperatur- & Feuchtesensoren (DHT22)
10 Sensoren (DHT22) an Arduino Nano als I²C-Slave. Nano liest alle 2,5 s alle Sensoren (proprietäres 1-Wire-Protokoll, keine Adressierung) und cached Werte. Pi liest per I²C Register-artig (Port-ID 0–10). Anzeige in Web-App: zwei Ansichten, Schimmelrisiko-Indikator bei Feuchte (>70 % rot, >60 % gelb, sonst grün).




Hardware-Aufbau im Verteiler


433-MHz-Funkrelais
Sender (FS1000A) im Gehäuse mit DHT22-Sensoren, 12 V für höhere Reichweite. Arduino Nano sendet Codes. Problem: Funkrelais senden keinen Status zurück → Software synchronisiert alle 5 s. Codes werden manuell über einen separaten Arduino-Sketch (RemoteCodeFinder) ausgelesen und in Konfiguration übernommen.


Digitales Katzenklo
Katzenklo an ungenutztem Schornstein mit Lüfter (Relais). Bewegungsmelder erkennt Katze → Lüfter läuft einige Minuten. Web-App zeigt eigenes Symbol, manuelle Steuerung möglich. Logs ermöglichen Analyse der Nutzungsintervalle.






Software-Architektur
Ursprünglich .NET Micro Framework auf GHI G120 (120 MHz, 16 MB RAM) – zu langsam. Migration auf Windows 10 IoT Background Task + Azure-Integration. Repository: CK.HomeAutomation (VS2015 Solution).
Projektstruktur
- App: Web-App (AngularJS, jQuery, Bootstrap)
- Controllers: Startup-Projekte (IoT Background Tasks), z. B.
CK.HomeAutomation.Controller.Emptyals Vorlage - SDK: Shared Libraries


Wichtige SDK-Projekte
- CK.HomeAutomation.TraceViewer: Konsolen-App für UDP-Trace (Port 19227 Firewall).
- CK.HomeAutomation.Networking: HTTP-Server (JSON-API, Web-App Hosting). Web-App-Inhalte per SMB in
\\\[IP\]\c$\Users\DefaultAccount\AppData\Local\Packages\CK.HomeAutomation.Controller-uwp_p2wxv0ry6mv8g\LocalState\appkopieren. - CK.HomeAutomation.Controller.*: Je Controller ein Startup-Projekt. Setup per PowerShell (
SetupRaspberryPi.ps1, IPs anpassen!). - CK.HomeAutomation.Actuators: Hohe Abstraktion: Home, Rooms, Aktoren (Taster, Lampen, Rollläden…) mit Fluent-API für Konfiguration.
- MotionDetector, Button, BinaryStateOutput (Socket/Lamp), CombinedBinaryStateActuator, StateMachine (Lüfterstufen, Moods), Temperature/HumiditySensor – alle als Aktoren mit Events/Methoden.








Automationen
- AutomaticTurnOnAndOff: Trigger (Taster/Bewegungsmelder) → AN für Dauer X, optional Zeitfenster (Tag/Nacht via Wetterstation).
- AutomaticRollerShutter: Sonnenauf/untergang (Wetterstation), Außentemperatur (z. B. Dachfenster zu bei >28 °C), Positionsverfolgung über Zeit.
- AutomaticConditionalOn: Mehrere Binärausgänge AN solange Bedingungen passen (z. B. Gartenlicht nur nachts).
- Generische Automation & Conditions: Beliebige Aktionen bei Triggern (Taster, Intervall, Code) wenn Bedingungen erfüllt.






Wetterstation
Virtuelle Wetterstation via OpenWeatherMap API (alle 60 s), Interface IWeatherStation für einfache Einbindung physischer Stationen.
Hardware-Treiber (CK.HomeAutomation.Hardware)
Treiber für CCTools-Relais/Input-Boards, 433-MHz-Schalter, Arduino Nano (Sensor-Bridge & 433-MHz-Sender). Abstraktion über Interfaces für einfache Erweiterung.
Telemetrie (CK.HomeAutomation.Telemetry)
- CSV-Logger: Jeder Zustandswechsel in
BinaryStateOutputActuatorChanges.csv(per SMB abrufbar). - Azure Event Hub Publisher: Zustandsänderungen & Sensorwerte an Azure Event Hub → Stream Analytics → Azure SQL → Power BI Reports.



Web-App
Projekt CK.HomeAutomation.App (AngularJS, jQuery, Bootstrap). Raumkonfiguration wird vom Pi geladen, UI dynamisch erzeugt. Configuration.js für IP, Übersetzung, Icons. Als Datei oder auf Webserver (z. B. BananaPi + nginx) hostbar. Homescreen-Icon unter iOS nur bei Webserver-Hosting möglich.





Terminal
Altes iPad 3 im Wohnzimmer als Wand-Tablet.

Zukunftspläne
- IR-Aktoren (RGB-Strips)
- XML-Konfiguration neben Code
- Dedizierte Tablet-App
- Reed-Schalter für Fensterzustand in Web-App
- Treiber für Fremdhersteller (433 MHz)
- Heizungsventilsteuerung (Ausgänge & Temp.-Lesen schon da)
- Alarmsystem (Bewegung, offene Fenster)
- Hardware-Wetterstation
- Rollläden zu bei Regen & offenem Fenster
- Mehr Unit Tests, Wiki-Doku, Animationen (portieren von NETMF)
Mitwirkung erwünscht! Kontakt bei Interesse (Hardware, Software, Doku).
Code
Komplettes Repository: https://github.com/chkr1011/CK.HomeAutomation.git
Schaltpläne
- Schaltung zum Auslesen von 433-MHz-Fernbedienungscodes
- DHT22-Sensorplatine (pro Raum)
- Pi-Shield (Status-LED, I²C, Interrupt, Schraubklemmen)
- Kombi-Sensor: DHT22 + 433-MHz-Sender (zentral, eines pro Haus)




Herstellungsprozess
- Raspberry Pi Temperaturlogger mit 5 $ I2C Sensor bauen
- Remote-Wetterüberwachung mit Raspberry Pi 3 & PubNub
- TI SensorTag mit Blynk via Node-RED auf Raspberry Pi Zero integrieren
- LED mit PIR-Bewegungsmelder am Raspberry Pi steuern
- Heimtemperatur mit Raspberry Pi Dashboard überwachen
- Herzfrequenz mit Windows 10 IoT Core auf Raspberry Pi auslesen – Schritt-für-Schritt-Anleitung
- Raspberry Pi Home Automation System für Fernsteuerung bauen
- Adafruit 10DOF IMU Daten von Raspberry Pi 2 an Azure Event Hubs senden (Windows 10 IoT Core)
- Präzise Temperatur- & Feuchtigkeitsüberwachung mit SHT15 unter Windows 10 IoT Core
- Windows 10 IoT Core auf Raspberry Pi 3 Model B+ installieren – Schritt-für-Schritt