示例#1
0
class DS18B20:

    def __init__(self, address):
        logging.info('Initialising DS18B20 sensor with address {}'.format(address))
        self._address = address
        self._sensor = Sensor(sensor_id=address)

    def get_temperature(self, mqtt_details):
        """
        Return measured temperature from the sensor.

        :param dict mqtt_details: Relevant details for publishing to the MQTT broker
        :return:
        """
        logging.debug('Measuring temperature')
        temperature = self._sensor.get_temperature()
        logging.info('Broadcasting temperature: {}'.format(temperature))

        temperature_signal = signal('temperature')
        temperature_signal.send(
            self,
            temperature=temperature,
            address=self._address,
            mqtt_topic=mqtt_details['topic']
        )