Вы сейчас просматриваете Упрощение контроля параметров электросети или АСКУЭ в Telegram. Часть 2

Упрощение контроля параметров электросети или АСКУЭ в Telegram. Часть 2

В прошлой части статьи было рассказно об основных моментах построения бота для облегчения контроля показаний АСКУЭ. Теперь перейдем ко 2 и заключительной части.

Главной частью программы является обработчик команды. Код обработчик представлен ниже:

@bot.message_handler(content_types=['text'])
def func(message):
	if (message.text == "Узнать мощность завода"):
		try:
			P, time = askue_req()
			t = time[0]+' '+P[0]+'\n'+time[1]+' '+P[1] + \
				'\n'+time[2]+' '+P[2]+'\n'+time[3]+' '+P[3]
			bot.send_message(message.chat.id, text=t)
			t = time[3]+'\n'+P[3]
			bot.send_message(message.chat.id, text=t)
		except Exception as e:
			bot.send_message(
				message.chat.id, text="Не могу выполнить команду. Ошибка: "+e)
			print("Ошибка!"+e)
	elif (message.text == 'Отбито с 08:00 до 11:00'):
		try:
			time, P = pik()
			if(float(P) > MAX_POWER):
				bot.send_message(message.chat.id, u"\U0001F972")
			else:
				bot.send_message(message.chat.id, u"\U0001F600")
			bot.send_message(message.chat.id, 'Тариф пик\n{0}\n{1}\n'.format(P, time))
		except Exception as e:
			bot.send_message(message.chat.id, text="Не могу выполнить команду. Ошибка: "+e)
			print("Ошибка!"+e)
	else:
		bot.send_message(
			message.chat.id, text="Неизвестная команда")

Бот реагирует на два команды: «Узнать мощность завода» и «Отбито с 08:00 до 11:00». Первая команда предоставляет текущую трехминутную мощность и 3 прошлых значения трехминутной мощности для отслеживания динамики ее изменения. Вторая команда предоставляет значения максимальной получасовой мощности с 08:00 до 11:00. Данной значения представляет интерес ввиду того, что участвует в расчете платы за потребленную электроэнергию и активную мощность.

Пример того, как это выглядит в телеграмме:

На этом статья подходит к концу. Своей целью я не ставил сделать пошаговое руководство и полное описание программы. Я лишь хотел показать идею того, как может быть реализован такой вид «автоматизации» отображения показаний. Если есть вопросы по программе, жду в комментариях!

Добавить комментарий