Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Скрипты
  5. ioBroker скрипты
  6. Скрипт регулировки громкости

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Скрипт регулировки громкости

Scheduled Pinned Locked Moved ioBroker скрипты
21 Posts 5 Posters 7.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    spectrekr
    wrote on last edited by
    #1

    Окончательная моя версия.

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

    И версия vtec

    ! 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
    0
    • V Offline
      V Offline
      vtec
      wrote on last edited by
      #2

      Да вроде нормально, только я бы дописал log('Установлена громкость****:**** '+ getState('sayit.0.tts.volume').val);

      1 Reply Last reply
      0
      • V Offline
        V Offline
        vtec
        wrote on last edited by
        #3

        Как я и думал, так и есть

        пример:

        setState(('sayit.0.tts.volume'),60);

        setState(('sayit.0.tts.text'),"80;Привет");

        Последняя строчка устанавливает переменную sayit.0.tts.volume в 80%.

        1 Reply Last reply
        0
        • S Offline
          S Offline
          spectrekr
          wrote on last edited by
          #4

          @vtec:

          Как я и думал, так и есть

          пример:

          setState(('sayit.0.tts.volume'),60);

          setState(('sayit.0.tts.text'),"80;Привет");

          Последняя строчка устанавливает переменную sayit.0.tts.volume в 80%. `
          Я правильно понял, вы про скрипт календаря? Так а как у вас получается в 80? Если брать мою вариацию, то там громкость берется в начале скрипта, а сколько я вчера контролировал, то скрипт установки громкости отрабатывает раньше, соответственно уже громкость берется новая.

          1 Reply Last reply
          0
          • V Offline
            V Offline
            vtec
            wrote on last edited by
            #5

            Да это я про календарь.

            1 Reply Last reply
            0
            • S Offline
              S Offline
              spectrekr
              wrote on last edited by
              #6

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

              ! javascript-0 2015-07-31 14:00:00 info script.js.Say_iCal: Громкость сообщения 80
              ! javascript-0 2015-07-31 14:00:00 info script.js.Set_Volume: Установлена громкость 41
              ! javascript-0 2015-07-31 13:50:00 info script.js.Say_iCal: Громкость сообщения 45
              ! javascript-0 2015-07-31 13:01:05 info script.js.Set_Volume: registered 0 subscriptions and 1 schedule
              ! javascript-0 2015-07-31 13:01:05 info Start javascript script.js.Set_Volume
              ! javascript-0 2015-07-31 13:01:05 info Stop script script.js.Set_Volume
              ! javascript-0 2015-07-31 13:00:00 info script.js.Set_Volume: Установлена громкость 45
              ! javascript-0 2015-07-31 13:00:00 info script.js.Say_iCal: Громкость сообщения 45
              ! javascript-0 2015-07-31 12:34:51 info script.js.Set_Volume: registered 0 subscriptions and 1 schedule
              ! javascript-0 2015-07-31 12:34:51 info Start javascript script.js.Set_Volume
              ! javascript-0 2015-07-31 12:34:51 info Stop script script.js.Set_Volume
              ! javascript-0 2015-07-31 12:30:00 info script.js.Say_iCal: Громкость сообщения 50
              ! javascript-0 2015-07-31 12:19:07 info script.js.Set_Volume: registered 0 subscriptions and 1 schedule
              ! javascript-0 2015-07-31 12:19:07 info Start javascript script.js.Set_Volume
              ! javascript-0 2015-07-31 12:19:07 info Stop script script.js.Set_Volume
              ! javascript-0 2015-07-31 12:04:40 info script.js.Set_Volume: registered 0 subscriptions and 1 schedule
              ! javascript-0 2015-07-31 12:04:40 info Start javascript script.js.Set_Volume
              ! javascript-0 2015-07-31 12:04:40 info Stop script script.js.Set_Volume
              ! javascript-0 2015-07-31 12:00:00 info script.js.Say_iCal: Громкость сообщения 50
              ! javascript-0 2015-07-31 12:00:00 info script.js.Set_Volume: Установлена громкость 72
              А вот в журнале изменений видно что ставит правильные значения.

              ! 286_2.png

              1 Reply Last reply
              0
              • V Offline
                V Offline
                vtec
                wrote on last edited by
                #7

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

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

                Нужно похоже переходить на if.
                4489_objekte.png
                4489_objekt_id.png
                4489_erstes_skript_mit_blockly.pdf

                1 Reply Last reply
                0
                • V Offline
                  V Offline
                  vtec
                  wrote on last edited by
                  #8

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

                  createState('tempOutside','');

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

                  1 Reply Last reply
                  0
                  • V Offline
                    V Offline
                    vtec
                    wrote on last edited by
                    #9

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

                    0 * * * *

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      spectrekr
                      wrote on last edited by
                      #10

                      @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
                      0
                      • aurodionovA Offline
                        aurodionovA Offline
                        aurodionov
                        wrote on last edited by
                        #11

                        @spectrekr:

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

                        Пишу с пульта….

                        1 Reply Last reply
                        0
                        • V Offline
                          V Offline
                          vtec
                          wrote on last edited by
                          #12

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

                          1 Reply Last reply
                          0
                          • V Offline
                            V Offline
                            vtec
                            wrote on last edited by
                            #13

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

                            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
                            0
                            • H Offline
                              H Offline
                              Haus
                              wrote on last edited by
                              #14

                              @vtec:

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

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

                              js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

                              admin: 3.6.0

                              javascript: 4.1.10

                              web: 2.4.1 vis: 1.1.10

                              cloud: 2.6.2

                              Server: DELL FX170 / linux: Debian 9.5 Stretch

                              Adapter: MegaD-2561, Mega-ES…

                              1 Reply Last reply
                              0
                              • V Offline
                                V Offline
                                vtec
                                wrote on last edited by
                                #15

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

                                1 Reply Last reply
                                0
                                • H Offline
                                  H Offline
                                  Haus
                                  wrote on last edited by
                                  #16

                                  @vtec:

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

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

                                  js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

                                  admin: 3.6.0

                                  javascript: 4.1.10

                                  web: 2.4.1 vis: 1.1.10

                                  cloud: 2.6.2

                                  Server: DELL FX170 / linux: Debian 9.5 Stretch

                                  Adapter: MegaD-2561, Mega-ES…

                                  1 Reply Last reply
                                  0
                                  • V Offline
                                    V Offline
                                    vtec
                                    wrote on last edited by
                                    #17

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

                                    1 Reply Last reply
                                    0
                                    • H Offline
                                      H Offline
                                      Haus
                                      wrote on last edited by
                                      #18

                                      @vtec:

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

                                      js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

                                      admin: 3.6.0

                                      javascript: 4.1.10

                                      web: 2.4.1 vis: 1.1.10

                                      cloud: 2.6.2

                                      Server: DELL FX170 / linux: Debian 9.5 Stretch

                                      Adapter: MegaD-2561, Mega-ES…

                                      1 Reply Last reply
                                      0
                                      • V Offline
                                        V Offline
                                        vtec
                                        wrote on last edited by
                                        #19
                                        // Свое значение для $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
                                        0
                                        • H Offline
                                          H Offline
                                          Haus
                                          wrote on last edited by
                                          #20

                                          @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 ;)

                                          js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

                                          admin: 3.6.0

                                          javascript: 4.1.10

                                          web: 2.4.1 vis: 1.1.10

                                          cloud: 2.6.2

                                          Server: DELL FX170 / linux: Debian 9.5 Stretch

                                          Adapter: MegaD-2561, Mega-ES…

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          296

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe