Примеры применения
22.05.2018

Управление кондиционером в серверной комнате через Telegram

Управление кондиционером в серверной комнате через Telegram

Ранее в нашем блоге мы рассмотрели процесс создания ботов для мессенджера «Telegram», которые позволяли получать информацию от датчиков и IO линий устройства NetPing по запросу и автоматически. В этой статье рассмотрим пример практического использования этих ботов, добавив им функционал, который в связке с устройством мониторинга UniPing server solution v3 позволит в любое время и в любом месте (при наличии доступа к сети Интернет) управлять кондиционером в серверной комнате.

В нашем примере бот имитирует нажатие кнопок на пульте дистанционного управления кондиционером при помощи URL-encoded команд, которые он отправляет устройству мониторинга UniPing server solution v3. Устройство, в свою очередь, посылает ранее записанные в память команды управления при помощи ИК-модуля IRC-TR v2 кондиционеру, который расположен в серверном помещении.

Варианты применения данного решения:

  • Системный администратор через «Telegram» может включить или выключить резервный кондиционер в серверной комнате, когда он находится не на рабочем месте, например, в выходные, праздничные дни или во время отпуска. Поводом для включения резервного кондиционера должно послужить уведомление в «Telegram» о превышении температуры верхней границы нормы, установленной на странице "ТЕРМОДАТЧИКИ" web-интерфейса устройства. Поводом для отключения резервного кондиционера должно послужить уведомление в «Telegram» о срабатывании датчика воздушного потокаустановленного на выходе потока воздуха основного кондиционера, что означает восстановление его работоспособности;
  • Системный администратор через «Telegram» может понизить или повысить температуру охлаждения, не заходя в серверную комнату, и проконтролировать температуру воздуха по показаниям датчика температуры 1-wire (THS);
  • Системный администратор через «Telegram» может изменить режим работы кондиционера, не заходя в серверную комнату.

Требуемое оборудование, программное обеспечение и подготовка к разработке:

Для реализации функционала управления кондиционером нам потребуется следующий комплект оборудования:

  • UniPing server solution v3 (можно использовать любую модель устройства мониторинга и удалённого управления электропитанием NetPingкоторая поддерживает подключение ИК-модуля расширения IRC-TR v2) – 1 шт.;
  • ИК-модуль IRC-TR v2 – 1 шт.;
  • Датчик температуры 1-wire – 1 шт.;
  • Датчик воздушного потока – 1 шт.;
  • ПК или сервер с предустановленной операционной системой Linux или Windows и доступом в Интернет – 1 шт.;
  • Локальная сеть для связи между устройством мониторинга и ПК, на котором выполняется скрипт бота – 1 шт.;
  • Мессенджер «Telegram» на ПК или смартфоне с доступом к Интернет – 1 шт.

Считаем, что устройство UniPing server solution v3 настроено на работу в вашей локальной сети, и ИК-модуль IRC-TR v2датчик воздушного потока и датчик температуры 1-wire подключены. Подробнее с настройками устройства можно ознакомиться здесь. Также считаем, что устройство UniPing server solution v3 настроено на управление кондиционером. Правила настройки можно прочитать здесь и здесь.

В нашей статье будем использовать следующие параметры устройства UniPing server solution v3:

IP адрес192.168.1.208

Логин

visor

Пароль

ping

Номер подключенного термодатчика

1

Номер IO линии с подключенным датчиком воздушного потока

IO 1

Номер команды включения резервного кондиционера

2

Номер команды выключения резервного кондиционера

3

Номер команды повышения температуры на 1 °C

4

Номер команды понижения температуры на 1 °C

5

Номер команды включения режима «Охлаждение»

6

Номер команды включения режима «Обогрев»

7

Номер команды включения режима «Осушение»

8

Номер команды включения режима «Вентиляция»

9

Номер команды включения ночного режима

10

Номер команды изменения направления шторок кондиционера

11

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

12

В разделе «Настраиваемые уведомления» web-интерфейса устройства мониторинга UniPing server solution v3 пропишем уведомления, которые будут отправляться в «Telegram» при превышении температуры верхней границы нормы (1) и при регистрации датчиком воздушного потока наличия потока воздуха от основного кондиционера (2). К сожалению, кириллица не поддерживается системой «Zapier». Подробнее об этих настройках можно прочитать здесь и здесь.

UniPing server solution v3 - настройка уведомлений в Telegram

Программирование функций управления кондиционером для бота @UniPingSSv3_bot

Предполагается, что у вас настроен сервер с OS Ubuntu, и созданы боты в соответствии с рекомендациями предыдущей статьи. Запрограммируем расширенный функционал для нашего бота @UniPingSSv3_bot. Правим основной файл скрипта управляющего ботом – «bot.py»: 

import telebot
import requests
from telebot import types
import conf_bot

auth = conf_bot.auth
url = conf_bot.url
bot = telebot.TeleBot(conf_bot.TOKEN)

# Обработка команд "/start" и "/help"
@bot.message_handler(commands=['start', 'help'])
def start(message):
     markup = types.ReplyKeyboardMarkup()
     markup.row('/npstatus', '/fault')
     markup.row('/temp', '/mode')
     markup.row('/help')
     bot.send_message(message.chat.id, '''
    ***Тестовый бот NetPing***

    Чтобы запросить актуальные данные с датчиков и IO линий устройства NetPing используйте команду /npstatus

    Чтобы включить или выключить аварийный кондиционер используйте команду /fault

    Чтобы повысить/понизить температуру в помещении серверной используйте команду /temp

    Чтобы изменить режим работы кондиционера в помещении серверной используйте команду /mode

    Для вызова этой справки используйте команду /help ''',
    reply_markup=markup)

# Обработка команды "/npstatus", создание меню.
@bot.message_handler(commands=['npstatus'])
def status(m):
     keyboard = types.InlineKeyboardMarkup()
     keyboard.add(*[types.InlineKeyboardButton(text=name,
         callback_data=name) for name in ['Температура',
     'Влажность' , 'Cтатус IO линии' ]])
     msg = bot.send_message(m.chat.id, '''
         Эта команда позволяет запросить актуальные данные от датчиков и IO линий.
     
         Выберите требуемый параметр:''',
         reply_markup=keyboard)

# Обработка команды "/fault", создание меню.
@bot.message_handler(commands=['fault'])
def status(m):
     keyboard = types.InlineKeyboardMarkup()
     keyboard.add(*[types.InlineKeyboardButton(text=name,
         callback_data=name) for name in ['Включить резервный кондиционер',
     'Выключить резервный кондиционер' ]])
     msg = bot.send_message(m.chat.id, '''
         Эта команда позволяет включить или выключить аварийный кондиционер.
       
         Выберите необходимое действие: ''',
         reply_markup=keyboard)

# Обработка команды "/temp", создание меню.
@bot.message_handler(commands=['temp'])
def status(m):
     keyboard = types.InlineKeyboardMarkup()
     keyboard.add(*[types.InlineKeyboardButton(text=name,
         callback_data=name) for name in ['Увеличить температуру',
     'Уменьшить температуру' ]])
     msg = bot.send_message(m.chat.id, '''
         Эта команда позволяет повысить/понизить температуру       

         Выберите необходимое действие: ''',
         reply_markup=keyboard)

# Обработка команды "/mode", создание меню.
@bot.message_handler(commands=['mode'])
def status(m):
     keyboard = types.InlineKeyboardMarkup()
     keyboard.add(*[types.InlineKeyboardButton(text=name,
         callback_data=name) for name in ['❄ Охлаждение',
     '☀️ Обогрев', '💧 Осушение',
     '🌀 Вентиляция',
     '🌙 Ночной режим',
     '💨Направление шторок', '🔒 Блокировка пульта' ]])
     msg = bot.send_message(m.chat.id, '''
         Эта команда позволяет изменить режим работы кондиционера.
      
         Выберите требуемый параметр:''',
         reply_markup=keyboard)
      
# Обработка нажатия кноки меню "Температура"
@bot.callback_query_handler(func=lambda c: True)
def inline(c):
     if c.data =='Температура':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='Текущие показания термодатчиков UniPing Server Solution v3',
              parse_mode='Markdown')
         i=1
         while i <=8:
              def termo ():
                   r = requests.get(url+'thermo.cgi?t'+str(i), auth=auth)
                   t = r.text[20:22]
                   s = r.text[-3]
                   if s == '0':
                        t = ('Датчик #' +str(i) + ' не подключен или сбоит.')
                        return t
                   else:
                        t= ('Текущая температура на термодатчике #'
                        + str(i)  +':  '+ t + ' градусов С' )
                        return t          
              term = termo()         
              sent = bot.send_message(c.message.chat.id, term )         
              i=i+1
                     
# Обработка нажатия кнопки меню "Влажность"     
     elif c.data =='Влажность':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='Текущие показания датчиков влажности UniPing Server Solution v3',
              parse_mode='Markdown')
         i=1
         while i <=4:
              def rel_hum ():
                   r = requests.get(url+'relhum.cgi?h'+str(i), auth=auth)
                   h = r.text[20:22]
                   s = r.text[-3]
                   if s == '0':
                        h = ('Датчик #' +str(i) + ' не подключен или сбоит.')
                        return h
                   else:
                        h= ('Текущая относительная влажность на датчике #'
                        + str(i)  +':  '+ h + ' %' )
                        return h          
              hum = rel_hum()             
              sent = bot.send_message(c.message.chat.id, hum )          
              i=i+1
   
# Обработка нажатия кнопки меню "Статус IO линии"
     elif c.data =='Cтатус IO линии':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='''Текущий статус IO линий UniPing Server Solution v3
              (0 - выкл. 1 - вкл.)''',
              parse_mode='Markdown')
         i=1
         while i <=8:
              def IO_line ():
                   r = requests.get(url+'io.cgi?io'+str(i), auth=auth)
                   io = r.text[20:21]               
                   if io == '0':
                        io = ('Текущее состояние IO линии #'
                            + str(i) + ': ' + io + ' выключено')
                        return io
                   else:
                        io= ('Текущее состояние IO линии #'
                            + str(i)  + ': ' + io + ' включено')
                        return io         
              io_stat = IO_line()         
              sent = bot.send_message(c.message.chat.id, io_stat )           
              i=i+1

# Обработка нажатия кнопки меню "Включить резервный кондиционер"
     elif c.data =='Включить резервный кондиционер':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='Резервный кондиционер включен',
              parse_mode='Markdown')
         r = requests.get(url+'ir.cgi?play=2', auth=auth)

# Обработка нажатия кнопки меню "Выключить резервный кондиционер"
     elif c.data =='Выключить резервный кондиционер':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='Резервный кондиционер выключен',
              parse_mode='Markdown')
         r = requests.get(url+'ir.cgi?play=3', auth=auth)

# Обработка нажатия кнопки меню "Увеличить температуру"
     elif c.data =='Увеличить температуру':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='Температура увеличена на один градус С',
              parse_mode='Markdown')
         r = requests.get(url+'ir.cgi?play=4', auth=auth)

# Обработка нажатия кнопки меню "Уменьшить температуру"
     elif c.data =='Уменьшить температуру':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='Температура уменьшена на один градус С',
              parse_mode='Markdown')
         r = requests.get(url+'ir.cgi?play=5', auth=auth)

# Обработка нажатия кнопки меню "❄ Охлаждение"
     elif c.data =='❄ Охлаждение':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='Включен режим "❄ Охлаждение"',
              parse_mode='Markdown')
         r = requests.get(url+'ir.cgi?play=6', auth=auth)

# Обработка нажатия кнопки меню "☀️ Обогрев"
     elif c.data =='☀️ Обогрев':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='Включен режим "☀️ Обогрев"',
              parse_mode='Markdown')
         r = requests.get(url+'ir.cgi?play=7', auth=auth)

# Обработка нажатия кнопки меню "💧 Осушение"
     elif c.data =='💧 Осушение':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='Включен режим "💧 Осушение"',
              parse_mode='Markdown')
         r = requests.get(url+'ir.cgi?play=8', auth=auth)

# Обработка нажатия кнопки меню "🌀 Вентиляция"
     elif c.data =='🌀 Вентиляция':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='Включен режим "🌀 Вентиляция"',
              parse_mode='Markdown')
         r = requests.get(url+'ir.cgi?play=9', auth=auth)

# Обработка нажатия кнопки меню "🌙 Ночной режим"
     elif c.data =='🌙 Ночной режим':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='Включен "🌙 Ночной режим" ',
              parse_mode='Markdown')
         r = requests.get(url+'ir.cgi?play=10', auth=auth)

# Обработка нажатия кнопки меню "💨Направление шторок"
     elif c.data =='💨Направление шторок':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='💨Направление шторок изменено',
              parse_mode='Markdown')
         r = requests.get(url+'ir.cgi?play=11', auth=auth)

# Обработка нажатия кнопки меню "🔒 Блокировка пульта"
     elif c.data =='🔒 Блокировка пульта':
         bot.edit_message_text(
              chat_id=c.message.chat.id,
              message_id=c.message.message_id,
              text='🔒 Блокировка пульта включена',
              parse_mode='Markdown')
         r = requests.get(url+'ir.cgi?play=12', auth=auth)

bot.polling()

Исходные файлы бота можно скачать здесь.

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

Рассмотрим вариант включения/выключения резервного кондиционера. Если мы получили от бота @UniPingSSv3_send_bot (информацию о боте смотрите в статье "Как получать в Telegram информацию от датчиков, подключенных к устройствам мониторинга и удалённого управления электропитанием NetPing?"), уведомление о превышении температуры верхней границы нормы:

Telegram получение от UniPing server Solution v3 сообщения о превышении температуры

Активируем диалог с ботом @UniPingSSv3_bot, в скрипт для управления которым мы добавили новый функционал. После того, как мы отправим боту команду «/start» (1), в окно диалога будет выведена памятка (2), и ниже поля для ввода сообщения появятся кнопки (3), дублирующие команды для управления ботом:

Telegram начало диалога с ботом для управления кондиционером

Для включения и выключения резервного кондиционера в нашем боте настроена команда «/fault» (1). После её выбора в окне диалога отображается уведомление о выбранной команде и кнопки для выбора возможных действий (2):

Telegram Включение и выключение резервного кондиционера с помощью UniPing server Solution v3

Сейчас нам нужно включить резервный кондиционер. Выбираем кнопку «Включить резервный кондиционер», после чего получаем сообщение: «Резервный кондиционер включен»:

Telegram включение резеврного кондиционера с помощью UniPing server Solution v3

Теперь ждём сообщения о восстановлении работы основного кондиционера от бота @UniPingSSv3_send_bot. И, если мы его получили, то нужно выключить резервный кондиционер:

Telegram получение от UniPing server Solution v3 сообщения о восстановлении работы основного кондиционера

Возвращаемся к диалогу с @UniPingSSv3_bot, снова нажимаем кнопку «/fault» (1) и выбираем действие «Выключить резервный кондиционер» (2):

Telegram выключение основного кондиционера с помощью UniPing server Solution v3

Теперь рассмотрим порядок действий в случае, когда необходимо изменить текущую температуру в серверной. Сначала запросим текущую температуру при помощи команды «/npstatus». Работа с этой командой подробно описана здесь.

Telegram UniPing server Solution v3 запрос текущей температуры

Затем выбираем команду «/temp» (1) и с помощью ее действий корректируем текущую температуру (2):

Telegram увеличение или уменьшение температуры с помощью UniPing server Solution v3 запрос текущей температуры

Telegram корректировка значения температуры с помощью UniPing server Solution v3

Рассмотрим порядок действий для изменения режима работы кондиционера. Для этого выбираем команду «/mode» (1) и задаём нужный режим работы кондиционера нажатием соответствующей кнопки (2):

Telegram выбор режима работы кондиционера с помощью UniPing server Solution v3

На скриншоте ниже результаты последовательного нажатия кнопок-действий команды «/mode»:

Telegram результаты работы кнопок команды mode

В результате организации подобной интеграции устройства мониторинга микроклимата UniPing server solution v3 с мессенджером «Telegram» мы получаем удобный инструмент для удалённого управления микроклиматом серверного помещения из любого уголка мира, где есть подключение к Интернет.


  • Устройство UniPing server solution v3
  • Устройство UniPing server solution v3/SMS
  • Устройство NetPing 4/PWR-220 v3/SMS

Основные теги


Каталог устойств мониторинг серверных комнат и шкафов
Все устройства
Устройство UniPing v3
Устройство UniPing server solution v3/SMS
Устройство NetPing 2/PWR-220 v1/SMS
Устройство NetPing IO v2
Устройства NetPing
Каталог датчиков для устройств NetPing
Устройство NetPing 8/PWR-220 v3/SMS
Устройство NetPing 2/PWR-220 v3/ETH
Устройство NetPing 2/PWR-220 v2/SMS
Устройство NetPing 4/PWR-220 v3/SMS
Устройство NetPing SMS
Устройство NetPing /PWR-220 v3/ETH
Адаптер WiFi VAP11N
Коммутатор PS104GT
Устройство NetPing Mini-UPS
Коммутатор NP-SM4
Сплиттер POE 12В (стандарта 802.3af)
IRC-TR v2 (ИК модуль расширения)
Каталог устройств удалённого управления и распределения электропитания NetPing
Устройство UniPing server solution
Устройство UniPing server solution v3
Датчик разбития стекла (Стекло-3 ИО 329-4), 2м
Переходник для NetPing IO v2
Блок питания 48В 1,5А (мод.HRS20005)
Датчик температуры TS, 1м
Датчик температуры, (T811), 2м
Датчик температуры WT, 1м
Датчик протечки, модель 2605, 2м
Датчик протечки H2О
Датчик температуры 1-wire, (THS), 2м
МАЯК-12-СТ
Датчик движения (PYRONIX COLT QUAD PI ПИК детектор), 2м
Датчик движения (SWAN-QUAD ИК детектор квадросенсор), (2м)
BM8070D Силовое реле 16А/250В на DIN-рейку
MP701 Исполнительный элемент (4 независимых канала по 2 кВт 10А)
Датчик дыма комбинированный (дым/тепло) ИП 212/101-2М-A1R с базой Е412NL
МОЛЛЮСК-12/1,5
Внешний ИБП SKAT-12DC-1.0 Li-ion
ИКС-1 извещатель охранный инфракрасный активный однолучевой
Датчик охранный (Извещатель охранный ИО102-20/Б2П, 2м)
Блок розеток SNR-PDU-08S-1
Устройство NetPing 2/PWR-220 v4/SMS
Устройство UniPing server solution v4/SMS
Устройство NetPing 8/PWR-220 v4/SMS
VT592 кабельный датчик протечки
WLC10 кабель протечки
NetPing Connection board v2 (коммутационная плата для UniPing v3)
Инжектор питания POE (стандарта 802.3af)
NetPing датчик наличия электропитания 995S1
Устройство NetPing 2/PWR-220 v12/ETH
Устройство NetPing 2/PWR-220 v13/GSM3G
Датчик наличия 220В (мод. HRS05005), 1.5м
NetPing удлинитель-разветвитель 1-wire на 5 портов, модель R912R1
NetPing датчик качества электропитания 1-wire 910S20
PLController R15250 силовое реле 15A/250В на DIN-рейку
NetPing адаптер датчиков с аналоговым интерфейсом 0-20мА, модель 886A01
Устройство NetPing server solution v5
Устройство NetPing ИК модуль, модель 3801
Устройство NetPing server solution v5/GSM3G
Устройство NetPing 4/PWR-220 v6.1/GSM3G
Устройство NetPing 4/PWR-220 v6.2/GSM3G
NetPing IO v3
NetPing Input+Relay v1
NetPing NP-GB322
Устройство NetPing 4/PWR-220 v6.4/ETH
▼ Все теги
Новинки
NetPing v4
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet на DIN-рейку. Позволяет удаленно подробнее...

Цена: 10 650 руб.

Источник питания СКАТ MOLLUSK-VRK 12/2
Адаптер питания может использоваться для питания устройств NetPing и некоторых моделей управляемых коммутаторов.Выходное подробнее...

Цена: 950 руб.

Устройство NetPing 4/PWR-220 v6.4/ETH
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU).4 канала подробнее...

Цена: 15 730 руб.

NetPing NP-GB322
Коммутатор Ethernet на 5 портов 10/100/1000 BASE-TX с поддержкой PoE (электропитание по Ethernet-кабелю) 5 подробнее...

Цена: 4 290 руб.

NetPing Input+Relay v1
Компактное устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно подробнее...

Цена: 6 200 руб.

NetPing IO v3
Компактное бескорпусное устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет подробнее...

Цена: 2 500 руб.

Устройство NetPing 4/PWR-220 v6.2/GSM3G
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU) c поддержкой подробнее...

Цена: 20 280 руб.

Устройство NetPing 4/PWR-220 v6.1/GSM3G
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU) c поддержкой подробнее...

Цена: 20 280 руб.

NetPing блок розеток 1-wire 888S0201
Блок розеток предназначен для удаленного управления нагрузкой. Устройство не является самостоятельным, подробнее...

Цена: 10 980 руб.

Устройство NetPing ИК модуль, модель 3801
ИК-контроллер для дистанционного и автоматического управления устройствами с инфракрасным интерфейсом подробнее...

Цена: 8 580 руб.

Устройство NetPing server solution v5
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно получать информацию подробнее...

Цена: 18 000 руб.

Устройство NetPing server solution v5/GSM3G
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно получать информацию подробнее...

Цена: 26 000 руб.

PLController R15250 силовое реле 15A/250В на DIN-рейку
Силовое реле в корпусе для крепления на DIN-рейку предназначено для удаленной коммутации мощной нагрузки.Напряжение подробнее...

Цена: 1 429 руб.

NetPing адаптер датчиков с аналоговым интерфейсом 0-20мА, модель 886A01
Адаптер предназначен для подключения аналоговых датчиков, передающих сигнал изменением протекающего подробнее...

Цена: 3 354 руб.

NetPing датчик качества электропитания 1-wire 910S20
Датчик предназначен для мониторинга качества электропитания в розетке. Датчик должен быть подключен подробнее...

Цена: 2 240 руб.

NetPing удлинитель-разветвитель 1-wire на 5 портов, модель R912R1
Активный удлинитель-разветвитель для подключения датчиков 1-wire к устройствам NetPing5 портов для подключения подробнее...

Цена: 1 400 руб.

Устройство NetPing 2/PWR-220 v12/ETH
Управляемый блок удаленного распределения питания по сети Ethernet/Internet (IP PDU)2 независимые управляемые подробнее...

Цена: 8 157 руб.

Устройство NetPing 2/PWR-220 v13/GSM3G
Управляемый блок удаленного распределения питания по сети Ethernet/Internet (IP PDU) c поддержкой управления подробнее...

Цена: 15 700 руб.

NetPing датчик наличия электропитания 995S1
Датчик позволяет определить наличие напряжения в розетке питания. Выполнен в корпусе блока питания с подробнее...

Цена: 1 224 руб.

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

Цена: 6 700 руб.

VT592 кабельный датчик протечки
Датчик предназначен для работы совместно с кабелем протечки WLC10. Возможность подключения датчика как подробнее...

Цена: 3 800 руб.

-+ руб. руб.
Итого руб.

Данные о заказе