2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.weathercompany.internal;
15 import java.util.Collections;
17 import java.util.stream.Collectors;
18 import java.util.stream.Stream;
20 import org.eclipse.jdt.annotation.NonNullByDefault;
21 import org.openhab.core.thing.ThingTypeUID;
24 * The {@link WeatherCompanyBindingConstants} class defines common constants, which are
25 * used across the whole binding.
27 * @author Mark Hilbush - Initial contribution
30 public class WeatherCompanyBindingConstants {
31 private static final String BINDING_ID = "weathercompany";
34 public static final String THING_TYPE_BRIDGE = "account";
35 public static final ThingTypeUID UID_BRIDGE = new ThingTypeUID(BINDING_ID, THING_TYPE_BRIDGE);
36 public static final Set<ThingTypeUID> SUPPORTED_BRIDGE_THING_TYPES_UIDS = Collections
37 .unmodifiableSet(Stream.of(UID_BRIDGE).collect(Collectors.toSet()));
40 public static final ThingTypeUID THING_TYPE_WEATHER_OBSERVATIONS = new ThingTypeUID(BINDING_ID,
41 "weather-observations");
42 public static final ThingTypeUID THING_TYPE_WEATHER_FORECAST = new ThingTypeUID(BINDING_ID, "weather-forecast");
44 // Collection of weather station thing types
45 public static final Set<ThingTypeUID> SUPPORTED_WEATHER_THING_TYPES_UIDS = Collections.unmodifiableSet(
46 Stream.of(THING_TYPE_WEATHER_OBSERVATIONS, THING_TYPE_WEATHER_FORECAST).collect(Collectors.toSet()));
48 // Collection of all supported thing types
49 public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections.unmodifiableSet(
50 Stream.concat(SUPPORTED_BRIDGE_THING_TYPES_UIDS.stream(), SUPPORTED_WEATHER_THING_TYPES_UIDS.stream())
51 .collect(Collectors.toSet()));
53 // Thing configuration
54 public static final String CONFIG_LOCATION_TYPE = "locationType";
55 public static final String CONFIG_LOCATION_TYPE_GEOCODE = "geocode";
56 public static final String CONFIG_LOCATION_TYPE_POSTAL_CODE = "postalCode";
57 public static final String CONFIG_LOCATION_TYPE_IATA_CODE = "iataCode";
58 public static final String CONFIG_GEOCODE = "geocode";
59 public static final String CONFIG_POSTAL_CODE = "postalCode";
60 public static final String CONFIG_IATA_CODE = "iataCode";
61 public static final String CONFIG_LANGUAGE = "language";
62 public static final String CONFIG_LANGUAGE_DEFAULT = "en-US";
63 public static final String CONFIG_PWS_STATION_ID = "pwsStationId";
65 // Used to sanitize the API key in the URL in debug log messages
66 public static final String REPLACE_API_KEY = "XXXXXXXXXXXXXXXXXXXXX";
68 // List of pwsObservations channel IDs
69 public static final String CH_PWS_HUMIDITY = "currentHumidity";
70 public static final String CH_PWS_PRECIPTATION_RATE = "currentPrecipitationRate";
71 public static final String CH_PWS_PRECIPITATION_TOTAL = "currentPrecipitationTotal";
72 public static final String CH_PWS_PRESSURE = "currentPressure";
73 public static final String CH_PWS_SOLAR_RADIATION = "currentSolarRadiation";
74 public static final String CH_PWS_TEMP = "currentTemperature";
75 public static final String CH_PWS_TEMP_DEW_POINT = "currentTemperatureDewPoint";
76 public static final String CH_PWS_TEMP_HEAT_INDEX = "currentTemperatureHeatIndex";
77 public static final String CH_PWS_TEMP_WIND_CHILL = "currentTemperatureWindChill";
78 public static final String CH_PWS_UV = "currentUv";
79 public static final String CH_PWS_WIND_DIRECTION = "currentWindDirection";
80 public static final String CH_PWS_WIND_SPEED = "currentWindSpeed";
81 public static final String CH_PWS_WIND_GUST = "currentWindSpeedGust";
82 public static final String CH_PWS_COUNTRY = "country";
83 public static final String CH_PWS_LOCATION = "location";
84 public static final String CH_PWS_ELEVATION = "elevation";
85 public static final String CH_PWS_NEIGHBORHOOD = "neighborhood";
86 public static final String CH_PWS_OBSERVATION_TIME_LOCAL = "observationTimeLocal";
87 public static final String CH_PWS_QC_STATUS = "qcStatus";
88 public static final String CH_PWS_SOFTWARE_TYPE = "softwareType";
89 public static final String CH_PWS_STATION_ID = "stationId";
91 // Channel group forecastDay
92 public static final String CH_GROUP_FORECAST_DAY = "forecastDay";
94 // List of forecastDay channel IDs
95 public static final String CH_DAY_OF_WEEK = "dayOfWeek";
96 public static final String CH_VALID_TIME_LOCAL = "validTimeLocal";
97 public static final String CH_EXPIRATION_TIME_LOCAL = "expirationTimeLocal";
98 public static final String CH_NARRATIVE = "narrative";
99 public static final String CH_TEMP_MIN = "temperatureMin";
100 public static final String CH_TEMP_MAX = "temperatureMax";
101 public static final String CH_PRECIP_RAIN = "precipitationRain";
102 public static final String CH_PRECIP_SNOW = "precipitationSnow";
104 // Channel group forecastDaypart
105 public static final String CH_GROUP_FORECAST_DAYPART_DAY = "Day";
106 public static final String CH_GROUP_FORECAST_DAYPART_NIGHT = "Night";
108 // List of forecastDaypart channel IDs
109 public static final String CH_DP_NAME = "daypartName";
110 public static final String CH_DP_DAY_OR_NIGHT = "dayOrNight";
111 public static final String CH_DP_NARRATIVE = "narrative";
112 public static final String CH_DP_WX_PHRASE_SHORT = "wxPhraseShort";
113 public static final String CH_DP_WX_PHRASE_LONG = "wxPhraseLong";
114 public static final String CH_DP_TEMP = "temperature";
115 public static final String CH_DP_TEMP_HEAT_INDEX = "temperatureHeatIndex";
116 public static final String CH_DP_TEMP_WIND_CHILL = "temperatureWindChill";
117 public static final String CH_DP_HUMIDITY = "relativeHumidity";
118 public static final String CH_DP_CLOUD_COVER = "cloudCover";
119 public static final String CH_DP_WIND_SPEED = "windSpeed";
120 public static final String CH_DP_WIND_DIR = "windDirection";
121 public static final String CH_DP_WIND_DIR_CARDINAL = "windDirectionCardinal";
122 public static final String CH_DP_WIND_PHRASE = "WindPhrase";
123 public static final String CH_DP_PRECIP_CHANCE = "precipitationChance";
124 public static final String CH_DP_PRECIP_TYPE = "precipitationType";
125 public static final String CH_DP_PRECIP_RAIN = "precipitationRain";
126 public static final String CH_DP_PRECIP_SNOW = "precipitationSnow";
127 public static final String CH_DP_SNOW_RANGE = "snowRange";
128 public static final String CH_DP_THUNDER_CATEGORY = "thunderCategory";
129 public static final String CH_DP_THUNDER_INDEX = "thunderIndex";
130 public static final String CH_DP_UV_DESCRIPTION = "uvDescription";
131 public static final String CH_DP_UV_INDEX = "uvIndex";
132 public static final String CH_DP_ICON_CODE = "iconCode";
133 public static final String CH_DP_ICON_CODE_EXTEND = "iconCodeExtend";
134 public static final String CH_DP_ICON_IMAGE = "iconImage";
135 public static final String CH_DP_QUALIFIER_PHRASE = "qualifierPhrase";
136 public static final String CH_DP_QUALIFIER_CODE = "qualifierCode";