Как достать данные из машины состоний aiogram?

изучаю aiogram и пишу первого бота, появилась идея внедрить в бота уведомления о погоде в текущей позиции, но столкнулся с проблемой что не знаю как достать введенные данные (а именно время) из машины состояний.

class Form (StatesGroup):
    user_time = State()

now_pos = "None"

bot = Bot(token=BOT_TOKEN)
storage = MemoryStorage()
dp = Dispatcher (bot, storage=storage)
 

@dp.message_handler(commands=['svodka'])
async def mes (message: types.Message):
    await bot.send_message (message.from_user.id, text="Установите время для уведомлений (например: 17:00)")
    await Form.user_time.set()

@dp.message_handler(state=Form.user_time)
async def timing (message: types.Message, state: FSMContext):
    await state.update_data(user_time = message.text)
    await Form.next()
    await message.reply(f"Отлично, время {message.text}")

async def uvedi():
    aioschedule.every().day.at(#сюда нужно вставить введенное юзером время).do(weather_command(now_pos))
    while True:
        await aioschedule.run_pending()
        await asyncio.sleep(1)

async def start_uvedi (dp):
    asyncio.create_task(uvedi())

Ответы (1 шт):

Автор решения: Alexander A.XO

Возможно что-то в этом роде:

@dp.message_handler(state=Form.user_time)
async def timing (message: types.Message, state: FSMContext):
    # await state.update_data(user_time = message.text)
    async with state.proxy() as data:
        data['user_time'] = message.text
    await Form.next()
    await message.reply(f"Отлично, время {message.text}")

async def uvedi():
    async with state.proxy() as data:
        user_time = data['user_time']
    aioschedule.every().day.at(user_time).do(weather_command(now_pos))
    while True:
        await aioschedule.run_pending()
        await asyncio.sleep(1)
→ Ссылка