Графики IH Pro



  • @sergeyygr:

    @intrapro:

    @sergeyygr:

    Добрый день! А как очистить базу данных? Функция "Удалить таблицу из БД" файл не удаляет :? .

    Добрый день!

    Если вы хотите удалить таблицу (несколько таблиц), то "Удалить таблицу из БД" из интерфейса работает, только неверно отрабатывается feedback от сервера (продолжает крутиться индикатор). Поправим в следующей версии.

    Если нажать кнопку Refresh.png- увидите, что удаляемой таблицы уже нет.

    Так можно удалить любую таблицу кроме текущей (за сегодняшний день)

    Если же цель - полностью очистить БД, то можно удалить папку ihdb. После перезагрузки сервиса будет создана новая БД

    > > sudo service intrahouse-c stop
    > > sudo service mysqld stop
    > > sudo rm -R /var/lib/mysql/ihdb
    > > sudo service mysqld start
    > > sudo service intrahouse-c start
    > > 
    > > 
    

    Спасибо. Удалил папку. А теперь вопрос - как настроить отображение графиков столбцами с указанием суточного расхода? Например - график потребления электроэнергии почему-то каждый час прибавляет к существующему общему показанию. Так же и по счетчикам воды. Вроде все перепробовал. Вот настройки графикаСнимок.PNG

    Добрый день! А поделитесь опытом как Вы снимаете показания электроэнергии? Какие контроллеры, какие датчики?



  • @sergeyygr:

    @homa:

    @sergeyygr:

    Спасибо. Удалил папку. А теперь вопрос - как настроить отображение графиков столбцами с указанием суточного расхода? Например - график потребления электроэнергии почему-то каждый час прибавляет к существующему общему показанию. Так же и по счетчикам воды. Вроде все перепробовал. Вот настройки графикаСнимок.PNG

    Добрый день! А поделитесь опытом как Вы снимаете показания электроэнергии? Какие контроллеры, какие датчики?

    Добрый день. У меня контроллер MegaD-2561 https://ab-log.ru/smart-house/ethernet/megad-2561 и исполнительные модули https://ab-log.ru/smart-house/ethernet/megad-14-ior. На вход in (без всякого дополнительного питания) установлен фототранзистор https://www.chipdip.ru/product/l-32p3c с биполярным транзистором для усиления по току (схем в инете множество). Фототранзистор "висит" на светодиоде импульсов электросчетчика (у меня Меркурий 200).

    Отличное решение! У меня тоже меркурий, но штатная телеметрия привязана к контроллерам управляющей компании и туда подключиться нельзя, а вот мониторить светодиод не догадался)))



  • @sergeyygr:

    Добрый вечер! Вроде работает. Только… ВРЁТ сильно 😞 . Коэффициенты установил как на счетчике были раньше, там расхождений небыло. Может еще какие настройки не учел. Да, еще, без запроса состояния канала сценарий не запускается. Сейчас 1 секунта, пробовал 0,1 секунду, результат тот же 😞

    Добрый вечер!

    Опрос здесь не нужен. Импульсный вход нужно получать от MegaD в Расширениях. Раньше ведь так было? Только сделать не 1=CNT, а 1=ON

    А сброс идет в сценарии.

    Еще на счетчиках нужно выставить цифры после запятой



  • @sergeyygr:

    Спасибо, все работает. Только выводятся целые значения, а дробных на графике нет(

    Вот так это выглядит на графиках. А потребления воды вообще нет, т.к. в час меньше 1 куб метра.Снимок.PNG

    В графиках действительно по умолчанию округляется до целых, а настройки округления нет 😞 Поправим



  • @sergeyygr:

    Добрый день! Сейчас "борюсь" с выводом графиков на дачном сервере. Почему записей в consumption нет. Ставил обновление час.Снимок.PNG

    Добрый день!

    В consumption пишутся данные, если устройство имеет тип Счетчик и у него выставлена галочка "Сохранять показания в БД каждый час"

    Запись происходит строго на границе часа, неважно, изменились показания или нет. Если в этот момент сервер был отключен, запись будет через час.



  • @sergeyygr:

    @sergeyygr:

    @intrapro:

    Добрый день!

    В consumption пишутся данные, если устройство имеет тип Счетчик и у него выставлена галочка "Сохранять показания в БД каждый час"

    Запись происходит строго на границе часа, неважно, изменились показания или нет. Если в этот момент сервер был отключен, запись будет через час.

    Да, понимаю. Только база данных не обновляется. На домашнем сервере мы с Вами позавчера все настроили, сегодня ездил настраивать дачный. Сделал все тоже самое. Заметил, что при удалении записи consumption из БД она появлялась снова через час. На дачном и через 4 часа не появилась 😞

    Кстати, timeline показания тоже не фиксируются и на график не выводятся 😞

    Это странно очень - одно с другим никак не связано.

    А значения устройств - температура например - пишутся?

    Хорошо бы лог посмотреть /opt/intrahouse-c/log/ih.log

    Если не заработает - пришлите архив проекта



  • @sergeyygr:

    @intrapro:

    @sergeyygr:

    Кстати, timeline показания тоже не фиксируются и на график не выводятся 😞

    Это странно очень - одно с другим никак не связано.

    А значения устройств - температура например - пишутся?

    Хорошо бы лог посмотреть /opt/intrahouse-c/log/ih.log

    Если не заработает - пришлите архив проекта

    Значения устройств пишутся. И столбчатый график значений устройств выводится. Раньше значение устройств работало со счетчиками. Сейчас все что связано со счетчиками на график не выводится. Плагин MegaD 1.1.9. Завтра попробую MySQL полностью переустановить. Сначала лог скачаю и вышлю.

    Переустанавливать не спешите 🙂

    А на счетчике значения обновляются?



  • Такая же проблема, началась вчера. Все работало, но я заменил счетчики импульсов с кернелчипа на мегад, перепривязал имеющиеся счетчики к плагину мегад и графики перестали работать



  • @homa:

    Такая же проблема, началась вчера. Все работало, но я заменил счетчики импульсов с кернелчипа на мегад, перепривязал имеющиеся счетчики к плагину мегад и графики перестали работать

    Перестали показывать - не показывает новые значения или ничего нет?



  • @intrapro:

    @homa:

    Такая же проблема, началась вчера. Все работало, но я заменил счетчики импульсов с кернелчипа на мегад, перепривязал имеющиеся счетчики к плагину мегад и графики перестали работать

    Перестали показывать - не показывает новые значения или ничего нет?

    Кроме consumption не пробовал ничего. На том же графике старые значения (расход в предыдущие дни) стали запредельно большими, а значения после замены устройства на графике отсутствуют. Причем на мнемосхеме все работает исправно



  • @homa:

    @intrapro:

    @homa:

    Такая же проблема, началась вчера. Все работало, но я заменил счетчики импульсов с кернелчипа на мегад, перепривязал имеющиеся счетчики к плагину мегад и графики перестали работать

    Перестали показывать - не показывает новые значения или ничего нет?

    Кроме consumption не пробовал ничего. На том же графике старые значения (расход в предыдущие дни) стали запредельно большими, а значения после замены устройства на графике отсутствуют. Причем на мнемосхеме все работает исправно

    Понятно, спасибо. Будем разбираться 😞



  • @sergeyygr:

    Доброе утро. Высылаю лог.

    Доброе утро.

    В логе ошибка записи в таблицу - Table 'ihdb.consumption' doesn't exist . MySQL таблицу не видит.

    Попробуйте перезагрузить службы mysql и ih

    Или сделать reboot сервера - если есть такая возможность



  • @intrapro:

    @homa:

    @intrapro:

    Перестали показывать - не показывает новые значения или ничего нет?

    Кроме consumption не пробовал ничего. На том же графике старые значения (расход в предыдущие дни) стали запредельно большими, а значения после замены устройства на графике отсутствуют. Причем на мнемосхеме все работает исправно

    Понятно, спасибо. Будем разбираться 😞

    У меня вдруг появились значения на графике вчера, но там не разница, а текущие значения. Не понимаю
    meter.JPG



  • @sergeyygr:

    Смотрю сейчас в consumption 2 записи. Вчера изменил установки графика на значения устройства и линия. Сейчас вернул на аналитические данные и столбчатый, график есть только последний час и общее значение с 18 до 19 вчера. В это время я как раз поменял настройки на вывод значения и линию. Фантастика какая то :lol:

    Спасибо за логи, благодаря им смогли разобраться :).

    По логам: после перезагрузки таблица стала доступна для записи, но значения все равно в основном не писались в БД из-за ошибки округления при суммировании.

    Для фиксации ошибки выпущена новая версия плагина MegaD 1.1.10, доступно для скачивания на github

    https://github.com/intrahouseio/intraHouse.plugin-MegaD/releases/tag/v1.1.10

    В обновление системы 4.4.11 добавлена возможность дробного округления значений при построении аналитических графиков:

    Новое свойство "Цифр после запятой". В предыдущей версии округление делалось до целого значения

    Свойство появится только если добавляется новый график, в существующих свойство не появится.



  • @intrapro:

    @sergeyygr:

    Смотрю сейчас в consumption 2 записи. Вчера изменил установки графика на значения устройства и линия. Сейчас вернул на аналитические данные и столбчатый, график есть только последний час и общее значение с 18 до 19 вчера. В это время я как раз поменял настройки на вывод значения и линию. Фантастика какая то :lol:

    Спасибо за логи, благодаря им смогли разобраться :).

    По логам: после перезагрузки таблица стала доступна для записи, но значения все равно в основном не писались в БД из-за ошибки округления при суммировании.

    Для фиксации ошибки выпущена новая версия плагина MegaD 1.1.10, доступно для скачивания на github

    https://github.com/intrahouseio/intraHouse.plugin-MegaD/releases/tag/v1.1.10

    В обновление системы 4.4.11 добавлена возможность дробного округления значений при построении аналитических графиков:

    Новое свойство "Цифр после запятой". В предыдущей версии округление делалось до целого значения

    Свойство появится только если добавляется новый график, в существующих свойство не появится.

    После обновления все счетчики обнулились 😄 последующая перезагрузка не вызвала обнуления



  • А есть возможность фиксировать показание счетчика на начало месяца? Все приходящие в голову мысли связаны с созданием кучи дополнительных объектов… Мысль переводить на ходу текущие показания в рубли, чтобы был виден расход не только в кубах\киловаттах, но и сразу в денежном выражении



  • @homa:

    А есть возможность фиксировать показание счетчика на начало месяца? Все приходящие в голову мысли связаны с созданием кучи дополнительных объектов… Мысль переводить на ходу текущие показания в рубли, чтобы был виден расход не только в кубах\киловаттах, но и сразу в денежном выражении

    В принципе, каждый счетчик уже имеет свойства - показания на начало месяца, дня и часа

    Их можно использовать в сценарии:

    const meter = Device("METER1"); 
    script({
        start() {
            this.log("На начало месяца:"+meter.getParam('uptoMonth')); 
            this.log("На начало дня:"+meter.getParam('uptoDay')); 
            this.log("На начало часа:"+meter.getParam('uptoHour')); 
        } 
    });
    
    
    


  • @intrapro:

    @homa:

    А есть возможность фиксировать показание счетчика на начало месяца? Все приходящие в голову мысли связаны с созданием кучи дополнительных объектов… Мысль переводить на ходу текущие показания в рубли, чтобы был виден расход не только в кубах\киловаттах, но и сразу в денежном выражении

    В принципе, каждый счетчик уже имеет свойства - показания на начало месяца, дня и часа

    Их можно использовать в сценарии:

    > const meter = Device("METER1"); 
    > script({
    >     start() {
    >         this.log("На начало месяца:"+meter.getParam('uptoMonth')); 
    >         this.log("На начало дня:"+meter.getParam('uptoDay')); 
    >         this.log("На начало часа:"+meter.getParam('uptoHour')); 
    >     } 
    > });
    > 
    > 
    

    Супер! Получается можно из текущих показаний вычитать "на начало месяца" и умножать на стоимость. Спасибо!



  • @homa:

    @intrapro:

    @homa:

    А есть возможность фиксировать показание счетчика на начало месяца? Все приходящие в голову мысли связаны с созданием кучи дополнительных объектов… Мысль переводить на ходу текущие показания в рубли, чтобы был виден расход не только в кубах\киловаттах, но и сразу в денежном выражении

    В принципе, каждый счетчик уже имеет свойства - показания на начало месяца, дня и часа

    Их можно использовать в сценарии:

    > > const meter = Device("METER1"); 
    > > script({
    > >     start() {
    > >         this.log("На начало месяца:"+meter.getParam('uptoMonth')); 
    > >         this.log("На начало дня:"+meter.getParam('uptoDay')); 
    > >         this.log("На начало часа:"+meter.getParam('uptoHour')); 
    > >     } 
    > > });
    > > 
    > > 
    

    Супер! Получается можно из текущих показаний вычитать "на начало месяца" и умножать на стоимость. Спасибо!

    Да, но у вас с февраля только это будет работать, так как счетчики запустили в январе 🙂



  • @intrapro:

    @sergeyygr:

    Может… как то сценариями решить? Два виртуальных устройства (получаем данные с канала, который тупо считает импульсы), в каждом устройстве свой делитель (количество импульсов на кВт/час), а время запуска сценариев уже реализовано 😛

    Да, хорошая идея, такой вариант вполне работоспособен: два виртуальных счетчика плюс дискретный датчик импульса.

    Значение формируется сценарием. Время и коэффициенты для простоты заложить прямо в сценарий

    Примерно так:

    > /** 
    > * @name Двухтарифный счетчик для имульсного входа
    > * @desc  
    > * @version 4 
    > */
    > const meterDay = Device("Meter"); 
    > const meterNight = Device("Meter"); 
    > const pulse = Device("SensorD"); 
    > 
    > startOnChange(pulse); 
    > 
    > script({
    >     dayWeight:0.1, // дневной коэф-т
    >     nightWeight:0.05,  // ночной коэф-т
    >     start() {
    >         const dt = new Date();
    >         if (dt.getHours() < 7 || dt.getHours()>22) {  // c 22:00 - 7:00 ночной тариф 
    >           this.assign(meterNight, 'aval', meterNight.value+this.nightWeight);
    >         } else {
    >           this.assign(meterDay, 'aval', meterDay.value+this.dayWeight);
    >         }  
    >         this.assign( pulse, 'value', 0); // сброс импульса
    >     } 
    > });
    > 
    > 
    

    Только тип датчика в каналах надо поменять. Нужен просто дискретный датчик

    И виртуальным датчикам присвоить начальное значение через интерфейс

    Настроил у себя аналогичную конфигурацию и сценарий, но есть проблема. Если сценарий прервался и канал с импульсами в это время был в статусе ON, то он уже не сбросится и подсчет остановится. Пытался сделать сценарий, который скидывает сенсор в OFF через 5 секунд, но не взлетело


Log in to reply