SNMP сервер

Начиная с версии 3.08.181003 поддержан протокол SNMP v1

snmpwalk -c public -v1 yalga.h-net.ru Wed Oct 3 11:21:21 2018

1.3.6.1.2.1.1.1.0 = STRING: "PowerMeter HN-PM1F002D, ver.03.08.181003"
1.3.6.1.2.1.1.2.0 = STRING: "HNPM2F"
1.3.6.1.2.1.1.3.0 = Timeticks: (430757) 1:11:47.57
1.3.6.1.2.1.1.4.0 = STRING: "https://pm.h-net.ru"
1.3.6.1.2.1.1.5.0 = STRING: "PowerMeter-dc8f"
1.3.6.1.2.1.1.8.0 = Timeticks: (430802) 1:11:48.02
1.3.6.1.2.1.99.1.1.1.4.1 = INTEGER: 35  Температура
1.3.6.1.2.1.99.1.1.1.4.2 = INTEGER: 19 Влажность
1.3.6.1.2.1.99.1.1.1.4.3 = INTEGER: 72 Уровень сигнала WiFi
1.3.6.1.2.1.99.1.1.1.4.4 = INTEGER: 10 АЦП
1.3.6.1.2.1.99.1.1.1.4.98 = INTEGER: 4 Причина перезагрузки
1.3.6.1.2.1.99.1.1.1.4.99 = INTEGER: 15824 - ОЗУ
1.3.6.1.2.1.229.1.5.1.2 = INTEGER: 2000231  - показание счетчика энергии
1.3.6.1.2.1.230.1.1.1.2 = INTEGER: 231 - Напряжение
1.3.6.1.2.1.230.1.1.1.3 = INTEGER: 0 - Ток
1.3.6.1.2.1.230.1.1.1.7 = INTEGER: 136 - Мощность
End of MIB

 

Встроенное реле

Прибор может быть оснащен встроенным реле.
Реле управляется основным контроллером устройства через веб-интерфейс. Также его можно включить или выключить командами с народного мониторинга или MQTT.
В будущем планируется добавить функционал управления реле по событиям сети или от датчиков температуры.
Реле имеет 3 контакта, которые выведены на разъем под отвертку внутри прибора.
Чтобы к нему подключиться, необходимо аккуратно снять крышку прибора и подключить провода к разъему.
Контакты выведены согласно картинки:В Выключенном состоянии замкнуты между собой контакты НЗ и Общ, во включенном — замыкаются НО и Общ.
Реле может коммутировать нагрузку до 3А до 250В.
Для коммутации большей нагрузки необходимо использовать контактор, включением которого будет управлять реле прибора.

Управление реле можно осуществлять:
1. Xерез Веб-интерфейс
2. HTTP GET запросом [IP]/relay?OUTPUT16=1
3. Отправкой команды на Народном Мониторинге OUTPUT16=1
3. Отправкой команды через MQTT OUTPUT16=1
Значения 0 — выключить, 1 — включить, 2 — переключить.

MQTT клиент

Топик отправляется на сервер в виде [user]/[ID]/Метрика

где [user] — имя пользователя на сервере брокера,

[ID] — id устройства, отображается в шапке веб-интерфейса,

Метрика — одно из следующих значений:

 

Метрика Описание
OUTPUT16 Управление РЕЛЕ (значения 0/1)
U0 Напряжение, В
I0 Ток, А
W0 Мощность, Вт
WH0 Энергия, Втч
KWH0 Энергия, КВтч
DHTT0 Температура, грд С
DHTH0 Влажность, %
UPTIME Время работы устройства, сек
WIFI Уровень сигнала WiFi, дБм
RECONNECTS Счетчик пересоединений
S0 Сенсор, подставляется когда датчиков меньше чем ячеек для хранения данных
adc Значение ацп от 0 (0в) до 1023 (3.3в)
f0 Частота
pf0 Коэффициент мощности
kwh0 Вычисленное значение энергии
kwhcnt Аппаратное значение энергии, полученное от измерительного модуля
pwlmcnt Счётчик энергии за последний месяц
pwpdcnt Счётчик энергии за предыдущий день

Пример проверки показаний энергии в mosquitto:

 mosquitto_sub -h localhost -t user/HNPM1F12345d/WH0

Пример включения реле в mosquitto:

 mosquitto_pub -h localhost -t user/HNPM1F12345d/OUTPUT16 -m 1

Веб-Интерфейс

Скрины экранов веб интерфейса:

Главный экран
Экран работы с архивом
Экран обновления прошивки
Экран настроек

Накопление данных

Прибор измеряет параметры сети и сохраняет данные во внутренней памяти размером 3 МБ. Размер данных за полный цикл измерений — 100 байт. Данные хранятся с отметкой времени.

Через Web интерфейс можно выгружать данные в csv файл и обрабатывать в других программах, например в Excel.

Накопленные данные используются прибором для построения графиков и отображения статистики

REST API

Устройство позволяет получать данные прямым HTTP GET запросом по IP пробора.

Реализованы следующие запросы:

http://[IP]/sensors

возвращает данные в следующем формате

HostName:HNPM1F2c794b;uptime:5866;U0:233.70;I0:0.72;SI0:0.72;W0:105;WH0:27873;MEM:13352;WIFI:-91;CONNECTCNT:1;OUTPUT16:0;DHTT:41.30;DHTH:11.20;

http://[IP]/xml

возвращает данные в XML формате:

<?xml version="1.0" encoding="windows-1251"?>
<HNPM xmlns="hnpm.xsd">
 <VALUES localtime="1494278407">
  <UPTIME>6166</UPTIME>
  <U0>232.60</U0>
  <I0>1.11</I0>
  <SI0>1.11</SI0>
  <W0>242</W0>
  <WH0>27885</WH0>
  <MEM>12920</MEM>
  <WIFI>-91</WIFI>
  <CONNECTCNT>1</CONNECTCNT>
  <OUTPUT16>0</OUTPUT16>
  <DHTT>41.30</DHTT>
  <DHTH>11.10</DHTH>
 </VALUES>
</HNPM>

http://[IP]/json

возвращает данные в JSON формате:

{"HostName": "HNPM1F2c794b","uptime": "6037","U0": "233.10","I0": "0.78","SI0": "0.78","W0": "118","WH0": "27879","MEM": "12552","WIFI": "-91","CONNECTCNT": "1","OUTPUT16": "0","DHTT": "41.30","DHTH": "11.10"}

Логирование по UDP

В устройстве предусмотрена отправка отладочной информации по протоколу UDP на удаленный сервер.
Информация не содержит названий точек доступа и паролей, указанных в настройках прибора, но может создавать нежелательный трафик.
Для отключения данной функции зайдите в настройки прибора и снимите галочку в разделе UdpLogServer.
Также вы можете перенаправить данный трафик на свой сервер, указав в настройках соответствующего раздела имя и порт сервера.

Для прослушивания входящих пакетов можно использовать программу NetCat для Linux или Windows.

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

nc -u -l -p 7088
.

Народный Мониторинг

Для отправки данных на сайт http://narodmon.ru необходимо в настройках устройства поставить галочку в разделе NarodMon.ru client.

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

Через сайт Народного мониторинга или мобильное приложение можно отправлять команды на устройство. Поддерживаются следующие команды:

OUTPUT16=x где x: 0 выкл реле, 1 вкл реле, 2 переключить на противоположное состояние
REBOOT=1 перезагрузить устройство
UPDATE=x где x: 0 - обновить/откатить прошивку с "сервера по умолчанию"(из настроек), 1 - с основного сервера 2 - с бета сервера
HISTORY=x где x - количество дней для отправки истории на народный монитор. Отсчет от текущего момента назад.

Для отправки нужно на сайте народного монитора зайти в датчики,Настройка датчиков и триггеров, выбрать прибор.
Поставить (если не установлена) галочку «Включить управление командами»
Выбрать пункт Отправить команду на устройство и ввести его в поле ввода.
При следующем сеансе связи прибор получит команду и выполнит её.
Можно отправлять одновременно несколько команд, разделяя их через точку с запятой «;».

Для работы с переданными данными используйте инструкцию на сайте проекта.