Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. ioBroker драйвера
    5. Драйвер sayit

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Драйвер sayit

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

      @instalator:

      Добрался я до sayit наконец то, но не тут то было, драйвер не работает

      ! sayit.0 2015-11-01 22:27:55 error TypeError: Cannot call method 'exec' of undefined at sayItSystem (C:\ioBroker\node_modules\iobroker.sayit\main.js:733:37) at Object.sayItWindows [as func] (C:\ioBroker\node_modules\iobroker.sayit\main.js:767:9) at C:\ioBroker\node_modules\iobroker.sayit\main.js:1042:51 at getLength (C:\ioBroker\node_modules\iobroker.sayit\main.js:172:23) at sayIt (C:\ioBroker\node_modules\iobroker.sayit\main.js:1041:13) at Adapter.sayLastGeneratedText (C:\ioBroker\node_modules\iobroker.sayit\main.js:27:13) at Adapter.emit (events.js:98:17) at null._onTimeout (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:1911:34) at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
      ! sayit.0 2015-11-01 22:27:55 error uncaught exception: Cannot call method 'exec' of undefined

      ! host-Server-PC 2015-11-01 22:22:53 error instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
      ! TypeError: 2015-11-01 22:22:53 error at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
      ! TypeError: 2015-11-01 22:22:53 error at null._onTimeout (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:1911:34)
      ! TypeError: 2015-11-01 22:22:53 error at Adapter.emit (events.js:98:17)
      ! TypeError: 2015-11-01 22:22:53 error at Adapter.sayLastGeneratedText (C:\ioBroker\node_modules\iobroker.sayit\main.js:27:13)
      ! TypeError: 2015-11-01 22:22:53 error at sayIt (C:\ioBroker\node_modules\iobroker.sayit\main.js:1041:13)
      ! TypeError: 2015-11-01 22:22:53 error at getLength (C:\ioBroker\node_modules\iobroker.sayit\main.js:172:23)
      ! TypeError: 2015-11-01 22:22:53 error at C:\ioBroker\node_modules\iobroker.sayit\main.js:1042:51
      ! TypeError: 2015-11-01 22:22:53 error at Object.sayItWindows [as func] (C:\ioBroker\node_modules\iobroker.sayit\main.js:767:9)
      ! TypeError: 2015-11-01 22:22:53 error at sayItSystem (C:\ioBroker\node_modules\iobroker.sayit\main.js:733:37)
      ! TypeError: 2015-11-01 22:22:53 error Cannot call method 'exec' of undefined
      ! uncaught 2015-11-01 22:22:52 error exception: Cannot call method 'exec' of undefined `

      Заработал, нужно было выбрать System а стоял Windows engine

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

        Вопрос к Bluefox.

        Может добавить в драйвер возможность задать время задержки перед дин дон?

        Смысл в том что сделал усилитель D класса на микрушке, так вот у него есть логический вход FADE, т.е. при подачи управляющего сигнала он плавно включает громкость (примерно 2 сек.) и так же после снятия управляющего сигнала плавно убавляет громкость до 0 (чтобы небыло шума в динамиках при простое).

        И кстати sayit.0.tts.playing у меня работает не корректно, менят статус через секунды 3 на false, хотя фраза еще произносится.

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

          instalator, а если пнутьв скрипте включение усилка выдержать паузу потом сказать фразу.

          я к тому что-бы задержку сделать не в драйвере а в скрипте.

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

            @aurodionov:

            instalator, а если пнутьв скрипте включение усилка выдержать паузу потом сказать фразу.

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

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

              @instalator:

              Нак FADE чем то же дёргаете перед тем как сказать фразу.

              Получается дёрнули FADE->pause->seyit. Или не?

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

                @aurodionov:

                @instalator:

                Нак FADE чем то же дёргаете перед тем как сказать фразу.

                Получается дёрнули FADE->pause->seyit. Или не?

                Fade дергаю sayit.0.tts.playing `

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

                  @instalator:

                  Fade дергаю sayit.0.tts.playing `
                  Под линуксом sayit.0.tts.playing вроде не работает, или я не понял как пользоватся

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

                    @aurodionov:

                    @instalator:

                    Fade дергаю sayit.0.tts.playing Под линуксом sayit.0.tts.playing вроде не работает, или я не понял как пользоватся
                    У меня винда.

                    Bluefox.

                    Драйвер сегодня стал проговаривать любую фразу по два раза. В логе ошибок нет

                    ! sayit.0 2015-11-03 18:34:09 info sayit.0 saying: 1
                    ! sayit.0 2015-11-03 18:34:07 info sayit.0 saying: 1
                    ! sayit.0 2015-11-03 18:34:05 info sayit.0 saying: C:\ioBroker\node_modules\iobroker.sayit/gong.mp3
                    ! sayit.0 2015-11-03 18:34:05 info sayit.0 saying: C:\ioBroker\node_modules\iobroker.sayit/gong.mp3

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

                      пока не знаю почему. Перезапусти iobroker

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

                        @instalator:

                        Вопрос к Bluefox.

                        Может добавить в драйвер возможность задать время задержки перед дин дон?

                        Смысл в том что сделал усилитель D класса на микрушке, так вот у него есть логический вход FADE, т.е. при подачи управляющего сигнала он плавно включает громкость (примерно 2 сек.) и так же после снятия управляющего сигнала плавно убавляет громкость до 0 (чтобы небыло шума в динамиках при простое).

                        И кстати sayit.0.tts.playing у меня работает не корректно, менят статус через секунды 3 на false, хотя фраза еще произносится. `
                        Слишком специфичный случай. Вот если бы пришёл pul reuquest, я бы подумал..

                        Вставь в файл дин дон 2 секунды тишины в начале.

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

                          То же иногда встречается проговаривание по 2-а раза. Тоже не пойму почему.

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

                            @Bluefox:

                            @instalator:

                            Вопрос к Bluefox.

                            Может добавить в драйвер возможность задать время задержки перед дин дон?

                            Смысл в том что сделал усилитель D класса на микрушке, так вот у него есть логический вход FADE, т.е. при подачи управляющего сигнала он плавно включает громкость (примерно 2 сек.) и так же после снятия управляющего сигнала плавно убавляет громкость до 0 (чтобы небыло шума в динамиках при простое).

                            И кстати sayit.0.tts.playing у меня работает не корректно, менят статус через секунды 3 на false, хотя фраза еще произносится. `
                            Слишком специфичный случай. Вот если бы пришёл pul reuquest, я бы подумал..

                            Вставь в файл дин дон 2 секунды тишины в начале. `
                            Ну да специфичен, но а если стоит зонный услитель? и надо перед каждым произношение переключать зоны и тд.? я думаю задержка бы не помешала.

                            Ок как будет время зайду на гит. А тишина вначале это у меня план Б)

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

                              Server-PC 2015-11-26 20:32:21 error host.Server-PC instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)

                              sayit.0 2015-11-26 20:32:21 error Error: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3'

                              sayit.0 2015-11-26 20:32:21 error uncaught exception: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3

                              Сегодня выскочила такая ошибочка.

                              Насколько я понял он говорит я еб..я открывать файл)

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

                                @instalator:

                                Server-PC 2015-11-26 20:32:21 error host.Server-PC instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)

                                sayit.0 2015-11-26 20:32:21 error Error: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3'

                                sayit.0 2015-11-26 20:32:21 error uncaught exception: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3

                                Сегодня выскочила такая ошибочка.

                                Насколько я понял он говорит я еб..я открывать файл) `
                                Хм. Ошибка говорит, что не могу открыть, т.к кто то уже открыл.. Осталось выяснить, кто.

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

                                  @Bluefox:

                                  Хм. Ошибка говорит, что не могу открыть, т.к кто то уже открыл.. Осталось выяснить, кто. `
                                  А что это за файл вообще? у меня свой стоит для диндона.

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

                                    @instalator:

                                    @Bluefox:

                                    Хм. Ошибка говорит, что не могу открыть, т.к кто то уже открыл.. Осталось выяснить, кто. А что это за файл вообще? у меня свой стоит для диндона.
                                    Это файл с текстом.

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

                                      @Bluefox:

                                      пока не знаю почему. Перезапусти iobroker `
                                      Я так понимаю когда setState ('sayit.0.tts.text', ''); устанавливает значение одновременно,

                                      происходит это насколько я понял из-за того что js выполняется не линейно

                                      например:

                                      setTimeout(function() {setState ('sayit.0.tts.text', 'Прогноз погоды на сегодня: '+getState("javascript.0.forecast.today").val);
                                                          setState ('sayit.0.tts.text', 'Сейчас за окном '+ parseFloat(getState("mqtt.0.myhome.Bedroom.Temp_in").val).toFixed(0)+'°');
                                                      }, 1000);
                                                      setTimeout(function() {
                                                          setState ('sayit.0.tts.text', 'Курс доллара '+ (getState("javascript.0.Valuta.USD").val.toFixed(2)).toString().replace(/[.]+/g, ',')+' руб. , '+
                                                          'курс евро '+ (getState("javascript.0.Valuta.EUR").val.toFixed(2)).toString().replace(/[.]+/g, ',')+ ' руб.');
                                                      }, 2000);
                                      

                                      иногда (скорее всего, когда файла нет в кеше) произносится одновременно видимо из-за потраченного времени на преобразование переменных.

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

                                        В коде драйвера не разбирался еще.

                                        Может организовать буфер в виде массива? Например: по setState('sayit.0.tts.text', 'Str') добавляем в массив строку, а потом уже массив обрабатываем с начало до конца, с проверкой что предыдущий элемент выполнен или сдвигая элементы массива.

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

                                          @instalator:

                                          В коде драйвера не разбирался еще.

                                          Может организовать буфер в виде массива? Например: по setState('sayit.0.tts.text', 'Str') добавляем в массив строку, а потом уже массив обрабатываем с начало до конца, с проверкой что предыдущий элемент выполнен или сдвигая элементы массива. `
                                          Именно так это и работает

                                          https://github.com/ioBroker/ioBroker.sa … n.js#L1027

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

                                            @Bluefox:

                                            @instalator:

                                            В коде драйвера не разбирался еще.

                                            Может организовать буфер в виде массива? Например: по setState('sayit.0.tts.text', 'Str') добавляем в массив строку, а потом уже массив обрабатываем с начало до конца, с проверкой что предыдущий элемент выполнен или сдвигая элементы массива. `
                                            Именно так это и работает

                                            https://github.com/ioBroker/ioBroker.sa … n.js#L1027 `

                                            Ок.

                                            Почему тогда бывают такие глюки, либо одновременно проговаривает две фразы, посланные в разное время,

                                            либо первую фразу вообще пропускает и говорит только последнюю?

                                            Щас вот в логе :

                                            ! Server-PC 2015-12-24 22:52:07 error host.Server-PC instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
                                            ! sayit.0 2015-12-24 22:52:07 error Error: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3'
                                            ! sayit.0 2015-12-24 22:52:07 error uncaught exception: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3'

                                            PS

                                            Щас проговорила одновременно две фразы

                                            ! sayit.0 2015-12-24 23:00:06 info sayit.0 saying: 23:00
                                            ! sayit.0 2015-12-24 23:00:05 info sayit.0 saying: курс евро 76,04 руб

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            562
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            178
                                            47626
                                            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