Я устанавливаю таймер для некоторых насосов на моем Raspberry Pi с веб-сайта. Когда я ввожу, сколько секунд я хочу, чтобы насос включился, я посылаю mqtt-сообщение пи, чтобы включить его на требуемое время. Однако, если я делаю это без сна до тех пор, пока не будет выполнено условие, я посылаю чрезмерное количество сообщений mqtt в pi. Когда я делаю это, используя сон в коде, мой веб-сайт перезагружает все в течение введенного мной периода. У кого-нибудь есть более эффективный способ решения этой проблемы?
@app.route("/pump1_timer", methods=["GET", "POST"])
def pump1_timer():
if request.method == "POST":
seconds = float(request.form.get('pump1_timer'))
t_end = time.time() + (seconds)
while time.time() <= t_end:
publish.single("MY TOPIC", "pump1:on", hostname="MY IP")
time.sleep(seconds)
else:
publish.single("MY TOPIC", "pump1:off", hostname="MY IP")
return main1.html