{
    "key": "bme280",
    "kind": "sensor",
    "model": {
        "aliases": [
            "bme280"
        ]
    },
    "driver": {
        "runtime": {
            "init": {
                "args": {
                    "i2c": "board.I2C()",
                    "address": "{i2c_address}"
                },
                "class": "adafruit_bme280.basic.Adafruit_BME280_I2C"
            },
            "apt_packages": [],
            "pip_packages": [
                "adafruit-circuitpython-bme280"
            ],
            "python_module": "drivers.bme280"
        },
        "targets": [
            "raspberrypi"
        ],
        "verified": {
            "by": null,
            "os": null,
            "date": null,
            "board": null,
            "reviewed_by": null,
            "evidence_url": null
        },
        "interface": "i2c",
        "connection": {
            "pins": [
                {
                    "role": "sda",
                    "notes": null,
                    "required": true
                },
                {
                    "role": "scl",
                    "notes": null,
                    "required": true
                }
            ],
            "i2c_addresses": [
                "0x76",
                "0x77"
            ],
            "supply_voltage": "3.3V",
            "level_shift_required": null
        },
        "constraints": {
            "warmup_seconds": null,
            "read_timeout_seconds": 2,
            "min_read_interval_seconds": 1
        },
        "failure_modes": [
            "Shares addresses 0x76 and 0x77 with the BMP280, which has no humidity channel. Read chip id register 0xD0 before trusting the part: 0x60 is a BME280, 0x58 is a BMP280.",
            "Many breakout boards sold as BME280 carry a BMP280. If humidity reads as absent the part is a BMP280 and the humidity reading must not be published.",
            "Self-heating raises the reported temperature above ambient when sampled continuously. Use forced mode or a slow interval where accuracy matters."
        ]
    },
    "source": "platform-seed",
    "status": "draft",
    "platform": {
        "name": "BME280 Environmental Sensor",
        "protocol": "i2c",
        "readings": [
            {
                "slug": "temperature",
                "unit": "degrees celsius",
                "label": "Temperature",
                "data_type": "float",
                "range_max": 85,
                "range_min": -40,
                "unit_symbol": "°C",
                "device_class": "temperature",
                "decimal_places": 2,
                "threshold_crit_low": 0,
                "threshold_warn_low": 10,
                "threshold_crit_high": 40,
                "threshold_warn_high": 30
            },
            {
                "slug": "humidity",
                "unit": "percent",
                "label": "Relative Humidity",
                "data_type": "float",
                "range_max": 100,
                "range_min": 0,
                "unit_symbol": "%",
                "device_class": "humidity",
                "decimal_places": 2,
                "threshold_crit_low": 20,
                "threshold_warn_low": 30,
                "threshold_crit_high": 85,
                "threshold_warn_high": 70
            },
            {
                "slug": "pressure",
                "unit": "hectopascal",
                "label": "Barometric Pressure",
                "data_type": "float",
                "range_max": 1100,
                "range_min": 300,
                "unit_symbol": "hPa",
                "device_class": "atmospheric_pressure",
                "decimal_places": 2,
                "threshold_crit_low": 950,
                "threshold_warn_low": 970,
                "threshold_crit_high": 1050,
                "threshold_warn_high": 1030
            }
        ],
        "description": "Combined digital humidity, pressure and temperature sensor over I2C or SPI. Used for weather stations and indoor air quality monitoring.",
        "sensor_type": "environmental",
        "manufacturer": "Bosch Sensortec",
        "model_number": "BME280",
        "datasheet_url": "https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme280-ds002.pdf",
        "read_interval_seconds": 60
    },
    "revision": 1
}