summaryrefslogtreecommitdiff
path: root/src/home/temphum/si7021.py
blob: 6289e15280f7a2ff0ce45ca0361cff3afe28a6f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
from .base import I2CTempHumSensor


class Si7021(I2CTempHumSensor):
    i2c_addr = 0x40

    def temperature(self) -> float:
        raw = self.bus.read_i2c_block_data(self.i2c_addr, 0xE3, 2)
        return 175.72 * (raw[0] << 8 | raw[1]) / 65536.0 - 46.85

    def humidity(self) -> float:
        raw = self.bus.read_i2c_block_data(self.i2c_addr, 0xE5, 2)
        return 125.0 * (raw[0] << 8 | raw[1]) / 65536.0 - 6.0