Beispiel #1
0
    def get_measurement(self):
        """ Get measurements and store in the database """
        if not self.sensor:
            self.logger.error("Input not set up")
            return

        self.return_dict = copy.deepcopy(measurements_dict)

        if self.is_enabled(0):
            self.value_set(0, self.sensor.read_temperature())

        if self.is_enabled(1):
            self.value_set(1, self.sensor.read_humidity())

        if self.is_enabled(2):
            self.value_set(
                2,
                convert_from_x_to_y_unit('hPa', 'Pa',
                                         self.sensor.read_pressure()))

        if self.is_enabled(3) and self.is_enabled(0) and self.is_enabled(1):
            self.value_set(
                3, calculate_dewpoint(self.value_get(0), self.value_get(1)))

        if self.is_enabled(4) and self.is_enabled(2):
            self.value_set(4, calculate_altitude(self.value_get(2)))

        if self.is_enabled(5) and self.is_enabled(0) and self.is_enabled(1):
            self.value_set(
                5,
                calculate_vapor_pressure_deficit(self.value_get(0),
                                                 self.value_get(1)))

        return self.return_dict
Beispiel #2
0
    def get_measurement(self):
        """ Gets the measurement in units by reading the """
        return_dict = measurements_dict.copy()

        if self.is_enabled(0):
            return_dict[0]['value'] = self.sensor.read_temperature()

        if self.is_enabled(1):
            return_dict[1]['value'] = self.sensor.read_humidity()

        if self.is_enabled(2):
            return_dict[2]['value'] = self.sensor.read_pressure()

        if (self.is_enabled(3) and self.is_enabled(0) and self.is_enabled(1)):
            return_dict[3]['value'] = calculate_dewpoint(
                return_dict[0]['value'], return_dict[1]['value'])

        if self.is_enabled(4) and self.is_enabled(2):
            return_dict[4]['value'] = calculate_altitude(
                return_dict[2]['value'])

        if (self.is_enabled(5) and self.is_enabled(0) and self.is_enabled(1)):
            return_dict[5]['value'] = calculate_vapor_pressure_deficit(
                return_dict[0]['value'], return_dict[1]['value'])

        return return_dict
    def get_measurement(self):
        """ Gets the measurement in units by reading the """
        if not self.sensor:
            self.logger.error("Input not set up")
            return

        self.return_dict = copy.deepcopy(measurements_dict)

        data = self.sensor.sample(self.bus, self.i2c_address,
                                  self.calibration_params)

        if self.is_enabled(0):
            self.value_set(0, data.temperature)

        if self.is_enabled(1):
            self.value_set(1, data.humidity)

        if self.is_enabled(2):
            self.value_set(
                2, convert_from_x_to_y_unit('hPa', 'Pa', data.pressure))

        if self.is_enabled(0) and self.is_enabled(1):
            self.value_set(
                3, calculate_dewpoint(self.value_get(0), self.value_get(1)))

        if self.is_enabled(2):
            self.value_set(4, calculate_altitude(self.value_get(2)))

        if self.is_enabled(0) and self.is_enabled(1):
            self.value_set(
                5,
                calculate_vapor_pressure_deficit(self.value_get(0),
                                                 self.value_get(1)))

        return self.return_dict
Beispiel #4
0
    def get_measurement(self):
        """ Gets the measurement in units by reading the """
        self.return_dict = measurements_dict.copy()

        if self.is_enabled(0):
            self.value_set(0, self.sensor.read_temperature())

        if self.is_enabled(1):
            self.value_set(1, self.sensor.read_humidity())

        if self.is_enabled(2):
            self.value_set(2, self.sensor.read_pressure())

        if (self.is_enabled(3) and self.is_enabled(0) and self.is_enabled(1)):
            self.value_set(
                3, calculate_dewpoint(self.value_get(0), self.value_get(1)))

        if self.is_enabled(4) and self.is_enabled(2):
            self.value_set(4, calculate_altitude(self.value_get(2)))

        if (self.is_enabled(5) and self.is_enabled(0) and self.is_enabled(1)):
            self.value_set(
                5,
                calculate_vapor_pressure_deficit(self.value_get(0),
                                                 self.value_get(1)))

        return self.return_dict
Beispiel #5
0
    def get_measurement(self):
        """ Gets the measurement in units by reading the """
        self.return_dict = measurements_dict.copy()

        data = self.sensor.sample(self.bus, self.i2c_address,
                                  self.calibration_params)

        if self.is_enabled(0):
            self.value_set(0, data.temperature)

        if self.is_enabled(1):
            self.value_set(1, data.humidity)

        if self.is_enabled(2):
            self.value_set(2, data.pressure)

        if (self.is_enabled(3) and self.is_enabled(0) and self.is_enabled(1)):
            self.value_set(
                3, calculate_dewpoint(self.value_get(0), self.value_get(1)))

        if self.is_enabled(4) and self.is_enabled(2):
            self.value_set(4, calculate_altitude(self.value_get(2)))

        if (self.is_enabled(5) and self.is_enabled(0) and self.is_enabled(1)):
            self.value_set(
                5,
                calculate_vapor_pressure_deficit(self.value_get(0),
                                                 self.value_get(1)))

        return self.return_dict
Beispiel #6
0
    def get_measurement(self):
        """ Gets the measurement in units by reading the """
        self.return_dict = measurements_dict.copy()

        if self.is_enabled(0):
            self.value_set(0, self.sensor.read_temperature())

        if self.is_enabled(1):
            self.value_set(1, self.sensor.read_humidity())

        if self.is_enabled(2):
            self.value_set(2, self.sensor.read_pressure())

        if (self.is_enabled(3) and
                self.is_enabled(0) and
                self.is_enabled(1)):
            dewpoint = calculate_dewpoint(
                self.value_get(0), self.value_get(1))
            self.value_set(3, dewpoint)

        if self.is_enabled(4) and self.is_enabled(2):
            altitude = calculate_altitude(self.value_get(2))
            self.value_set(4, altitude)

        if (self.is_enabled(5) and
                self.is_enabled(0) and
                self.is_enabled(1)):
            vpd = calculate_vapor_pressure_deficit(
                self.value_get(0), self.value_get(1))
            self.value_set(5, vpd)

        try:
            now = time.time()
            if now > self.timer:
                self.timer = now + 80
                # "B" designates this data belonging to the BME280
                string_send = 'B,{},{},{}'.format(
                    self.value_get(1),
                    self.value_get(2),
                    self.value_get(0))
                self.lock_acquire(self.lock_file, timeout=10)
                if self.locked[self.lock_file]:
                    try:
                        self.serial_send = self.serial.Serial(self.serial_device, 9600)
                        self.serial_send.write(string_send.encode())
                        time.sleep(4)
                    finally:
                        self.lock_release(self.lock_file)
                self.ttn_serial_error = False
        except Exception as e:
            if not self.ttn_serial_error:
                # Only send this error once if it continually occurs
                self.logger.error("TTN: Could not send serial: {}".format(e))
                self.ttn_serial_error = True

        return self.return_dict
Beispiel #7
0
    def get_measurement(self):
        """Gets the measurement in units by reading the"""
        if not self.sensor:
            self.logger.error(
                "Error 101: Device not set up. See https://kizniche.github.io/Mycodo/Error-Codes#error-101 for more info."
            )
            return

        self.return_dict = copy.deepcopy(measurements_dict)

        if not self.sensor.get_sensor_data():
            self.logger.error("Sensor get_sensor_data() returned False.")
            return

        if self.is_enabled(0):
            self.value_set(0, self.sensor.data.temperature)

        if self.is_enabled(1):
            self.value_set(1, self.sensor.data.humidity)

        if self.is_enabled(2):
            self.value_set(
                2,
                convert_from_x_to_y_unit('hPa', 'Pa',
                                         self.sensor.data.pressure))

        if self.is_enabled(3):
            if self.sensor.data.heat_stable:
                self.value_set(3, self.sensor.data.gas_resistance)
            else:
                self.logger.error("Sensor heat unstable")

        self.logger.debug("Temp: {t}, Hum: {h}, Press: {p}, Gas: {g}".format(
            t=self.value_get(0),
            h=self.value_get(1),
            p=self.value_get(2),
            g=self.value_get(3)))

        if self.is_enabled(0) and self.is_enabled(1) and self.is_enabled(4):
            self.value_set(
                4, calculate_dewpoint(self.value_get(0), self.value_get(1)))

        if self.is_enabled(2) and self.is_enabled(5):
            self.value_set(5, calculate_altitude(self.value_get(2)))

        if self.is_enabled(0) and self.is_enabled(1) and self.is_enabled(6):
            self.value_set(
                6,
                calculate_vapor_pressure_deficit(self.value_get(0),
                                                 self.value_get(1)))

        return self.return_dict
Beispiel #8
0
    def get_measurement(self):
        """ Gets the measurement in units by reading the """
        return_dict = measurements_dict.copy()

        if self.is_enabled(0):
            return_dict[0]['value'] = self.sensor.read_temperature()

        if self.is_enabled(1):
            return_dict[1]['value'] = self.sensor.read_humidity()

        if self.is_enabled(2):
            return_dict[2]['value'] = self.sensor.read_pressure()

        if (self.is_enabled(3) and
                self.is_enabled(0) and
                self.is_enabled(1)):
            return_dict[3]['value'] = calculate_dewpoint(
                return_dict[0]['value'], return_dict[1]['value'])

        if self.is_enabled(4) and self.is_enabled(2):
            return_dict[4]['value'] = calculate_altitude(return_dict[2]['value'])

        if (self.is_enabled(5) and
                self.is_enabled(0) and
                self.is_enabled(1)):
            return_dict[5]['value'] = calculate_vapor_pressure_deficit(
                return_dict[0]['value'], return_dict[1]['value'])

        try:
            now = time.time()
            if now > self.timer:
                self.timer = now + 80
                # "B" designates this data belonging to the BME280
                string_send = 'B,{},{},{}'.format(
                    return_dict[1]['value'],
                    return_dict[2]['value'],
                    return_dict[0]['value'])
                self.lock_setup()
                self.serial_send = self.serial.Serial(self.serial_device, 9600)
                self.serial_send.write(string_send.encode())
                time.sleep(4)
                self.lock_release()
                self.ttn_serial_error = False
        except:
            if not self.ttn_serial_error:
                # Only send this error once if it continually occurs
                self.logger.error("TTN: Could not send serial")
                self.ttn_serial_error = True

        return return_dict
Beispiel #9
0
    def get_measurement(self):
        """ Gets the measurement in units by reading the """
        self.return_dict = measurements_dict.copy()

        if self.is_enabled(0):
            self.set_value(0, self.read_pressure())

        if self.is_enabled(1):
            self.set_value(1, self.read_temperature())

        if self.is_enabled(2) and self.is_enabled(0):
            self.set_value(2, calculate_altitude(self.get_value(0)))

        return self.return_dict
Beispiel #10
0
    def get_measurement(self):
        """ Gets the measurement in units by reading the """
        return_dict = measurements_dict.copy()

        if self.is_enabled(0):
            return_dict[0]['value'] = self.read_pressure()

        if self.is_enabled(1):
            return_dict[1]['value'] = self.read_temperature()

        if self.is_enabled(2) and self.is_enabled(0):
            return_dict[2]['value'] = calculate_altitude(
                return_dict[0]['value'])

        return return_dict
Beispiel #11
0
    def get_measurement(self):
        """ Gets the measurement in units by reading the """
        return_dict = measurements_dict.copy()

        if self.is_enabled(0):
            return_dict[0]['value'] = self.read_pressure()

        if self.is_enabled(1):
            return_dict[1]['value'] = self.read_temperature()

        if self.is_enabled(2) and self.is_enabled(0):
            return_dict[2]['value'] = calculate_altitude(
                return_dict[0]['value'])

        return return_dict
Beispiel #12
0
    def get_measurement(self):
        """ Gets the measurement in units by reading the BMP180/085 """
        time.sleep(2)

        self.return_dict = measurements_dict.copy()

        if self.is_enabled(0):
            self.value_set(0, self.bmp.read_pressure())

        if self.is_enabled(1):
            self.value_set(1, self.bmp.read_temperature())

        if self.is_enabled(2) and self.is_enabled(0):
            self.value_set(2, calculate_altitude(self.value_get(0)))

        return self.return_dict
Beispiel #13
0
    def get_measurement(self):
        """ Gets the measurement in units by reading the """
        self.return_dict = measurements_dict.copy()

        if not self.sensor.get_sensor_data():
            self.logger.error("Sensor get_sensor_data() returned False.")
            return

        if self.is_enabled(0):
            self.value_set(0, self.sensor.data.temperature)

        if self.is_enabled(1):
            self.value_set(1, self.sensor.data.humidity)

        if self.is_enabled(2):
            self.value_set(2, self.sensor.data.pressure)

        if self.is_enabled(3):
            if self.sensor.data.heat_stable:
                self.value_set(3, self.sensor.data.gas_resistance)
            else:
                self.logger.error("Sensor heat unstable")

        self.logger.debug("Temp: {t}, Hum: {h}, Press: {p}, Gas: {g}".format(
            t=self.value_get(0),
            h=self.value_get(1),
            p=self.value_get(2),
            g=self.value_get(3)))

        if (self.is_enabled(4) and
                self.is_enabled(0) and
                self.is_enabled(1)):
            self.value_set(4, calculate_dewpoint(
                self.value_get(0), self.value_get(1)))

        if self.is_enabled(5) and self.is_enabled(2):
            self.value_set(5, calculate_altitude(self.value_get(2)))

        if (self.is_enabled(6) and
                self.is_enabled(0) and
                self.is_enabled(1)):
            self.value_set(6, calculate_vapor_pressure_deficit(
                self.value_get(0), self.value_get(1)))

        return self.return_dict
Beispiel #14
0
    def get_measurement(self):
        """Gets the measurement."""
        if not self.sensor:
            self.logger.error("Error 101: Device not set up. See https://kizniche.github.io/Mycodo/Error-Codes#error-101 for more info.")
            return

        self.return_dict = copy.deepcopy(measurements_dict)

        if self.is_enabled(0):
            self.value_set(0, self.sensor.get_pressure())

        if self.is_enabled(1):
            self.value_set(1, self.sensor.get_temperature())

        if self.is_enabled(0):
            self.value_set(2, calculate_altitude(self.value_get(0)))

        return self.return_dict
Beispiel #15
0
    def get_measurement(self):
        """ Gets the measurement in units by reading the """
        if not self.sensor:
            self.logger.error("Input not set up")
            return

        self.return_dict = copy.deepcopy(measurements_dict)

        if self.is_enabled(0):
            self.value_set(0, self.read_pressure())

        if self.is_enabled(1):
            self.value_set(1, self.read_temperature())

        if self.is_enabled(0):
            self.value_set(2, calculate_altitude(self.value_get(0)))

        return self.return_dict
Beispiel #16
0
    def get_measurement(self):
        """Gets the measurement in units by reading the"""
        if not self.sensor:
            self.logger.error(
                "Error 101: Device not set up. See https://kizniche.github.io/Mycodo/Error-Codes#error-101 for more info."
            )
            return

        self.return_dict = copy.deepcopy(measurements_dict)

        data = self.sensor.sample(self.bus, self.i2c_address,
                                  self.calibration_params)

        if self.is_enabled(0):
            self.value_set(0, data.temperature)

        if self.is_enabled(1):
            self.value_set(1, data.humidity)

        if self.is_enabled(2):
            self.value_set(
                2, convert_from_x_to_y_unit('hPa', 'Pa', data.pressure))

        if self.is_enabled(0) and self.is_enabled(1):
            self.value_set(
                3, calculate_dewpoint(self.value_get(0), self.value_get(1)))

        if self.is_enabled(2):
            self.value_set(4, calculate_altitude(self.value_get(2)))

        if self.is_enabled(0) and self.is_enabled(1):
            self.value_set(
                5,
                calculate_vapor_pressure_deficit(self.value_get(0),
                                                 self.value_get(1)))

        return self.return_dict
Beispiel #17
0
    def get_measurement(self):
        """Get measurements and store in the database."""
        if not self.sensor:
            self.logger.error(
                "Error 101: Device not set up. See https://kizniche.github.io/Mycodo/Error-Codes#error-101 for more info."
            )
            return

        self.return_dict = copy.deepcopy(measurements_dict)

        if self.is_enabled(0):
            self.value_set(0, self.sensor.read_temperature())

        if self.is_enabled(1):
            self.value_set(1, self.sensor.read_humidity())

        if self.is_enabled(2):
            self.value_set(
                2,
                convert_from_x_to_y_unit('hPa', 'Pa',
                                         self.sensor.read_pressure()))

        if self.is_enabled(3) and self.is_enabled(0) and self.is_enabled(1):
            self.value_set(
                3, calculate_dewpoint(self.value_get(0), self.value_get(1)))

        if self.is_enabled(4) and self.is_enabled(2):
            self.value_set(4, calculate_altitude(self.value_get(2)))

        if self.is_enabled(5) and self.is_enabled(0) and self.is_enabled(1):
            self.value_set(
                5,
                calculate_vapor_pressure_deficit(self.value_get(0),
                                                 self.value_get(1)))

        return self.return_dict
    def get_measurement(self):
        """ Get measurements and store in the database """
        if not self.sensor:
            self.logger.error("Input not set up")
            return

        self.return_dict = measurements_dict.copy()

        if not self.sensor.get_sensor_data():
            self.logger.debug("Sensor get_sensor_data() returned False.")
            return

        if self.sensor.data.temperature == 34.54:
            self.logger.debug(
                "sensor yielded 34.54 C, executing soft_reset() and remeasuring."
            )
            self.sensor.soft_reset()
            self.sensor_initialize()
            if not self.sensor.get_sensor_data():
                self.logger.debug(
                    "soft_reset() executed, get_sensor_data() returned False.")
                return
            if self.sensor.data.temperature == 34.54:
                self.logger.debug(
                    "soft_reset() executed, second measure attempt yielded 34.54 C"
                )
            else:
                self.logger.debug(
                    "soft_reset() executed, normal temperature measured: {} C".
                    format(self.sensor.data.temperature))

        if self.is_enabled(0):
            self.value_set(0, self.sensor.data.temperature)

        if self.is_enabled(1):
            self.value_set(1, self.sensor.data.humidity)

        if self.is_enabled(2):
            self.value_set(2, self.sensor.data.pressure)

        if self.is_enabled(3):
            if self.sensor.data.heat_stable:
                self.value_set(3, self.sensor.data.gas_resistance)
            else:
                self.logger.debug("Sensor heat unstable")

        self.logger.debug("Temp: {t}, Hum: {h}, Press: {p}, Gas: {g}".format(
            t=self.value_get(0),
            h=self.value_get(1),
            p=self.value_get(2),
            g=self.value_get(3)))

        if self.is_enabled(4) and self.is_enabled(0) and self.is_enabled(1):
            self.value_set(
                4, calculate_dewpoint(self.value_get(0), self.value_get(1)))

        if self.is_enabled(5) and self.is_enabled(2):
            self.value_set(5, calculate_altitude(self.value_get(2)))

        if self.is_enabled(6) and self.is_enabled(0) and self.is_enabled(1):
            self.value_set(
                6,
                calculate_vapor_pressure_deficit(self.value_get(0),
                                                 self.value_get(1)))

        return self.return_dict