public override void Process(UponorResponseContainer values) { foreach ((int controller, int thermostat) in _systemDetails.GetAvailableThermostats()) { string deviceId = HassUniqueIdBuilder.GetThermostatDeviceId(controller, thermostat); // Humidity ISensorContainer sensor = HassMqttManager.GetSensor(deviceId, "humidity"); MqttStateValueTopic sender = sensor.GetValueSender(HassTopicKind.State); if (values.TryGetValue(UponorObjects.Thermostat(UponorThermostats.RhValue, controller, thermostat), UponorProperties.Value, out float floatVal)) { if (IsValid.Humidity(floatVal)) { sender.Value = floatVal; } else { _logger.LogWarning("Received an invalid humidity of {Value} for {Device}", floatVal, deviceId); } } } }