NEWS
Скрипт регулировки громкости
-
Ну не знаю как у вас получается что устанавливает в 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
А вот в журнале изменений видно что ставит правильные значения.!

-
Выявленные баги данного скрипта, что в 23, что в 1 громкость выставляется по дефолту, а это максимум.
Смыс этой строки case 0: setState(('sayit.0.tts.volume'),0) никакой.
Нужно похоже переходить на if.
4489_objekte.png
4489_objekt_id.png
4489_erstes_skript_mit_blockly.pdf -
Выявленные баги данного скрипта, что в 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); } }); ! -
А createState('tempOutside',''); не знаю для чего нада, думал обязательно. Т.к. в часах тоже присутствует, а где используется не увидел, подумал что системная. `
Это создаётся переменная для внешней температуры, ну насколько я понял
3428_blockly2.txt -
Вот мое решение:
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); }); }); -
// Свое значение для $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); -
// Свое значение для $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 ;)
-
Как образец использовал скрипт 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 +'%'); }); }); !
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login