В прошлой части статьи было рассказно об основных моментах построения бота для облегчения контроля показаний АСКУЭ. Теперь перейдем ко 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. Данной значения представляет интерес ввиду того, что участвует в расчете платы за потребленную электроэнергию и активную мощность.
Пример того, как это выглядит в телеграмме:

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