Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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

                          736
                          Online

                          31.7k
                          Users

                          79.6k
                          Topics

                          1.3m
                          Posts

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