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

NetPing в качестве блока ротаций кондиционеров в серверной комнате

NetPing в качестве блока ротаций кондиционеров в серверной комнате

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

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

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

Применение блока ротации кондиционеров позволит Вам обеспечить уверенность в работе системы кондиционирования Вашей инфраструктуры!

В этой статье мы рассмотрим пример создания блока ротации кондиционеров для серверной комнаты на базе устройств NetPing.

Серверная комната оборудована двумя кондиционерами. Необходимо реализовать следующий алгоритм работы:

  1. Штатный режим работы кондиционеров. В этом режиме кондиционеры работают по схеме чередования (два кондиционера автоматически включаются поочередно: первые сутки работает первый кондиционер, вторые сутки работает второй кондиционер, третьи сутки работает первый кондиционер и так далее);
  2. Аварийный режим работы кондиционеров. Если один из кондиционеров выходит из строя, и температура поднимается выше 35°C, следует задействовать резервный кондиционер, который должен работать до тех пор, пока не будет исправлен основной кондиционер.

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

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

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

Параметр

Устройство UniPing server solution v3 №1

Устройство UniPing server solution v3 №2

IP адрес

192.168.1.200

192.168.1.208

Логин

visor

visor

Пароль

ping

ping

Подключенный термодатчик

1

1

IO линия с подключенным датчиком потока воздуха

IO 1

IO 1

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

2

2

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

3

3

Для реализации программной составляющей нашего блока ротации кондиционеров напишем скрипт на скриптовом языке программирования BASH. Скрипт будет выполняться в консоли на ПК/сервере с OS Ubuntu. ПК/сервер может быть как виртуальный, так и физический, подключённый к одной локальной сети с устройствами UniPing server solution v3. Управляющий скрипт также можно запустить и на компьютере за пределами локальной сети, в таком случае, устройства UniPing server solution v3 должны быть доступны через Интернет. О том, как это сделать, можно прочитать здесь 

Для работы скрипта нужно установить утилиту Curl командой «sudo apt install curl»)

Установка CURL

Затем создаём файл скрипта split_rotation.sh командой «nano split_rotation.sh»

Создание файла скрипта

Далее пишем текст скрипта, как в примере (ниже будет ссылка на готовый файл скрипта):

#!/bin/bash

error_t=$"thermo_result('error');"
error_io=$"io_result('error');"
error_ir=$"ir_result('error');"
split1_status=0 #Переменная, в которую записывается статус работы кондиционера №1. 0- ок, 1 - сбой
split2_status=0 #Переменная, в которую записывается статус работы кондиционера №2. 0- ок, 1 - сбой

while [ $split1_status -eq 0 ] || [ $split2_status -eq 0 ]
do
count1=0 # Счетчик часов работы кондиционера 1
count2=0 # Счетчик часов работы кондиционера 2

#Включаем кондиционер1:
ir1=$(curl --silent --user visor:ping http://192.168.1.200/ir.cgi?play=2) #Подставьте свои значения login:password, IP адрес устройства 1 и номер команды включения кондиционера №1
ir2=$(curl --silent --user visor:ping http://192.168.1.208/ir.cgi?play=3) #Подставьте свои значения login:password, IP адрес устройства 2 и номер команды выключения кондиционера №2
#Проверка правильности синтаксиса URL-encoded команды от сервера к устройству UniPing Server Solution v3/SMS
if [ "$ir1" = "$error_ir" ] || [ "$ir2" = "$error_ir" ]
then
echo "Ошибка в URL-encoded команде включения кондиционера №1"
exit
else
echo "Включен кондиционер №1"
sleep 5m #Пауза для получения термодатчиком данных о температуре
while [ $count1 -lt 23 ]
do
#Url-encoded запросы к устройству UniPing Server Solution v3/SMS 1 для получения информации о температуре и наличии потока воздуха:
thermo1=$(curl --silent --user visor:ping http://192.168.1.200/thermo.cgi?t1) #Подставьте свои значения login:password, IP адрес устройства 1 и номер термодатчика
io1=$(curl --silent --user visor:ping http://192.168.1.200/io.cgi?io1) #Подставьте свои значения login:password, IP адрес устройства 2 и номер IO линии, к которой подключен датчик потока воздуха.
#Проверка правильности синтаксиса URL-encoded запроса от сервера к устройству UniPing Server Solution v3/SMS
if [ "$thermo1" = "$error_t" ]||[ "$io1" = "$error_io" ]
then
echo "Ошибка в URL-encoded запросе состояния кондиционера №1"
exit
else #Проверка условия штатной работы кондиционера 1
thermo1_value=${thermo1:20:2} #Получение информации о температуре возле кондиционера 1
io1_value=${io1:20:1} #Получение информации о наличии потока воздуха от кондиционера 1
if [ $thermo1_value -le 35 ] && [ $io1_value -eq 1 ]
then #Штатный режим
sleep 1h #Пауза между проверками 1 час
((count1 ++ ))
split1_status=0
else #Аварийный режим
echo "Кондиционер 1 Аварийный режим!"
echo "Температура выше нормы или нет потока воздуха"
count1=25
split1_status=1
fi
fi
done
fi

#Включаем кондиционер2:
ir1=$(curl --silent --user visor:ping http://192.168.1.200/ir.cgi?play=3) #Подставьте свои значения login:password, IP адрес устройства и номер команды
ir2=$(curl --silent --user visor:ping http://192.168.1.208/ir.cgi?play=2) #Подставьте свои значения login:password, IP адрес устройства и номер команды
#Проверка правильности синтаксиса URL-encoded команды от сервера к устройству UniPing Server Solution v3/SMS
if [ "$ir1" = "$error_ir" ] || [ "$ir2" = "$error_ir" ]
then
echo "Ошибка в URL-encoded команде включения кондиционера №2"
exit
else
echo "Включен кондиционер №2"
sleep 5m #Пауза для получения термодатчиком данных о температуре
while [ $count2 -lt 23 ]
do
#Url-encoded запросы к устройству UniPing Server Solution v3/SMS 2 для получения информации о температуре и наличии потока воздуха:
thermo2=$(curl --silent --user visor:ping http://192.168.1.208/thermo.cgi?t1) #Подставьте свои значения login:password, IP адрес устройства и номер термодатчика
io2=$(curl --silent --user visor:ping http://192.168.1.208/io.cgi?io1) #Подставьте свои значения login:password, IP адрес устройства и номер IO линии, к которой подключен датчик потока воздуха.
#Проверка правильности синтаксиса URL-encoded запроса от сервера к устройству UniPing Server Solution v3/SMS
if [ "$thermo2" = "$error_t" ]||[ "$io2" = "$error_io" ]
then
echo "Ошибка в URL-encoded запросе состояния кондиционера №2"
exit
else #Проверка условия штатной работы кондиционера 2
thermo2_value=${thermo2:20:2} #Получение информации о температуре возле кондиционера 2
io2_value=${io2:20:1} #Получение информации о наличии потока воздуха от кондиционера 2
if [ $thermo2_value -le 35 ] && [ $io2_value -eq 1 ]
then #Штатный режим
sleep 1h #Пауза между проверками 1 час
((count2 ++ ))
split2_status=0
else #Аварийный режим
echo "Кондиционер 2 Аварийный режим!"
echo "Температура выше нормы или нет потока воздуха"
count2=25
split2_status=1
fi
fi
done
fi
done
echo "Кондиционеры в серверной не работают"

Сохраняем и делаем файл исполняемым при помощи команды «sudo chmod +x split_rotation.sh»:

Смена прав на скрипт

Затем запускаем наш скрипт командой «./split_rotation.sh»:

Запуск скрипта

И, если исходный код скрипта не содержит синтаксических ошибок, то в консоли будет отображено сообщение о включении кондиционера №1:

Включен кондиционер 1

Через 24 часа после запуска скрипта, кондиционер №1 будет выключен и включён кондиционер №2:

Включен кондиционер 2

Еще через 24 часа – кондиционер №2 будет выключен и снова включён кондиционер №1. В штатном режиме скрипт будет выполняться бесконечно (при условии работы сервера). Прервать выполнение можно нажатием кнопок «CTRL+C»:

Ручная остановка скрипта

Контроль температуры возле кондиционеров происходит 1 раз в час. Если при очередном опросе датчиков у работающего в текущий момент кондиционера температура превышает 35°C, и/или датчик воздушного потока воздуха не фиксирует наличие потока воздуха – то скрипт активирует «Аварийный режим» и включает другой кондиционер. При этом в консоль выдается следующее сообщение:

Кондиционер 1 Аварийный режим

Или

Кондиционер 2 Аварийный режим

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

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

Не исправны оба кондиционера

После устранения неполадок кондиционеров скрипт следует запустить вручную.

В скрипт встроена проверка корректности URL-encoded запросов к устройствам UniPing server solution v3.

В случае некорректных запросов выводится сообщение об ошибке в URL-encoded команде, и выполнение скрипта прекращается. После исправления команд в исходном коде скрипта, скрипт нужно запустить повторно:

Пример сообщений об ошибке в URL encoded командах

Для того, чтобы наш скрипт автоматически запускался при запуске ПК/сервера, нужно прописать его в автозагрузку. Для этого откройте файл rc.local командой: «sudo nano /etc/rc.local»:

Открытие файл rc.local

Пропишите скрипт перед строчкой «exit 0» и сохраните файл:

Общий вид файла rc.local

Скрипт выполнится после загрузки системы.

Готовый файл скрипта можно скачать здесь: split_rotation.sh.

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


  • Устройство UniPing server solution v3/SMS
  • Устройство UniPing server solution v3
  • Устройство UniPing v3
  • Устройство NetPing 8/PWR-220 v3/SMS
  • Устройство NetPing 2/PWR-220 v2/SMS
  • Устройство NetPing 2/PWR-220 v3/ETH

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


Каталог устойств мониторинг серверных комнат и шкафов
Все устройства
Устройство 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 руб.

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

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