Smart Home
Das Home System fragt die Sensoren im Zimmer ab, welche die Temperatur und die Beleuchtung auslesen können und diese dementsprechend verringert oder erhöht.
Ein ausführliche Beschreibung für die Einrichtung von MQTT findet man hier.

Die jeweiligen Blöcke findet man unter “Advanced -> MQTT”
Smart-Home
Stecke zuerst den EVN. Sensor am Port A des M5Stacks mittels Grove Kabel an. 
Als nächstes muss nun die RGB LED Komponente an den Port B des M5 Stacks angeschlossen werden.

Nach dem zusammenstecken der Komponenten und dem MQTT Setup, müssen die Units in UiFlow ausgewählt werden. In diesem Fall wird der EVN und der RGB Sensor benötigt.

Um den MQTT Broker ansprechen zu können, müssen nach dem Setup die Verbindungsinformationen für den Broker angegeben werden.
Mit dem „Get env0 Temperatue“-Block erhält man die Temperaturwerte. Der „convert to int“ Block konvertiert mir die erhaltenen Werte in schöne Ganzzahlen. Mit dieser Schleife ist das Senden der Sensordaten auch schon bereits getan.

Würde man mehrere solche M5Stacks in verschiedenen Zimmer aufstellen, so müsse man noch unterschiedliche Topics für die Temperaturwerte konfigurieren, so dass man für jedes Zimmer die korrekten Werte bekommt, ansonsten würden mehrere ENV-Units eventuell unterschiedliche Temperaturwerte messen.
Als nächstes kümmern wir uns um die Beleuchtung. Das gute an dem RGB-Unit am M5Stack ist, dass es nicht nur an- und ausgeschaltet werden kann, sondern man auch die Lichtstärke regulieren kann. Deswegen muss man überlegen, wie soll diese Lichtstärke gesteuert werden? Der Drehschalter-Unit ANGLE würde sich da optimal dafür anbieten. Wenn man mit diesem etwas Vertraut ist, erkannt man, dass die Werte, die diese Unit ausgibt, von ungefähr 1-1024 gehen. Die Lichtstärke hingegen am RGB Unit geht von ungefähr 1-300 (Das bedeutet, dass sie bei ca. 300 ihr Maximum erreicht hat). Man könnte alle ANGLE Werte einen Lichtstärkewert zuweisen, aber das wäre vom Aufwand viel zu hoch und nicht zielführend für eine Einführung. Beschränken wir uns auf gewisse Beleuchtungsstärkezustände und kategorisieren wir diese
M5/jku/brightness = 0 … Kein Licht
= 1 … Schwach
= 2 … Mittelstark
= 3 … Starke Beleuchtung
Das Setzen dieser Werte über den MQTT-Broker muss sich unser jetziges System nicht kümmern, dafür gibt es die „Control-Kategorie“ die später implementiert wird. Jedoch können wir jetzt schon die Logik für die Beleuchtung programmieren, sollte eine solche Nachricht empfangen werden.
Der erste und wichtigste Block dafür ist der subscribe-Block.
Da unsere Werte im Bereich 0-3 sind, soll zuerst beim Empfangen der Nachricht abgeprüft werden, um welchen von diesen es sich handelt und anhand von dieser reagiert werden und entsprechend die Lichtstärke gesetzt werden.
Für eine solche Überprüfung eignet sich der „if-do“-Block ideal, da sich dieser beliebig erweitern lässt.

Nun geht es darum, die Bedingung abzufragen, wann die Lichtstärke verändert werden soll, und dies funktioniert mit einem simplen Vergleichsoperator.

Tab ContentWann soll das Licht ausgeschalten werden? Wenn die Nachricht mit dem Inhalt „0“ empfangen wird.

Die anderen Fälle (wann der Inhalt 1,2 oder 3 ist) können wir abbilden, indem wir beim „if“ das blaue Zahnrad auswählen, und weitere „else-if“ Bedingungen hinzufügen.

Am Ende sollen somit 4 Überprüfungen stattfinden.
Nun werden die verschiedenen Fälle überprüft und passend zu dem jeweiligen Fall zuerst die Lichtstärke und anschließend der Wert der Intensität gesetzt.

Als nächstes muss die Temperatur überprüft werden, um anzeigen zu können, ob es zu warm oder kalt ist.
Dazu wird die Temperatur ausgelesen und der Wert mit 2 addiert oder subtrahiert.
(Hinweis: die Farbe schwarz ist wieder gleich zu setzen wie mit keiner Beleuchtung)
Die fertige „Smart-Home-Kategorie: Home“ sieht am Ende so aus



