Exemple #1
0
    def mqtt_set_aux_mode_callback(self, client, userdata, message):
        try:
            payload = message.payload.decode().lower()
            logging.info(
                "Received aux mode update request: {}".format(payload))
            self.boost_heat(payload)
        except Exception as e:
            logging.error('Unable to proces message.', e)

        MQTT.publish(self.topic, self.payload())
Exemple #2
0
    def mqtt_callback(self, client, userdata, message):
        try:
            # print(message)
            # logging.info("Received command message: {}".format(payload))
            payload = message.payload.decode()
            logging.info("Received command message: {} on topic ".format(payload, message.topic))
            if payload == 'ON':
                self.on()
            elif payload == 'OFF':
                self.off()
        except Exception as e:
            logging.error('Unable to proces message.', e)

        mqtt.publish(self.topic, self.payload())
Exemple #3
0
    def mqtt_set_temperature_set_point_callback(self, client, userdata,
                                                message):
        try:
            payload = message.payload.decode()
            logging.info(
                "Received temperature set point update request: {}".format(
                    message.payload))
            payload = float(payload)
            if self.mode == HVAC.HEAT:
                self.set_point_heat = payload
            else:
                self.set_point_cool = payload
        except Exception as e:
            logging.error('Unable to proces message.', e)

        MQTT.publish(self.topic, self.payload())
Exemple #4
0
    def setup(self):
        # config = json.dumps({'name': self.name, 'device_class': self.device_class})

        device_config = {
            'name': "Laundry Room Climate",
            'identifiers': self.name,
            'sw_version': 'rpi2mqtt',
            'model': "DHT 22",
            'manufacturer': 'Generic'
        }

        config = json.dumps({
            'name': self.name + '_temperature',
            'device_class': 'temperature',
            'unit_of_measurement': '°F',
            'value_template': "{{ value_json.temperature }}",
            'unique_id': self.name + '_temperature_rpi2mqtt',
            'state_topic': self.topic,
            "json_attributes_topic": self.topic,
            'device': device_config
        })

        mqtt.publish(
            'homeassistant/sensor/{}_{}/config'.format(self.name, 'temp'),
            config)

        config = json.dumps({
            'name': self.name + '_humidity',
            'device_class': 'humidity',
            'json_attributes_topic': self.topic,
            'unit_of_measurement': '%',
            'value_template': "{{ value_json.humidity }}",
            'unique_id': self.name + '_humidity_rpi2mqtt',
            'state_topic': self.topic,
            'device': device_config
        })

        mqtt.publish(
            'homeassistant/sensor/{}_{}/config'.format(self.name, 'humidity'),
            config)
Exemple #5
0
 def callback(self, *args):
     mqtt.publish(self.topic, self.payload())
Exemple #6
0
    def publish_mqtt_discovery(self):

        mqtt.publish(self.homeassistant_mqtt_config_topic,
                     self.homeassistant_mqtt_config_json)
        logging.debug("Published MQTT discovery config to {}".format(
            self.homeassistant_mqtt_config_topic))