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 ;)
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden