ioBroker Forum


Nutzungsbedingungen |Datenschutzrichtlinie
Cloud |Dokumentation
Aktuelle Zeit: 19.11.2017, 09:19

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 20 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 29.10.2017, 19:26 
Offline

Registriert: 29.10.2017, 17:55
Beiträge: 9
Добрый день!
Окружение: iobroker установлен на debian 7 на Intel Atom 2G RAM. БД - mysql.
В сети есть Beckhoff bc9000, подключенный по modbus и owfs-сервер, подключенный как внешний owfs-сервер.
Данные собираются корректно - в закладке "Объекты" видны периодически изменяющиесяданные с актуальными значениями (рис.1)
Dateianhang:
pic1.jpg
pic1.jpg [ 48.32 KiB | 241 mal betrachtet ]

Настройки modbus - объекта на рис.2
Dateianhang:
pic2.jpg
pic2.jpg [ 148.51 KiB | 241 mal betrachtet ]

При этом, значения с owfs-сервера попадают в БД, а значения, получаемые по modbus - не всегда! (рис.3)
Dateianhang:
pic3.jpg
pic3.jpg [ 157.39 KiB | 241 mal betrachtet ]

Видно, что иногда всего два раза в час значения записаны в БД.
При этом, значения полученные от owfs-драйвера в базе присутствуют: рис.4.
Dateianhang:
pic4.jpg
pic4.jpg [ 153.35 KiB | 241 mal betrachtet ]

Пытался включить логи, но ошибок я тут не увидел (рис.5)
Dateianhang:
pic5.jpg
pic5.jpg [ 199.7 KiB | 241 mal betrachtet ]

Смена периодов опроса результата не дала. Однажды мне показалось, что я нажал "сохранить" и после этого график заполнялся до тех пор, когда я изменил период записи. Но повторно воспроизвести ситуацию мне не удалось.
Подскажите пожалуйста, как это исправить?

p.s. На скринах коллег на форуме я вижу, что закладок в админке намного больше. Возможно дело в установке? Может что-то не установлено до конца? У меня отсутствовал Flot - пришлось добавлять его руками. Может не хватает еще чего то?


Nach oben
   
BeitragVerfasst: 30.10.2017, 04:43 
Offline
professional
Benutzeravatar

Registriert: 14.07.2014, 16:39
Beiträge: 374
Wohnort: Россия, Тюмень
Hat sich bedankt: 3 Mal
Нажми на карандаш сверху справа и добавь вкладки по желанию

Отправлено с моего Nexus 5 через Tapatalk

_________________
Пишу с пульта....


Nach oben
   
BeitragVerfasst: 30.10.2017, 06:25 
Offline

Registriert: 29.10.2017, 17:55
Beiträge: 9
Спасибо! Добавил вкладки - вижу что события есть:
Code:
stateChange   modbus.0.holdingRegisters.16407_DATETIME   168778231   true   modbus.0   2017-10-30 11:16:01.602   2017-10-30 11:16:01.602
stateChange   modbus.0.holdingRegisters.16393_ТЕМP   366   true   modbus.0   2017-10-30 11:16:01.563   2017-10-30 11:16:01.563
stateChange   modbus.0.holdingRegisters.16407_DATETIME   168122871   true   modbus.0   2017-10-30 11:15:51.534   2017-10-30 11:15:51.534
stateChange   modbus.0.holdingRegisters.16393_ТЕМP   368   true   modbus.0   2017-10-30 11:15:51.494   2017-10-30 11:15:51.494
stateChange   modbus.0.holdingRegisters.16407_DATETIME   167467511   true   modbus.0   2017-10-30 11:15:41.466   2017-10-30 11:15:41.466
stateChange   modbus.0.holdingRegisters.16393_ТЕМP   366   true   modbus.0   2017-10-30 11:15:41.427   2017-10-30 11:15:41.427
stateChange   modbus.0.holdingRegisters.16407_DATETIME   166812151   true   modbus.0   2017-10-30 11:15:31.378   2017-10-30 11:15:31.378
stateChange   modbus.0.holdingRegisters.16393_ТЕМP   367   true   modbus.0   2017-10-30 11:15:31.338   2017-10-30 11:15:31.338

а в таблице значений объекта - пропуски:
Code:
367   true   modbus.0   2017-10-30 11:03:25.529   
367   true   modbus.0   2017-10-30 10:56:11.989   
368   true   modbus.0   2017-10-30 10:35:12.301   
368   true   modbus.0   2017-10-30 10:35:12.300   
368   true   modbus.0   2017-10-30 10:34:42.075   
368   true   modbus.0   2017-10-30 10:34:01.765   
368   true   modbus.0   2017-10-30 10:33:11.424   
368   true   modbus.0   2017-10-30 10:32:21.045   
366   true   modbus.0   2017-10-30 10:31:30.705   
367   true   modbus.0   2017-10-30 10:30:40.366   
369   true   modbus.0   2017-10-30 10:29:49.986   
369   true   modbus.0   2017-10-30 10:28:59.626   
368   true   modbus.0   2017-10-30 10:28:09.247   
370   true   modbus.0   2017-10-30 10:27:59.179   
369   true   modbus.0   2017-10-30 10:27:08.799   
369   true   modbus.0   2017-10-30 10:26:18.420   
368   true   modbus.0   2017-10-30 10:25:58.266   
368   true   modbus.0   2017-10-30 10:25:17.954   
368   true   modbus.0   2017-10-30 10:24:37.681   
368   true   modbus.0   2017-10-30 10:23:47.321   


Есть какие-либо идеи?


Nach oben
   
BeitragVerfasst: 30.10.2017, 07:22 
Offline
professional

Registriert: 12.05.2015, 16:49
Beiträge: 489
Wohnort: Lithuania, Vilnius
Hat sich bedankt: 15 Mal
Danksagung erhalten: 33 Mal
select2 hat geschrieben:
Есть какие-либо идеи?

Измени минимальный интервал с 60000 на 1000 в настройках sql, ну и Store as на Automatic. Данных будет много, нужна ли история за год?

_________________
js-controller: 1.2.0 / node.js: v4.8.6 / npm: 2.15.11
admin: 3.0.1
javascript: 3.5.0
web: 2.1.7 vis: 1.0.4
cloud: 2.0.5

Server: DELL FX170 / linux: Debian 8.8 Jessie
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)


Nach oben
   
BeitragVerfasst: 30.10.2017, 09:55 
Offline

Registriert: 29.10.2017, 17:55
Beiträge: 9
Данных действительно будет много, поэтому я и установил мин. интервал в 1 минуту. И фиксирую только изменения.
Похоже проблема где-то на стыке с драйвером modbus.
Попытался подойти с другой стороны: написал скрипт, который мониторит изменение modbus-объекта:
Code:
createState("test2", function () {
});
on({id: "modbus.0.holdingRegisters.16393_ТЕМP"/*Т теплоносителя*/, change: "ne"}, function (obj) {
  var value = obj.state.val;
  var oldValue = obj.oldState.val;
  setState("javascript.0.test2"/*test2*/, (getState("modbus.0.holdingRegisters.16393_ТЕМP").val / 10));
});

Скрипт работает. Появился объект javascript.0.test2. Но у него не сохраняется история изменений вообще: ни в sql.0, ни в history.0. В логе пишет: enabled logging of javascript.0.test2, а в таблице истории пишет : no data.

Можно ли в принципе хранить историю javascript-объектов?


Nach oben
   
BeitragVerfasst: 30.10.2017, 11:36 
Offline
professional

Registriert: 12.05.2015, 16:49
Beiträge: 489
Wohnort: Lithuania, Vilnius
Hat sich bedankt: 15 Mal
Danksagung erhalten: 33 Mal
select2 hat geschrieben:
Данных действительно будет много, поэтому я и установил мин. интервал в 1 минуту. И фиксирую только изменения.
Похоже проблема где-то на стыке с драйвером modbus.
Попытался подойти с другой стороны: написал скрипт, который мониторит изменение modbus-объекта:
Code:
createState("test2", function () {
});
on({id: "modbus.0.holdingRegisters.16393_ТЕМP"/*Т теплоносителя*/, change: "ne"}, function (obj) {
  var value = obj.state.val;
  var oldValue = obj.oldState.val;
  setState("javascript.0.test2"/*test2*/, (getState("modbus.0.holdingRegisters.16393_ТЕМP").val / 10));
});

Скрипт работает. Появился объект javascript.0.test2. Но у него не сохраняется история изменений вообще: ни в sql.0, ни в history.0. В логе пишет: enabled logging of javascript.0.test2, а в таблице истории пишет : no data.

Можно ли в принципе хранить историю javascript-объектов?

Историю можно хранить любых объектов.
Твой скрипт у меня работает, всё сохраняет MySQL ошибок нет.

_________________
js-controller: 1.2.0 / node.js: v4.8.6 / npm: 2.15.11
admin: 3.0.1
javascript: 3.5.0
web: 2.1.7 vis: 1.0.4
cloud: 2.0.5

Server: DELL FX170 / linux: Debian 8.8 Jessie
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)


Nach oben
   
BeitragVerfasst: 30.10.2017, 16:53 
Offline

Registriert: 29.10.2017, 17:55
Beiträge: 9
Похоже нашел причину: в настройках истории выставляю Минимальный интервал(ms) в 1000 - и все начинает работать - валит каждую секунду. Достаточно увеличить это интервал до 10 секунд (значение 10000) - и значения начинают проваливаться - пишутся нерегулярно и непредсказуемо.

Проверь пожалуйста - выставь 60000 - 1 минуту.


Nach oben
   
BeitragVerfasst: 30.10.2017, 18:43 
Offline
professional

Registriert: 12.05.2015, 16:49
Beiträge: 489
Wohnort: Lithuania, Vilnius
Hat sich bedankt: 15 Mal
Danksagung erhalten: 33 Mal
select2 hat geschrieben:
Похоже нашел причину: в настройках истории выставляю Минимальный интервал(ms) в 1000 - и все начинает работать - валит каждую секунду. Достаточно увеличить это интервал до 10 секунд (значение 10000) - и значения начинают проваливаться - пишутся нерегулярно и непредсказуемо.

Проверь пожалуйста - выставь 60000 - 1 минуту.

Если стоит "0" то данные пишутся сразу после получения.
Если стоит "10000" или "60000" то данные пишутся по истечению таймера исходя из данных в тот момент в переменной. Какие то траблы там есть, выставив "60000" данные какое то время пишутся исправно иногда проскакивают интервалы в 30сек(приходят данные в переменную).

_________________
js-controller: 1.2.0 / node.js: v4.8.6 / npm: 2.15.11
admin: 3.0.1
javascript: 3.5.0
web: 2.1.7 vis: 1.0.4
cloud: 2.0.5

Server: DELL FX170 / linux: Debian 8.8 Jessie
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)


Nach oben
   
BeitragVerfasst: 31.10.2017, 04:37 
Offline

Registriert: 29.10.2017, 17:55
Beiträge: 9
А у меня, вместе с 30-секундными данными, появляются еще провалы - 30-40 МИНУТ!
График при этом выглядит просто потрясающе!
Ну и управление отоплением при такой дискретизации, конечно не построишь.


Nach oben
   
BeitragVerfasst: 31.10.2017, 07:18 
Offline
professional

Registriert: 12.05.2015, 16:49
Beiträge: 489
Wohnort: Lithuania, Vilnius
Hat sich bedankt: 15 Mal
Danksagung erhalten: 33 Mal
select2 hat geschrieben:
А у меня, вместе с 30-секундными данными, появляются еще провалы - 30-40 МИНУТ!
График при этом выглядит просто потрясающе!
Ну и управление отоплением при такой дискретизации, конечно не построишь.

Если не ошиваюсь у тебя данные приходят каждые 10сек, нельзя ли изменить интервал опроса modbas? В OWFS на каждый датчик можно установить свой интервал опроса. Если нет пиши все данные в базу только сократи время хранения до минимума тебе нужного.

_________________
js-controller: 1.2.0 / node.js: v4.8.6 / npm: 2.15.11
admin: 3.0.1
javascript: 3.5.0
web: 2.1.7 vis: 1.0.4
cloud: 2.0.5

Server: DELL FX170 / linux: Debian 8.8 Jessie
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)


Nach oben
   
BeitragVerfasst: 31.10.2017, 08:59 
Offline

Registriert: 29.10.2017, 17:55
Beiträge: 9
Интервал опроса стоит 1 сек. Изменить можно. Уже пробовал. Но у меня освещение на этом же контроллере (BC9000) - в случае увеличения интервала опроса не работает vis: нажал на элемент, фактически он отработал (свет погас, к примеру), а в форме он до следующего опроса горит.
Индивидуально у каждого объекта период опроса изменить не могу.
А то, что это явный баг, у автора нет возможности его исправить? Он еще тут бывает?


Nach oben
   
BeitragVerfasst: 31.10.2017, 09:18 
Offline

Registriert: 29.10.2017, 17:55
Beiträge: 9
Уважаемый Haus!
Может я в принципе не прав и есть другое решение? Опишу свои пожелания, а вы может что и подскажете.
Про свою структуру я писал: внешний owfs-сервер для мониторинга температуры и modbus-контроллер в качестве исполнительного модуля. Мне нужно:
1. Сбор разнородных даныын из разных источников в одно место. Это работает!
2. Реализация сложных алгоритмов, в т.ч. прогнозных - на основании анализа данных за предыдущие периоды, для управления отоплением. Это работает частично - с анализом предыдущих данных пока вопрос. Хотя что-то и есть для анализа.
3. Визуализация температурных данных: несколько источников на одном графике, разный временной масштаб. Этого пока нет.


Nach oben
   
BeitragVerfasst: 31.10.2017, 15:36 
Offline
professional

Registriert: 12.05.2015, 16:49
Beiträge: 489
Wohnort: Lithuania, Vilnius
Hat sich bedankt: 15 Mal
Danksagung erhalten: 33 Mal
select2 hat geschrieben:
А то, что это явный баг, у автора нет возможности его исправить? Он еще тут бывает?

У драйвера три автора и только Bluefox иногда заглядывает к нам и читает по русски :)
Можешь задать вопрос по немецки у них в ветке.

_________________
js-controller: 1.2.0 / node.js: v4.8.6 / npm: 2.15.11
admin: 3.0.1
javascript: 3.5.0
web: 2.1.7 vis: 1.0.4
cloud: 2.0.5

Server: DELL FX170 / linux: Debian 8.8 Jessie
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)


Nach oben
   
BeitragVerfasst: 31.10.2017, 15:40 
Offline
professional

Registriert: 12.05.2015, 16:49
Beiträge: 489
Wohnort: Lithuania, Vilnius
Hat sich bedankt: 15 Mal
Danksagung erhalten: 33 Mal
select2 hat geschrieben:
Уважаемый Haus!
Может я в принципе не прав и есть другое решение? Опишу свои пожелания, а вы может что и подскажете.
Про свою структуру я писал: внешний owfs-сервер для мониторинга температуры и modbus-контроллер в качестве исполнительного модуля. Мне нужно:
1. Сбор разнородных даныын из разных источников в одно место. Это работает!
2. Реализация сложных алгоритмов, в т.ч. прогнозных - на основании анализа данных за предыдущие периоды, для управления отоплением. Это работает частично - с анализом предыдущих данных пока вопрос. Хотя что-то и есть для анализа.
3. Визуализация температурных данных: несколько источников на одном графике, разный временной масштаб. Этого пока нет.

Как временное решение данные в базу каждую минуту
Code:
schedule("* * * * *", function(){
    setState("javascript.0.test2"/*test2*/, (getState("modbus.0.holdingRegisters.16393_ТЕМP").val / 10));
});

_________________
js-controller: 1.2.0 / node.js: v4.8.6 / npm: 2.15.11
admin: 3.0.1
javascript: 3.5.0
web: 2.1.7 vis: 1.0.4
cloud: 2.0.5

Server: DELL FX170 / linux: Debian 8.8 Jessie
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)


Nach oben
   
BeitragVerfasst: 01.11.2017, 06:56 
Offline

Registriert: 29.10.2017, 17:55
Beiträge: 9
Спасибо!
Я проверил - работает как часы ).
Отличный вариант!

Попутно подобрал параметры для классического варианта:
Минимальный интервал 1000
Только изменения - отметить
Запись неизменённых значений каждые 0
Минимальная разница с последним записанным значением = 0,5

В результате имеем записи при изменении температуры минимум на 0,5 градуса. Что меня устраивает. Вот результат:
Code:
34.5   false      2017-11-01 10:47:48.086   
35   false      2017-11-01 08:42:13.806   
35.5   false      2017-11-01 07:10:20.039   
36   false      2017-11-01 05:42:36.986   
36.5   false      2017-11-01 03:59:58.551   
37   false      2017-11-01 01:51:16.586   
37.5   false      2017-11-01 01:34:22.830   
37   false      2017-11-01 01:04:23.098   
36.5   false      2017-11-01 00:28:10.194   
36   false      2017-10-31 23:53:24.717   
36.5   false      2017-10-31 23:44:09.962   
36   false      2017-10-31 23:37:51.404   
36.5   false      2017-10-31 23:35:45.342   
37   false      2017-10-31 23:33:25.658   
37.5   false      2017-10-31 23:31:11.227   
38   false      2017-10-31 23:30:16.509   
38.6   false      2017-10-31 23:29:45.502   
39.1   false      2017-10-31 23:29:11.433   
39.6   false      2017-10-31 23:28:42.472


Понаблюдаю еще за работой и выберу наиболее стабильный из этих вариантов.
А шедулер много системных ресурсов потребляет?


Nach oben
   
BeitragVerfasst: 10.11.2017, 09:57 
Offline
starter

Registriert: 28.12.2016, 09:27
Beiträge: 63
Hat sich bedankt: 3 Mal
select2 hat geschrieben:

Попутно подобрал параметры для классического варианта:
Минимальный интервал 1000


Я еще летом в теме по influxdb писал про ту же проблему. Можете посмотреть. И тоже путем подбора пришел к тому, что стабильная работа идет только при секундной или меньше записи. Причем со старой версией драйвера такой проблемы нет. Поэтому и не обновляю, оставаясь на 1.3.4. Пробовал и sql с postgresql - все то же самое. Разработчики большого интереса к проблеме не проявили. Странно, что проблема не массовая, возможно люди не заморачиваются объемом хранения и оставляют секунду по умолчанию. Модбас тут совершенно ни при чем, поскольку у меня данные для базы берутся не только оттуда с теми же проблемами. Хотя и к драйверу модбаса тоже у меня немало претензий и тоже никакого интереса у разработчиков.


Nach oben
   
BeitragVerfasst: 13.11.2017, 05:11 
Offline

Registriert: 29.10.2017, 17:55
Beiträge: 9
Adav, с версией драйвера sql 1.3.4. у вас работает без этих проблем, я правильно понял?
C драйвером modbus я помучился при настройке, но в работе он показал себя неплохо. Вопросов к modbus нет.


Nach oben
   
BeitragVerfasst: 13.11.2017, 12:58 
Offline
starter

Registriert: 28.12.2016, 09:27
Beiträge: 63
Hat sich bedankt: 3 Mal
select2 hat geschrieben:
Adav, с версией драйвера sql 1.3.4. у вас работает без этих проблем, я правильно понял?
C драйвером modbus я помучился при настройке, но в работе он показал себя неплохо. Вопросов к modbus нет.


Я использую influxdb, со старой версией работает не только на секунде. Гляньте ветку по influxdb - я там подробно описал. A sql я пробовал чисто ради интереса последнюю - с ней та же беда, старую не проверял. Подозреваю, что тут будет все то же самое. Очень похоже, что сделали какое-то новшество во всех этих драйверах одновременно. С modbus у меня есть пара проблем - есть девайс, где дискретные входы идут не подряд, с пропусками - там ошибки всегда (как я понял, драйвер по-любому считывает сразу 8), несколько устройств на одной шине не работают (точнее работают, но постоянно конфликтуют с ошибками в логах). Ни при прямом подключении на USB-485, ни через 485-Ethernet конвертер. А вообще у меня modbus устройств немало, но вот такое неудобство... Сначала хотел перенести опрос напрямую с iobroker, но после такой фигни оставил почти все как было (за исключением нескольких устройств) - опрос modbus через WB5 и уже с него на iobroker через mqtt. Это касается 485. Есть устройство с TCP modbs - тут все нормально. Но оно типовое (универсальные входы-выходы) и негде ему конфликтовать на одной 485 шине.


Nach oben
   
BeitragVerfasst: 13.11.2017, 13:34 
Offline
Site Admin
Benutzeravatar

Registriert: 13.07.2014, 14:42
Beiträge: 7451
Hat sich bedankt: 246 Mal
Danksagung erhalten: 686 Mal
Если есть проблемы, то я очень советую создать issue на github (причём на английском)

modbus - да я его писал. Но железа у меня нет и я пользуюсь симуляторами.
sql - Apollon не понимает по русски и именно он поддерживает sql/influx/history

Я не в состоянии прочитать и ответить на 50 сообщений в день в форуме. А ещё есть telegram, whatsapp, email, facebook, github, trello.

И потом у меня работа и двое детей с женой в придачу, а ведь надо фиксить баги и добавлять новые фичи, поддерживать сайт и 2 облака, а то все пользователи разбегутся :)


Nach oben
   
BeitragVerfasst: 13.11.2017, 14:02 
Offline
starter

Registriert: 28.12.2016, 09:27
Beiträge: 63
Hat sich bedankt: 3 Mal
Bluefox hat geschrieben:
Если есть проблемы, то я очень советую создать issue на github (причём на английском)

modbus - да я его писал. Но железа у меня нет и я пользуюсь симуляторами.
sql - Apollon не понимает по русски и именно он поддерживает sql/influx/history

Я не в состоянии прочитать и ответить на 50 сообщений в день в форуме. А ещё есть telegram, whatsapp, email, facebook, github, trello.

И потом у меня работа и двое детей с женой в придачу, а ведь надо фиксить баги и добавлять новые фичи, поддерживать сайт и 2 облака, а то все пользователи разбегутся :)


Не воспринимайте это как претензию. Скорее как отдельные выявленные недостатки. Но даже с ними система работает очень неплохо. Шустро и стабильно. Нет никакого желания искать что-то другое. Про issue я понял. Как руки дойдут - воспользуюсь. Прямо сейчас не получится - надо вспоминать подробности. К тому же уже и так приладился...

Вообщем-то на старой версии influx прекрасно работает, и действительно эта проблема возникла после обновлений от Apollon.

С modbus эмулятором наверное можно попробовать повторить ошибку с дискретными регистрами. Попробуйте дискретные входы (или выходы) задать на эмуляторе не подряд. Скажем, адреса регистров 0,1,3,4,5,6,7,8,10 и попробовать такое считать. Понимаю, такой "бардак" с адресацией не типичен, но вот мне досталось именно такое устройство. Такое происходит только с дискретными, с input или c holding такой проблемы нет. С несколькими устройствами на шине 485, как я понимаю, с эмулятором не получится повторить. В меру моего разумения, проблема в том, что нет очереди при использовании разных драйверов на опрос разных устройств на одной 485 шине с разными ID. Вот и возникает конфликт при опросе.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 20 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu Forum:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de