Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    326

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

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

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
21 Beiträge 5 Kommentatoren 7.4k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    spectrekr
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • V Offline
      V Offline
      vtec
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • V Offline
        V Offline
        vtec
        schrieb am zuletzt editiert von
        #8

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

        createState('tempOutside','');

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

        1 Antwort Letzte Antwort
        0
        • V Offline
          V Offline
          vtec
          schrieb am zuletzt editiert von
          #9

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

          0 * * * *

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            spectrekr
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • aurodionovA Offline
              aurodionovA Offline
              aurodionov
              schrieb am zuletzt editiert von
              #11

              @spectrekr:

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

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

              1 Antwort Letzte Antwort
              0
              • V Offline
                V Offline
                vtec
                schrieb am zuletzt editiert von
                #12

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

                1 Antwort Letzte Antwort
                0
                • V Offline
                  V Offline
                  vtec
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • H Offline
                    H Offline
                    Haus
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • V Offline
                      V Offline
                      vtec
                      schrieb am zuletzt editiert von
                      #15

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

                      1 Antwort Letzte Antwort
                      0
                      • H Offline
                        H Offline
                        Haus
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • V Offline
                          V Offline
                          vtec
                          schrieb am zuletzt editiert von
                          #17

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

                          1 Antwort Letzte Antwort
                          0
                          • H Offline
                            H Offline
                            Haus
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • V Offline
                              V Offline
                              vtec
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • H Offline
                                H Offline
                                Haus
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • E Offline
                                  E Offline
                                  electric
                                  schrieb am zuletzt editiert von
                                  #21

                                  Как образец использовал скрипт 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 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  509

                                  Online

                                  32.5k

                                  Benutzer

                                  81.7k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe