NEWS
ICal + Sayit
-
Я не увидел, где ты громкость выставляешь обратно в 100%.
Представь 1-ый скрипт установил громкость в 80%, а через 10 минут отработает скрипт по новой, то твоя громкость будет составлять уже не 80%, а 60%. Т.к. переменная сама в 100% не возвращается.
Может я конечно чего то не знаю
Если ты заменишь колонку, то ты должен будешь выставить громкость на колонке, потому что громкость здесь измеряется в процентах, а не в децибелах. А давай смодулируем ситуацию, что у тебя не одна зона а пять, что ты будешь делать с громкостью?
Мы все здесь учимся, я ни в коем случае не назжаю, а пытаюсь понять и сделать скрипт как можно оптимальней и функциональней. Если окажется что твой вариант более гибкий, то я готов свой скрипт переписать
-
В данном скрипте вообще переменная просто берется из системы. В скрипте с временем, там строка определяющая основную громкость стоит первой, а потом уже по наступлению времени изменяет только на данное время, при следующем запуске скрипта будет начальная громкость. Опять же в этих обоих скриптах, уже в данный момент, параметры громкости только берутся из системной переменной. Убрал я это уменьшение Оставил уменьшение в отдельном скрипте, которое может регулировать и зонально и по времени, и вообще по присутствию в комнате, дабы не воспроизводил там где отсутствуют люди.
Про колонку, настроил и спрятал далеко. Но вот моделируем ситуацию что рядом с домом\квартирой устроили ремонт и уровень постороннего шума поднялся, надо будет лезть и добавлять громкость на колонке. А по окончанию работ - убирать.
Опять же, у меня нет системы сонос, может она по другому работает и можно более гибко сделать.
-
…. и вообще по присутствию в комнате, дабы не воспроизводил там где отсутствуют люди. `
А как вы определяете присутствие? -
В данном скрипте вообще переменная просто берется из системы. `
Если вы про это: var volume = getState('sayit.0.tts.volume').val;То все выше изложенное как раз про это. Вы взяли значение из переменной volume, потом изменяете (например -20) и сохраняете обратно. Если скрипт повторно отработает, то он снова возьмет из переменной sayit.0.tts.volume значение. А оно там будет уже не 100%, а 80% и соответственно еще раз уменьшится громкость на -20, но уже от 80%.
Не знаю понятно ли объяснил
Убрал я это уменьшение Оставил уменьшение в отдельном скрипте, которое может регулировать и зонально и по времени, и вообще по присутствию в комнате, дабы не воспроизводил там где отсутствуют люди. `
А вот это хорошая идея, вынести управление громкостью в отдельный скрипт и пусть он по шедулеру устанавливает громкость…. хм надо обдумать.Про колонку, настроил и спрятал далеко. Но вот моделируем ситуацию что рядом с домом\квартирой устроили ремонт и уровень постороннего шума поднялся, надо будет лезть и добавлять громкость на колонке. А по окончанию работ - убирать.
Опять же, у меня нет системы сонос, может она по другому работает и можно более гибко сделать. `
У меня была такая ситуация, там где находилась колонка, я ее все равно слышал. А вот если уходишь например на кухню то там уже не слышно, но это уже другая история про мультирум
4489_erstes_skript_mit_blockly.pdf -
дабы не воспроизводил там где отсутствуют люди. `
У вас есть многозонность? Как вы регулируете громкость в разных комнатах? -
…. и вообще по присутствию в комнате, дабы не воспроизводил там где отсутствуют люди.
А как вы определяете присутствие?
Еще не делал, но, например, датчик движения.
@vtec:Если вы про это: var volume = getState('sayit.0.tts.volume').val;
То все выше изложенное как раз про это. Вы взяли значение из переменной volume, потом изменяете (например -20) и сохраняете обратно. Если скрипт повторно отработает, то он снова возьмет из переменной sayit.0.tts.volume значение. А оно там будет уже не 100%, а 80% и соответственно еще раз уменьшится громкость на -20, но уже от 80%. `
Так он только берет и уменьшает на данное воспроизведение, объект он новое значение не записывает, для этого надо отдельно setState делать, что уже и выполняется у меня в отдельном скрипте. Так даже удобней получилось.А вот это хорошая идея, вынести управление громкостью в отдельный скрипт и пусть он по шедулеру делает громкость…. хм надо обдумать. `
Могу выложить свою вариацию. Уже работаетУ меня была такая ситуация, там где находилась колонка, я ее все равно слышал. А вот если уходишь например на кухню то там уже не слышно, но это уже другая история про мультирум `
Мультирум чуть другая ситуация, комната бывает большой. И колонку не всегда получается в центр комнаты разместить, чтоб равномерно по комнате было. По-этому, в некоторой ситуации, может быть и не слышно.У вас есть многозонность? Как вы регулируете громкость в разных комнатах? `
Это пока в задумке, но думаю Bluefox с коллегами не зря сделал категории(комнаты) думаю от них можно будет оттолкнутся. -
Так он только берет и уменьшает на данное воспроизведение, объект он новое значение не записывает, для этого надо отдельно setState делать, что уже и выполняется у меня в отдельном скрипте. Так даже удобней получилось. `
Хм… понял, попробую проверить на самом деле так или нет.
@spectrekr:Могу выложить свою вариацию. Уже работает `
Давайте конечно же. Если громкостью будет удбней из отдельного скрипта управлять, то в скрипте про время уберу тоже.Это пока в задумке, но думаю Bluefox с коллегами не зря сделал категории(комнаты) думаю от них можно будет оттолкнутся. `
А вот этого пока нет -
Могу выложить свою вариацию. Уже работает
Давайте конечно же. Если громкостью будет удбней из отдельного скрипта управлять, то в скрипте про время уберу тоже.
Создал тему и выложил, чтобы раздельно обсуждать и улучшать.
4489_erstes_skript_mit_blockly.pdf -
Маленький недочет. С сб. и вс. скрипт в 9.00 расскажет и разбудит если еще спим
-
Маленький недочет. С сб. и вс. скрипт в 9.00 расскажет и разбудит если еще спим `
Ну тут варианты: Либо всегда оповещать часов в 10-11, раз так поздно встаете, потому что потом может быть отпуск и тоже в 9 будет будить. Ну или сделать условие и в субботу-воскресенье воспроизводить позже. Предлагайте -
var hour_control = '09:00';
Правильно будет так: 9:00, т.к. дальше в скрипте идет сравнение time_now == hour_control и оно не выполнится, потому что hour идет без нуля
-
Поправил и поместил в первое сообщение, чтобы, как бы в "шапке" было.