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.
    • V
      vtec last edited by

      Не нужны, не увидел где данные переменные используются.

      createState('tempOutside','');

      var volume = getState('sayit.0.tts.volume').val;

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

        Каждый час правильно так:

        0 * * * *

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

          @vtec:

          Выявленные баги данного скрипта, что в 23, что в 1 громкость выставляется по дефолту, а это максимум.

          Смыс этой строки case 0: setState(('sayit.0.tts.volume'),0) никакой.

          Нужно похоже переходить на if. `
          Это я не додумал, поправил в новой версии.
          @vtec:

          Не нужны, не увидел где данные переменные используются.

          createState('tempOutside','');

          var volume = getState('sayit.0.tts.volume').val; `
          Это пережиток версии скрипта через if.

          А createState('tempOutside',''); не знаю для чего нада, думал обязательно. Т.к. в часах тоже присутствует, а где используется не увидел, подумал что системная.
          @vtec:

          Каждый час правильно так:

          0 * * * * `
          Об этом узнал чуть позже, забыл поправить в здешней версии.

          Новый вариант. Через switch не получается диапазоны делать. Сделал через if.

          ! schedule("0 * * * *", function () { var date = new Date(); var hour = date.getHours(); if(hour >= 0 && hour <= 6){ setState(('sayit.0.tts.volume'),0); log('Установлена громкость '+ getState('sayit.0.tts.volume').val); } if(hour >= 7 && hour <= 9){ setState(('sayit.0.tts.volume'),40); log('Установлена громкость '+ getState('sayit.0.tts.volume').val); } if(hour >= 10 && hour <= 21){ setState(('sayit.0.tts.volume'),80); log('Установлена громкость '+ getState('sayit.0.tts.volume').val); } if(hour >= 22 && hour <= 23){ setState(('sayit.0.tts.volume'),50); log('Установлена громкость '+ getState('sayit.0.tts.volume').val); } }); !

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

            @spectrekr:

            А createState('tempOutside',''); не знаю для чего нада, думал обязательно. Т.к. в часах тоже присутствует, а где используется не увидел, подумал что системная. `
            Это создаётся переменная для внешней температуры, ну насколько я понял
            3428_blockly2.txt

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

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

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

                Вот мое решение:

                var volumeId = "sayit.0.tts.volume";
                
                // Утанавливаем в 6:59 громость 90
                schedule("59 6 * * *", function(){
                    setState(volumeId,90,function(){
                	    log('Установлена громкость '+ getState(volumeId).val);
                    });
                });
                // Утанавливаем в 9:29 громость 100
                schedule("29 9 * * *", function(){
                    setState(volumeId,100,function(){
                	    log('Установлена громкость '+ getState(volumeId).val);
                    });
                });
                // Утанавливаем в 22:59 громость 80
                schedule("59 22 * * *", function(){
                    setState(volumeId,80,function(){
                	    log('Установлена громкость '+ getState(volumeId).val);
                	});
                });
                
                
                1 Reply Last reply Reply Quote 0
                • H
                  Haus last edited by

                  @vtec:

                  Это я для себя писал, у меня внешний скрипт записывает в эту переменную значение температуры на улице, для дальнейшего произношения с утра. `

                  А можно этот скрипт подсмотреть :roll:

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

                    Что именно интересует?

                    1 Reply Last reply Reply Quote 0
                    • H
                      Haus last edited by

                      @vtec:

                      Что именно интересует? `

                      скрипт записывает в эту переменную значение температуры на улице

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

                        Если имеется в виду внешний скрипт, то там нет ничего такого пару строчек на php. Могу выложить. Сама температура берется с датчика 1-wire

                        1 Reply Last reply Reply Quote 0
                        • H
                          Haus last edited by

                          @vtec:

                          Если имеется в виду внешний скрипт, то там нет ничего такого пару строчек на php. Могу выложить. Сама температура берется с датчика 1-wire `
                          Был бы рад, если нетрудно.

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

                            // Свое значение для $temp берем от датчика
                            $temp = "-19.36";
                            // отправляем температуру умному дому
                            $roundTemp = round($temp);
                            // tempOutside данная переменная должна быть создана в ioBroker
                            $fp=fopen("http://192.168.0.200:8087/set/javascript.0.tempOutside?value=$roundTemp","r");
                            fclose($fp);
                            
                            
                            1 Reply Last reply Reply Quote 0
                            • H
                              Haus last edited by

                              @vtec:

                              // Свое значение для $temp берем от датчика
                              $temp = "-19.36";
                              // отправляем температуру умному дому
                              $roundTemp = round($temp);
                              // tempOutside данная переменная должна быть создана в ioBroker
                              $fp=fopen("http://192.168.0.200:8087/set/javascript.0.tempOutside?value=$roundTemp","r");
                              fclose($fp);
                              
                              ```` `  
                              

                              Спасибо. С наступающим 🙂

                              Дополню: в iobroker должен быть запущен драйвер simple-api 😉

                              1 Reply Last reply Reply Quote 0
                              • E
                                electric last edited by

                                Как образец использовал скрипт vtec.

                                Добавил изменение громкости в выходные (чтобы попозже утром прибавлял).

                                Скрипт:

                                ! var volumeId = "sayit.0.tts.volume"; ! // Утанавливаем в 6:59 только в будни громость 80 schedule("59 6 * * *", function(){ var date = new Date(); var day = date.getDay(); // 0-воскр. 6-суббота if(day >= 1 && day <= 5) { setState(volumeId,80,function(){ log('Раннее утро 6:59 будний день, установлена громкость '+ getState(volumeId).val +'%'); }); } }); // Утанавливаем в 7:59 только в будни громость 100, в выходные громкость 80 schedule("59 7 * * *", function(){ var date = new Date(); var day = date.getDay(); // 0-воскр. 6-суббота if(day >= 1 && day <= 5) { setState(volumeId,100,function(){ log('Утро 7:59 будний день, установлена громкость '+ getState(volumeId).val +'%'); }); } else { setState(volumeId,80,function(){ log('Утро 7:59 выходной день, установлена громкость '+ getState(volumeId).val +'%'); }); } }); // Утанавливаем в 9:59 только в выходные громость 100 schedule("59 9 * * *", function(){ var date = new Date(); var day = date.getDay(); // 0-воскр. 6-суббота if(day === 0 || day === 6) { setState(volumeId,100,function(){ log('Утро 9:59 выходной день, установлена громкость '+ getState(volumeId).val +'%'); }); } }); // Утанавливаем в 22:59 громость 60 schedule("59 22 * * *", function(){ setState(volumeId,60,function(){ log('Поздний вечер 22:59, установлена громкость '+ getState(volumeId).val +'%'); }); }); !

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                481
                                Online

                                31.9k
                                Users

                                80.1k
                                Topics

                                1.3m
                                Posts

                                5
                                21
                                6744
                                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