Erklärungen
SmartHome - Was mich ungemein ärgert ist, dass es viele Anbieter gibt aber alle mit geschlossenen Systemen. Eine Kombination aus verschiedenen Komponenten verschiedener Hersteller ist praktisch nicht möglich. Mit einem open-source-Heimautomatisierugsserver wie FHEM oder openHab kann man sich aber selber was bauen. Es werden dabei eine Vielzahl von Geräten unterstützt.
Aber es gibt noch ein zweites Problem: Alle Funkkomponenten, egal von welchem Hersteller basieren auf irgendwelchen popeligen Funkprotokollen, die
- häufig keine Sicherheit bieten
- miserable Reichweiten haben (Selbst in einem L-förmigen Wohnzimmer habe ich manchmal Probleme "ums Eck" zu kommen)
- einer gesetzlich vorgeschriebenen Sendezeitbegrenzung unterliegen was bei grossen Anlagen schon mal zu Problemen führen kann
Dabei hat jeder Haushalt eine perfekte Funkkommunikation am Laufen: WLAN oder WIFI.
Zugegeben, für batteriebetriebene Komponenten keine gute Lösung wegen des Stromverbrauchs aber für Aktoren / Schalter / Dimmer eigentlich perfekt bzw. immer dann, wenn "Strom eh da ist". Der Stromverbrauch ist trotzdem nahezu vernachlässigbar.
Meiner (an anderer Stelle schon beschriebenen) angeborenen Faulheit zur Folge ist ein System entstanden, das für meine Begriffe nahezu perfekt arbeitet und da es sich an Standards hält (Wifi und MQTT) flexibel einsetzbar ist. Ein MQTT-Host wie Mosquitto muss allerdings irgendwo zur Verfügung stehen. Bei mir ist das ein Raspberry PI mit fhem und Mosquitto, der im Schrank versteckt seine Dienste nun schon seit Jahren problemlos vollbringt.
Folgendes Beispiel zeigt einen 4-fach Schaltaktor mit folgenden Eigenschaften:
- Betrieb an 220V
- 4 potentialfreie Relaisausgänge
- in häusliches WLAN per Konfiguration (nicht durch Programmierung) integgrierbar
- Namensvergabe aller Ausgänge möglich (also z.B. "Tischlampe", etc.)
- WLAN-Name konfigurierbar (z.B. Schalter4fach) - So erscheint es dann z.B. in der FritzBox.
- Konfiguration (SSID, PW, Namen) über eigenen AccessPoint z.B. per iPhone möglich.
Hardware:
1x 220V/5V Wandler - in dem Fall von HiLink (um die 2.50€)
1x Elko 470uF zur Sicherheit
1x Wemos D1 Mini - ESP8266 basierendes WLAN-fähiges Board, 80MHz Prozessortakt und über Arduino programmierbar (3.50€ in China)
1x Relais-Karte 4-fach (um die 4.50€)
Noch ein wenig Software auf der Arduino-IDE unter Verwendung folgender Libs
- pubsub-Client (MQTT-Client)
- wifimaster (konfigurierbare WLAN-Anbindung mit Möglichkeit userspezifischer Parameter)
Ein großes Lob an die Autoren dieser Libraries. Die sind wirklich super. Das ganze WLAN-Handling reduziert sich auf vielleicht 8 Zeilen Code (im einfachsten Fall).
Aber es gibt noch ein zweites Problem: Alle Funkkomponenten, egal von welchem Hersteller basieren auf irgendwelchen popeligen Funkprotokollen, die
- häufig keine Sicherheit bieten
- miserable Reichweiten haben (Selbst in einem L-förmigen Wohnzimmer habe ich manchmal Probleme "ums Eck" zu kommen)
- einer gesetzlich vorgeschriebenen Sendezeitbegrenzung unterliegen was bei grossen Anlagen schon mal zu Problemen führen kann
Dabei hat jeder Haushalt eine perfekte Funkkommunikation am Laufen: WLAN oder WIFI.
Zugegeben, für batteriebetriebene Komponenten keine gute Lösung wegen des Stromverbrauchs aber für Aktoren / Schalter / Dimmer eigentlich perfekt bzw. immer dann, wenn "Strom eh da ist". Der Stromverbrauch ist trotzdem nahezu vernachlässigbar.
Meiner (an anderer Stelle schon beschriebenen) angeborenen Faulheit zur Folge ist ein System entstanden, das für meine Begriffe nahezu perfekt arbeitet und da es sich an Standards hält (Wifi und MQTT) flexibel einsetzbar ist. Ein MQTT-Host wie Mosquitto muss allerdings irgendwo zur Verfügung stehen. Bei mir ist das ein Raspberry PI mit fhem und Mosquitto, der im Schrank versteckt seine Dienste nun schon seit Jahren problemlos vollbringt.
Folgendes Beispiel zeigt einen 4-fach Schaltaktor mit folgenden Eigenschaften:
- Betrieb an 220V
- 4 potentialfreie Relaisausgänge
- in häusliches WLAN per Konfiguration (nicht durch Programmierung) integgrierbar
- Namensvergabe aller Ausgänge möglich (also z.B. "Tischlampe", etc.)
- WLAN-Name konfigurierbar (z.B. Schalter4fach) - So erscheint es dann z.B. in der FritzBox.
- Konfiguration (SSID, PW, Namen) über eigenen AccessPoint z.B. per iPhone möglich.
Hardware:
1x 220V/5V Wandler - in dem Fall von HiLink (um die 2.50€)
1x Elko 470uF zur Sicherheit
1x Wemos D1 Mini - ESP8266 basierendes WLAN-fähiges Board, 80MHz Prozessortakt und über Arduino programmierbar (3.50€ in China)
1x Relais-Karte 4-fach (um die 4.50€)
Noch ein wenig Software auf der Arduino-IDE unter Verwendung folgender Libs
- pubsub-Client (MQTT-Client)
- wifimaster (konfigurierbare WLAN-Anbindung mit Möglichkeit userspezifischer Parameter)
Ein großes Lob an die Autoren dieser Libraries. Die sind wirklich super. Das ganze WLAN-Handling reduziert sich auf vielleicht 8 Zeilen Code (im einfachsten Fall).
Status 5.6.2017: Hardware und Software funktionieren. Einbau in ein handelsüblichen Verteilerkasten ist erfolgt.
Die Platinen sind mit, in einem 3D-Drucker selbst passgenau gefertigten, Kunststoff-Einschüben gehalten, die wiederum mit 2-Komponentenkleber im Gehäuse befestigt sind. Hat sich perfekt bewährt.
Es bleibt genug Platz um die noch einzuführenden Netz-Kabel zu verbinden.
Ansteuern lassen sich die Relais über MQTT
z.B. "Schalter4fach/fhem/Tischlampe on" Akzeptiert wird "on", "On", "ein", "Ein", "1", "dim100%", "toggle", "Toggle". Alles andere gilt als Off.
Nach jeder Änderung und alle 5 Minuten sendet das Gerät den aktuellen Status aller Ausgänge:
z.B. "Schalte4fach/gate/Tischlampe on" Hier kommt immer "on" oder "off" auch wenn mit "1" eingeschaltet oder mit "toggle" umgeschaltet wurde.
"Schalter4fach" und "Tischlampe" sind konfigurierbare Parameter.
Sonderfunktionen sind auch implementiert:
Schalter4fach/fhem/sys list listet den Status aller Kanäle (wie alle 5 Min eh automatisch)
Schalter4fach/fhem/sys on | off schaltet alle 4 Kanäle ein oder aus (praktisch, wenn man ins Bett geht und alle Lampen ausschalten will)
Schalter4fach/fhem/sys restart beendet die WiFi Verbindung und startet den AccessPoint (wie bei Erstinbetriebnahme)
- anderes WiFi aus Liste wählbar(SSID und Passwort)
- anderer Name wählbar (Schalter4fach)
- MQTT-Servereinstellungen änderbar(IP und Port)
- und Namen der Kanäle änderbar (Tischlampe)
Schalter4fach/fhem/sys debug sendet alle Sekunde den RSSI-Wert der WLAN-Verbindung
(hilft beim Auffinden des optimalen Standorts und der optimalen Ausrichtung)
Schalter4fach/fhem/sys nodebug schaltet den Debug-Modus wieder aus
Ebenso konfigurierbar ist ein zweiter Namen. Z.B. den Raum (Garten oder so). Der Hostname "Schalter4fach" muss pro Gerät eindeutig sein. Den Raumnamen können sich mehrere Geräte teilen.
Ein "Garten/fhem/sys off" schaltet also alles im Garten aus auch wenn mehrere Geräte im Einsatz sind. ("Schalte4fach", "Schalter2fach", ...)
Zu erwähnen wäre noch:
- Die Statusrückmeldung kommt direkt vom Aktor. Wenn der sagt "on" brennt die Tischlampe auch, außer die Lampe selbst ist defekt.
- Da die Statusrückmeldung nach Änderung sofort und alle 5 Minuten zyklisch kommt, aktualisieren sich auch alle Anzeigegeräte wenn
man sie nachträglich in Betrieb nimmt bzw. irgendwo einen Schaltvorgang auslöst.
- Die MQTT-Funktion "retain" die bewirkt, dass z.B. nach einem Stromausfall alle Geräte automatisch wieder den Zustand einnehmen wie
vorher. Ist z.B. die Gartenbewässerung eingeschaltet bleibt sie das auch selbst wenn dazwischen mal der Strom weg sein sollte, das
WLAN kurzzeitig zusammenbricht oder sowas. Sehr praktisch! Das Attribut muss man allerdings in Fhem setzen.
Über frei verfügbare MQTT-Clients kann man das Ding schalten. Komfortabler geht es natürlich über Fhem. Insbesondere über die Netio-App, mit der man schöne Fernbedienungen auf dem Handy realisieren kann.
Folgende Bilder sind die Entwurfsansicht im Editor. Am iPhone sieht es dann richtig gut aus.
Neu seit 19.06.2017
Das Ding ist seit heute über WLAN online-update-fähig. Also endlich Schluss mit dem nervigen "Laptop in den Garten mitnehmen", "Hinterm Busch das Ding aufschrauben und USB anstecken". Jetzt einfach vom PC aus in der Arduino-IDE statt "com6" "Schalter4fach auf IP 192.168.187.37" auswählen und over the air flashen. Bin total begeistert. War super simpel zu implementieren und erleichtert das Leben ungemein. Man ist ja kreativ und ändert die Software doch ab und an. Siehe Bild rechts. Die nächsten Tage wird es an der Wand angeschraubt und weitere Kabel angeschlossen. Muss es jetzt ja nie mehr abbauen. :-) :-) |