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.ambientweather.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 AmbientWeatherBindingConstants} class defines common constants, which are
25 * used across the whole binding.
27 * @author Mark Hilbush - Initial contribution
30 public class AmbientWeatherBindingConstants {
32 private static final String BINDING_ID = "ambientweather";
35 public static final String THING_TYPE_BRIDGE = "bridge";
36 public static final ThingTypeUID UID_BRIDGE = new ThingTypeUID(BINDING_ID, THING_TYPE_BRIDGE);
37 public static final Set<ThingTypeUID> SUPPORTED_BRIDGE_THING_TYPES_UIDS = Collections
38 .unmodifiableSet(Stream.of(UID_BRIDGE).collect(Collectors.toSet()));
40 // WS-1400-IP series weather stations
41 public static final String THING_TYPE_WS1400IP = "ws1400ip";
42 public static final ThingTypeUID UID_WS1400IP = new ThingTypeUID(BINDING_ID, THING_TYPE_WS1400IP);
44 // WS-2902A series weather stations
45 public static final String THING_TYPE_WS2902A = "ws2902a";
46 public static final ThingTypeUID UID_WS2902A = new ThingTypeUID(BINDING_ID, THING_TYPE_WS2902A);
48 // WS-2902B series weather stations
49 public static final String THING_TYPE_WS2902B = "ws2902b";
50 public static final ThingTypeUID UID_WS2902B = new ThingTypeUID(BINDING_ID, THING_TYPE_WS2902B);
52 // WS-8482 weather station
53 public static final String THING_TYPE_WS8482 = "ws8482";
54 public static final ThingTypeUID UID_WS8482 = new ThingTypeUID(BINDING_ID, THING_TYPE_WS8482);
56 // WS-0900-IP series weather stations
57 public static final String THING_TYPE_WS0900IP = "ws0900ip";
58 public static final ThingTypeUID UID_WS0900IP = new ThingTypeUID(BINDING_ID, THING_TYPE_WS0900IP);
60 // WS-0265 weather station
61 public static final String THING_TYPE_WS0265 = "ws0265";
62 public static final ThingTypeUID UID_WS0265 = new ThingTypeUID(BINDING_ID, THING_TYPE_WS0265);
64 // Collection of weather station thing types
65 public static final Set<ThingTypeUID> SUPPORTED_STATION_THING_TYPES_UIDS = Collections
66 .unmodifiableSet(Stream.of(UID_WS1400IP, UID_WS2902A, UID_WS2902B, UID_WS8482, UID_WS0900IP, UID_WS0265)
67 .collect(Collectors.toSet()));
69 // Collection of all supported thing types
70 public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections.unmodifiableSet(
71 Stream.concat(SUPPORTED_BRIDGE_THING_TYPES_UIDS.stream(), SUPPORTED_STATION_THING_TYPES_UIDS.stream())
72 .collect(Collectors.toSet()));
74 // Channel groups for specific weather stations
75 public static final String CHGRP_WS1400IP = "weatherDataWs1400ip";
76 public static final String CHGRP_WS2902A = "weatherDataWs2902a";
77 public static final String CHGRP_WS2902B = "weatherDataWs2902b";
78 public static final String CHGRP_WS8482 = "weatherDataWs8482";
79 public static final String CHGRP_WS0900IP = "weatherDataWs0900ip";
80 public static final String CHGRP_WS0265 = "weatherDataWs0265";
82 // Channel groups used across weather station types
83 public static final String CHGRP_STATION = "station";
84 public static final String CHGRP_INDOOR_SENSOR = "indoorSensor";
85 public static final String CHGRP_REMOTE_SENSOR = "remoteSensor";
87 // Channels Ids for data returned by the ambientweather.net API
88 public static final String CH_NAME = "name";
89 public static final String CH_LOCATION = "location";
90 public static final String CH_BATTERY_INDICATOR = "batteryIndicator";
91 public static final String CH_OBSERVATION_TIME = "observationTime";
92 public static final String CH_TEMPERATURE = "temperature";
93 public static final String CH_FEELING_TEMPERATURE = "feelingTemperature";
94 public static final String CH_DEW_POINT = "dewPoint";
95 public static final String CH_HUMIDITY = "relativeHumidity";
96 public static final String CH_PRESSURE_ABSOLUTE = "pressureAbsolute";
97 public static final String CH_PRESSURE_RELATIVE = "pressureRelative";
98 public static final String CH_WIND_SPEED = "windSpeed";
99 public static final String CH_WIND_DIRECTION_DEGREES = "windDirectionDegrees";
100 public static final String CH_WIND_SPEED_MAX_DAILY = "windSpeedMaxDaily";
101 public static final String CH_WIND_GUST = "windGust";
102 public static final String CH_WIND_GUST_MAX_DAILY = "windGustMaxDaily";
103 public static final String CH_WIND_SPEED_AVG_2MIN = "windSpeedAvg2Minute";
104 public static final String CH_WIND_DIRECTION_AVG_2MIN = "windDirectionDegreesAvg2Min";
105 public static final String CH_WIND_SPEED_AVG_10MIN = "windSpeedAvg10Minute";
106 public static final String CH_WIND_DIRECTION_AVG_10MIN = "windDirectionDegreesAvg10Min";
107 public static final String CH_RAIN_HOURLY_RATE = "rainHourlyRate";
108 public static final String CH_RAIN_DAY = "rainDay";
109 public static final String CH_RAIN_WEEK = "rainWeek";
110 public static final String CH_RAIN_MONTH = "rainMonth";
111 public static final String CH_RAIN_YEAR = "rainYear";
112 public static final String CH_RAIN_TOTAL = "rainTotal";
113 public static final String CH_RAIN_EVENT = "rainEvent";
114 public static final String CH_RAIN_LAST_TIME = "rainLastTime";
115 public static final String CH_SOLAR_RADIATION = "solarRadiation";
116 public static final String CH_UV_INDEX = "uvIndex";
117 public static final String CH_CO2 = "co2";
118 public static final String CH_SOIL_TEMPERATURE = "soilTemperature";
119 public static final String CH_SOIL_MOISTURE = "soilMoisture";
120 public static final String CH_RELAY = "relay";
122 // Channel Ids for calculated channels
123 public static final String CH_PRESSURE_TREND = "pressureTrend";
124 public static final String CH_WIND_DIRECTION = "windDirection";
125 public static final String CH_UV_DANGER = "uvDanger";
126 public static final String CH_SOIL_MOISTURE_LEVEL = "soilMoistureLevel";
128 // Bridge configuration parameters
129 public static final String CONFIG_API_KEY = "apiKey";
130 public static final String CONFIG_APPLICATION_KEY = "applicationKey";
132 // Weather station configuration parameters
133 public static final String CONFIG_MAC_ADDRESS = "macAddress";