Shelly Luftfeuchtigkeits- und Temperatursensor

Shelly Luftfeuchtigkeits- und Temperatursensor in FHEM einbinden

Aus dem Hause Shelly steht ein kleiner aber dennoch feiner Luftfeuchtigkeits- und Temperaturmesser zu Verfügung, der sich ebenfalls in die Gebäudesteuerungs- und Automatisierungslösung FHEM integrieren lässt.

Dabei hat das Device gerade einmal die Größe eines Tischtennisballs.

Shelly H&T Sensor

Das Gerät selbst ist, wie alle anderen Shelly Devices auch, schnell über die Shelly APP ins heimische WLAN eingebunden. Dieses aber nun in FHEM zu integrieren, bedarf einiger weiterer Schritte – anders als man es bei den klassischen Schaltdevices (Shelly1, PM etc.)kennt.

Aber im Grunde ist dieses keine Hexerei, wenn man weiß was zu tun ist.

Aber der Reihe nach:

Betrieben wird das Gerät im Standard über eine CR123A Batterie. Alternativ lässt sich dieses aber auch um ein erweitertes “Unterteil” mit einem Micro USB Adapter ergänzen und dann mit einem 5 V Netzteil betreiben. Um den Energiebedarf, gerade beim Batteriebetrieb, so gering wie möglich zu halten, sendet das Device Änderungen erst ab einem bestimmten Schwellwert, welcher sich wiederum via APP einstellen lässt. Erst wenn diese Schwellwerte erreicht werden, wird das Gerät aus dem Tiefschlaf geweckt und sendet die Werte via MQTT an die FHEM Instanz.

Wir wir auch schon beim Thema wären:

Einrichtung:

Damit die Daten den Weg zu FHEM finden, ist die Definition eines FHEM MQTT Servers erforderlich. Der FHEM modulbasierte MQTT Server ist schnell eingerichtet:

defmod myMQTT_Server MQTT2_SERVER 1883 global
attr room MQTT

Damit wird eine Instanz gestartet, welche auf dem Port 1883 lauscht.

Damit der Shelly nun weiss, dass die Daten an diesen Server müssen, wechselt man via Browser auf die Weboberfläsche des Shelly H&T. Sollte diese nicht erreichbar sein, drückt man einmal den Button auf der Geräteinnenseite (Deckel öffnen). Damit erwacht der Shelly und ist im Browser erreichbar.

Unter den Advanced Developer Options der Weboberfläche aktiviert man nun MQTT (Checkbox) und gibt den Server in der Form IPadresse:1883 an. Die Anmeldedialogfelder kann man in der Regel leer lassen. Ist FHEM für WebAuth konfiguriert, müssen hier natürlich die Daten zur FHEM Anmeldung rein.

Anschliessend geht es wie von Zauberhand. Nach erfolgtem Reboot des Shelly H&T und dem ersten Senden, wird automatisch ein MQTT2_DEVICE erstellt.

Shelly MQTT2_DEVICE in FHEM

Um die Werte, welche als JSON geliefert werden in die Readings zu übernehmen, trägt man folgendes im Attribut reading List ein:

shellyht_12345:shellies/shellyht12345/online:.* online
shellyht_12345:shellies/announce:.* { json2nameValue($EVENT) }
shellyht_12345:shellies/shellyht-12345/announce:.* { json2nameValue($EVENT) }
shellyht_12345:shellies/shellyht-12345/info:.* { json2nameValue($EVENT) }
shellyht_12345:shellies/shellyht-12345/sensor/temperature:.* temperature
shellyht_12345:shellies/shellyht-12345/sensor/humidity:.* humidity
shellyht_12345:shellies/shellyht-12345/sensor/battery:.* battery
shellyht_12345:shellies/shellyht-12345/sensor/ext_power:.* ext_power
shellyht_12345:shellies/shellyht-12345/sensor/error:.* error
shellyht_12345:shellies/shellyht-12345/sensor/act_reasons:.* act_reasons

12345 entspricht dabei der eindeutigen Device ID seitens Shelly und muss natürlich in der Definition entsprechend angepasst werden.

Die Angabe des StateFormat Attributes ist keine Pflicht, macht es nur schicker:

temperature °C H: humidity % B: battery %
Shelly StateFormat Attribut

Ein Satz zur Genauigkeit

An verschiedensten Stellen im Web liest man über Unzufriedenheit, was die Genauigkeit der Messwerte angeht. Das kommt natürlich immer darauf an, was man erwartet. Ich konnte im Parallelbetrieb mit einer klassischen Wetterstation ermitteln, dass die Temperatur um lediglich 1,5 Grad und die Luftfeuchtigkeit um rund 2% abweicht. Wie genau allerdings die Werte der Wetterstation sind sei dahingestellt.

Da ich über die Werte entsprechende Ventilationen starte und stoppe, sind in meinem Fall die “Abweichungen” (wenn es denn welche sind) absolut vertretbar.

Was bitte ist MQTT?

Beim MQTT handelt es sich um ein Nachrichtenprotokoll, welches bei einer Vielzahl an Kommunikationsmodulen zum Einsatz kommt. MQTT steht dabei für Message Queuing Telemetry Transport. Das Protokoll eignet sich zur Machine-zu-Machine Kommunikation. Der MQTT Server stellt dabei den “Broker” (Vermittler) dar. Dieser nimmt die Nachrichten von Gerät A (Client) entgegen und leitet diese an Gerät B (Subscriber=Abonnenten) weiter. Über das MQTT Nachrichtenformat lassen sich eigentlich nicht miteinander kompatible Geräte/Nachrichtenformate kompatibel machen. Der Broker ist dabei dann der Übersetzer. Technisch nicht hochpräzise erklärt, sollte aber für den Anfang ausreichend sein.

Hinweis: Man muss sich leider entscheiden. Entweder man nutzt die Cloudanbindung oder aber MQTT. Eines geht nur.

Alternativ, kann man aber das Shelly Device auch via HomeBridge von aussen zugänglich machen, wenn MQTT aktiv ist.

4 Gedanken zu „Shelly Luftfeuchtigkeits- und Temperatursensor in FHEM einbinden“

  1. “Nur 1,5 °C Abweichung” bei der Temperaturmessung ist für einen digitalen Sensor ein granatenmäßig schlechter Wert, das sollte auch klar gesagt werden.

    1. Hallo,

      wie man diese Abweichungen zu bewerten hat, habe ich glaube ich im Artikel dargelegt. 😉
      Das Ganze ist natürlich immer abhängig davon, wo mit ich “gegenmesse”, um überhaupt einen Vergleich anstellen zu können.
      Es ist auch immer ein wenig abhängig davon, was ich denn überhaupt vor habe.

    1. Hallo,
      danke für den Hinweis. Nehme es explizit mal mit auf. Alternativ kann man sich aber via HomeBridge behelfen, und MQTT und “Cloudfunktionen” via HomeKit nutzen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert