Der BME280 ist ein Sensor für die Wettermessung, der sich gut mit dem Wemos D1 Mini integrieren lässt. Er wird von Tasmota unterstützt:

  • Temperatur
  • Luftfeuchte
  • Luftdruck

Es gibt ihn in verschiedenen Ausführungen: mit 6 und mit 7 Pins (Adafruit). Ich habe die preiswertere Version eines chinesischen Herstellers gewählt.

Das Pinout ist auf der Rückseite des Sensors aufgedruckt.

Verbindungen

Wemos D1 Mini BME280
3,3V Vcc
GND GND
D3 (GPIO0) SDA
D4 (GPIO2) SCL

 

Der Aufbau der Schaltung auf dem Steckbrett:

Der Aufbau der Schaltung auf dem Steckbrett.

 

Tasmota-Konfiguration

Für den Wemos D1 Mini wird wieder der Gerätetyp 'Generic' gewählt und gespeichert.

In der Gerätekonfiguration wrd wieder das "Generic"-Modell ausgewählt und nach dem Abspeichern/Neubooten, die Signal-Pins für die I2C-Schnittstelle eingeben (nochmals speichern/booten).
Beim Zeitplan wird nichts eingegeben, da es sich um kein Schaltmodul handelt.
Überprüfen, ob die richtige SSID angezeigt wird und dann einen Hostnamen vergeben (hier 'TEST').
Bei den MQTT-Einstellungen ist der richtige OpenHAB-Hostname einzugeben. Anschliessend sind Topic und Full Topic einzugeben.
Beim Logging kann die Telemetrieperiode eingestellt werden. 30 Sekunden für Tests und z.B. 300 Sekunden im Realbetrieb, um den Datenverkehr zu minimieren.

Unter sonstige Einstellungen wählt man noch einen Friendly Name, im Beispiel ist es der Sensortyp. Dieser wird dann auf jeder der Webseiten des Sensors ganz oben angezeigt.

Alexa kann hier nicht verwendet werden, da es sich um keinen Schaltbefehl sondern eine Messwertabfrage handelt.

Nach der Konfiguration wählt man die Konsole und kann prüfen, ob die Ausgabe auf den MQTT-Pfad richtig erfolgt.

Der Luftdruck wird auf der aktuellen Höhe des Sensors gemessen. Um ihn mit dem Wetterbericht vergleichen zu können, muß er auf Meereshöhe umgerechnet werden. Die Umrechung ist in Tasmota vorhanden, es muß jedoch über die Konsole die aktuelle Höhe (auffindbar über Google/Ortsname) eingegeben werden. Der Befehl lautet:

Altitude Höhe

und wird in Meter eingegeben. Die Zeile mit Return abschließen. Die Konsole zeigt die erfolgreiche Eingabe im Protokoll an.

Auf der Hauptseite erscheinen die Messwerte des Sensors (gelb markiert) und der Umrechnung auf Meereshöhe (rot markiert).

OpenHAB Items

Folgende Items werden definiert:


//=======================================================================================//
// File: items/BME280.items  Rev. 22.09.2018 / 15:15                                     //
// (C) 2018 IoT-Systems, D-83043 Bad Aibling                                             //
// Author: Andreas Kriwanek                                                              //
//=======================================================================================//
// Project: Wemos D1 Mini with BME280 sensor                                             //
//=======================================================================================//

// Chart time range BME280:
Number chartPeriodBME280  "Auswahl"

// Items for BME280:
Number dataTemp "Temperature [%.1f °C]" 
    { mqtt="<[mosquitto:Test/BME280/tele/SENSOR:state:JSONPATH($.BME280.Temperature)]" }
Number dataHum "Humidity [%.1f %%rH]" 
    { mqtt="<[mosquitto:Test/BME280/tele/SENSOR:state:JSONPATH($.BME280.Humidity)]" }
Number dataPres "Pressure [%.1f hPa]" 
    { mqtt="<[mosquitto:Test/BME280/tele/SENSOR:state:JSONPATH($.BME280.Pressure)]" }
Number dataPresSL "Pressure Sea Level [%.1f hPa]" 
    { mqtt="<[mosquitto:Test/BME280/tele/SENSOR:state:JSONPATH($.BME280.SeaPressure)]" }

// BME280 (Tasmota) Administration data:
String bootModuleBME280 "Modul [%s]" 
    { mqtt="<[mosquitto:Test/BME280/tele/INFO1:state:JSONPATH($.Module)]" }
String bootVersionBME280 "Version [%s]" 
    { mqtt="<[mosquitto:Test/BME280/tele/INFO1:state:JSONPATH($.Version)]" }
String bootFallbackBME280 "Fallback Topic [%s]" 
    { mqtt="<[mosquitto:Test/BME280/tele/INFO1:state:JSONPATH($.FallbackTopic)]" }
String bootGroupBME280 "Group Topic [%s]" 
    { mqtt="<[mosquitto:Test/BME280/tele/INFO1:state:JSONPATH($.GroupTopic)]" }
String bootWSModeBME280 "Webserver Mode [%s]" 
    { mqtt="<[mosquitto:Test/BME280/tele/INFO2:state:JSONPATH($.WebServerMode)]" }
String bootHostnameBME280 "Hostname [%s]" 
    { mqtt="<[mosquitto:Test/BME280/tele/INFO2:state:JSONPATH($.Hostname)]" }
String bootIPAddressBME280 "IP-Adresse [%s]" 
    { mqtt="<[mosquitto:Test/BME280/tele/INFO2:state:JSONPATH($.IPAddress)]" }
String bootRestartReasonBME280 "Restart Grund [%s]" 
    { mqtt="<[mosquitto:Test/BME280/tele/INFO3:state:JSONPATH($.RestartReason)]" }
String parUpdateBME280 "Letzter Update [%s]" 

 

OpenHAB Sitemap

Die minimale Sitemap für den Aufbau:


//=======================================================================================//
// File: sitemaps/BME280.sitemap  Rev. 16.09.2018 / 15:45                                //
// (C) 2018 IoT-Systems, D-83043 Bad Aibling                                             //
// Author: Andreas Kriwanek                                                              //
//=======================================================================================//
// Project: Wemos D1 Mini with distance sensor HCC-SR04		                             //
//=======================================================================================//
sitemap BME280 label="BME280"
{
	Frame {
		Text item=actDate icon="time"
	}
	Frame label="BME280" {
        Text item=dataTemp
		Text item=dataHum
		Text item=dataPres
		Text item=dataPresSL
	}
	Frame label="Status Wemos D1 Mini" {
		Text label="Wemos D1 Mini" icon="ak_info" {
			Frame label="Wemos D1 Mini" {
				Text item=bootModuleBME280
				Text item=bootVersionBME280
				Text item=bootFallbackBME280
				Text item=bootGroupBME280
				Text item=bootWSModeBME280
				Text item=bootHostnameBME280
				Text item=bootIPAddressBME280
				Text item=bootRestartReasonBME280
				Text item=parUpdateBME280
				Text item=parUptimeBME280
				Text item=parVccBME280
				Text item=parWiFiAPBME280
				Text item=parWiFiSSIDBME280
				Text item=parWiFiRSSIBME280
				Text item=parWiFiMacBME280
			}
		}
	}
}

// vim: syntax=Xtend

 

In der BASIC-UI sieht die Anzeige so aus:

Alle Messwerte des Sensors werden auf der Hauptseite angezeigt.
Klickt man auf das Status-Untermenü, werden die Details des Wemos D1 Mini angezeigt. Insbesonders für die Fehlersuche wichtig.

Links

Tasmota Wiki: https://github.com/arendst/Sonoff-Tasmota/wiki/Wemos-D1-Mini-and-HC-SR04-Ultrasonic-Sensor