NEWS
Скрипт регулировки громкости
-
Окончательная моя версия.
!
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); }); }); !
Оба скрипта по мере изменений, обсуждения и обновления буду обновлять в этом сообщении. -
Как я и думал, так и есть
пример:
setState(('sayit.0.tts.volume'),60);
setState(('sayit.0.tts.text'),"80;Привет");
Последняя строчка устанавливает переменную sayit.0.tts.volume в 80%. `
Я правильно понял, вы про скрипт календаря? Так а как у вас получается в 80? Если брать мою вариацию, то там громкость берется в начале скрипта, а сколько я вчера контролировал, то скрипт установки громкости отрабатывает раньше, соответственно уже громкость берется новая. -
Ну не знаю как у вас получается что устанавливает в 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 ;)
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