@@ -28,6 +28,7 @@ class UsermodBME280 : public Usermod
28
28
bool UseCelsius = true ; // Use Celsius for Reporting
29
29
bool HomeAssistantDiscovery = false ; // Publish Home Assistant Device Information
30
30
bool enabled = true ;
31
+ BME280I2C::I2CAddr i2cAddress = BME280I2C::I2CAddr_0x76; // Default i2c address for BME280
31
32
32
33
// set the default pins based on the architecture, these get overridden by Usermod menu settings
33
34
#ifdef ESP8266
@@ -48,7 +49,7 @@ class UsermodBME280 : public Usermod
48
49
BME280I2C::I2CAddr_0x76 // I2C address. I2C specific. Default 0x76
49
50
};
50
51
51
- BME280I2C bme{settings} ;
52
+ BME280I2C bme;
52
53
53
54
uint8_t sensorType;
54
55
@@ -186,6 +187,9 @@ class UsermodBME280 : public Usermod
186
187
{
187
188
if (i2c_scl<0 || i2c_sda<0 ) { enabled = false ; sensorType = 0 ; return ; }
188
189
190
+ settings.bme280Addr = i2cAddress;
191
+ bme = BME280I2C (settings);
192
+
189
193
if (!bme.begin ())
190
194
{
191
195
sensorType = 0 ;
@@ -399,6 +403,7 @@ class UsermodBME280 : public Usermod
399
403
{
400
404
JsonObject top = root.createNestedObject (FPSTR (_name));
401
405
top[FPSTR (_enabled)] = enabled;
406
+ top[F (" I2CAddress" )] = i2cAddress;
402
407
top[F (" TemperatureDecimals" )] = TemperatureDecimals;
403
408
top[F (" HumidityDecimals" )] = HumidityDecimals;
404
409
top[F (" PressureDecimals" )] = PressureDecimals;
@@ -426,6 +431,10 @@ class UsermodBME280 : public Usermod
426
431
427
432
configComplete &= getJsonValue (top[FPSTR (_enabled)], enabled);
428
433
// A 3-argument getJsonValue() assigns the 3rd argument as a default value if the Json value is missing
434
+ uint8_t tmpI2cAddress;
435
+ configComplete &= getJsonValue (top[F (" I2CAddress" )], tmpI2cAddress, 0x76 );
436
+ i2cAddress = static_cast <BME280I2C::I2CAddr>(tmpI2cAddress);
437
+
429
438
configComplete &= getJsonValue (top[F (" TemperatureDecimals" )], TemperatureDecimals, 1 );
430
439
configComplete &= getJsonValue (top[F (" HumidityDecimals" )], HumidityDecimals, 0 );
431
440
configComplete &= getJsonValue (top[F (" PressureDecimals" )], PressureDecimals, 0 );
0 commit comments