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())
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())
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())
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)
def callback(self, *args): mqtt.publish(self.topic, self.payload())
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))