УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

narodmon


Автор Сообщение
Сообщение создано: 09. 01. 2019 [22:43]
arcsin
Аркадий Кисель
Contributor
Создатель темы
Зарегистрирован(а) с: 17.02.2017
Сообщения: 77
Добрый вечер форумчане! существует интересный проект: narodmon в котором на карту можно выгружать показания датчиков(температура, влажность, давление, скорость и направление ветра, освещенность, радиацию, кВт*ч, водокубы, uptime сисемы, количество данных, пользовательский ) метеодатчики на улице можно открывать для всех, остальные закрытые. источники должны быть медленные, т.к. бесплатный интервал 5 минут, платный 1 минута. с сайта можно на свое устройство отправить команды, которые сайт передаст в следующую открытую сессию (даже на серый IP!)
у меня получилось из OpenSCADA данные брать с BME280, передавать на сайт и принимать управляющие сигналы.
используется транспорт сокет narodmonTCP по адресу "narodmon.ru:8283"
Код шаблона параметра
JAVASCRIPT
/*
Формат пакета данных:
#MAC\n
#mac1#value1[#time1][#name1]\n
...
#macN#valueN[#timeN][#nameN]\n
##
 
формат ответа:
"OK" 
или команда начинающаяся с #, через ";" присваиваются переменным значения "#gpio=0;a=start;ip=192.168.10.10"
или строка ошибки 
*/
 
req = "#"+MAC+"\n"+
"#T1#"+Temperature+"\n"+
"#H1#"+Humidity+"\n"+
"#P1#"+Pressure+"\n"+
"##";
 
rez = SYS.Transport.Sockets.out_narodmonTCP.messIO(req);
answer = SYS.XMLNode("answer");
error="";
if(rez!="OK" && rez.charAt(0)!="#")
{
	error=rez;
	SYS.messInfo("narodmon",error);
}
else
	if (rez.charAt(0)=="#")
	{		
		control = rez.replace("#","").replace("\n","").split(";"); //удаляем первый # и \n, режем по ";"
		for(i = 0; i < control.length; i++)
			answer.setAttr(control[i].split("=")[0],control[i].split("=")[1]); //режем каждую команду по "=", добавляем атрибуты
 
		gpio = answer.attr("gpio"); //реагируем на команды, или выводим сигнал
		a=answer.attr("a");
		ip=answer.attr("ip");	
	}


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

формат нестандартный, но не сложный. есть ли смысл выносить его в Пользовательский протокол, а в шаблоне генерировать просто XML с названиями датчиков, значениями и т.д. и принмать из Пользовательского протокола готовое XML с командами (как в этом коде answer)?

PS1 подложка для narodmon.ru из карт Яндекса; narodmon.com из карт google. первый вариант быстрее даже с VPN (для обхода блокировок).
PS2 можно установить на сайте sms / email (в будущем viber) оповещения выхода значения датчика за пределы, или "замолкание устройства"

Вложенный файл

narodmon.db (Тип файла: application/octet-stream, Размер: 11 килобайт) — 1463 загрузок
API для передачи.odt (Тип файла: application/vnd.oasis.opendocument.text, Размер: 31.48 килобайт) — 1712 загрузок
API для обратной связи.odt (Тип файла: application/vnd.oasis.opendocument.text, Размер: 18.48 килобайт) — 1503 загрузок
Сообщение создано: 11. 01. 2019 [11:05]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"arcsin" wrote:

Добрый вечер форумчане! существует интересный проект: narodmon в котором на карту можно выгружать показания датчиков(температура, влажность, давление, скорость и направление ветра, освещенность, радиацию, кВт*ч, водокубы, uptime сисемы, количество данных, пользовательский ) метеодатчики на улице можно открывать для всех, остальные закрытые. источники должны быть медленные, т.к. бесплатный интервал 5 минут, платный 1 минута. с сайта можно на свое устройство отправить команды, которые сайт передаст в следующую открытую сессию (даже на серый IP!)

Мне не интересен, поскольку на WEB у меня сейчас OpenSCADA сама и прямо выгружает сенсоры, в перспективе может и будет выгружать на карту, чего пока и не нужно, но для чего скоро добавлю чтение геопозиции как прямо с сенсора так и gpsd.

И что также можно предоставлять, как сервис для размещения пользовательской информации.

Т.е. если это в тему форума "Разработка OpenSCADA" то делать это тут, а не где-то на стороне, чему я знаю и ряд других примеров с трекинговыми системами!

Learn, learn and learn better than work, work and work.
Сообщение создано: 17. 01. 2019 [14:55]
arcsin
Аркадий Кисель
Contributor
Создатель темы
Зарегистрирован(а) с: 17.02.2017
Сообщения: 77
"roman" wrote:

Мне не интересен

Мне нравится проект как социально-географический. посмотреть на свой город, сколько датчиков рядом,сколько в соседних городах, какая радиация возле ЧАЭС, влажность на берегу моря и т.д. Опять же постройка домашней метеостанции на базе OpenSCADA или других продуктов это как Hello world в программировании.

"roman" wrote:

Т.е. если это в тему форума "Разработка OpenSCADA" то делать это тут, а не где-то на стороне, чему я знаю и ряд других примеров с трекинговыми системами!


Я опубликовал это здесь: Обсуждение и организация разработки проекта OpenSCADA и расширений к нему, т.к. хочу оформить в библиотеку с несколькими функциями, транспортами. Если не угадал с направлением, то могу продолжить здесь: Внедрение и разработка в OpenSCADA.
Сообщение создано: 14. 02. 2019 [00:39]
arcsin
Аркадий Кисель
Contributor
Создатель темы
Зарегистрирован(а) с: 17.02.2017
Сообщения: 77
доброй ночи, форумчане!
в приложении модуль,
описание API narodmon с новыми коментариями
функциональная схема модуля.
видео о использовании модуля.
если нужно более подробное объяснение работы с коментариями кода и примерами отладки пишите в коментариях здесь или под видео.
возможности модуля:
Выгрузка без программирования
Гарантированная доставка
Несколько датчиков на одно устройство
Несколько устройств в одном проекте
Переключение протокола TCP-POST «на лету»
Гибкое добавление(нужен перезапуск контроллера)/{от,в}ключение(«на лету») датчиков
Оправка имени устройства
Отправка имени датчика (только для TCP, не гарантировано)
Выгрузка не отправленных архивных данных в «фоне» (приоритет текущим).
Отдельная функция для разбора команд управления
Единоразовая выгрузка исторических данных из архива OpenSCADA
Вложенный файл

narodmon.db (Тип файла: application/octet-stream, Размер: 144 килобайт) — 1444 загрузок
API для передачи.odt (Тип файла: application/vnd.oasis.opendocument.text, Размер: 37.68 килобайт) — 3130 загрузок
2logo.pdf (Тип файла: application/pdf, Размер: 192.02 килобайт) — 1441 загрузок
функциональная схема.pdf (Тип файла: application/pdf, Размер: 90.37 килобайт) — 1540 загрузок



17240