• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Решено ESP8266 + Zabbix

Ennio

New member
Мой самый первый опыт самостоятельной работы на Адруино (не пинайте, подскажите, если есть что). Решил выложить на общее обсуждение собственные разработки, т.к. готового решения на просторах сети не нашел.
Проблема назрела давно. Нужно было отслеживать состояние системы кондиционирования и электроснабжения серверного помещения. Решено было собрать систему самостоятельно, т.к. все готовые решения меня не устраивали (есть один известный мне аналог WiFi-IoT Firmware Builder :: Main).

Итак, что мы имеем:
  1. ESP8266 Nodemcu;
  2. Температурный датчик 18B20 (самый дешманский);
  3. Датчик света с цифровым и аналоговым выходом;
  4. Макетки;
  5. Клеммники;
  6. На вооружении стоит система мониторинга Zabbix 3.4
Задача решена следующая:
  1. Получить информацию с выходов реле состояния системы кондиционирования;
  2. Получить информацию с выходов реле положенияАВР;
  3. Получить информацию о температуре в помещении;
  4. Получить информацию о присутствии человека (по датчику света);
  5. Полученную информацию засунуть в Zabbix;
  6. Собственный WEB интерфейс;
  7. Обновление прошивки через WEB (лень бегать в серверную).
За основу взяты:
  1. Примеры / ESP8266HTTPUpdateServer / SecureWebUpdater
  2. esp8266/ESPWebServer
  3. DTherHtun/ESP8266ZabbixSender
  4. Arduino IDE 1.8.5
Вдохновили меня:
  1. Простые WiFi часы
  2. pilnikov/ESP8266WeatherStations
  3. https://wifi-iot.com/p/esp8266
  4. zabbix_sender over HTTP (особенно комментарии)
Если есть кто может подсказать как исправить библиотеку ESP8266ZabbixSender так, чтобы длина URL не ограничивалась длиной типа String = 256 символов, буду безмерно признателен. Это решит огромную проблему отправки всех значений за один раз.

Отдельное спасибо г-ну Pilnikov за его подсказки и терпение!

WhatsApp Image 2018-07-04 at 13.40.42(1).jpeg WhatsApp Image 2018-07-04 at 13.40.42(2).jpeg Снимок.PNG Снимок2.PNG
 

Вложения

Последнее редактирование:

vdbvdb

New member
Немного оффтоп, так как не отвечает на поставленный вопрос, но...

А вам нужно автообнаружение подобных устройств?
Просто если нет, то раз у вас на устройстве монопенисуально свой HTTP сервер (раз подразумевается web-интерфейс), то может быть имеет смысл использовать HTTP-агента (если у вас zabbix 4.x) или (если 3.x) просто UserParam прямо даже на сервере (или, скорее, прокси), который будет дёргать устройство по HTTP и получать нужные данные. То есть, не устройство пушит данные в zabbix, а сам zabbix ходит и собирает нужные ему метрики (возможно, через zabbix-proxy).

Хотя когда у меня была подобная задача, я тупо сделал промежуточный хост, куда все ESP пушили текущие данные просто по HTTP методом PUT, а zabbix их забирал, опять же, через кастомную метрику - UserParam на том же хосте. Все работало, но были нюансы, когда связь ESP с промежуточным хостом временно пропадала - надо как-то отослать всю пачку накопившихся данных, при этом промежуточный хост не знал - то ли это данные за последние N измерений, то ли ESP сам падал и там есть разрывы, то ли у него часы сбились, то ли еще что-то... Но тут уже все зависит от требуемой надёжности, так-то, конечно, все решаемо.
 
Сверху Снизу