Smart Home 2021

Diesen Artikel plane ich bereits seit einigen Jahren, aber irgendwie habe ich ihn nie geschrieben, weil es immer Pläne gab, es bei Gelegenheit mal wieder zu überarbeiten. Wenn es doch mal „kurz fertig“ war, dann fehlte die Zeit für einen Artikel. Nun habe ich endlich die Zeit gefunden etwas über mein Smart Home zu schreiben.

Überblick

Mein Smart Home nutze ich für die Steuerung von Lichtern, einigen Steckdosen, Heizung und unserem Rollo. Dazu hat es diverse Sensoren. Neben Temperatur und Luftfeuchtigkeit messe ich auch CO2, Feinstaub, Helligkeit und Lautstärke. Dazu habe ich auch Tür und Fensterkontakte und einen „Leak Sensor“ habe ich unter der Waschmaschine liegen für den Fall, dass dort irgendwas undicht ist. Gesteuert wird das ganze nicht nur über die Weboberfläche, sondern auch über diverse Schalter im Haus. Dabei habe ich mich bewusst gegen Sprachassistenten entschieden und setze wo ich kann auf offene Standards und Open Source Software.

Das Herz

Im Zentrum setze ich immer noch auf Home Assistant um alle Komponenten miteinander zu verbinden. Home Assistant läuft zusammen mit Mysql, Grafana, Influxdb und einen MQTT Broker auf einem virtuellen Server auf meinem Router. Zusätzlich habe ich einen Raspberry der über einen Phoscon ConBee 2 Stick diverse Zigbee Geräte steuert und über einer RaspiMatic Instanz Homematic Geräte anspricht. Ich habe eine Zeit lang auf einige Z-Wave Geräte gesetzt, doch die habe ich inzwischen ausgemustert.

Zigbee-Geräte

Leuchtmittel setzte ich fast nur von Philips Hue ein. Hauptsächlich sind das E27 Glühbirnen und LED Lightstrips. Ich habe auch einige E14 Glühbirnen von Tint im Einsatz. Ich habe auch zwei Osram PowerPlugs im Einsatz. Den ersten nutze ich für unsere ganzjährige „Weihnachtsbeleuchtung“ ein und den zweiten nutze ich, um den Bluetooth Musik Receiver für meine Stereoanlage bei Bedarf einzuschalten. Auch zwei Tür und Fensterkontakte, einen Feuchtigkeitsalarm und einen Vibrationssensor von Aqara habe ich im Einsatz. Beim Vibrationssensor suche ich aber noch nach einer sinnvollen Aufgabe. Ich habe auch ein Ikea Fyrtur Rollo im Einsatz. Ganz neu in der Zigbee Famile ist ein Danfoss Ally Thermostat, dass ich gerade ausprobiere. Zusätzlich setze ich auf Philips Hue und Ikea Zigbee Schalter, um die Geräte auch noch analog zu steuern.

Homematic-Geräte

Momentan habe ich drei Homematic Thermostate und drei Homematic Tür und Fensterkontakte im Einsatz. Generell empfinde ich die Homematic Software als sehr „Altmodisch und Unflexibel“, auch wenn ich sie über Home Assistant steuere. Deswegen arbeite ich bereits daran diese Geräte durch Zigbee Geräte zu ersetzen.

Alle anderen Geräte

Meine Lindy IPowerStrip 4 Steckerleiste schalte ich über SNMP und steuere damit PC, zweiten Monitor, Drucker und überwache den Stromverbrauch von all diesen Geräten und den Router und Smart Home Steuerungsgeräten. Dann habe ich eine Netatmo Wetterstation, die mir diverse Sensoren bietet. Da mir diese Station nicht genug Möglichkeiten bot und immer nur über den Umweg über das Internet alle 5 Minuten neue Werte liefert, habe ich eine eigene Wetterstation gebaut.

Die eigene Wetterstation

Meine Wetterstation setzt auf einen ESP32 Microcontroller. Ich nutze folgende Bauteile für die folgenden Aufgaben:

  • BH1750 Lichtsensor für die Messung der Helligkeit
  • BME680 Sensor für die Messung von Luftdruck und einen Raumluftqualitätsindex
  • SCD30 Sensor für die Messung des CO2 Gehalt in der Luft
  • SDS011 Sensor für die Messung von Feinstaubwerten
  • MAX9814 Sound Sensor für die Messung der Lautstärke
  • 3400 RF Transmitter und Receiver für die Steuerung einiger „alter“ 433 Mhz Schalter und Steckdosen (im Moment nicht mehr im Einsatz)

Die Daten der Wetterstation werden einmal auf einem E-Ink Display direkt ausgegeben und zusätzlich über MQTT an Home Assistant weitergeleitet.

Automatismen

Natürlich ist ein Smart Home ohne Automatismen nicht wirklich smart. Ich habe einige Routinen, die mir den Alltag durchaus erleichtern. Dazu gehören nicht nur Lichtschalter, die gleichzeitig mehrere Räume schalten können, oder die „Master“ Fernbedienung meiner Freundin, mit der sie vom Bett aus, das Rollo hoch und herunterfahren und gleichzeitig das Licht im ganzem Haus ausschalten oder nur im Schlafzimmer gedimmt ein und ausschalten kann, sondern auch einige selbstständige Schaltautomatiken:

  • Die Steckerleiste meines PCs erkennt selbstständig, wenn der PC nicht mehr genutzt wird und schaltet ihn und die Stereoanlage ab.
  • Wird die Außentür geöffnet, schaltet sich das Licht im Flur ein und nach 4 Minuten wieder aus
  • Das Rollo öffnet sich werktags morgens automatisch
  • Alle Heizungen regeln sich herunter, sobald ein Fenster geöffnet wird und regeln sich wieder hoch, sobald alle Fenster wieder zu sind
  • Es gibt diverse Discord und HTML 5 Popup Nachrichten, zum Beispiel, wenn die Luftqualität im Wohnzimmer sehr niedrig ist, gibt es einen Hinweis, dass gelüftet werden sollte.
  • Auch bei leeren Batterien, gibt es eine Benachrichtigung in der Home Assistant Webapp und in einem Discord Channel.
  • Unsere Weihnachtsbeleuchtung schaltet sich zu bestimmten Zeiten selbst ein und wieder aus
  • Eine Regel, die das Licht am Schreibtisch automatisch einschaltet, wenn der PC mit dem zweiten Monitor läuft und es sehr dunkel im Raum ist, wird zurzeit gerade getestet

Ersetzte Komponenten und Zukunftspläne

Lange Zeit habe ich auch auf Z-Wave Geräte gesetzt. Dort war allerdings bei den Thermostaten ein großes Delay, bis Änderungen übernommen wurden. Auch die Installation von Z-Wave war zu dem damaligen Zeitpunkt ziemlich aufwändig, weshalb ich es durch Homematic Geräte ersetzt habe. Zu dem damaligen Zeitpunkt gab es keine Zigbee Thermostate. Gleichzeitig bin ich allerdings von einer Philips Hue Bridge zum Phoscon Conbee II Stick gewechselt, um meine Zigbee Geräte zu verwalten. Phoscon bot gegenüber der Hue Bridge die Möglichkeit einzelne Zigbee Schalter mit eigenen Funktionen zu belegen. Die wenigen 433-Mhz Geräte, die ich im Einsatz habe, arbeiten leider nicht immer ganz zuverlässig. Das liegt auch daran, dass meine Wetterstation, die das Signal verarbeitet, keine Signale annimmt, während sie ihren E-Ink Display neu bespielt. So kann das Schalten eines Schalters gelegentlich verloren gehen. Da die Signale auch je nach Schalter mehrfach gesendet werden, kann man über diese Schalter keine Toggle Funktion abbilden. Deswegen habe ich diese Schalter zum großen Teil bereits ersetzt. Dazu habe ich gerade Telegram (weil der Messenger mir unsympathisch ist) durch Discord und HMTL 5 Push Benachrichtigungen ersetzt.

Momentan bin ich dabei, die Türkontakte und die Thermostate auf Zigbee umzustellen und Homematic langsam auszumustern. Homematic hat mich nach einem Raspberry Update schon einmal im Stich gelassen und ist auch so schnell überfordert, wenn es mehrere Signale gleichzeitig über Home Assistant geschickt bekommt. Da mir dieses System auf dem Raspberry in Kombination mit Home Assistant etwas zu wackelig ist, wird es ersetzt. Damit wechsle ich zum größten Teil auf Zigbee Komponenten für mein Smart Home. Ob ich damit weiterhin gut fahre, berichte ich beim nächsten Smart Home Blogeintrag.

Smart Home Umsetzung Part II

Es ist so weit, ich habe wieder etwas an meiner Smart Home Lösung gewerkelt. (Konzept) (Part I)

Home AssistantArduino NodeMCU

Ich habe meinen Arduino durch einen NodeMCU ausgetauscht, welchen ich aber auch über die Arduino IDE programmiere. Der NodeMCU hat um einiges mehr Speicherplatz und Rechenpower, welche mir größere Software erlaubt. Zudem kann ich ihn über W-Lan anbinden, was es mir möglich macht, ihn auch weiter weg von einem Switch einzusetzen. Man kann ihn zudem direkt auf ein Steckboard setzen und er kostet nur 4€. Zudem würde ich den Arduino gerne für ein Robotic Projekt nutzen über das ich bei Gelegenheit noch einmal schreibe. Ich habe den NodeMCU zusätzlich um einen Helligkeitssensor erweitert. Meinen ursprünglich geplanten Klatsch Sensor, habe ich verworfen, da Frido, unser Hund beim Klatschen angelaufen kommt.

NodeMCU Smart HomePhilips Hue

Eigentlich wollte ich es vermeiden Philips Hue zu kaufen, da diese ziemlich teuer sind. Trotzdem habe ich mir jetzt eine Basis, 3 bunte Lampen, 3 Dimmschalter, eine einfache Dimmlampe und eine Osram Lightify E14 Lampe gekauft. Alles lässt sich problemlos über die Hue Bridge betreiben. Die Hue Bridge lässt sich zudem einwandfrei mit Home Assistant verbinden. Man kann auch über Home Assistant die Farbe der Lampe einstellen und die einzelnen Lampen dimmen. Die Dimmschalter von Philips funktionieren zudem sehr gut und sind praktisch zu bedienen.

433 MHz

Ich habe mir drei Doppelschalter, einen Fensterkontakt und einen Bewegungsmelder gekauft, welche 433 MHz einsetzen. Die Schalter verwende ich als Lichtschalter für die Philips Hue Lampen. Die Reichweite dieser Schalter ist leider sehr begrenzt und sie senden erst ein Signal aus, was ich nicht wirklich verarbeiten kann. Deshalb reagieren diese Schalter nur mit einer kleinen Verzögerung. Einer der drei Schalter kann gar nicht von meinem NodeMCU verarbeitet werden, was den Schalter für mich praktisch nutzlos macht. Der Fensterkontakt klebt bei mir an der Tür. Dort sendet er ein Signal wenn die Tür geöffnet wird, allerdings nicht, wenn sie geschlossen wird. Trotzdem lässt sich in Kombination mit Home Assistant sehr gut das Licht im Flur anschalten, wenn die Tür sich nach Sonnenuntergang öffnet.

Steckerleiste

Ich habe eine Lindy IPower Strip 4 als Steckerleiste für meinen PC. Leider habe ich die Version 1, welche kein IPv6 beherrscht und zudem nur die Stromstärke misst. Mithilfe von dem Ampere Wert kann ich mir zwar einen ungefähren Watt Verbrauch ausrechnen und sehen wie viel Last auf der Steckerleiste liegt. Das reicht zwar aus, um den Stromverbrauch ungefähr zu schätzen, allerdings hätte ich es gerne genauer gehabt, da einige Berechnungen in Grafana nicht so richtig Sinn ergeben mit einem von Ampere aus umgerechneten Wert. Die neue Version, die knapp 3 Monate nachdem ich die alte Version gekauft hatte, herauskam, hat genau diese Schwächen nicht. Diese Steckerleiste ist allerdings zu teuer, um sie ein zweites Mal zu kaufen. Ansonsten funktioniert die Steckerleiste sehr gut. Ich kann sie einwandfrei über SNMP mit Home Assistant schalten und den Ampere Wert auslesen.

Grafana

Smart Home Umsetzung Part I

Da ich im Moment gerade freie Zeit habe, habe ich mich etwas weiter mit meinen Smart Home Überlegungen auseinandergesetzt.

Home Assistant, Influx DB und Grafana

Auf meinem Raspberry habe ich Home Assistant, einen SNMP Client und Mosquitto installiert. Das funktionierte soweit einwandfrei und die einzelnen Komponenten spielen auch gut miteinander zusammen. Um Grafana und Influx DB auf den Raspberry zu installieren, musste ich etwas mehr Aufwand in Kauf nehmen. Es gelang mir mithilfe der Informationen, die ich auf einem Blog fand. Home Assistant bekommt über SNMP und über MQTT zurzeit die meisten Daten. Um den Datendurchsatz des Switches, den ich habe, zu überwachen, lese ich ifInOctes und ifOutOctets über SNMP aus. Diese Werte sind aber ziemlich kryptisch und sagen mir so nicht viel. Deshalb habe ich mir die benutzte Bandweite mit folgender Query in Grafana visualisieren lassen (Quelle) :

SELECT 8 * derivative(mean("value"),1s) AS "value" FROM "sensor.network_in"  WHERE  $timeFilter GROUP BY time($interval) fill(none)

Damit wurden mir dann einfache lesbare Grafen generiert:

Grafana Network Traffic SNMP

Arduino

Ich nutze einen Arduino Uno mit Ethernet Shield. Zusätzlich habe ich einen 433 MHz Sender und Empfänger, einen DHT11 Temperatur- und Luftfeuchtigkeitssenor und einen DS18B20 Temperaturfühler an das Arduino angeschlossen. Der Datenaustausch mit Home Assistant erfolgt über das MQTT Protokoll (Ich nutzte diese Implementation). Auch das Empfangen von Befehlen funktioniert über MQTT einwandfrei.

Arduino 433 MHz

Intertechno Funksteckdose ITLR-3500T mit Arduino mit 433 MHz steuern:

Ich nutze dafür die RCSwitch Library. Hierbei hatte ich lange Probleme. Die Funksteckdose wolle meine Signale nie akzeptieren und reagierte nicht. Ich habe sogar getestet, ob meine Hardware überhaupt in Ordnung ist. Nachdem ich eine Weile recherchiert hatte und schließlich einfach Codes ausprobiert habe, habe ich schließlich einen funktionierenden Befehl für die Steckdose gefunden.

#define INTERTECH_ON  "00000000000101010001010101010100" 
#define INTERTECH_OFF "00000000000101010001010001010100"
void switchOn(void){
  mySwitch.send(INTERTECH_ON);
}

void switchOff(void){
  mySwitch.send(INTERTECH_OFF);
}

Damit gelang es mir, die Funksteckdose anzusteuern.

Smart Home Überlegungen

Seit Tagen sitze ich nun an der Idee, ein Smart Home in meiner nächsten Wohnung zu installieren. Warum? Ich finde den Gedanken, mein Zuhause per Smartphone von überall zu überwachen und zu steuern, einfach wahnsinnig spannend. Ich stehe auf Statistiken. Vor meinen Informatiker Freunden könnte ich damit auch angeben und nebenbei noch eine Menge Erfahrungen sammeln und das was ich im Studium so gelernt habe, anwenden.

Ich habe mir eine Menge Ziele mit diesem Projekt gesetzt. Kontrolle per Smartphone oder PC. Kontrolle von zu Hause oder via Internet. Ich möchte Statistiken automatisch generieren lassen, zum Beispiel über die Temperatur oder Luftfeuchtigkeit. Die Temperatur sollte nicht nur überwacht werden, sondern auch dementsprechend die Heizung reguliert werden. Meinen Stromverbrauch messen würde ich auch ganz gerne. Zudem möchte ich alle unnötigen Stromverbraucher an- und abschalten können. Das Licht einschalten per „klatschen“ würde ich praktisch finden. Außerdem sollte es auch via Smartphone einschaltbar sein. Ein Bewegungsmelder vor der Tür und einen Fensterkontakt als „Alarmsystem“ würde ich auch gerne haben. Ein automatisches Rollo hätte auch etwas.

Raspberry Pi

(Dieser Raspberry Pi 2 wird vermutlich das Herzstück in meiner Smart Home Anlage)

Fertige Smart Home Lösungen kosten ein Vermögen, dafür sind eigene Smart Home Lösungen nicht gerade einfach aufzubauen. Besonders da ich in einer Mietwohnung leben werde und nicht einfach jede Steckdose austauschen kann. Allerdings ist es im ersten Schritt auch nicht mein Ziel, alles zu verkabeln. Weiterlesen