Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Ошибка
    5. ioBroker ошибки
    6. Sql.0 не сохраняются данные

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Sql.0 не сохраняются данные

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      select2 last edited by

      Спасибо! Добавил вкладки - вижу что события есть:

      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 Reply Last reply Reply Quote 0
      • H
        Haus last edited by

        @select2:

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

        1 Reply Last reply Reply Quote 0
        • S
          select2 last edited by

          Данных действительно будет много, поэтому я и установил мин. интервал в 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 Reply Last reply Reply Quote 0
          • H
            Haus last edited by

            @select2:

            Данных действительно будет много, поэтому я и установил мин. интервал в 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 ошибок нет.

            1 Reply Last reply Reply Quote 0
            • S
              select2 last edited by

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

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

              1 Reply Last reply Reply Quote 0
              • H
                Haus last edited by

                @select2:

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

                Проверь пожалуйста - выставь 60000 - 1 минуту. `
                Если стоит "0" то данные пишутся сразу после получения.

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

                1 Reply Last reply Reply Quote 0
                • S
                  select2 last edited by

                  А у меня, вместе с 30-секундными данными, появляются еще провалы - 30-40 МИНУТ!

                  График при этом выглядит просто потрясающе!

                  Ну и управление отоплением при такой дискретизации, конечно не построишь.

                  1 Reply Last reply Reply Quote 0
                  • H
                    Haus last edited by

                    @select2:

                    А у меня, вместе с 30-секундными данными, появляются еще провалы - 30-40 МИНУТ!

                    График при этом выглядит просто потрясающе!

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

                    1 Reply Last reply Reply Quote 0
                    • S
                      select2 last edited by

                      Интервал опроса стоит 1 сек. Изменить можно. Уже пробовал. Но у меня освещение на этом же контроллере (BC9000) - в случае увеличения интервала опроса не работает vis: нажал на элемент, фактически он отработал (свет погас, к примеру), а в форме он до следующего опроса горит.

                      Индивидуально у каждого объекта период опроса изменить не могу.

                      А то, что это явный баг, у автора нет возможности его исправить? Он еще тут бывает?

                      1 Reply Last reply Reply Quote 0
                      • S
                        select2 last edited by

                        Уважаемый Haus!

                        Может я в принципе не прав и есть другое решение? Опишу свои пожелания, а вы может что и подскажете.

                        Про свою структуру я писал: внешний owfs-сервер для мониторинга температуры и modbus-контроллер в качестве исполнительного модуля. Мне нужно:

                        1. Сбор разнородных даныын из разных источников в одно место. Это работает!

                        2. Реализация сложных алгоритмов, в т.ч. прогнозных - на основании анализа данных за предыдущие периоды, для управления отоплением. Это работает частично - с анализом предыдущих данных пока вопрос. Хотя что-то и есть для анализа.

                        3. Визуализация температурных данных: несколько источников на одном графике, разный временной масштаб. Этого пока нет.

                        1 Reply Last reply Reply Quote 0
                        • H
                          Haus last edited by

                          @select2:

                          А то, что это явный баг, у автора нет возможности его исправить? Он еще тут бывает? `
                          У драйвера три автора и только Bluefox иногда заглядывает к нам и читает по русски 🙂

                          Можешь задать вопрос по немецки у них в ветке.

                          1 Reply Last reply Reply Quote 0
                          • H
                            Haus last edited by

                            @select2:

                            Уважаемый Haus!

                            Может я в принципе не прав и есть другое решение? Опишу свои пожелания, а вы может что и подскажете.

                            Про свою структуру я писал: внешний owfs-сервер для мониторинга температуры и modbus-контроллер в качестве исполнительного модуля. Мне нужно:

                            1. Сбор разнородных даныын из разных источников в одно место. Это работает!

                            2. Реализация сложных алгоритмов, в т.ч. прогнозных - на основании анализа данных за предыдущие периоды, для управления отоплением. Это работает частично - с анализом предыдущих данных пока вопрос. Хотя что-то и есть для анализа.

                            3. Визуализация температурных данных: несколько источников на одном графике, разный временной масштаб. Этого пока нет. `
                            Как временное решение данные в базу каждую минуту

                            schedule("* * * * *", function(){
                                setState("javascript.0.test2"/*test2*/, (getState("modbus.0.holdingRegisters.16393_ТЕМP").val / 10));
                            });
                            
                            1 Reply Last reply Reply Quote 0
                            • S
                              select2 last edited by

                              Спасибо!

                              Я проверил - работает как часы ).

                              Отличный вариант!

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

                              Минимальный интервал 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
                              

                              Понаблюдаю еще за работой и выберу наиболее стабильный из этих вариантов.

                              А шедулер много системных ресурсов потребляет?

                              1 Reply Last reply Reply Quote 0
                              • A
                                Adav last edited by

                                @select2:

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

                                Минимальный интервал 1000 `

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

                                1 Reply Last reply Reply Quote 0
                                • S
                                  select2 last edited by

                                  Adav, с версией драйвера sql 1.3.4. у вас работает без этих проблем, я правильно понял?

                                  C драйвером modbus я помучился при настройке, но в работе он показал себя неплохо. Вопросов к modbus нет.

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    Adav last edited by

                                    @select2:

                                    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 шине.

                                    1 Reply Last reply Reply Quote 0
                                    • Bluefox
                                      Bluefox last edited by

                                      Если есть проблемы, то я очень советую создать issue на github (причём на английском)

                                      modbus - да я его писал. Но железа у меня нет и я пользуюсь симуляторами.

                                      sql - Apollon не понимает по русски и именно он поддерживает sql/influx/history

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

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

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        Adav last edited by

                                        @Bluefox:

                                        Если есть проблемы, то я очень советую создать 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. Вот и возникает конфликт при опросе.

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          sukuy last edited by

                                          Похоже нашел причину: в настройках истории выставляю Минимальный интервал(ms) в 1000 - и все начинает работать - валит каждую секунду. Достаточно увеличить это интервал до 10 секунд (значение 10000) - и значения начинают проваливаться - пишутся нерегулярно и непредсказуемо.https://gclub.royal-ruby888.com

                                          https://gclub.gclubslot.com/

                                          1 Reply Last reply Reply Quote 0
                                          • A
                                            Adav last edited by

                                            Ровно то же самое с драйвером influxdb. Выше писал. Поэтому и использую до сих пор совсем старую версию, где такой проблемы не было. Вероятно и sql будет нормально работать на старой версии. Issue оставлял на гитхабе, результат нулевой. И провалы начинаются уже с 2 секунд и чем больше значение - тем более вероятно, что значение не сохранится.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            850
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            22
                                            5237
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo