Im Fall eines binären Eingangs reagiert der Block nur beim Übergang von false nach true (positive Flanke). Das Drücken des Tasters löst also einen Trigger aus, was die darin definierten Aktionen anstößt. Der Status des GPIO-Ports wechselt damit jedes Mal von true zu false und umgekehrt.
Nachdem dem Zusammenklicken und Konfigurieren aller Blöcke (siehe Abbildung 3) speichern und starten wir das Skript. Nach jeder Änderung an einem Skript müssen Sie es neu starten, andernfalls führt IOBroker die alte Version weiter aus.
Blockly generiert übersichtliche Programme und verhindern Syntaxfehler. Das ändert aber nichts an der Tatsache, dass man trotzdem ziemlich knobeln muss, um eine konkrete Funktion zu implementieren. Das gestaltet sich streckenweise sogar schwieriger als mit Javascript, weil die Blöcke Informationen verbergen, die bei der Fehlersuche helfen.
Hier erweist sich der Debug-Block als extrem hilfreich beim Entwickeln. Er erlaubt es, einfache Texte, aber auch den Wert oder Inhalt von Variablen respektive Objekten auszugeben. Sie finden den Block direkt bei den Systemblöcken.
Temperatur messen
In unserem zweiten Versuch lesen wir die Werte des Temperatursensors DS18B20 aus und steuern eine LED in Abhängigkeit von den Messwerten. Steigt die Temperatur auf über 25 Grad Celsius, leuchtet die LED auf, fällt sie unter 23 Grad, schaltet sie sich wieder aus. Den Temperaturbereich wählte der Autor so, dass sich die Werte durch Handauflegen auf den Sensor in die passenden Bereiche bringen lassen. Herrschen in Ihrem Bastelkeller arktische oder tropische Temperaturen herrschen, passen Sie die Werte entsprechend an. Wer es eilig hat, kann mit Kältespray [3] ein wenig tricksen.
Bevor Sie damit beginnen, ein Skript zusammenzuklicken, gilt es, noch etwas Vorarbeit zu leisten. Als Erstes müssen Sie den DS18B20-Sensor auf Betriebssystemebene aktivieren. Öffnen Sie dazu auf dem Raspberry ein Terminal und fügen Sie als Nutzer root die Zeile aus Listing 1 am Ende der Datei /boot/config.txt an. Die Zeile aktiviert den Support von Onewire-Sensoren am GPIO-Pin 5 (BCM). Um die Änderungen zu übernehmen, starten Sie den RasPi neu.
Listing 1
Onewire-Support
dtoverlay=w1-gpio,gpiopin=5
Danach sollte im Verzeichnis /sys/bus/w1/devices/ ein Ordner mit einer kryptischen Zahl stehen. Diese repräsentiert die weltweit einmalige ID des Sensors. Schließen Sie mehrere DS18B20-Sensoren an den GPIO-Port an, erscheint hier für jeden Sensor dessen ID. Um die Temperatur aus dem Sensor auszulesen, verwenden Sie das Kommando cat ID/temperature; durch das Teilen des Ergebnisses durch 1000 erhalten Sie den Wert in Grad Celsius.
Zurück zum IOBroker. Sie ahnen es sicher schon: Es gibt einen Adapter für den DS18B20, den Sie genauso installieren wie alle anderen Adapter. Nach dem Einrichten klicken Sie auf Sensor suchen und fügen ihn hinzu. Um beim Ausprobieren die Wartezeit auf neue Werte zu verkürzen, stellen Sie das Abfrageintervall von 60 000 auf 10 000. Klicken Sie das Programm zusammen und starten es (Abbildung 4).
Der simple Test schaltet die LED beim Erwärmen des Sensor an und beim Abkühlen wieder aus. Mit diesem einfachen Programm ließe sich auch ein Lüfter steuern, der dafür sorgt, dass es in einem Raum nicht zu warm wird.
Dokumentation
Bei weiterreichenden Fragen zu IOBroker oder beim Auftreten unerwarteter Fehler bei der Installation werfen Sie einen Blick in die offizielle Dokumentation [4], die sowohl in englischer als auch in deutscher Sprache zur Verfügung steht.
Bei Fragen, die sich auch mithilfe der Dokumentation nicht lösen lassen, steht ein angegliedertes Forum als gute Anlaufstelle bereit [5]. Viele typische Probleme haben die Forenmitglieder darin bereits erörtert. Zögern Sie nicht, die Community zu fragen, wenn Sie keine Lösung für ein Problem finden.
Smarte Dose
Nun geht es daran, mit der Automation unseres realen Hauses zu beginnen. Sie dürfen dafür weiterhin beim RasPi bleiben, oder Sie wechseln auf einen Kunbus Revolution Pi.





