Старый, добрый, мем..
Старый, добрый, мем..

Немного лирики...

Давайте уже честно признаемся, что скорее всего (как большинству наверное известно) ни одна диспетчеризация крупных промышленных объектов, не завязана с глобальной сетью.. Ровно как и ни одна транзакция, по крайней мере в крупных банках, не проходит бесследно.. Поэтому разговоры о том, что где-то там.. вывели из строя половина энергосистемы страны, либо в каком-то банке, хакеры украли +100500 миллионов долларов.. Это все остается просто разговорами.. Либо инфоповодами для более масштабных схем.. чего-бы то не было.. Если только обозначенное этим текстом, не является социальным инжинирингом..

Disclamer

Скорее заметка, нежели пост, либо статья.. Сильно не пинать..

Около года назад, возникла потребность решить проблему перезагрузки газовых горелок в котельной на одном из предприятий моего города.

Вот таких..
Вот таких..

Дело в том, что техническому директору приходилось каждый раз выезжать, приходить, и делать это в ручном режиме. Даже глубокой ночью, проблему необходимо было решать..

Связано это в первую очередь с отключение энергоснабжения, по тем или иным причинам..

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

В итоге пришли к выводу, что нам нужно самостоятельное устройство (телеметрия), да к тому же с запросом текущей температуры по котлам.. И все это, должно управляться по средствам Telegram‑бота..

Особо долго не думая, было принято решение организовать это все на ESP8266.. А в качестве оболочки API для Telegram выбор пал на библиотеку Alex Gyver FastBot..

Отличный выбор, возможно скажите вы.. Но была доля сомнений поэтому поводу.. Дело в том, что как всем наверное известно, боты в Telegram общедоступны, — что вынуждает создавать разграничения по User ID и User Name, а все кто не с нами.. игнорировать запросы пользователей.. если такие, вдруг появятся..

Еще не маловажным стал тот факт, как всем наверное опять таки известно, что сама по себе ESP8266 дырявая, т. е. С кучей бэкдоров..

Чтобы хоть как то прокачать, в связи со всеми этими факторами, безопасность устройства, было принято решение внедрить в схему (на мой взгляд) очень интересный блок безопасности, — блок Security.. О чем и пойдет речь далее:

И так, ничего особенного, как вы наверное уже поняли.. Но это лишь на первый взгляд..

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

Стоит отметить, помимо встроенных защит в саму газовую горелку, всяких: наличие, давление газа, воздуха, наличие пламени и т.д).. НИКТО НЕ МЕШАЕТ ВКЛЮЧАТЬ И ВЫКЛЮЧАТЬ МНОГО РАЗ ЭТУ САМУЮ ГОРЕЛКУ ЗАДЕНЬ.. А тут еще и какое то удаленное управление?!..

Первым что пришло на ум, организовать самоподхват питания устройства.. Т.е. как некоторые возможно понимают: кнопочный пост.. Т.е. вот это:

Ну а зачем нам такое большое и силовое устройство?.. Пришлось, масштабировать такой функционал на печатную плату, т. е. На слаботочку.. Схема прилагается ниже..

Upd: По сути, сами котлы пускаются с кнопочных постов в автоматическом режиме.. Схему такого пуска посредствам кнопочного поста, прилагаю ниже..

Upd: Что же касается самой телеметрии, то она особо ни на что не влияет.. Введу множество защит в самой горелке.. Ни кто не запрещает к примеру, стоять над кнопочным постом, и включать-выключать котлы целый день.. Я думаю, что особо серьезного ничего не произойдет, максимум в один прекрасный момент, горелка вывалится в ошибку.. Но исключить такой фактор.. было необходимо..

Схема подключения телеметрии к постам, ниже..

Как оно работает?

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

Кусок программы, с счетчиком..
Кусок программы, с счетчиком..
Сама телега, и реакция на троллинг бота..
Сама телега, и реакция на троллинг бота..

Пустяки, скажите вы.. Не думаю..

  1. На просторах сети, я не встречал таких решений в слаботочке..

  2. Позволяет вам сами определять когда ПОЛНОСТЬЮ отключить то, или иное устройство..

  3. Вводит некую дополнительную безопасность, в управление технологическими процессами..

Т. е.. получается фактически, — удаленный аварийный СТОП! Почему нет..

Фото устройства в сборе

Эпилог

По своей сути, это просто заметка.. Заметка о том, что оказывается и так можно сделать.. В общем Вы как инженеры можете масштабировать большие технологические решения (процессы, как в случае с кнопочным постом) на более малые, низкоуровневые схемотехнические решения.. Ровно как и наоборот, из чего-то малого можно масштабировать на что-то большое..

P.s.. Ничто из представленного, не претендует на истину в последней инстанции, или индивидуальность.. Требует более тщательного обсуждения, перед реализацией тех, или иных задумок.

Upd: P.p.s. Не большая ремарка.. Заранее предвкушая часть уже изложенных комментариев ниже, немного постараюсь пояснить, в связи с чем это «экстренное отключение» было реализовано.. Дело в том, что я питал те же сомнения что и большинство комментаторов ниже.. Но именно эти сомнения, и породили такое дополнительное решение.. Насколько оно грамотное, либо правильное, решать прежде всего вам.. Но как идея одного из возможных вариантов защиты, как мне кажется, имеет право на жизнь..

Всем бобра!..

Комментарии (35)


  1. SdrRos
    06.09.2025 00:45

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

    Т.е. команды от недоверенных пользователей могут привести к отключению?


    1. dyadyaSerezha
      06.09.2025 00:45

      Команды, которые пролезли в дырки скриптовой системы. Хотя я бы просто добавил натуральную аутентификацию "пользователя-кочегара-котельной" - запрос: "выпей бутылку водки залпом прямо сейчас, тогда поверю, что ты аутентичный юзер".


      1. zhogar Автор
        06.09.2025 00:45

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


        1. dyadyaSerezha
          06.09.2025 00:45

          Большое спасибо, что дали мне это право.


    1. zhogar Автор
      06.09.2025 00:45

      Да, но лишь с целью избежания "дня сурка".. Устройство просто отключится, если увидит что-то не ладное.. А по факту, уже можно будет разбираться на месте..


    1. zhogar Автор
      06.09.2025 00:45

      Команды от недоверенных пользователей, прежде всего игнорируются.. А счет��ик считает лишь ошибки в командах, либо очень частые обращения к боту за сутки..


  1. MVN63
    06.09.2025 00:45

    Три косячных запроса к боту и ... Вуаля! Директор снова мчится в ночи нажимать кнопку!

    Даже если прикрутить туда таймер для повторного включения, ddos победит.

    Как вариант - использовать sms с кодовым словом с телефонных номеров из "белого списка" - пусть аутентификацией/авторизацией опсос занимается.

    А уж если вспомнить про шифрование с открытым ключом... пора бежать за ардуинкой ))


    1. zhogar Автор
      06.09.2025 00:45

      Позволит избежать удаленного троллинга системы, своевременно..