]> git.basschouten.com Git - openhab-addons.git/blob
3275e15e200be2e8b5fe29d7863f31a067c41d39
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.smhi.internal;
14
15 import java.math.BigDecimal;
16 import java.util.List;
17
18 import org.eclipse.jdt.annotation.NonNullByDefault;
19 import org.openhab.core.thing.ThingTypeUID;
20
21 /**
22  * The {@link SmhiBindingConstants} class defines common constants, which are
23  * used across the whole binding.
24  *
25  * @author Anders Alfredsson - Initial contribution
26  */
27 @NonNullByDefault
28 public class SmhiBindingConstants {
29
30     public static final String BINDING_ID = "smhi";
31
32     // List of all Thing Type UIDs
33     public static final ThingTypeUID THING_TYPE_FORECAST = new ThingTypeUID(BINDING_ID, "forecast");
34
35     // Smhi's ids for parameters, also used as channel ids
36     public static final String PRESSURE = "msl";
37     public static final String TEMPERATURE = "t";
38     public static final String VISIBILITY = "vis";
39     public static final String WIND_DIRECTION = "wd";
40     public static final String WIND_SPEED = "ws";
41     public static final String RELATIVE_HUMIDITY = "r";
42     public static final String THUNDER_PROBABILITY = "tstm";
43     public static final String TOTAL_CLOUD_COVER = "tcc_mean";
44     public static final String LOW_CLOUD_COVER = "lcc_mean";
45     public static final String MEDIUM_CLOUD_COVER = "mcc_mean";
46     public static final String HIGH_CLOUD_COVER = "hcc_mean";
47     public static final String GUST = "gust";
48     public static final String PRECIPITATION_MIN = "pmin";
49     public static final String PRECIPITATION_MAX = "pmax";
50     public static final String PRECIPITATION_MEAN = "pmean";
51     public static final String PRECIPITATION_MEDIAN = "pmedian";
52     public static final String PERCENT_FROZEN = "spp";
53     public static final String PRECIPITATION_CATEGORY = "pcat";
54     public static final String WEATHER_SYMBOL = "wsymb2";
55
56     public static final String TEMPERATURE_MAX = "tmax";
57     public static final String TEMPERATURE_MIN = "tmin";
58     public static final String WIND_MAX = "wsmax";
59     public static final String WIND_MIN = "wsmin";
60     public static final String PRECIPITATION_TOTAL = "ptotal";
61
62     public static final List<String> HOURLY_CHANNELS = List.of(PRESSURE, TEMPERATURE, VISIBILITY, WIND_DIRECTION,
63             WIND_SPEED, RELATIVE_HUMIDITY, THUNDER_PROBABILITY, TOTAL_CLOUD_COVER, LOW_CLOUD_COVER, MEDIUM_CLOUD_COVER,
64             HIGH_CLOUD_COVER, GUST, PRECIPITATION_MIN, PRECIPITATION_MAX, PRECIPITATION_MEAN, PRECIPITATION_MEDIAN,
65             PERCENT_FROZEN, PRECIPITATION_CATEGORY, WEATHER_SYMBOL);
66
67     public static final List<String> DAILY_CHANNELS = List.of(PRESSURE, TEMPERATURE, TEMPERATURE_MAX, TEMPERATURE_MIN,
68             VISIBILITY, WIND_DIRECTION, WIND_SPEED, WIND_MAX, WIND_MIN, RELATIVE_HUMIDITY, THUNDER_PROBABILITY,
69             TOTAL_CLOUD_COVER, LOW_CLOUD_COVER, MEDIUM_CLOUD_COVER, HIGH_CLOUD_COVER, GUST, PRECIPITATION_MIN,
70             PRECIPITATION_MAX, PRECIPITATION_TOTAL, PRECIPITATION_MEAN, PRECIPITATION_MEDIAN, PERCENT_FROZEN,
71             PRECIPITATION_CATEGORY, WEATHER_SYMBOL);
72
73     public static final String BASE_URL = "https://opendata-download-metfcst.smhi.se/api/category/pmp3g/version/2/";
74     public static final String APPROVED_TIME_URL = BASE_URL + "approvedtime.json";
75     public static final String POINT_FORECAST_URL = BASE_URL + "geotype/point/lon/%.6f/lat/%.6f/data.json";
76
77     public static final BigDecimal OCTAS_TO_PERCENT = BigDecimal.valueOf(12.5);
78 }