NEWS
Sql.0 не сохраняются данные
-
Нажми на карандаш сверху справа и добавь вкладки по желанию
Отправлено с моего Nexus 5 через Tapatalk
-
Спасибо! Добавил вкладки - вижу что события есть:
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а в таблице значений объекта - пропуски:````
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Есть какие-либо идеи? -
Данных действительно будет много, поэтому я и установил мин. интервал в 1 минуту. И фиксирую только изменения.
Похоже проблема где-то на стыке с драйвером modbus.
Попытался подойти с другой стороны: написал скрипт, который мониторит изменение modbus-объекта:
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-объектов?
-
Данных действительно будет много, поэтому я и установил мин. интервал в 1 минуту. И фиксирую только изменения.
Похоже проблема где-то на стыке с драйвером modbus.
Попытался подойти с другой стороны: написал скрипт, который мониторит изменение modbus-объекта:
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 ошибок нет.
-
Похоже нашел причину: в настройках истории выставляю Минимальный интервал(ms) в 1000 - и все начинает работать - валит каждую секунду. Достаточно увеличить это интервал до 10 секунд (значение 10000) - и значения начинают проваливаться - пишутся нерегулярно и непредсказуемо.
Проверь пожалуйста - выставь 60000 - 1 минуту.
-
Похоже нашел причину: в настройках истории выставляю Минимальный интервал(ms) в 1000 - и все начинает работать - валит каждую секунду. Достаточно увеличить это интервал до 10 секунд (значение 10000) - и значения начинают проваливаться - пишутся нерегулярно и непредсказуемо.
Проверь пожалуйста - выставь 60000 - 1 минуту. `
Если стоит "0" то данные пишутся сразу после получения.Если стоит "10000" или "60000" то данные пишутся по истечению таймера исходя из данных в тот момент в переменной. Какие то траблы там есть, выставив "60000" данные какое то время пишутся исправно иногда проскакивают интервалы в 30сек(приходят данные в переменную).
-
А у меня, вместе с 30-секундными данными, появляются еще провалы - 30-40 МИНУТ!
График при этом выглядит просто потрясающе!
Ну и управление отоплением при такой дискретизации, конечно не построишь. `
Если не ошиваюсь у тебя данные приходят каждые 10сек, нельзя ли изменить интервал опроса modbas? В OWFS на каждый датчик можно установить свой интервал опроса. Если нет пиши все данные в базу только сократи время хранения до минимума тебе нужного. -
Интервал опроса стоит 1 сек. Изменить можно. Уже пробовал. Но у меня освещение на этом же контроллере (BC9000) - в случае увеличения интервала опроса не работает vis: нажал на элемент, фактически он отработал (свет погас, к примеру), а в форме он до следующего опроса горит.
Индивидуально у каждого объекта период опроса изменить не могу.
А то, что это явный баг, у автора нет возможности его исправить? Он еще тут бывает?
-
Уважаемый Haus!
Может я в принципе не прав и есть другое решение? Опишу свои пожелания, а вы может что и подскажете.
Про свою структуру я писал: внешний owfs-сервер для мониторинга температуры и modbus-контроллер в качестве исполнительного модуля. Мне нужно:
1. Сбор разнородных даныын из разных источников в одно место. Это работает!
2. Реализация сложных алгоритмов, в т.ч. прогнозных - на основании анализа данных за предыдущие периоды, для управления отоплением. Это работает частично - с анализом предыдущих данных пока вопрос. Хотя что-то и есть для анализа.
3. Визуализация температурных данных: несколько источников на одном графике, разный временной масштаб. Этого пока нет.
-
Уважаемый Haus!
Может я в принципе не прав и есть другое решение? Опишу свои пожелания, а вы может что и подскажете.
Про свою структуру я писал: внешний owfs-сервер для мониторинга температуры и modbus-контроллер в качестве исполнительного модуля. Мне нужно:
1. Сбор разнородных даныын из разных источников в одно место. Это работает!
2. Реализация сложных алгоритмов, в т.ч. прогнозных - на основании анализа данных за предыдущие периоды, для управления отоплением. Это работает частично - с анализом предыдущих данных пока вопрос. Хотя что-то и есть для анализа.
3. Визуализация температурных данных: несколько источников на одном графике, разный временной масштаб. Этого пока нет. `
Как временное решение данные в базу каждую минутуschedule("* * * * *", function(){ setState("javascript.0.test2"/*test2*/, (getState("modbus.0.holdingRegisters.16393_ТЕМP").val / 10)); }); -
Спасибо!
Я проверил - работает как часы ).
Отличный вариант!
Попутно подобрал параметры для классического варианта:
Минимальный интервал 1000
Только изменения - отметить
Запись неизменённых значений каждые 0
Минимальная разница с последним записанным значением = 0,5
В результате имеем записи при изменении температуры минимум на 0,5 градуса. Что меня устраивает. Вот результат:
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Понаблюдаю еще за работой и выберу наиболее стабильный из этих вариантов.
А шедулер много системных ресурсов потребляет?
-
Попутно подобрал параметры для классического варианта:
Минимальный интервал 1000 `
Я еще летом в теме по influxdb писал про ту же проблему. Можете посмотреть. И тоже путем подбора пришел к тому, что стабильная работа идет только при секундной или меньше записи. Причем со старой версией драйвера такой проблемы нет. Поэтому и не обновляю, оставаясь на 1.3.4. Пробовал и sql с postgresql - все то же самое. Разработчики большого интереса к проблеме не проявили. Странно, что проблема не массовая, возможно люди не заморачиваются объемом хранения и оставляют секунду по умолчанию. Модбас тут совершенно ни при чем, поскольку у меня данные для базы берутся не только оттуда с теми же проблемами. Хотя и к драйверу модбаса тоже у меня немало претензий и тоже никакого интереса у разработчиков.
-
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 шине.
-
Если есть проблемы, то я очень советую создать issue на github (причём на английском)
modbus - да я его писал. Но железа у меня нет и я пользуюсь симуляторами.
sql - Apollon не понимает по русски и именно он поддерживает sql/influx/history
Я не в состоянии прочитать и ответить на 50 сообщений в день в форуме. А ещё есть telegram, whatsapp, email, facebook, github, trello.
И потом у меня работа и двое детей с женой в придачу, а ведь надо фиксить баги и добавлять новые фичи, поддерживать сайт и 2 облака, а то все пользователи разбегутся :)
-
Если есть проблемы, то я очень советую создать 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. Вот и возникает конфликт при опросе.
-
Похоже нашел причину: в настройках истории выставляю Минимальный интервал(ms) в 1000 - и все начинает работать - валит каждую секунду. Достаточно увеличить это интервал до 10 секунд (значение 10000) - и значения начинают проваливаться - пишутся нерегулярно и непредсказуемо.https://gclub.royal-ruby888.com
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden