TWC Weather

From webCoRE Wiki - Web-enabled Community's own Rule Engine
Revision as of 01:25, 13 March 2019 by WCmore (talk | contribs) (Partial day forecast)
Jump to: navigation, search
Share on FacebookShare on TwitterShare on Google+Share on LinkedInShare on DiggShare on deliciousShare on redditShare on StumbleUpon

The $twcweather system variable provides data from The Weather Company following the shutdown of the Weather Underground API that powered $weather. $twcweather was introduced in webCoRE v0.3.10a.20190223. See sample data below which is available for webCoRE installs running on the SmartThings platform.

Conditions

Expression Sample value
$twcweather.conditions.cloudCeiling null, 100, 2100, 8500
$twcweather.conditions.cloudCoverPhrase "Clear", "Partly Cloudy", "Mostly Cloudy", "Cloudy"
$twcweather.conditions.dayOfWeek "Wednesday"
$twcweather.conditions.dayOrNight "D"
$twcweather.conditions.expirationTimeUtc 1545249077
$twcweather.conditions.iconCode 32
$twcweather.conditions.iconCodeExtend 3200
$twcweather.conditions.obsQualifierCode null
$twcweather.conditions.obsQualifierSeverity null
$twcweather.conditions.precip1Hour 0
$twcweather.conditions.precip6Hour 0
$twcweather.conditions.precip24Hour 0
$twcweather.conditions.pressureAltimeter 1018.29

29.95, 30.14

$twcweather.conditions.pressureChange -2.71
$twcweather.conditions.pressureMeanSeaLevel 1018.5
$twcweather.conditions.pressureTendencyCode 0, 1, 2

(Representing "Steady", "Rising", "Falling" respectively)

$twcweather.conditions.pressureTendencyTrend "Steady", "Rising", "Falling"
$twcweather.conditions.relativeHumidity 55
$twcweather.conditions.snow1Hour 0
$twcweather.conditions.snow6Hour 0
$twcweather.conditions.snow24Hour 0
$twcweather.conditions.sunriseTimeLocal "2018-12-19T07:28:58-0500"
$twcweather.conditions.sunriseTimeUtc 1545222538
$twcweather.conditions.sunsetTimeLocal "2018-12-19T17:10:52-0500"
$twcweather.conditions.sunsetTimeUtc 1545257452
$twcweather.conditions.temperature 10
$twcweather.conditions.temperatureChange24Hour -2
$twcweather.conditions.temperatureDewPoint 2
$twcweather.conditions.temperatureFeelsLike 9
$twcweather.conditions.temperatureHeatIndex 10
$twcweather.conditions.temperatureMax24Hour 12
$twcweather.conditions.temperatureMaxSince7Am 10
$twcweather.conditions.temperatureMin24Hour -3
$twcweather.conditions.temperatureWindChill 9
$twcweather.conditions.uvDescription "Low", "Moderate", "High"
$twcweather.conditions.uvIndex 1
$twcweather.conditions.validTimeLocal "2018-12-19T14:41:17-0500"
$twcweather.conditions.validTimeUtc 1545248477
$twcweather.conditions.visibility 16.09
$twcweather.conditions.windDirection 180
$twcweather.conditions.windDirectionCardinal "S"
$twcweather.conditions.windGust null
$twcweather.conditions.windSpeed 6
$twcweather.conditions.wxPhraseLong "Sunny", "Fair", "Partly Cloudy, "Mostly Cloudy", "Cloudy", "Fog"
$twcweather.conditions.wxPhraseMedium "Sunny"
$twcweather.conditions.wxPhraseShort "Sunny"

Forecast

14 day forecast; append the index to get an individual day. For example, $twcweather.forecast.temperatureMin[0] is today's low temperature.

Expression Sample value
$twcweather.forecast.dayOfWeek
[
    "Wednesday",
    "Thursday",
    "Friday",
    "Saturday"
]
$twcweather.forecast.expirationTimeUtc
[
    1545251268,
    1545251268,
    1545251268,
    1545251268
]
$twcweather.forecast.moonPhase
[
    "Waxing Gibbous",
    "Waxing Gibbous",
    "Waxing Gibbous",
    "Full Moon"
]
$twcweather.forecast.moonPhaseCode
[
    "WXG",
    "WXG",
    "WXG",
    "F"
]
$twcweather.forecast.moonPhaseDay
[
    11,
    12,
    13,
    15
]
$twcweather.forecast.moonriseTimeLocal
[
    "2018-12-19T15:04:06-0500",
    "2018-12-20T15:44:43-0500",
    "2018-12-21T16:32:25-0500",
    "2018-12-22T17:26:58-0500"
]
$twcweather.forecast.moonriseTimeUtc
[
    1545249846,
    1545338683,
    1545427945,
    1545517618
]
$twcweather.forecast.moonsetTimeLocal
[
    "2018-12-19T03:50:48-0500",
    "2018-12-20T04:56:24-0500",
    "2018-12-21T06:03:51-0500",
    "2018-12-22T07:11:16-0500"
]
$twcweather.forecast.moonsetTimeUtc
[
    1545209448,
    1545299784,
    1545390231,
    1545480676
]
$twcweather.forecast.narrative
[
    "A few clouds. Highs in the low 50s and lows in the upper 30s.",
    "Cloudy, periods of rain. Highs in the upper 40s with temperatures nearly steady overnight.",
    "Cloudy with rain. Highs in the mid 50s and lows in the upper 30s.",
    "Mostly sunny. Highs in the upper 40s and lows in the low 30s."
]
$twcweather.forecast.qpf
[
    0,
    1.44,
    0.49,
    0
]
$twcweather.forecast.qpfSnow
[
    0,
    0,
    0,
    0
]
$twcweather.forecast.sunriseTimeLocal
[
    "2018-12-19T07:28:58-0500",
    "2018-12-20T07:29:31-0500",
    "2018-12-21T07:30:02-0500",
    "2018-12-22T07:30:32-0500"
]
$twcweather.forecast.sunriseTimeUtc
[
    1545222538,
    1545308971,
    1545395402,
    1545481832
]
$twcweather.forecast.sunsetTimeLocal
[
    "2018-12-19T17:10:52-0500",
    "2018-12-20T17:11:19-0500",
    "2018-12-21T17:11:47-0500",
    "2018-12-22T17:12:18-0500"
]
$twcweather.forecast.sunsetTimeUtc
[
    1545257452,
    1545343879,
    1545430307,
    1545516738
]
$twcweather.forecast.temperatureMax
[
    51,
    49,
    54,
    49
]
$twcweather.forecast.temperatureMin
[
    38,
    47,
    37,
    31
]
$twcweather.forecast.validTimeLocal
[
    "2018-12-19T07:00:00-0500",
    "2018-12-20T07:00:00-0500",
    "2018-12-21T07:00:00-0500",
    "2018-12-22T07:00:00-0500"
]
$twcweather.forecast.validTimeUtc
[
    1545220800,
    1545307200,
    1545393600,
    1545480000
]

Partial day forecast

The forecast includes morning and evening data for various attributes. The indexes begin at 0 for "this morning" so 2 is tomorrow morning and 3 is tomorrow evening (see the daypartName value). To show an icon for tonight's weather you would get the icon code with the expression $twcweather.forecast.daypart[0].iconCode[1]

Note that the first value for some attributes may be blank in the evening. For example, running a piston in the morning you may get $twcweather.forecast.daypart[0].cloudCover => [ 25, 79, 100, ...] but that same evening $twcweather.forecast.daypart[0].cloudCover => [ null, 79, 100, ...].

Preliminary testing shows that today's morning data [0] drops off (turns null) shortly after 3PM each day, and the next days data shifts to [0] and [1] shortly after 3AM. This means from midnight to about 3AM that [0] will still be null, and [1] will still show data from the night in progress.

Expression Sample value
$twcweather.forecast.daypart[0].cloudCover
[
    16,
    79,
    100,
    100,
    99,
    85,
    32,
    14
]
$twcweather.forecast.daypart[0].dayOrNight
[
    "D",
    "N",
    "D",
    "N",
    "D",
    "N",
    "D",
    "N"
]
$twcweather.forecast.daypart[0].daypartName
[
    "Today",
    "Tonight",
    "Tomorrow",
    "Tomorrow night",
    "Friday",
    "Friday night",
    "Saturday",
    "Saturday night"
]
$twcweather.forecast.daypart[0].iconCode
[
    34,
    27,
    12,
    12,
    12,
    26,
    34,
    33
]
$twcweather.forecast.daypart[0].iconCodeExtend
[
    3400,
    2700,
    1200,
    1200,
    1200,
    2600,
    3400,
    3300
]
$twcweather.forecast.daypart[0].narrative
[
    "Lots of sunshine. High 51F. Winds light and variable.",
    "Partly cloudy early followed by cloudy skies overnight. Low 38F. Winds light and variable.",
    "Rain likely. High 49F. Winds NE at 5 to 10 mph. Chance of rain 100%. Rainfall near an inch.",
    "Rain likely. Low 47F. Winds light and variable. Chance of rain 90%. Rainfall near a half an inch.",
    "Periods of rain. Thunder possible. High 54F. Winds SSW at 5 to 10 mph. Chance of rain 100%.",
    "Cloudy. Low 37F. Winds WNW at 5 to 10 mph.",
    "A few clouds early, otherwise mostly sunny. High 49F. Winds WNW at 5 to 10 mph.",
    "Clear to partly cloudy. Low 31F. Winds light and variable."
]
$twcweather.forecast.daypart[0].precipChance
[
    0,
    20,
    100,
    90,
    100,
    20,
    0,
    0
]
$twcweather.forecast.daypart[0].precipType
[
    "rain",
    "precip",
    "rain",
    "rain",
    "rain",
    "precip",
    "rain",
    "precip"
]
$twcweather.forecast.daypart[0].qpf
[
    0,
    0,
    0.93,
    0.51,
    0.48,
    0,
    0,
    0
]
$twcweather.forecast.daypart[0].qpfSnow
[
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
]
$twcweather.forecast.daypart[0].qualifierCode
[
    null,
    null,
    null,
    null,
    "Q8003",
    null,
    null,
    null
]
$twcweather.forecast.daypart[0].qualifierPhrase
[
    null,
    "A stray shower or thunderstorm is possible.",
    "Areas of patchy fog early.",
    "Gusty winds and small hail are possible.",
    "Slight chance of a rain shower.",
    "Thunder possible."
]
$twcweather.forecast.daypart[0].relativeHumidity
[
    63,
    85,
    93,
    96,
    92,
    76,
    55,
    72
]
$twcweather.forecast.daypart[0].snowRange
[
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    ""
]
$twcweather.forecast.daypart[0].temperature
[
    51,
    38,
    49,
    47,
    54,
    37,
    49,
    31
]
$twcweather.forecast.daypart[0].temperatureHeatIndex
[
    50,
    43,
    48,
    50,
    54,
    46,
    48,
    39
]
$twcweather.forecast.daypart[0].temperatureWindChill
[
    44,
    39,
    41,
    46,
    43,
    34,
    33,
    32
]
$twcweather.forecast.daypart[0].thunderCategory
[
    null,
    "No thunder",
    "Thunder expected",
    "Thunder possible"
]
$twcweather.forecast.daypart[0].thunderIndex
[
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0
]
$twcweather.forecast.daypart[0].uvDescription
[
    null,
    "Low",
    "Moderate",
    "High"
]
$twcweather.forecast.daypart[0].uvIndex
[
    1,
    0,
    1,
    0,
    1,
    0,
    2,
    0
]
$twcweather.forecast.daypart[0].windDirection
[
    173,
    44,
    51,
    125,
    208,
    292,
    282,
    274
]
$twcweather.forecast.daypart[0].windDirectionCardinal
[
    "S",
    "NE",
    "NE",
    "SE",
    "SSW",
    "WNW",
    "WNW",
    "W"
]
$twcweather.forecast.daypart[0].windPhrase
[
    "Winds light and variable.",
    "Winds light and variable.",
    "Winds NE at 5 to 10 mph.",
    "Winds light and variable.",
    "Winds SSW at 5 to 10 mph.",
    "Winds WNW at 5 to 10 mph.",
    "Winds WNW at 5 to 10 mph.",
    "Winds light and variable."
]
$twcweather.forecast.daypart[0].windSpeed
[
    3,
    1,
    6,
    5,
    9,
    9,
    9,
    3
]
$twcweather.forecast.daypart[0].wxPhraseLong
[
    null,
    "AM Showers",
    "Clouds Early/Clearing Late",
    "Cloudy",
    "Fog Late",
    "Foggy",
    "Mostly Clear",
    "Mostly Cloudy",
    "Mostly Sunny",
    "Partly Cloudy",
    "PM Showers",
    "PM Thunderstorms",
    "Rain",
    "Scattered Thunderstorms",
    "Showers",
    "Showers Early",
    "Showers Late",
    "Sunny",
    "Thunderstorms",
    "Thunderstorms Early"
]
$twcweather.forecast.daypart[0].wxPhraseShort
[
    "M Sunny",
    "M Cloudy",
    "Rain",
    "Rain",
    "Rain",
    "Cloudy",
    "M Sunny",
    "M Clear"
]

Weather Icons

Usage

Choose an icon set below and use it with the iconCode values from $twcweather. The following examples can be used in the Value field.

Current Weather using the "TWC" icon set: :twc-{$twcweather.conditions.iconCode}:

Forecast Day using the "WU v4" icon set: :wu-v4-{$twcweather.forecast.daypart[0].iconCode[INDEX]} note: You will need to change [INDEX] to a value from 0-7 (0 being the next forecasted half day/night and 7 being the 3rd day/night)

Code Description TWC Icon WU v4 Icon
0 Tornado

:twc-0:

:wu-v4-0:

1 Tropical Storm

:twc-1:

:wu-v4-1:

2 Hurricane

:twc-2:

:wu-v4-2:

3 Strong Storms

:twc-3:

:wu-v4-3:

4 Thunder and Hail

:twc-4:

:wu-v4-4:

5 Rain to Snow Showers

:twc-5:

:wu-v4-5:

6 Rain / Sleet

:twc-6:

:wu-v4-6:

7 Wintry Mix Snow / Sleet

:twc-7:

:wu-v4-7:

8 Freezing Drizzle

:twc-8:

:wu-v4-8:

9 Drizzle

:twc-9:

:wu-v4-9:

10 Freezing Rain

:twc-10:

:wu-v4-10:

11 Light Rain

:twc-11:

:wu-v4-11:

12 Rain

:twc-12:

:wu-v4-12:

13 Scattered Flurries

:twc-13:

:wu-v4-13:

14 Light Snow

:twc-14:

:wu-v4-14:

15 Blowing / Drifting Snow

:twc-15:

:wu-v4-15:

16 Snow

:twc-16:

:wu-v4-16:

17 Hail

:twc-17:

:wu-v4-17:

18 Sleet

:twc-18:

:wu-v4-18:

19 Blowing Dust / Sandstorm

:twc-19:

:wu-v4-19:

20 Foggy

:twc-20:

:wu-v4-20:

21 Haze / Windy

:twc-21:

:wu-v4-21:

22 Smoke / Windy

:twc-22:

:wu-v4-22:

23 Breezy

:twc-23:

:wu-v4-23:

24 Blowing Spray / Windy

:twc-24:

:wu-v4-24:

25 Frigid / Ice Crystals

:twc-25:

:wu-v4-25:

26 Cloudy

:twc-26:

:wu-v4-26:

27 Mostly Cloudy

:twc-27:

:wu-v4-27:

28 Mostly Cloudy

:twc-28:

:wu-v4-28:

29 Partly Cloudy

:twc-29:

:wu-v4-29:

30 Partly Cloudy

:twc-30:

:wu-v4-30:

31 Clear

:twc-31:

:wu-v4-31:

32 Sunny

:twc-32:

:wu-v4-32:

33 Fair / Mostly Clear

:twc-33:

:wu-v4-33:

34 Fair / Mostly Sunny

:twc-34:

:wu-v4-34:

35 Mixed Rain & Hail

:twc-35:

:wu-v4-35:

36 Hot

:twc-36:

:wu-v4-36:

37 Isolated Thunderstorms

:twc-37:

:wu-v4-37:

38 Thunderstorms

:twc-38:

:wu-v4-38:

39 Scattered Showers

:twc-39:

:wu-v4-39:

40 Heavy Rain

:twc-40:

:wu-v4-40:

41 Scattered Snow Showers

:twc-41:

:wu-v4-41:

42 Heavy Snow

:twc-42:

:wu-v4-42:

43 Blizzard

:twc-43:

:wu-v4-43:

44 Not Available (N/A)

:twc-44:

:wu-v4-44:

45 Scattered Showers

:twc-45:

:wu-v4-45:

46 Scattered Snow Showers

:twc-46:

:wu-v4-46:

47 Scattered Thunderstorms

:twc-47:

:wu-v4-47:

Old icon sets

Several additional icon sets are available but all have a much more limited set of icons. We have ensured that the $twcWeather icon code numbers map to an approximately accurate representation in the old icon sets. While the old sets work we encourage use of the more expressive TWC and WU v4 icon sets.

All of the icon sets described on the original Weather Icons page work with the new codes, for example :wu-b-36: maps to the "sunny" icon in the "B" icon set.