С позволения форумчан выложу небольшое пособие как заставить
Sonos проговаривать погоду.
Расскажу на своем примере. У меня имеется
Sonos Play:3 + Sonos Bridge.
Сперва устанавливаем и настроиваем плагин
Wunderground Weather Plugin
Устанавливается он как все плагины. Есть небольшие нюансы в настройке.
Для того, чтобы плагин стал считывать погоду:
1) регистрируемся на сайте
http://www.wunderground.com
2) после идем по ссылке
http://www.wunderground.com/weather/api/ и
получаем там ключ.
3) теперь идем в оболочку контроллера Vera в раздел
DEVICES и нажимаем значек настройки
World Weather.
На вкладке
Settings ставим Display Units -
Metric,
прописываем Location:
55.904099,37.560600 (это для Москвы соответственно)
Provider Key:
ключ, который мы получили
Polling:
14400 (это частота проверки погоды с сукендах. я выбрал 4 часа)
Все, плагин настроен и должен показывать погоду и влажность.
Получаем 4 устройства: максимальная температура на день, влажность, минимальная температура и текущая температура.
Остается только запрограммировать событие на считывание показаний с устройств и проговаривание погоды.
Идем в
AUTOMATION -> New Scene.
Вписываем название сцены (в моем случае
Weathe_timer) и исполнение ставим
Immediate (немедленно). Переходим на вкладку
LUUP и прописываем следующий код:
local t = os.date('*t')
local sonosid = 11
local soundlevel = 15 -- громкость проговаривания погоды
local serviceSonos = "urn:micasaverde-com:serviceId:Sonos1" -- сервис у всех одинаковый
local StatusID15 = luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1","CurrentTemperature", 15)
local StatusID13 = luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1","CurrentTemperature", 13)
local StatusID16= luup.variable_get("urn:micasaverde-com:serviceId:HumiditySensor1","CurrentLevel",16)
local current_second = t.hour * 3600 + t.min * 60
local morning = 06 * 3600 + 0 * 60 -- 06:00
local afternoon = 12 * 3600 + 0 * 60 -- 12:00
local evening = 18 * 3600 + 0 * 60 -- 18:00
if (current_second > morning) and (current_second < afternoon) then
luup.call_action(serviceSonos, "Say", {Text = "Дооброе утро!, Максимальная температура сегодня составит" .. StatusID15 .. " градусов. Сейчас за окном! " ..StatusID13.. " градусов. Влажность воздуха! " ..StatusID16.. " Процентов" , Volume=soundlevel}, sonosid)
else
if (current_second > afternoon) and (current_second < evening) then
luup.call_action(serviceSonos, "Say", {Text = "Добрый день!, Максимальная температура сегодня составит" .. StatusID15 .. " градусов. Сейчас за окном! " ..StatusID13.. " градусов. Влажность воздуха! " ..StatusID16.. " Процентов" , Volume=soundlevel}, sonosid)
else
luup.call_action(serviceSonos, "Say", {Text = "Добрый вечер!, Максимальная температура сегодня составит" .. StatusID15 .. " градусов. Сейчас за окном! " ..StatusID13.. " градусов. Влажность воздуха! " ..StatusID16.. " Процентов" , Volume=soundlevel}, sonosid)
end
end
,где local sonosid =
11 смотри скриншот
local StatusID
15 = luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1","CurrentTemperature",
15)
значение StatusID берем из устройства максимальной температуры
local StatusID
13 = luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1","CurrentTemperature",
13)
значение StatusID берем из устройства текущей температуры
local StatusID
16= luup.variable_get("urn:micasaverde-com:serviceId:HumiditySensor1","CurrentLevel",
16)
значение StatusID берем из устройства влажности воздуха
C кодом закончили. Нажимаем
Save Lua и идем во вкладку
Schedules и добавляем расписание срабатывания нашей сцены.
Тут все просто, я задал срабатывание сцены с Пн по Пт в 8*00.
Все сохраняем. Готово.
Надеюсь понятно расписал, если что обращайтесь.