| Age | Commit message (Collapse) | Author |
|
|
|
|
|
Install with:
sudo cp weather-board.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now weather-board
|
|
Reads BME280 (temperature, humidity, pressure) and SI1132 (UV index,
visible light, IR) and publishes to MQTT with HA discovery. All six
sensors appear under a single 'Weather Board' device in the Office room.
MQTT broker: 192.168.1.135:1883 (co2meter/co2meter)
Publishes a shared JSON state topic every 10 seconds.
Discovery configs are retained so HA picks them up on restart.
|
|
references
1. get_power_mode() missing parentheses in set_oversamp_pressure and
set_oversamp_temperature — compared method object instead of calling it,
so sleep-mode check never worked correctly.
2. set_oversamp_humidity else branch wrote ctrl_hum_reg into CTRL_MEAS
register instead of ctrl_meas_reg (per datasheet §5.4.3, humidity
settings require a subsequent write to ctrl_meas with the correct value).
3. dig_H6 stored as unsigned byte — should be int8_t per Bosch
bme280_defs.h and Adafruit_BME280.h.
4. dig_H4/H5 sign extension wrong — used to_s16() on 12-bit signed values.
Now sign-extends from MSB byte first (to_s8) then combines with LSB
nibble, matching Bosch parse_humidity_calib_data() and Adafruit
readCoefficients().
5. Humidity compensation formula was missing var5 multiplication factor
vs Bosch compensate_humidity() (BME280_DOUBLE_ENABLE path). Rewritten
with Bosch variable names for easy cross-referencing.
|
|
|
|
|
|
|
|
|