Согласователь Кондиционеров СРК-М2 / SRK-M2 через module

Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 853
Стаж: 5 лет 7 месяцев
Откуда: Вологодская область
Поблагодарили: 37 раз
Контактная информация:

Согласователь Кондиционеров СРК-М2 / SRK-M2 через module

Сообщение Артём Мамзиков »

Шаблон через SNMP более простой и рабочий Согласователь Кондиционеров СРК-М2 / SRK-M2 SNMPv1

СКАЧАТЬ
HW CPK-M.zip
HW CPK-M.zip
(5.75 КБ) 30 скачиваний
Взято с .zabbix.com forum

В общем худо-бедно удалось запустить мониторинг СРК-М
Для получения информации используется socat, запущенный на хосте с zabbix-server.
Командная строка:
socat pty,link=/dev/ttyV0,mode=660,group=zabbix tcp:192.168.60.17:502&
socat PTY,link=/dev/ttyV0,mode=777,echo=0,ignoreeof,b115200,raw TCP:192.168.60.17:502
socat -d -d pty,link=/dev/ttyV0,raw,echo=0 tcp:192.168.60.17:502
socat pty,link=/dev/virtualcom0,raw tcp:192.168.254.254:8080&
socat pty,link=/dev/ttyV0,raw tcp:192.168.60.17:502&
while true; do
socat pty,link=/dev/ttyV0,mode=660,group=zabbix tcp:192.168.***.***:502&
done

(192.168.***.*** - это адрес СРК-М)

modbus_read[enc://192.168.***.***:502]
-bash: modbus_read[enc://192.168.***.***:502]: No such file or directory
Done
socat pty,link=/dev/ttyV0,mode=660,group=zabbix tcp:192.168.***.***:502

2. Добавляем несколько преобразований значений:
CPK-M Air-Conditioner Mode:
0 ⇒ Холод
1 ⇒ Тепло/Холод
CPK-M Air-Conditioner Status:
2 ⇒ выкл
3 ⇒ вкл
4 ⇒ Авария
6 ⇒ Авария
7 ⇒ Авария
CPK-M Air-Conditioner Type:
0 ⇒ 410
1 ⇒ 413
2 ⇒ КRP4A51,52,53
CPK-M System Status:
0 ⇒ Автономная работа
85 ⇒ Система

Импортируем шаблон (во вложении). Сделан на скорую руку, но пользоваться можно

Создаем узел, присоединяем к нему шаблон, определяем пару макросов:
{$MODBUS_PORT} ⇒ /dev/ttyV0
{$MODBUS_SLAVE} ⇒ 1

(у меня один прибор и его адрес 1, который нужно указать в макросе {$MODBUS_SLAVE})

На самом СРК-М нужно правильно настроить стек TCP/IP, при этом указать порт 502 (у меня был указан порт 1005)
Работает уже почти сутки без сбоев )))

PS. Да, разумеется нужно установить libzbxmodbus отсюда

Рискую вызвать неудовольствие создателя libzbxmodbus, но мне пришлось отказаться от его использования ((
Возможно из-за того, что я пытался получить сразу много параметров со своего СРК-М, или из-за частых опросов (30 сек), или из-за еще каких-то причин - но у меня постоянно вылазили глюки.

Основных - два:
1 Периодически элементы становились неподдерживаемыми (по-моему, из-за таймаута)
2 Иногда приходили явно левые данные, которые потом приходилось вычищать из history и trends, чтобы графики можно было анализировать
Ну и проблема с бесконтрольным socat тоже не добавляла оптимизма...
В итоге сейчас я собираю данные с СРК-М скриптом, запускающим старый добрый modpoll. Это решение работает уже три месяца без проблем.

Еще инфа
zabbix.com forum page2
habrahabr
Modpoll Modbus Master Simulator
modbus tools

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

Шаблон HW CPK-M
Шаблон HW CPK-M
Макросы
{$MODBUS_PORT} => /dev/ttyV0
{$MODBUS_SLAVE} => 1

Группы элементов данных
Статус
Общее

Элементы данных
Шаблон HW CPK-M Элементы данных
Шаблон HW CPK-M Элементы данных
Число кондиционеров modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},8,3] 3600 90d 365d Простая проверка Общее Активировано

Режим кондиционера 3 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},22,3] 3600 90d 365d Простая проверка Общее Активировано

T2 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},10,3] 3600 90d 365d Простая проверка Общее Активировано

T3 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},11,3] 3600 90d 365d Простая проверка Общее Активировано

T4 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},12,3] 3600 90d 365d Простая проверка Общее Активировано

T5 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},13,3] 3600 90d 365d Простая проверка Общее Активировано

Период переключения кондиционеров modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},14,3] 3600 90d 365d Простая проверка Общее Активировано

Режим кондиционера 1 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},18,3] 3600 90d 365d Простая проверка Общее Активировано

Тип адаптера кондиционера 1 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},19,3] 3600 90d 365d Простая проверка Общее Активировано

Режим кондиционера 2 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},20,3] 3600 90d 365d Простая проверка Общее Активировано

Тип адаптера кондиционера 2 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},21,3] 3600 90d 365d Простая проверка Общее Активировано

T1 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},9,3] 3600 90d 365d Простая проверка Общее Активировано

Состояние кондиционера 1 Триггеры 1 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},37,3] 30 90d 365d Простая проверка Статус Активировано

Тип адаптера кондиционера 3 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},23,3] 3600 90d 365d Простая проверка Общее Активировано

Состояние кондиционера 2 Триггеры 1 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},38,3] 30 90d 365d Простая проверка Статус Активировано

Состояние кондиционера 3 Триггеры 1 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},39,3] 30 90d 365d Простая проверка Статус Активировано

Температура внутреннего датчика Триггеры 1 modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},40,3] 30 90d 365d Простая проверка Статус Активировано

Температура Внешнего датчика modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},41,3] 30 90d 365d Простая проверка Статус Активировано

Режим работы системы modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},42,3] 30 90d 365d Простая проверка Статус Активировано

Номер версии схемы и платы modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},43,3] 3600 90d 365d Простая проверка Общее Активировано

Номер версии встроенного ПО modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},44,3] 3600 90d 365d Простая проверка Общее Активировано

Количество записей истории modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},46,3] 30 90d 365d Простая проверка Статус Активировано

Напряжение сети modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},47,3] 30 90d 365d Простая проверка Статус Активировано

Количество работающих кондиционеров num_of_conditioners 30 90d 365d Вычисляемое Статус Активировано


Триггеры
Шаблон HW CPK-M Триггеры Графики Комплексные экраны
Шаблон HW CPK-M Триггеры Графики Комплексные экраны
Высокая Авария кондиционера 1 {Template HW CPK-M rus:modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},37,3].band(,4)}=4 Активировано

Высокая Авария кондиционера 2 {Template HW CPK-M rus:modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},38,3].band(,4)}=4 Активировано

Высокая Авария кондиционера 3 {Template HW CPK-M rus:modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},39,3].band(,4)}=4 Активировано

Высокая Не поступают данные {Template HW CPK-M rus:modbus_read_registers[{$MODBUS_PORT},{$MODBUS_SLAVE},40,3].nodata(2m)}=1 Активировано


Графики
Температура 900 200 Нормальный


Комплексные экраны
Состояние системы 2 x 2

Мои Преобразования
количество слов: 613

Вернуться в «Прочие различные шаблоны»