ui7
Скрипт в этой редакции что-то не работает с Сонос
Сцена выполняется успешно, но тишина
может быть скрипт или просто глюк выполнения сцены в UI7
PS. Скорость ветра WU измеряет в километрах в час
From the ESE at 8.0 KPH Gusting to 8.0 KPH
Интересно можно ли как то в настройках плагина изменить на метры в сек, а то страшно становится, когда слышишь что скорость ветра 15 или более метров в секунду =)
Кому надо под Sonos, вот скрипт от
dimis, тестированный на UI7, работает исправно)
В скрипте звук одной громкости, без разделения на утро, день, ночь, меняем на свое усмотрение
Ну и прописываем свои ID устройств sonos и Underground Weather plugin
Number={}
Number["0"]="Ноль "
Number["1"]="Один "
Number["2"]="Два "
Number["3"]="Три "
Number["4"]="Четыре "
Number["5"]="Пять "
Number["6"]="Шесть "
Number["7"]="Семь "
Number["8"]="Восемь "
Number["9"]="Девять "
Number["10"]="Десять "
Number["11"]="Одинадцать "
Number["12"]="Двенадцать "
Number["13"]="Тринадцать "
Number["14"]="Четырнадцать "
Number["15"]="Пятнадцать "
Number["16"]="Шестнадцать "
Number["17"]="Семнадцать "
Number["18"]="Восемнадцать "
Number["19"]="Девятнадцать "
Number["20"]="Двадцать "
Number["21"]="Двадцать один "
Number["22"]="Двадцать два "
Number["23"]="Двадцать три "
Number["24"]="Двадцать четыре "
Number["25"]="Двадцать пять "
Number["26"]="Двадцать шесть "
Number["27"]="Двадцать семь "
Number["28"]="Двадцать восемь "
Number["29"]="Двадцать девять "
Number["30"]="Тридцать "
Number["31"]="Тридцать один "
Number["32"]="Тридцать два "
Number["33"]="Тридцать три "
Number["34"]="Тридцать четыре "
Number["35"]="Тридцать пять "
Number["36"]="Тридцать шесть "
Number["37"]="Тридцать семь "
Number["38"]="Тридцать восемь "
Number["39"]="Тридцать девять "
Number["40"]="Сорок "
Number["41"]="Сорок один "
Number["42"]="Сорок два "
Number["43"]="Сорок три "
Number["44"]="Сорок четыре "
Number["45"]="Сорок пять "
Number["46"]="Сорок шесть "
Number["47"]="Сорок семь "
Number["48"]="Сорок восемь "
Number["49"]="Сорок девять "
Number["50"]="Пятьдесят "
Number["51"]="Пятьдесят один "
Number["52"]="Пятьдесят два "
Number["53"]="Пятьдесят три "
Number["54"]="Пятьдесят четыре "
Number["55"]="Пятьдесят пять "
Number["56"]="Пятьдесят шесть "
Number["57"]="Пятьдесят семь "
Number["58"]="Пятьдесят восемь "
Number["59"]="Пятьдесят девять "
Number["60"]="Шестьдесят "
Number["61"]="Шестьдесят один "
Number["62"]="Шестьдесят два "
Number["63"]="Шестьдесят три "
Number["64"]="Шестьдесят четыре "
Number["65"]="Шестьдесят пять "
Number["66"]="Шестьдесят шесть "
Number["67"]="Шестьдесят семь "
Number["68"]="Шестьдесят восемь "
Number["69"]="Шестьдесят девять "
Number["70"]="Семьдесят "
Number["71"]="Семьдесят один "
Number["72"]="Семьдесят два "
Number["73"]="Семьдесят три "
Number["74"]="Семьдесят четыре "
Number["75"]="Семьдесят пять "
Number["76"]="Семьдесят шесть "
Number["77"]="Семьдесят семь "
Number["78"]="Семьдесят восемь "
Number["79"]="Семьдесят девять "
Number["80"]="Восемьдесят "
Number["81"]="Восемьдесят один "
Number["82"]="Восемьдесят два "
Number["83"]="Восемьдесят три "
Number["84"]="Восемьдесят четыре "
Number["85"]="Восемьдесят пять "
Number["86"]="Восемьдесят шесть "
Number["87"]="Восемьдесят семь "
Number["88"]="Восемьдесят восемь "
Number["89"]="Восемьдесят девять "
Number["90"]="Девяносто "
Number["91"]="Девяносто один "
Number["92"]="Девяносто два "
Number["93"]="Девяносто три "
Number["94"]="Девяносто четыре "
Number["95"]="Девяносто пять "
Number["96"]="Девяносто шесть "
Number["97"]="Девяносто семь "
Number["98"]="Девяносто восемь "
Number["99"]="Девяносто девять "
Number["100"]="Сто "
function Gradusnik(temper)
temper = tonumber(temper) or 0
if (temper<0) then
temper=temper*(-1)
TempCur=" минус "..Number[tostring (temper)]
else
TempCur=" плюс "..Number[tostring (temper)]
end
if (temper>10) then
temper=temper%10
end
if (temper==1) then
retval= " градус "
elseif (temper==2 or temper==3 or temper==4) then
retval= " градуса "
else
retval= " градусов "
end
return TempCur.." "..retval
end
function Procenty(procent)
procent = tonumber(procent) or 0
retval=Number[tostring (procent)]
if (procent>10) then
procent=procent%10
end
if (procent==1) then
retval= retval.." процент "
elseif (procent==2 or procent==3 or procent==4) then
retval= retval.." процента "
else
retval= retval.." процентов "
end
return retval
end
function Metry(metr)
metr = tonumber(metr) or 0
retval=Number[tostring (metr)]
if (metr>10) then
metr=metr%10
end
if (metr==1) then
retval= retval.." километр в час "
elseif (metr==2 or metr==3 or metr==4) then
retval= retval.." километра в час "
else
retval= retval.." километров в час "
end
return retval
end
function WindDirection (degrees)
degrees = tonumber(degrees) or 0
if (degrees>=30 and degrees <60 ) then
direction=" Северо-восточный "
elseif (degrees>=60 and degrees <120 ) then
direction=" Восточный "
elseif (degrees>=120 and degrees <150 ) then
direction=" Юго-Восточный "
elseif (degrees>=150 and degrees <210 ) then
direction=" Южный "
elseif (degrees>=210 and degrees <240 ) then
direction=" Юго-западный"
elseif (degrees>=240 and degrees <300 ) then
direction=" Западный"
elseif (degrees>=300 and degrees <330 ) then
direction=" Северо-Западный"
else
direction=" Северный"
end
return direction
end
local servicesonos = "urn:micasaverde-com:serviceId:Sonos1"
local idsonos = 12
local soundlevel =60
local TempCur = math.floor(luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1","CurrentTemperature", 7))
local TempMin = math.floor(luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1","CurrentTemperature", 8))
local TempMax= math.floor(luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1","CurrentTemperature", 9))
local Vlaga= luup.variable_get("urn:micasaverde-com:serviceId:HumiditySensor1","CurrentLevel",10)
local word = luup.variable_get("urn:upnp-micasaverde-com:serviceId:Weather1", "Condition", 6)
local WindSpeed = luup.variable_get("urn:upnp-micasaverde-com:serviceId:Weather1", "WindSpeed", 6)
local WindDegrees = luup.variable_get("urn:upnp-micasaverde-com:serviceId:Weather1", "WindDegrees", 6)
gradCur=Gradusnik(TempCur)
TempMax=Gradusnik(TempMax)
TempMin=Gradusnik(TempMin)
Array = {}
Array["Light Drizzle"] = "Легкая изморось"
Array["Light Rain"] = "лёгкий дождь"
Array["Light Snow"] = "лёгкий снег"
Array["Light Snow Grains"] = "Легкий снегопад Снежная крупа"
Array["Light Ice Crystals"] = "Легкий снегопад с Ледяными кристалами"
Array["Light Ice Pellets"] = "Легкий снегопад с Ледяными окатышами"
Array["Light Hail"] = "Легкий град"
Array["Light Mist"] = "Легкая дымка"
Array["Light Fog"] = "Легкий туман"
Array["Light Fog Patches"] = "Описание не задано"
Array["Light Smoke"] = "Описание не задано"
Array["Light Volcanic Ash"] = "Описание не задано"
Array["Light Widespread Dust"] = "Описание не задано"
Array["Light Sand"] = "Описание не задано"
Array["Light Haze"] = "Описание не задано"
Array["Light Spray"] = "Легкие брызги"
Array["Light Dust Whirls"] = "Описание не задано"
Array["Light Sandstorm"] = "Описание не задано"
Array["Light Low Drifting Snow"] = "Описание не задано"
Array["Light Low Drifting Widespread Dust"] = "Описание не задано"
Array["Light Low Drifting Sand"] = "Описание не задано"
Array["Light Blowing Snow"] = "Описание не задано"
Array["Light Blowing Widespread Dust"] = "Описание не задано"
Array["Light Blowing Sand"] = "Описание не задано"
Array["Light Rain Mist"] = "Описание не задано"
Array["Light Rain Showers"] = "небольшой дождь"
Array["Light Snow Showers"] = "Небольшой снегопад"
Array["Light Snow Blowing Snow Mist"] = "Небольшой снег, метель туман"
Array["Light Ice Pellet Showers"] = "Описание не задано"
Array["Light Hail Showers"] = "Описание не задано"
Array["Light Small Hail Showers"] = "Описание не задано"
Array["Light Thunderstorm"] = "Описание не задано"
Array["Light Thunderstorms and Rain"] = "небольшая гроза и дождь"
Array["Light Thunderstorms and Snow"] = "небольшая гроза и снег"
Array["Light Thunderstorms and Ice Pellets"] = "небольшая гроза и град"
Array["Light Thunderstorms with Hail"] = "Описание не задано"
Array["Light Thunderstorms with Small Hail"] = "Описание не задано"
Array["Light Freezing Drizzle"] = "Описание не задано"
Array["Light Freezing Rain"] = "Описание не задано"
Array["Light Freezing Fog"] = "Описание не задано"
Array["Heavy Drizzle"] = "Описание не задано"
Array["Heavy Rain"] = "сильный дождь"
Array["Heavy Snow"] = "сильный снег"
Array["Heavy Snow Grains"] = "Описание не задано"
Array["Heavy Ice Crystals"] = "Описание не задано"
Array["Heavy Ice Pellets"] = "Описание не задано"
Array["Heavy Hail"] = "Описание не задано"
Array["Heavy Mist"] = "Описание не задано"
Array["Heavy Fog"] = "Описание не задано"
Array["Heavy Fog Patches"] = "Описание не задано"
Array["Heavy Smoke"] = "Описание не задано"
Array["Heavy Volcanic Ash"] = "Описание не задано"
Array["Heavy Widespread Dust"] = "Описание не задано"
Array["Heavy Sand"] = "Описание не задано"
Array["Heavy Haze"] = "Описание не задано"
Array["Heavy Spray"] = "Описание не задано"
Array["Heavy Dust Whirls"] = "Описание не задано"
Array["Heavy Sandstorm"] = "Описание не задано"
Array["Heavy Low Drifting Snow"] = "Описание не задано"
Array["Heavy Low Drifting Widespread Dust"] = "Описание не задано"
Array["Heavy Low Drifting Sand"] = "Описание не задано"
Array["Heavy Blowing Snow"] = "Описание не задано"
Array["Heavy Blowing Widespread Dust"] = "Описание не задано"
Array["Heavy Blowing Sand"] = "Описание не задано"
Array["Heavy Rain Mist"] = "Описание не задано"
Array["Heavy Rain Showers"] = "Описание не задано"
Array["Heavy Snow Showers"] = "Описание не задано"
Array["Heavy Snow Blowing Snow Mist"] = "Описание не задано"
Array["Heavy Ice Pellet Showers"] = "Описание не задано"
Array["Heavy Hail Showers"] = "Описание не задано"
Array["Heavy Small Hail Showers"] = "Описание не задано"
Array["Heavy Thunderstorm"] = "Описание не задано"
Array["Heavy Thunderstorms and Rain"] = "Описание не задано"
Array["Heavy Thunderstorms and Snow"] = "Описание не задано"
Array["Heavy Thunderstorms and Ice Pellets"] = "Описание не задано"
Array["Heavy Thunderstorms with Hail"] = "Описание не задано"
Array["Heavy Thunderstorms with Small Hail"] = "Описание не задано"
Array["Heavy Freezing Drizzle"] = "Описание не задано"
Array["Heavy Freezing Rain"] = "Описание не задано"
Array["Heavy Freezing Fog"] = "Описание не задано"
Array["Patches of Fog"] = "Описание не задано"
Array["Shallow Fog"] = "стелющийся туман"
Array["Partial Fog"] = "Описание не задано"
Array["Overcast"] = "сплошная облачность"
Array["Clear"] = "ясно"
Array["Partly Cloudy"] = "переменная облачность"
Array["Mostly Cloudy"] = "большая облачность"
Array["Scattered Clouds"] = "перистые облака"
Array["Small Hail"] = "Описание не задано"
Array["Squals"] = "Описание не задано"
Array["Funnel Cloud"] = "Описание не задано"
Array["Mist"] = " Туман "
local timeOfDay="Доброе утро "
local t = os.date('*t')
local current_second = t.hour * 3600 + t.min * 60 -- number of sec since midnight
local morning = 5 * 3600 + 0 * 60 -- 05:00
local afternoon = 12 * 3600 + 0 * 60 -- 12:00
local evening = 18 * 3600 + 0 * 60 -- 18:00
local night = 0 * 3600 + 0 * 60 -- 00:00
if (current_second > morning) and (current_second < afternoon) then
timeOfDay="Доброе утро "
elseif (current_second > afternoon) and (current_second < evening) then
timeOfDay="Добрый день "
elseif (current_second > night) and (current_second < morning) then
timeOfDay="Доброй ночи "
else
timeOfDay="Добрый вечер"
end
luup.call_action(servicesonos, "Say", {Text = ""..timeOfDay..", Сегодня на улице "..Array[word].." .. .Ветер "..WindDirection(WindDegrees)..Metry(WindSpeed)..". Максимальная температура сегодня составит " .. TempMax.. ". Температура ночью ".. TempMin..". Текущая температура "..gradCur.." . Влажность "..Procenty(Vlaga).."", Language="ru", Volume=soundlevel}, idsonos)