433Mhz Funk Temperatursensoren sind günstig und lassen sich recht schnell in die Homeassistant Umgebung integrieren.
Benötigt:
- ESP32 Board (z.B.: ESP32 Dev Kit C V4 NodeMCU)
- Ein CC1101 433Mhz Transceiver (z.B.: Neuftech CC1101)
- Ein kompatibler 433Mhz Temperatursensor
(Dieser muss zur RTL_433 Library kompatibel sein https://github.com/merbanan/rtl_433, z.B.: Bresser 7009994) - Homeassistanz Instanz mit “Mosquitto broker”
ESP32 Board & CC1101
Verbunden wird der CC1101 Transceiver über folgende Pins mit dem ESP32
Receiver Pin(GDO2) | Emitter Pin(GDO0) | SCK | VCC | MOSI | MISO | CSN | GND |
---|---|---|---|---|---|---|---|
D27 | D12 | D18 | 3V3 | D23 | D19 | D5 | GND |
OpenMQTTGateway
Die Firmware OpenMQTT Gateway (OMG) bietet eine einfache Lösung für die Anbindung der Sensoren an die Homeassistant Umgebung.
Die Installation kann direkt im Browser (nicht Safari) erfolgen:
https://docs.openmqttgateway.com/upload/web-install.html
auszuwählen ist hierbei die Version “esp32dev-rtl_433”.
Beim Starten des ESP32 wird ein Wireless Access Point sichtbar, mit welchem man sich über einen PC Verbinden muss um dem Chip die WLAN Daten sowie auch die MQTT Zugangsinformationen anzugeben.
OMG empfängt nun Signale auf dem 433Mhz Band. Erkennt es bekannte Protokolle (sowie z.B. bei dem Temperatur Sensor) werden dieser verarbeitet und im MQTT Standard an die Homeassistant Instanz gesendet. Zu Debugging zwecken eignet sich z.B. der mqTT Explorer, welcher alle empfange Informationen eines MQTT Broker (in unserem Falle des Mosquito Broker) anzeigt.
Homeassistant
Wenn die obigen Informationen korrekt angegeben sind verbindet sich der OMG ESP32 automatisch und meldet sich mittels “autodiscovery” bei der Homeassistant Instanz an.
Die Sensoren können schließlich in der “/config/configuration.yaml” angegeben werden. Die “state_topic” Adresse muss je nach Konfiguration angepasst werden.
sensor:
- unique_id: temp-in
platform: mqtt
state_topic: "Omg433/OpenMQTTGateway_rtl_433_ESP/RTL_433toMQTT/Bresser-3CH/6"
name: "Temperatur (in)"
<<: &rtl_433_temp_sensor_in
device_class: temperature
unit_of_measurement: "°C"
expire_after: 180
force_update: true
value_template: "{{ value_json.temperature_C }}"
- unique_id: humidity-in
platform: mqtt
state_topic: "Omg433/OpenMQTTGateway_rtl_433_ESP/RTL_433toMQTT/Bresser-3CH/6"
name: "Luftfeuchtigkeit (in)"
<<: &rtl_433_humidity_sensor_in
device_class: humidity
unit_of_measurement: "%"
expire_after: 180
force_update: true
value_template: "{{ value_json.humidity }}"
Nach einem Reload der MQTT / Homeassistant Konfiguration können die Sensoren als Entitäten eingesehen werden.