CLOSED: [2021-02-05 Fr 21:30] :LOGBOOK: - State "DONE" from "" [2021-02-05 Fr 23:00] :END: :PROPERTIES: :CREATED: [2021-02-05 Fr 21:30] :ID: 2021-02-04-feinstaub2homematic :END: In diesem Blogbeitrag möchte ich euch zeigen, wie ich die Feinstaubsensormesswerte an mein SmartHome-System Homematic übertrage. Die Idee und dieser Blogbeitrag beruhen größtenteils auf eine Diskussion im [[https://homematic-forum.de/][Homematic-Forum]], wo bereits ein [[https://homematic-forum.de/forum/viewtopic.php?f=18&t=43201&sid=1f958be783e0acee13e7205c7bcbabe4&start=30][Initialesskript]] geteilt wurde. Ich habe es nur noch an meine Bedürfnisse angepasst. Was dazu notwendig war, beschreibe ich an dieser Stelle. ** Was wird benötigt? Die Durchführung ist eigentlich recht einfach. Die Messstation bietet bereits von selbst Schnittstellen an, um auf die Messdaten zugreifen zu können. Somit benötigt man in dem Homematic-System nur einen Mechanismus, der auf diese Daten zugreift und sie in das Homematic-System integriert. Dazu benötigt man drei Schritte: - Ein Skript, das die Daten von der Messstation abfragt. - Eine Speichermöglichkeit der abgefragten Messwerte - Ein Homematic-Programm, das das Skript in regelmäßigen Zeitintervallen ausführt ** Die Umsetzung *** Das Skript Das Skript kann entweder aus dem ursprünglichen [[https://homematic-forum.de/forum/viewtopic.php?f=18&t=43201&sid=1f958be783e0acee13e7205c7bcbabe4&start=30][Forum-Beitrag]] oder von meiner GitHub-Repo verwendet werden. Meine [[https://github.com/diovon/feinstaub2homematik][Skript]] ist bereits auf den besseren Luftdruck-/-temperatur- und -feuchtigkeitssensor BME280 angepasst. *** Speichermöglichkeit Für das Speichern der Messwerte verwenden wir Homematic CCU Systemvariablen. Für die fünf Messwerte wird jeweils eine Variable gebraucht, die gleich benannt sein muss wie im Skript. #+CAPTION: Anlage der Systemvariablen in der CCU3 #+ATTR_HTML: :alt Anlage der Systemvariablen in der CCU3 #+ATTR_HTML: :align center :width 560 [[tsfile:2021-02-05_Variablenanlage.png]] #+CAPTION: Systemvariablen für die Speicherung der Messwerte #+ATTR_HTML: :alt Systemvariablen für die Speicherung der Messwerte #+ATTR_HTML: :align center :width 560 [[tsfile:2021-02-05_Systemvariablen.png]] *** CUx-Daemon (optional) Da die Messstation nicht durchgängig Messdaten liefert, frage ich mithilfe der Erweiterung [[http://cuxd.de/][CUx]] ab, ob die Messstation Daten bereitstellt. [[http://cuxd.de/][CUx]] ist eine sehr umfangreiche Erweiterung, um die CCU um virtuelle Geräte zu erweitern. Damit lassen sich auch Aktoren, die nicht aus dem Homematic-Universum stammen, in das Homematic-System integrieren. Ich verwende hier allerdings nur die Möglichkeit, eine Ping-Anfrage an die Messstation zu senden. Nach der Installation von CUx ist es im Homematic Menü unter Einstellungen > Systemsteuerung zu finden. Durch Klick auf Geräte können neue virtuelle Geräte erstellt werden. #+CAPTION: CUxD Geräte Erstellung #+ATTR_HTML: :alt CUxD Geräte Erstellung #+ATTR_HTML: :align center :width 560 [[tsfile:2021-02-05_UniversalConfig.png]] Als CUxD Gerätetyp ist "16 Kanal Universalsteuerung" zu wählen. Ein Name kann dem Gerät vergeben werden, damit man es in der CCU-Geräteauflistung finden kann. Als Control wird "Schalter" ausgewählt. Mit Klick auf "Gerät auf CCU erzeugen!" erfolgt die Generierung des virtuellen Gerätes. Wechselt man nun zur Auflistung der Homematic-Geräte auf der CCU, so findet man das soeben erstellte CUxD-Gerät unter dem gewählten Namen. Beim ersten Kanal klickt man auf Einstellungen, um das Gerät zu konfigurieren. #+CAPTION: CUxD Geräte in der Homematic Geräteansicht #+ATTR_HTML: :alt CUxD Geräte in der Homematic Geräteansicht #+ATTR_HTML: :align center :width 560 [[tsfile:2021-02-05_GeraetConfig.png]] Da es sich in diesem Fall um eine einfache Ping-Abfrage handelt, brauchen nicht viele Einstellungen durchgeführt werden. #+CAPTION: CUxD Geräte Einstellungen festlegen #+ATTR_HTML: :alt CUxD Geräte in der Homematic Geräteansicht #+ATTR_HTML: :align center :width 560 [[tsfile:2021-02-05_GeraetSetup.png]] Unter "IP_DNS_ADR" ist die IP-Adresse der Messstation anzugeben. Die anderen Zeitintervall-Einstellungen habe ich bei den Standardwerten belassen. Durch Klick auf die "OK"-Schaltfläche werden die Einstellungen gespeichert. *** Das Programm Da wir nun alle notwendigen Vorbereitungen abgeschlossen haben, können wir uns nun dem eigentlichen Homematic-Programm widmen. #+CAPTION: Homematic Programm Aufbau #+ATTR_HTML: :alt Homematic Programm Aufbau #+ATTR_HTML: :align center :width 560 [[tsfile:2021-02-05_Programm_Overview.png]] Das Programm umfasst zwei Bedingungen und eine Aktivität. Bedingung 1 legt fest, wie oft das Programm ausgeführt werden soll. Ich habe mich entschieden, dass es ganztägig und alle 2 Minuten ausgeführt wird. Anfangs hatte ich den Wert auf 5 Minuten festgesetzt, stellte aber fest, dass ich hier nicht regelmäßig Messwerte erhalte. #+CAPTION: Einstellung des Zeitintervalls #+ATTR_HTML: :alt Einstellung des Zeitintervalls #+ATTR_HTML: :align center :width 560 [[tsfile:2021-02-05_Programm_Zeit.png]] Bedingung 2 legt fest, dass das Programm nur ausgeführt wird, wenn die Messstation aktiv ist. Hier kommt das zuvor erstellte CUxD-Geräte zum Einsatz. Da es als Schalter erstellt wurde, muss hier nur auf den Schaltzustand geachtet werden. Der Schaltzustand "ein" wird dabei erreicht, wenn der Ping zur Messstation erfolgreich verlaufen ist. Die Aktivität beinhaltet das anfangs erwähnte Skript. Dieses wird mit der Ausführungseinstellung "Sofort" konfiguriert. #+CAPTION: Eingefügtes Skript #+ATTR_HTML: :alt Eingefügtes Skript #+ATTR_HTML: :align center :width 560 [[tsfile:2021-02-05_Programm_Skript.png]] Mit Klick auf die "OK"-Schaltfläche wird das Skript im Programm gespeichert. Der finale Programmaufbau schaut nun wie folgt aus. #+CAPTION: Homematic Programm Aufbau #+ATTR_HTML: :alt Homematic Programm Aufbau #+ATTR_HTML: :align center :width 560 [[tsfile:2021-02-05_Programm_Overview.png]] ** Anwendung Ich lasse mir zur Zeit die Messwerte nur auf der CCU-Oberfläche bzw. auf meiner mobilen Homematic-App anzeigen. Dazu hab ich unter dem Homematic-Menü Einstellungen > Benutzerverwaltung meine Benutzer-Einstellungen bearbeitet. Über "Systemvariable hinzufügen" kann ich die entsprechenden Variablen einzeln nacheinander auswählen. #+CAPTION: Ergänzung der Systemvariablen in der Homematic CCU-Oberfläche #+ATTR_HTML: :alt Ergänzung der Systemvariablen in der Homematic CCU-Oberfläche #+ATTR_HTML: :align center :width 560 [[tsfile:2021-02-05_Benutzerverwaltung.png]] Das finale Ergebnis schaut dann wie folgt aus. #+CAPTION: Anzeige der Feinstaubmesswerte in der CCU-Oberfläche #+ATTR_HTML: :alt Anzeige der Feinstaubmesswerte in der CCU-Oberfläche #+ATTR_HTML: :align center :width 560 [[tsfile:2021-02-05_MesswerteinCCU.png]] ** Fazit Ich fand es für mich sehr interessant, die Feinstaubsensor-Messstation mit meinem SmartHome-System zu verbinden. Dadurch habe ich eine erweiterte Wetterstation geschaffen, deren Werte ich über eine App auch auf meinem Smartphone anzeigen lassen kann.