Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Скрипт счетчика

    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

    Скрипт счетчика

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

      Мой код настолько ужасен, что не хочется его комментировать?

      Или он настолько хорош, что нечего добавить?

      Меня смущает введение задержки, вот этот кусок:

      setTimeout(function() {
              setState('PowerMeter_count_summ', ((getState('PowerMeter_count_day').val) + (getState('PowerMeter_count_night').val)), true);
      }, 15);   //без этой задержки берется предыдущее значение!
      
      

      может быть можно изящнее сделать?

      еще не нравится расчет временного интервала между импульсами и подсчет "мгновенного" потребления:

          newBlink = (new Date().getTime());
          interval = newBlink - lastBlink;
          watt = (3600000 / interval) / ppwh;
          setState('PowerMeter_WATT_current', Math.round(watt), true);
          lastBlink = newBlink;
      
      
      1 Reply Last reply Reply Quote 0
      • I
        instalator last edited by

        @Pooh:

        Мой код настолько ужасен, что не хочется его комментировать?

        Или он настолько хорош, что нечего добавить?

        Меня смущает введение задержки, вот этот кусок:

        setTimeout(function() {
                setState('PowerMeter_count_summ', ((getState('PowerMeter_count_day').val) + (getState('PowerMeter_count_night').val)), true);
        }, 15);   //без этой задержки берется предыдущее значение!
         
        

        может быть можно изящнее сделать?

        еще не нравится расчет временного интервала между импульсами и подсчет "мгновенного" потребления:

            newBlink = (new Date().getTime());
            interval = newBlink - lastBlink;
            watt = (3600000 / interval) / ppwh;
            setState('PowerMeter_WATT_current', Math.round(watt), true);
            lastBlink = newBlink;
        
        ```` `  
        

        Это игрушки

        1 Reply Last reply Reply Quote 0
        • P
          Pooh last edited by

          @instalator:

          ..Это игрушки `
          Вся наша жизнь - игра…

          но хотелось бы услышать конкретную критику и советы по скрипту (железо определено, дополнительную ардуину чисто на счетчики ставить не планирую)

          1 Reply Last reply Reply Quote 0
          • I
            instalator last edited by

            @Pooh:

            Мой код настолько ужасен, что не хочется его комментировать?

            Или он настолько хорош, что нечего добавить?

            Меня смущает введение задержки, вот этот кусок:

            setTimeout(function() {
                    setState('PowerMeter_count_summ', ((getState('PowerMeter_count_day').val) + (getState('PowerMeter_count_night').val)), true);
            }, 15);   //без этой задержки берется предыдущее значение!
             
            

            может быть можно изящнее сделать?

            еще не нравится расчет временного интервала между импульсами и подсчет "мгновенного" потребления:

                newBlink = (new Date().getTime());
                interval = newBlink - lastBlink;
                watt = (3600000 / interval) / ppwh;
                setState('PowerMeter_WATT_current', Math.round(watt), true);
                lastBlink = newBlink;
            
            ```` `  можно изящнее, вместо задержки подписаться на изменение
            

            PowerMeter_count_day и PowerMeter_count_night. А чем интервал не нравится?

            1 Reply Last reply Reply Quote 0
            • P
              Pooh last edited by

              @instalator:

              можно изящнее, вместо задержки подписаться на изменение

              PowerMeter_count_day и PowerMeter_count_night. `
              спасибо, попробую
              @instalator:

              А чем интервал не нравится? `
              для электросчетчика пойдет ибо он всегда тикает, для водяных счетчиков надо что-то другое, т.к. в основном они "молчат" и "мгновенное" потребление превращается в "последнее измеренное"

              1 Reply Last reply Reply Quote 0
              • I
                instalator last edited by

                @Pooh:

                @instalator:

                можно изящнее, вместо задержки подписаться на изменение

                PowerMeter_count_day и PowerMeter_count_night. `
                спасибо, попробую
                @instalator:

                А чем интервал не нравится? для электросчетчика пойдет ибо он всегда тикает, для водяных счетчиков надо что-то другое, т.к. в основном они "молчат" и "мгновенное" потребление превращается в "последнее измеренное" так а как для воды рассчитать мгновенное если один импульс это 10 литров в среднем? Да и нужно ли оно для воды.

                1 Reply Last reply Reply Quote 0
                • P
                  Pooh last edited by

                  первое что приходит - просто по расписанию запускать тот кусок с интервалом и проверять счетчик, если не изменился - обнулять "мгновенное потребление"

                  1 Reply Last reply Reply Quote 0
                  • I
                    instalator last edited by

                    @Pooh:

                    первое что приходит - просто по расписанию запускать тот кусок с интервалом и проверять счетчик, если не изменился - обнулять "мгновенное потребление" `
                    А проще по-моему просто ловить изменение счётчика (импульс) это и будет означать что вот вот утек стакан воды

                    1 Reply Last reply Reply Quote 0
                    • P
                      Pooh last edited by

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

                      1 Reply Last reply Reply Quote 0
                      • I
                        instalator last edited by

                        @Pooh:

                        а как зафиксировать, что кран закрыли и импульсов в ближайшее время не предвидится? `
                        Рассчитать максимальное время между импульсами при минимальном потоке воды и через это время обнулять значение якобы мгновенного расхода. Либо делить его на это время

                        1 Reply Last reply Reply Quote 0
                        • R
                          radon last edited by

                          Счётчик воды работает конечно импульсно, но! У него контакт замыкается каждые 10 литров, при этом если вы в это время воду прекратили расходовать, он будет замкнут и постоянно включён!

                          Так как у меня контроллер Wago и, по сути, вся логика на нём, то счётчики воды реализованы через Функциональный блок 'инкрементный счетчик' (CTU), а уже от него передаются в ioBroker/

                          1 Reply Last reply Reply Quote 0
                          • P
                            Pooh last edited by

                            @radon:

                            ..он будет замкнут и постоянно включён!.. `
                            ну и что, я-то подписываюсь на изменение значения счетчика, на не состояние порта..

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            678
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

                            3
                            13
                            2847
                            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