Navigation

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

    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

    ICal + Sayit

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

      То есть у вас в девять часов проговаривает, если есть событие?

      На будущее, комментируйте код как можно больше, тогда легче соображать 🙂

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

        В 9 часов проговаривается событие на целый день, а остальные события по времени наступления.

        Коментарии мое самое слабое место 😄

        Отредоктировал последнее сообщение с коментариями.

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

          @spectrekr:

          Bluefox подскажите пожалуйста в строкеvar volume = getState('sayit.0.tts.volume').val;мы громкость получаем в тесктовом виде, а можно ли уменьшить ее методом вычитания или надо преобразовывать в число, а потом обратно в текст? `
          Что то я не пойму, что делает 0/10 в "0/10 8-22 * * *" ? Либо */10, либо 0-59/10.

          В Javascript отнимать, умножать и делить можно и строку. Она будет автоматом сконвертирована в число, а вот прибавлять нельзя.

          console.log("80" - 10) => 70
          console.log("80" + 10) => "8010"
          

          Поэтому я всегда при получении значения преобразую его с parseInt(x, 10);

          var volume = parseInt(getState('sayit.0.tts.volume').val, 10);
          if (isNaN(volume)) volume = 100;
          
          
          1 Reply Last reply Reply Quote 0
          • S
            spectrekr last edited by

            @Bluefox:

            @spectrekr:

            Что то я не пойму, что делает 0/10 в "0/10 8-22 * * *" ? Либо */10, либо 0-59/10.
            Эту строчку взял со скрипта проговаривания времени, не стал изменять.

            Поправил в скрипте 🙂

            По громкости, в объектах значение присутствует, а вот в настройках где регулировать громкость не нашел. Или это берется уровень системной громкости?

            Правильно понял, это будет работать?

                if(hour == 22 ) volume = volume - 10;
                if((hour == 7) && (hour == 8)) volume = volume - 30;
            
            
            1 Reply Last reply Reply Quote 0
            • E
              electric69 last edited by

              @spectrekr:

              По громкости, в объектах значение присутствует, а вот в настройках где регулировать громкость не нашел. Или это берется уровень системной громкости?

              Правильно понял, это будет работать?

                  if(hour == 22 ) volume = volume - 10;
                  if((hour == 7) && (hour == 8)) volume = volume - 30;
              
              ```` `  
              

              А зачем устанавливаете относительную громкость?

              Не проще ли абсолютную?

              Вот http://forum.iobroker.org/viewtopic.php?f=15&t=265 публиковал скрипт для CCU.IO, думаю оттуда можно взять работу с громкостью, принцип сам, функции чуть другие в ioBroker.

              1 Reply Last reply Reply Quote 0
              • V
                vtec last edited by

                Тоже не понимаю извращения с громкостью.

                Делай везде 100, а где нужно уменьшай до например 80

                В моем же скрипте про время вот как:

                var volume = 100;

                if(hour == 23) volume = 80;

                setState (idSayIt, volume+';Привет);

                Зачем чего то там вычетать и складывать

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

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

                  vtec вот именно что в вашем скрипте конкретно прописано, т.е. после смены колонок мне бы надо было регулировать параметры громкости во всех скриптах, где указана конкретная цифра. А вычитал, потому что не знал как устанавливать значения, только учусь 🙂 и пытаюсь разобраться.

                  А благодаря наводки electric69 накропал скрипт, который будет менять громкость в зависимости от времени, потом можно будет расширить функционал, например на присутствие в доме.

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

                  1 Reply Last reply Reply Quote 0
                  • V
                    vtec last edited by

                    Я не увидел, где ты громкость выставляешь обратно в 100%.

                    Представь 1-ый скрипт установил громкость в 80%, а через 10 минут отработает скрипт по новой, то твоя громкость будет составлять уже не 80%, а 60%. Т.к. переменная сама в 100% не возвращается.

                    Может я конечно чего то не знаю 🙂

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

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

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

                      В данном скрипте вообще переменная просто берется из системы. В скрипте с временем, там строка определяющая основную громкость стоит первой, а потом уже по наступлению времени изменяет только на данное время, при следующем запуске скрипта будет начальная громкость. Опять же в этих обоих скриптах, уже в данный момент, параметры громкости только берутся из системной переменной. Убрал я это уменьшение 🙂 Оставил уменьшение в отдельном скрипте, которое может регулировать и зонально и по времени, и вообще по присутствию в комнате, дабы не воспроизводил там где отсутствуют люди.

                      Про колонку, настроил и спрятал далеко. Но вот моделируем ситуацию что рядом с домом\квартирой устроили ремонт и уровень постороннего шума поднялся, надо будет лезть и добавлять громкость на колонке. А по окончанию работ - убирать.

                      Опять же, у меня нет системы сонос, может она по другому работает и можно более гибко сделать.

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

                        @spectrekr:

                        …. и вообще по присутствию в комнате, дабы не воспроизводил там где отсутствуют люди. `
                        А как вы определяете присутствие?

                        1 Reply Last reply Reply Quote 0
                        • V
                          vtec last edited by

                          @spectrekr:

                          В данном скрипте вообще переменная просто берется из системы. `
                          Если вы про это: var volume = getState('sayit.0.tts.volume').val;

                          То все выше изложенное как раз про это. Вы взяли значение из переменной volume, потом изменяете (например -20) и сохраняете обратно. Если скрипт повторно отработает, то он снова возьмет из переменной sayit.0.tts.volume значение. А оно там будет уже не 100%, а 80% и соответственно еще раз уменьшится громкость на -20, но уже от 80%.

                          Не знаю понятно ли объяснил 🙂

                          @spectrekr:

                          Убрал я это уменьшение 🙂 Оставил уменьшение в отдельном скрипте, которое может регулировать и зонально и по времени, и вообще по присутствию в комнате, дабы не воспроизводил там где отсутствуют люди. `
                          А вот это хорошая идея, вынести управление громкостью в отдельный скрипт и пусть он по шедулеру устанавливает громкость…. хм надо обдумать.

                          @spectrekr:

                          Про колонку, настроил и спрятал далеко. Но вот моделируем ситуацию что рядом с домом\квартирой устроили ремонт и уровень постороннего шума поднялся, надо будет лезть и добавлять громкость на колонке. А по окончанию работ - убирать.

                          Опять же, у меня нет системы сонос, может она по другому работает и можно более гибко сделать. `
                          У меня была такая ситуация, там где находилась колонка, я ее все равно слышал. А вот если уходишь например на кухню то там уже не слышно, но это уже другая история про мультирум 🙂
                          4489_erstes_skript_mit_blockly.pdf

                          1 Reply Last reply Reply Quote 0
                          • V
                            vtec last edited by

                            @spectrekr:

                            дабы не воспроизводил там где отсутствуют люди. `
                            У вас есть многозонность? Как вы регулируете громкость в разных комнатах?

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

                              @instalator:

                              @spectrekr:

                              …. и вообще по присутствию в комнате, дабы не воспроизводил там где отсутствуют люди. А как вы определяете присутствие?
                              Еще не делал, но, например, датчик движения.
                              @vtec:

                              Если вы про это: var volume = getState('sayit.0.tts.volume').val;

                              То все выше изложенное как раз про это. Вы взяли значение из переменной volume, потом изменяете (например -20) и сохраняете обратно. Если скрипт повторно отработает, то он снова возьмет из переменной sayit.0.tts.volume значение. А оно там будет уже не 100%, а 80% и соответственно еще раз уменьшится громкость на -20, но уже от 80%. `
                              Так он только берет и уменьшает на данное воспроизведение, объект он новое значение не записывает, для этого надо отдельно setState делать, что уже и выполняется у меня в отдельном скрипте. Так даже удобней получилось.

                              @vtec:

                              А вот это хорошая идея, вынести управление громкостью в отдельный скрипт и пусть он по шедулеру делает громкость…. хм надо обдумать. `
                              Могу выложить свою вариацию. Уже работает 🙂

                              @vtec:

                              У меня была такая ситуация, там где находилась колонка, я ее все равно слышал. А вот если уходишь например на кухню то там уже не слышно, но это уже другая история про мультирум 🙂 `
                              Мультирум чуть другая ситуация, комната бывает большой. И колонку не всегда получается в центр комнаты разместить, чтоб равномерно по комнате было. По-этому, в некоторой ситуации, может быть и не слышно.

                              @vtec:

                              У вас есть многозонность? Как вы регулируете громкость в разных комнатах? `
                              Это пока в задумке, но думаю Bluefox с коллегами не зря сделал категории(комнаты) думаю от них можно будет оттолкнутся.

                              1 Reply Last reply Reply Quote 0
                              • V
                                vtec last edited by

                                @spectrekr:

                                Так он только берет и уменьшает на данное воспроизведение, объект он новое значение не записывает, для этого надо отдельно setState делать, что уже и выполняется у меня в отдельном скрипте. Так даже удобней получилось. `
                                Хм… понял, попробую проверить на самом деле так или нет.
                                @spectrekr:

                                Могу выложить свою вариацию. Уже работает 🙂 `
                                Давайте конечно же. Если громкостью будет удбней из отдельного скрипта управлять, то в скрипте про время уберу тоже.

                                @spectrekr:

                                Это пока в задумке, но думаю Bluefox с коллегами не зря сделал категории(комнаты) думаю от них можно будет оттолкнутся. `
                                А вот этого пока нет 🙂

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

                                  @vtec:

                                  @spectrekr:

                                  Могу выложить свою вариацию. Уже работает 🙂 Давайте конечно же. Если громкостью будет удбней из отдельного скрипта управлять, то в скрипте про время уберу тоже.
                                  Создал тему и выложил, чтобы раздельно обсуждать и улучшать.
                                  4489_erstes_skript_mit_blockly.pdf

                                  1 Reply Last reply Reply Quote 0
                                  • V
                                    vtec last edited by

                                    Маленький недочет. С сб. и вс. скрипт в 9.00 расскажет и разбудит если еще спим 🙂

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

                                      @vtec:

                                      Маленький недочет. С сб. и вс. скрипт в 9.00 расскажет и разбудит если еще спим 🙂 `
                                      Ну тут варианты: Либо всегда оповещать часов в 10-11, раз так поздно встаете, потому что потом может быть отпуск и тоже в 9 будет будить. Ну или сделать условие и в субботу-воскресенье воспроизводить позже. Предлагайте 🙂

                                      1 Reply Last reply Reply Quote 0
                                      • V
                                        vtec last edited by

                                        var hour_control = '09:00';

                                        Правильно будет так: 9:00, т.к. дальше в скрипте идет сравнение time_now == hour_control и оно не выполнится, потому что hour идет без нуля

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

                                          Поправил и поместил в первое сообщение, чтобы, как бы в "шапке" было.

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          418
                                          Online

                                          31.9k
                                          Users

                                          80.1k
                                          Topics

                                          1.3m
                                          Posts

                                          5
                                          25
                                          4929
                                          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