В качестве введения

Коммуникационное оборудование достаточно быстро устаревает.  Еще совсем недавно Mikrotik hAP RB951Ui-2nD был вполне приличным роутером,  но по сегодняшним меркам 100м порты, однодиапозонный Wi-Fi, и заслуженный процессор Qualcomm Atheros QCA9531 - слабовато даже для дачи.

Но устройство собрано добротно (спасибо ребятам из Риги за хорошее качество), отлично работает с Router OS 7, имеет USB порт и PoE - жалко от него избавляться.

Пришла в голову идея – с  минимальными доработками использовать его в качестве основного блока сигнализации на удаленном объекте.

Минимально необходимые компоненты и оборудование:

1.Любой роутер Mikrotik с блоком питания. У меня - hAP RB951Ui-2nD

2.Доступ в интернет. Если на объекте нет интернета, используем USB модем, у меня оказался не нужный  – Huawei E3372h-153 с симкой МТС.

3.Какой-нибудь извещатель – так эти устройства называются у охранников. Это может быть ИК датчик присутствия, разбития стекла, или просто геркон на дверь. Извещатели должны быть с «сухими контактами». Для тех, кто не в курсе это просто нормально разомкнутые контакты реле не связанные по питанию с датчиком.

Дополнительные компоненты – по желанию.

4.IP камера. У меня HiWatch IPC-T020(C) – самая простая. Можно прицепить несколько по проводу и(или) Wi-Fi по необходимости.

5.Резервное питание. Я использовал батарею из четырех литий-железо-фосфатных (LiFePO4) аккумуляторов (контроллер заряда Lisolec 4S BMS LiFePO4 12V) + дополнительный БП на 14 вольт для зарядки батареи и питания камеры.

Как это работает

Как известно стандартный 10/100м Ethernet порт использует четыре сигнальные линии: Tx+(б/оранж), Tx-(оранж), Rx+(б/зел), Rx-(зел). MDI(TIA/EIA-568B). При стандартном подключении к порту сетевой платы (например) линии TX соединяются с линиями RX и линк поднимается.

Уберем сетевую плату. Соединим напрямую в патче Rx с Tx. Порт поднимется, но при этом получим так называемую петлю (loop). Ситуация очень не приятная в Ethernet,  ее обычно отлавливают с помощью технологии защиты от петель (loop protect у Mikrotik). Но у нас роутер! Не включаем нужный порт в любые бриджи, отключаем loop protect на  нем, и ура, порт горит, а широковещательный шторм – отсутствует. Разъединяем одну линию, линк падает – счетчик “Link Downs” на порту прибавляется. Восстанавливаем линию,  порт поднимается.

Но не все так просто… При соединении проводников порт не всегда переходит в состояние “Up”. Видимо, это особенность RouterOS.  Чтобы гарантированно установить статус порта нужно ненадолго включить “Cable Test” на этом порту, остальные манипуляции не помогают. Но у чипсета есть особенность,  что при включении “Cable Test” на одном порту, иногда, все остальные порты switch chip кратковременно уходят в “Down”, что очень неприятно,  когда у вас на них что-то подключено, например камера или интернет.

Хорошо, что в роутере много Ethernet портов! Используем два порта. Исключаем их из всех бриджей, отключаем loop protect, соединяем между собой Tx и Rx. Контактами извещателя прерываем одну из линий линка и … все, получили блок сигнализации. Эта схема работает отлично, и не требует дергать “Cable Test”.

Осталось в Scheduler запустить скрипт, который регулярно проверяет “Link Downs” на нужном  порту,  и шлет оповещение хозяину.

Реализация

Настраиваем  микрот для доступа в интернет.

Кратко прокомментирую конфиг, он достаточно стандартен для выхода в интернет через USB модем.

  • Настраиваем Ethernet интерфейсы: E1 – приходит резервное питание; E2 – подключена Ip камера; E3 – в бридже для настройки роутера; E4 и E5 используются для сигнализации.

  • Wi-Fi интерфейс на ваш вкус

  • LTE стандартно для USB модема в режиме PPP (Stik)

  • В бридж добавляем все порты,  кроме E4-E5

  • Делаем локальную сеть 192.168.5.0/24, создаем DHCP сервер, камере даем фиксированный ip.

  • ip firewall filter и ip firewall nat все стандартно

# 2026-06-24 10:11:15 by RouterOS 7.23.1#
# model = RB951Ui-2nD

/interface ethernet
set [ find default-name=ether1 ] name=E1-Power12
set [ find default-name=ether2 ] name=E2-Camera
set [ find default-name=ether3 ] name=E3
set [ find default-name=ether4 ] advertise=10M-baseT-half,10M-baseT-full arp=disabled loop-protect=off name=E4-Alarm
set [ find default-name=ether5 ] advertise=10M-baseT-half,10M-baseT-full arp=disabled loop-protect=off name=E5-AlarmP poe-out=off

/interface wireless
set [ find default-name=wlan1 ] band=2ghz-onlyn country=russia3 frequency=\
    auto max-station-count=10 mode=ap-bridge multicast-buffering=disabled \
    multicast-helper=disabled name=WiFi2.4 ssid=<SSID> wireless-protocol=\
    802.11 wps-mode=disabled
/interface wireless security-profiles
set [ find default=yes ] authentication-types=wpa2-psk group-key-update=1h \
    mode=dynamic-keys supplicant-identity=MikroTik

/interface lte
set [ find default-name=lte1 ] allow-roaming=yes disabled=yes name=MTS-LTE 
/ppp profile
set *0 use-ipv6=no use-mpls=no use-upnp=no
add name=MTS-LTE use-compression=no use-encryption=no use-ipv6=default \
    use-mpls=no use-upnp=no

/interface bridge
add name=Bridge protocol-mode=none
/interface bridge port
add bridge=Bridge interface=E1-Power12
add bridge=Bridge interface=E3
add bridge=Bridge interface=E2-Camera
add bridge=Bridge interface=WiFi2.4
/ip address
add address=192.168.5.1/24 interface=Bridge network=192.168.5.0

/ip pool
add name=Pool ranges=192.168.5.10-192.168.5.200
/ip dhcp-server
add address-pool=Pool interface=Bridge lease-time=1d name=DHCP
/ip dhcp-server network
add address=192.168.5.0/24 dns-server=192.168.5.1 gateway=192.168.5.1 netmask=24
/ip dhcp-server lease
add address=192.168.5.2 client-id=1:XX:XX:XX:XX:XX:XX comment=Camera \
    mac-address=XX:XX:XX:XX:XX:XX server=DHCP

/ip dns
set allow-remote-requests=yes cache-max-ttl=1d servers=1.1.1.1,77.88.8.8

/ip firewall filter
add action=drop chain=input dst-port=22,23,53,80,443,8291 in-interface=MTS protocol=tcp
add action=drop chain=input dst-port=53 in-interface=MTS protocol=udp
/ip firewall nat
add action=masquerade chain=srcnat out-interface=MTS src-address=192.168.5.0/24

/system clock
set time-zone-autodetect=no time-zone-name=Europe/Moscow
/system ntp client
set enabled=yes
/system ntp client servers
add address=217.91.44.17

При включении питания, бывают случаи, что USB модем сразу не работает,  поэтому с задержкой 40с после включения проверяем интерфейс MTC, если не готов перегружаем USB по питанию. Заодно инициализируем глобальную переменную E4linkDown – число срабатываний;

/system scheduler
add name=RebootUSB1\
on-event=":global E4linkDown -1;\
    \r\ndelay 40; \r\n :if ( [/interface get [find name=\"MTS\"] run] = false ) \
    do={/system routerboard usb power-reset duration=10s};"\
  policy=read,write,policy,test start-time=startup

И основная процедура проверки срабатывания сигнализации,  отправки уведомлений и проверки кто присутствует на объекте.

:local MacA { 
  "Admin1"="XX:XX:XX:XX:XX:XX"; 
  "Admin2"="XX:XX:XX:XX:XX:XX"
 };
:local Text "";
:local DT ("-=".[/system clock get date]."=".[/system clock get time]."=-");
:local linkD [/interface get [find name="E4-Alarm"] link-downs]

:if ($linkD != $E4linkDown) do={
    :foreach ind,mac in=$MacA do={
        :if ([:len [/interface/wireless registration-table find mac-address=$mac]]>0) do={set $Text "$Text $ind,"};
     };
    :local LenText ([:len $Text]-1);
    :set $Text ([:pick $Text 0 $LenText]);
    :if ([:len $Text] = 0) do={ 
        :do {
              /tool fetch url="https://api.telegram.org\
               /botXXXXXXXX:XXXXXXXXXXXX/sendMessage\?chat_id=XXXXXXXXXX\
              &text=--Mikrot-->%0A$DT%0AAlarm$linkD!" keep-result=no;
                 } \
              on-error={
                        /log info "Error Telegram, send SMS, eMail";
                       do { /tool sms send port=usb1 phone-number="+7XXXXXXX" message="Mikrot->\n$DT\n\
                                 Alarm:$linkD!";
                               /tool e-mail send to="XXXXX@XXXX.ru" sub="Mikrot" body="Mikrot-
                               >\n$DT\nAlarm:$linkD!";
                              }\
                             on-error={/log info "Error send SMS or eMail";}
                               }; # on-error
   }; # if ([ len...
    :global E4linkDown $linkD;
  }; # if ($linkD...

/log info "TestAlarm: $DT; $Text; $E4linkDown; $linkD";

Описание по тексту скрипта:

:local MacA – массив с именами пользователей и их mac адресами Wi-Fi. Используется для идентификации пользователей. Человек приходит на объект, его телефон присоединяется к Wi-Fi роутера и сигнализация выключает режим охраны. Естественно, на телефоне должно быть настроено автоматическое подключение к этому ssid и включена опция “использовать МАС адрес устройства”. Кстати, на телефон будет раздаваться интернет с роутера J.

:local DT Текущие дата и время устройства

:local linkD читаем сколько выключений интерфейса на момент запуска скрипта.

:global E4linkDown сколько выключений интерфейса было до момента запуска скрипта.

Логика работы: Проверяем, были ли срабатывания сигнализации с момента последнего запуска скрипта? Если нет, пишем в лог, обновляем E4linkDown и выходим – сработок не было. Если были, проверяем есть ли маки из таблицы MacA в регистрации Wi-Fi? Если есть пишем в лог, обновляем E4linkDown и выходим – сигналка выключена – хозяева на объекте. Если никого нет,  тревога – срабатывание без хозяев – шлем оповещение в телеграмм, если не получилось, дублируем на sms и email.

Скрипт нужно запускать регулярно (у меня 1 раз в минуту) с помощью scheduler

/system scheduler
add interval=1m name=TestAlarm on-event="/system script run TestAlarm\r\
    \n" policy=read,write,policy,test start-time=startup

Использование камеры

Изображения с камер можно использовать по разному. Самый простой вариант сохранить в нужный момент в память микрота и переслать по email.

:local DT ("-=".[/system clock get date]."=".[/system clock get time]."=-");
/tool fetch url="http://192.168.5.2/ISAPI/Streaming/channels/101/picture" user="admin" password="XXXX" http-auth-scheme=digest dst-path="Obj.jpg"
:delay 3s
/tool e-mail send to="xxxx@xxx.ru" subject="Foto obj" body="$DT" file="Obj.jpg"
:delay 5s
/file remove "Obj.jpg" 

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

Я делаю по-другому. У меня есть сервер умного дома, и сигнализация подключена к его внутренней сети. Сигнал тревоги вместе с оповещением поступает на сервер, а уже сервер обращается к камере и забирает картинку. Для упрощения конфига эта часть в нем не показана.

Что можно доделать

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

  2. Так как у нас есть еще три свободных  порта, то можно организовать еще один независимый  шлейф сигнализации и оповещать, какой контур сработал.

  3. У нас есть PoEout порт, на него можно включить звуковое/световое оповещение.

  4. На свободные порты можно повесить секретную кнопку вкл/выкл сигнализации,  или не секретную – вызов охраны.

Скрытый текст
Mikrotik + HiWatch
Mikrotik + HiWatch
Блок резервного питания
Блок резервного питания

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


  1. Gansterito
    04.07.2026 17:49

    Я вот не помню почему, но rx/tx в аналогичной конфигурации я замыкал через резистор.


    1. Small69 Автор
      04.07.2026 17:49

      Резистор обычно используется в шлейфе систем ОПС, для того, чтобы различать состояние КЗ и охраны на линии. Как правило 4к7. В ethernet используется стандартный патч без резисторов для соединения порт-порт. По-этому здесь в цепи rx/tx резисторов не использую.


  1. ru_vlad
    04.07.2026 17:49

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


    1. balamutang
      04.07.2026 17:49

      Если netinstall не помогает то тогда флешку надо на плате, сдуть и новую припаять


      1. ru_vlad
        04.07.2026 17:49

        Спасибо! Увы, дешевле выкинуть.


      1. Dmitr_B
        04.07.2026 17:49

        Все круто, только лицензия привязана к id диска/флешки. И после замены чипа получится в итоге коробочка в которую можно залить только openwrt (как советуют ниже в комментах).


    1. 668010
      04.07.2026 17:49

      Прошить в openwrt с зашитым конфигом


  1. aladkoi
    04.07.2026 17:49

    У меня на подобный микротик на usb порт подключен внешний модем L850. Все работает стабильно после любой перезагрузки. Все настройки сделал AI агент вместе со скриптами запуска.


    1. Small69 Автор
      04.07.2026 17:49

      У меня иногда отваливался, но это было на RouterOS 6 версии, на семерке не наблюдал пока.


  1. balamutang
    04.07.2026 17:49

    Чего только не придумают лишь бы Ардуино не использовать :)

    Кстати на камерах обычно есть служебные контакты которые можно использовать для инициации отправки картинки на почту или на FTP сервер


    1. digrobot
      04.07.2026 17:49

      Да, фича называется "Alarm input", есть в веб-интерфейсе большинства камер, но реально на корпус не выведено, видимо надо на плате искать.


    1. Small69 Автор
      04.07.2026 17:49

      Сейчас модно esp32 :) Выход типа "Alarm" есть у камер подороже, там нужно настраивать детекцию человека, или пересечение линии.


  1. chelaxe
    04.07.2026 17:49

    Можно использовать порт с питанием, вот в моей статье был пример https://habr.com/ru/articles/364593/


    1. Small69 Автор
      04.07.2026 17:49

      Читал вашу статью, интересно и полезно, я на PoeOut повесил питание извещателя, можно удаленно выключать, когда флудит.


  1. gwathedhel
    04.07.2026 17:49

    Троллейбус_из_хлеба.жпг


    1. Small69 Автор
      04.07.2026 17:49

      Если выкинуть жалко, так пусть еще поработает


      1. randomsimplenumber
        04.07.2026 17:49

        Да, на каком то неответственном участке пусть работает. Сигнализация ведь именно такая вещь, неответственная.


        1. Small69 Автор
          04.07.2026 17:49

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


          1. randomsimplenumber
            04.07.2026 17:49

            Конечно подойдет. Особенно если в доме нет ничего ценного. Цена отключения сигнализации - 1 кусь кусачками. Интернет пропал - сигнализация превратилась в тыкву.

            Ну, или сигнализация показала что какие то люди тырят на вашей даче груши. Ваши действия?


            1. balamutang
              04.07.2026 17:49

              Другой вариант: сигнализация показывает что датчик срабатывает. А на деле никого нет. После N-ного раза уже никто не смотрит - срабатывает она или нет.


              1. Small69 Автор
                04.07.2026 17:49

                Камера помогает


            1. 5erG0
              04.07.2026 17:49

              Так груши тырить могут и при дорогой сигнализации. Ведь сигнализация она и остаётся сигнализацией. Она не прогонит хулиганов, а только сообщит хозяину. Если это не груши, а ценности из кирпичного дома, то тогда хозя нажмёт красную кнопку и ГБР уже выезжает.


              1. randomsimplenumber
                04.07.2026 17:49

                Кмк настоящая (тм) сигнализация и свма умеет нажать красную кнопку.


                1. Small69 Автор
                  04.07.2026 17:49

                  Обычно вневедомственная охрана с ГБР ставит свое оборудование, зачем им самодеятельность, они серьезные дядьки и несут мат. ответственность в случае несвоевременного приезда. И ежемесячная оплата, приличная.


                  1. randomsimplenumber
                    04.07.2026 17:49

                    Вот именно. У взрослых дядек взрослые игрушки, 20 копеек экономии им неинтересны.


            1. Small69 Автор
              04.07.2026 17:49

              Про кусачки - можно сделать резервный канал через сотовиков.

              Про груши - Все зависит от ситуации.

              Можно позвонить соседу или участковому, предварительно договорившись,

              Можно успеть приехать самому и навалять, но есть опасность получить срок за нанесение телесных повреждений.

              Но это все не про надежность сигнализации...


              1. randomsimplenumber
                04.07.2026 17:49

                Воот.. security это больше процессы чем оборудование.

                можно сделать резервный канал через сотовиков.

                Для охраны груш избыточно. А если за

                забором что то ценное - глушилка в помощь, например.


  1. Maxim_Q
    04.07.2026 17:49

    Сколько держдится резервное питание, если выключают свет сколько часов продержится?


    1. Small69 Автор
      04.07.2026 17:49

      Зависит от нагрузки. В моем случае микрот +USB модем + камера около 2 часов.


  1. kirya_vyazemskiy
    04.07.2026 17:49

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


  1. alcotel
    04.07.2026 17:49

    Идея рвать провод сама по себе интересна, когда нет других GPIO. Правда, бывает так, что с хорошим Ethernet-фронтендом при обрыве одного из проводов соединению плохеет, но оно не рвётся насовсем. Лучше, наверное, наоборот - закорачивать одну из витых пар.

    Но если есть сухой контакт, то им так-то и питание устройству можно включать. Тогда резервного питания хватит на пару лет.


  1. Solar_fox
    04.07.2026 17:49

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


    1. Small69 Автор
      04.07.2026 17:49

      Честно говоря, не слышал, но логично, исключаешь порт из всех vlan, вешаешь на него герконовый датчик открытия, и спокойно мониторишь по SNMP. Спасибо за информацию.