Графики IH Pro



  • @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 секунд, но не взлетело



  • @homa:

    @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 секунд, но не взлетело

    Добрый день! А почему вдруг сценарий прерывается? Может лучше эту проблему решить? У меня сейчас эта проблема только при перезагрузке сервера после обновления, но коррекцию можно сделать вручную. А на даче сервер пашет не выключаясь, по сценариям за полгода сбоев небыло)



  • @sergeyygr:

    @homa:

    @intrapro:

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

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

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

    > > > /** 
    > > > * @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 секунд, но не взлетело

    Добрый день! А почему вдруг сценарий прерывается? Может лучше эту проблему решить? У меня сейчас эта проблема только при перезагрузке сервера после обновления, но коррекцию можно сделать вручную. А на даче сервер пашет не выключаясь, по сценариям за полгода сбоев небыло)

    Потому что я в процессе настройки, много правок, иногда приводят к ошибке, иногда сохранение сценария не вовремя



  • @homa:

    @sergeyygr:

    @homa:

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

    Добрый день! А почему вдруг сценарий прерывается? Может лучше эту проблему решить? У меня сейчас эта проблема только при перезагрузке сервера после обновления, но коррекцию можно сделать вручную. А на даче сервер пашет не выключаясь, по сценариям за полгода сбоев небыло)

    Потому что я в процессе настройки, много правок, иногда приводят к ошибке, иногда сохранение сценария не вовремя

    Интересно! Сейчас пробовал у себя так так воссоздать, но сценарий нормально отрабатывает со следующего импульса устройства. У меня на счетчике Меркурий, а у Вас какое устройство отслеживает?



  • @sergeyygr:

    @homa:

    @sergeyygr:

    Добрый день! А почему вдруг сценарий прерывается? Может лучше эту проблему решить? У меня сейчас эта проблема только при перезагрузке сервера после обновления, но коррекцию можно сделать вручную. А на даче сервер пашет не выключаясь, по сценариям за полгода сбоев небыло)

    Потому что я в процессе настройки, много правок, иногда приводят к ошибке, иногда сохранение сценария не вовремя

    Интересно! Сейчас пробовал у себя так так воссоздать, но сценарий нормально отрабатывает со следующего импульса устройства. У меня на счетчике Меркурий, а у Вас какое устройство отслеживает?

    Тоже меркурий 200.02. Расскажите как прикрепили фототранзистор к диоду, никак не сочиню крепление



  • @homa:

    @sergeyygr:

    @homa:

    Потому что я в процессе настройки, много правок, иногда приводят к ошибке, иногда сохранение сценария не вовремя

    Интересно! Сейчас пробовал у себя так так воссоздать, но сценарий нормально отрабатывает со следующего импульса устройства. У меня на счетчике Меркурий, а у Вас какое устройство отслеживает?

    Тоже меркурий 200.02. Расскажите как прикрепили фототранзистор к диоду, никак не сочиню крепление

    Кусок от авторучки моей Школьницы и моментальный клейIMG_1290.jpg



  • @sergeyygr:

    @homa:

    @sergeyygr:

    Интересно! Сейчас пробовал у себя так так воссоздать, но сценарий нормально отрабатывает со следующего импульса устройства. У меня на счетчике Меркурий, а у Вас какое устройство отслеживает?

    Тоже меркурий 200.02. Расскажите как прикрепили фототранзистор к диоду, никак не сочиню крепление

    Кусок от авторучки моей Школьницы и моментальный клейIMG_1290.jpg

    Надзорные органы не поругают за клей? :roll: я взял кусок фломастера и пластелин 😄



  • @homa:

    @sergeyygr:

    @homa:

    Потому что я в процессе настройки, много правок, иногда приводят к ошибке, иногда сохранение сценария не вовремя

    Интересно! Сейчас пробовал у себя так так воссоздать, но сценарий нормально отрабатывает со следующего импульса устройства. У меня на счетчике Меркурий, а у Вас какое устройство отслеживает?

    Тоже меркурий 200.02. Расскажите как прикрепили фототранзистор к диоду, никак не сочиню крепление

    Давайте настройки сверим?
    Снимок1.PNG
    Снимок2.PNG
    Снимок3.PNG
    Снимок4.PNG



  • @homa:

    @sergeyygr:

    @homa:

    Тоже меркурий 200.02. Расскажите как прикрепили фототранзистор к диоду, никак не сочиню крепление

    Кусок от авторучки моей Школьницы и моментальный клейIMG_1290.jpg

    Надзорные органы не поругают за клей? :roll: я взял кусок фломастера и пластелин 😄

    У меня в квартире, кто их пустит :lol: , а у вас видать… 😛 . К слову на даче такая же система стоит, летом приходили, смотрели, не прореагировали никак, видно много "нашего брата" (мастеров-умельцев) развелось. 😛



  • @sergeyygr:

    @homa:

    @sergeyygr:

    Интересно! Сейчас пробовал у себя так так воссоздать, но сценарий нормально отрабатывает со следующего импульса устройства. У меня на счетчике Меркурий, а у Вас какое устройство отслеживает?

    Тоже меркурий 200.02. Расскажите как прикрепили фототранзистор к диоду, никак не сочиню крепление

    Давайте настройки сверим?

    Снимок1.PNG

    Снимок2.PNG

    Снимок3.PNG

    Снимок4.PNG

    А у вас IH версии 4.4.11? У меня все тоже самое за исключением окна настройки канала. Параметр "Строка запроса состояния" у меня исчезает при значении периода опроса "0". Не должно влиять на проблему, но интересно различия версий это или что-то еще.
    mega1.JPG



  • @homa:

    @sergeyygr:

    @homa:

    Тоже меркурий 200.02. Расскажите как прикрепили фототранзистор к диоду, никак не сочиню крепление

    Давайте настройки сверим?

    Снимок1.PNG

    Снимок2.PNG

    Снимок3.PNG

    Снимок4.PNG

    А у вас IH версии 4.4.11? У меня все тоже самое за исключением окна настройки канала. Параметр "Строка запроса состояния" у меня исчезает при значении периода опроса "0". Не должно влиять на проблему, но интересно различия версий это или что-то еще.

    Версия та же. У меня не исчезает. А версия плагина MegaD 1.1.10?



  • @sergeyygr:

    @homa:

    @sergeyygr:

    Давайте настройки сверим?

    Снимок1.PNG

    Снимок2.PNG

    Снимок3.PNG

    Снимок4.PNG

    А у вас IH версии 4.4.11? У меня все тоже самое за исключением окна настройки канала. Параметр "Строка запроса состояния" у меня исчезает при значении периода опроса "0". Не должно влиять на проблему, но интересно различия версий это или что-то еще.

    Версия та же. У меня не исчезает. А версия плагина MegaD 1.1.10?

    1.1.5, говорит актуальная. У Вас с гитхаба?



  • @homa:

    @sergeyygr:

    @homa:

    А у вас IH версии 4.4.11? У меня все тоже самое за исключением окна настройки канала. Параметр "Строка запроса состояния" у меня исчезает при значении периода опроса "0". Не должно влиять на проблему, но интересно различия версий это или что-то еще.

    Версия та же. У меня не исчезает. А версия плагина MegaD 1.1.10?

    1.1.5, говорит актуальная. У Вас с гитхаба?

    Да. Работает прекрасно!



  • @sergeyygr:

    @homa:

    @sergeyygr:

    Версия та же. У меня не исчезает. А версия плагина MegaD 1.1.10?

    1.1.5, говорит актуальная. У Вас с гитхаба?

    Да. Работает прекрасно!

    Разработчики обещали на этой неделе штатными средствами обновить. Решил подождать…



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



  • @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); // сброс импульса
    >     } 
    > });
    > 
    > 
    

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

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

    Добрый день! Подскажите пожалуйста формат времени в строке if (dt.getHours() < 7 || dt.getHours()>22) { // c 22:00 - 7:00 ночной тариф если нужно время переключения 21 час 55 мин 34 сек ?



  • @sergeyygr:

    Добрый день! Подскажите пожалуйста формат времени в строке if (dt.getHours() < 7 || dt.getHours()>22) { // c 22:00 - 7:00 ночной тариф если нужно время переключения 21 час 55 мин 34 сек ?

    Добрый день!

    Вариант 1.

    (dt.getHours() < 7 || dt.getHours()>21 || (dt.getHours()==21 && (dt.getMinutes()>55 || dt.getMinutes()==55&&dt.getSeconds()>=34))

    Вариант 2. Сформировать временные точки, потом с ними сравнивать

    const dtD = new Date();

    dtN.setHours(7);

    dtN.setMinutes(0);

    dtN.setSeconds(0);

    const dtN = new Date();

    dtN.setHours(21);

    dtN.setMinutes(55);

    dtN.setSeconds(34);

    const dt = new Date(); // Это сейчас

    if (dt<=dtD || dt>=dtN ) // ночной тариф

    Первый вариант короче, второй проще сопровождать (менять)



  • @intrapro:

    @sergeyygr:

    Добрый день! Подскажите пожалуйста формат времени в строке if (dt.getHours() < 7 || dt.getHours()>22) { // c 22:00 - 7:00 ночной тариф если нужно время переключения 21 час 55 мин 34 сек ?

    Добрый день!

    Вариант 1.

    (dt.getHours() < 7 || dt.getHours()>21 || (dt.getHours()==21 && (dt.getMinutes()>55 || dt.getMinutes()==55&&dt.getSeconds()>=34))

    Вариант 2. Сформировать временные точки, потом с ними сравнивать

    const dtD = new Date();

    dtN.setHours(7);

    dtN.setMinutes(0);

    dtN.setSeconds(0);

    const dtN = new Date();

    dtN.setHours(21);

    dtN.setMinutes(55);

    dtN.setSeconds(34);

    const dt = new Date(); // Это сейчас

    if (dt<=dtD || dt>=dtN ) // ночной тариф

    Первый вариант короче, второй проще сопровождать (менять)

    Спасибо!


Авторизуйтесь, чтобы ответить