2020import org .openhab .core .thing .ThingTypeUID ;
2121
2222/**
23- * The {@link TibberBindingConstants} class defines common constants, which are
24- * used across the whole binding.
23+ * The {@link TibberBindingConstants} class defines common constants, which are used across the whole binding.
2524 *
2625 * @author Stian Kjoglum - Initial contribution
26+ * @author Bernd Weymann - Enhance used constants
2727 */
2828@ NonNullByDefault
2929public class TibberBindingConstants {
@@ -34,55 +34,89 @@ public class TibberBindingConstants {
3434 // Tibber base URL for queries and mutations
3535 public static final String BASE_URL = "https://api.tibber.com/v1-beta/gql" ;
3636
37- // Tibber driver version
38- public static final String TIBBER_DRIVER = "com.tibber/1.8.3" ;
39-
4037 // List of all Thing Type UIDs
4138 public static final ThingTypeUID TIBBER_THING_TYPE = new ThingTypeUID (BINDING_ID , "tibberapi" );
4239
43- // List of all Channel ids - Used for queries
44- public static final String CURRENT_TOTAL = "current_total" ;
45- public static final String CURRENT_STARTSAT = "current_startsAt" ;
46- public static final String CURRENT_LEVEL = "current_level" ;
47-
48- public static final String TODAY_PRICES = "today_prices" ;
49- public static final String TOMORROW_PRICES = "tomorrow_prices" ;
50- public static final String DAILY_FROM = "daily_from" ;
51- public static final String DAILY_TO = "daily_to" ;
52- public static final String DAILY_COST = "daily_cost" ;
53- public static final String DAILY_CONSUMPTION = "daily_consumption" ;
54- public static final String HOURLY_FROM = "hourly_from" ;
55- public static final String HOURLY_TO = "hourly_to" ;
56- public static final String HOURLY_COST = "hourly_cost" ;
57- public static final String HOURLY_CONSUMPTION = "hourly_consumption" ;
58- public static final String LIVE_TIMESTAMP = "live_timestamp" ;
59- public static final String LIVE_POWER = "live_power" ;
60- public static final String LIVE_LASTMETERCONSUMPTION = "live_lastMeterConsumption" ;
61- public static final String LIVE_LASTMETERPRODUCTION = "live_lastMeterProduction" ;
62- public static final String LIVE_ACCUMULATEDCONSUMPTION = "live_accumulatedConsumption" ;
63- public static final String LIVE_ACCUMULATEDCONSUMPTION_THIS_HOUR = "live_accumulatedConsumptionThisHour" ;
64- public static final String LIVE_ACCUMULATEDCOST = "live_accumulatedCost" ;
65- public static final String LIVE_ACCUMULATEREWARD = "live_accumulatedReward" ;
66- public static final String LIVE_CURRENCY = "live_currency" ;
67- public static final String LIVE_MINPOWER = "live_minPower" ;
68- public static final String LIVE_AVERAGEPOWER = "live_averagePower" ;
69- public static final String LIVE_MAXPOWER = "live_maxPower" ;
70- public static final String LIVE_VOLTAGE1 = "live_voltage1" ;
71- public static final String LIVE_VOLTAGE2 = "live_voltage2" ;
72- public static final String LIVE_VOLTAGE3 = "live_voltage3" ;
73- public static final String LIVE_CURRENT1 = "live_current1" ;
74- public static final String LIVE_CURRENT2 = "live_current2" ;
75- public static final String LIVE_CURRENT3 = "live_current3" ;
76- public static final String LIVE_POWERPRODUCTION = "live_powerProduction" ;
77- public static final String LIVE_ACCUMULATEDPRODUCTION = "live_accumulatedProduction" ;
78- public static final String LIVE_ACCUMULATEDPRODUCTION_THIS_HOUR = "live_accumulatedProductionThisHour" ;
79- public static final String LIVE_MINPOWERPRODUCTION = "live_minPowerproduction" ;
80- public static final String LIVE_MAXPOWERPRODUCTION = "live_maxPowerproduction" ;
81-
82- // Lift of all config ids
83- public static final String CONFIG_BRIDGE_TOKEN = "token" ;
84- public static final String CONFIG_BRIDGE_REFRESH = "refresh" ;
40+ // Channel groups
41+ public static final String CHANNEL_GROUP_PRICE = "price" ;
42+ public static final String CHANNEL_GROUP_LIVE = "live" ;
43+ public static final String CHANNEL_GROUP_STATISTICS = "statistics" ;
44+
45+ // price channels
46+ public static final String CHANNEL_SPOT_PRICE = "spot-price" ;
47+ public static final String CHANNEL_PRICE_LEVELS = "level" ;
48+ public static final String CHANNEL_AVERAGE = "average" ;
49+
50+ // live channels
51+ public static final String CHANNEL_CONSUMPTION = "consumption" ;
52+ public static final String CHANNEL_MIN_COSNUMPTION = "minimum-consumption" ;
53+ public static final String CHANNEL_PEAK_CONSUMPTION = "peak-consumption" ;
54+ public static final String CHANNEL_PRODUCTION = "production" ;
55+ public static final String CHANNEL_MIN_PRODUCTION = "minimum-production" ;
56+ public static final String CHANNEL_PEAK_PRODUCTION = "peak-production" ;
57+ public static final String CHANNEL_VOLTAGE_1 = "voltage1" ;
58+ public static final String CHANNEL_VOLTAGE_2 = "voltage2" ;
59+ public static final String CHANNEL_VOLTAGE_3 = "voltage3" ;
60+ public static final String CHANNEL_CURRENT_1 = "current1" ;
61+ public static final String CHANNEL_CURRENT_2 = "current2" ;
62+ public static final String CHANNEL_CURRENT_3 = "current3" ;
63+
64+ // statistics channels
65+ public static final String CHANNEL_TOTAL_CONSUMPTION = "total-consumption" ;
66+ public static final String CHANNEL_DAILY_CONSUMPTION = "daily-consumption" ;
67+ public static final String CHANNEL_DAILY_COST = "daily-cost" ;
68+ public static final String CHANNEL_LAST_HOUR_CONSUMPTION = "last-hour-consumption" ;
69+ public static final String CHANNEL_TOTAL_PRODUCTION = "total-production" ;
70+ public static final String CHANNEL_DAILY_PRODUCTION = "daily-production" ;
71+ public static final String CHANNEL_LAST_HOUR_PRODUCTION = "last-hour-production" ;
72+
73+ public static final String CURRENCY_QUERY_RESOURCE_PATH = "/graphql/currency.graphql" ;
74+ public static final String PRICE_QUERY_RESOURCE_PATH = "/graphql/prices.graphql" ;
75+ public static final String REALTIME_QUERY_RESOURCE_PATH = "/graphql/realtime.graphql" ;
76+ public static final String WEBSOCKET_SUBSCRIPTION_RESOURCE_PATH = "/graphql/websocket.graphql" ;
77+
78+ public static final String SCHEDULE_CONTAINER = "{\" size\" :%s, \" cost\" :%s, \" schedule\" :%s}" ;
79+ public static final String QUERY_CONTAINER = "{\" query\" :\" %s\" }" ;
80+ public static final String WEBSOCKET_URL_QUERY = "{\" query\" :\" {viewer {websocketSubscriptionUrl }}\" }" ;
81+ public static final String CONNECT_MESSAGE = "{\" type\" :\" connection_init\" , \" payload\" :{\" token\" :\" %s\" }}" ;
82+ public static final String DISCONNECT_MESSAGE = "{\" type\" :\" connection_terminate\" ,\" payload\" :null}" ;
83+ public static final String SUBSCRIPTION_MESSAGE = "{\" id\" :\" 1\" ,\" type\" :\" subscribe\" ,\" payload\" :{\" variables\" :{},\" extensions\" :{},\" operationName\" :null,\" query\" :\" subscription { liveMeasurement(homeId:\\ \" %s\\ \" ) { timestamp power lastMeterConsumption lastMeterProduction accumulatedConsumption accumulatedConsumptionLastHour accumulatedCost currency minPower averagePower maxPower voltagePhase1 voltagePhase2 voltagePhase3 currentL1 currentL2 currentL3 powerProduction accumulatedProduction accumulatedProductionLastHour minPowerProduction maxPowerProduction }}\" }}" ;
84+
85+ public static final String [] CURRENCY_QUERY_JSON_PATH = new String [] { "data" , "viewer" , "home" ,
86+ "currentSubscription" , "priceInfo" , "current" };
87+ public static final String [] PRICE_INFO_JSON_PATH = new String [] { "data" , "viewer" , "home" , "currentSubscription" ,
88+ "priceInfo" };
89+ public static final String [] REALTIME_FEATURE_JSON_PATH = new String [] { "data" , "viewer" , "home" , "features" };
90+ public static final String [] SOCKET_MESSAGE_JSON_PATH = new String [] { "payload" , "data" , "liveMeasurement" };
91+
92+ public static final String EMPTY_VALUE = "" ;
93+ public static final String NULL_VALUE = "null-value" ;
94+
95+ public static final String CRON_DAILY_AT = "30 0 %s ? * * *" ;
96+
97+ public static final String JSON_DATA = "data" ;
98+ public static final String JSON_VIEWER = "viewer" ;
99+ public static final String JSON_HOME = "home" ;
100+ public static final String JSON_SUBSRCIPTION = "currentSubscription" ;
101+ public static final String JSON_DAILY = "daily" ;
102+ public static final String JSON_HOURLY = "hourly" ;
103+ public static final String JSON_NODES = "nodes" ;
104+
105+ public static final String PRICE_LEVEL_VERY_CHEAP = "very_cheap" ;
106+ public static final String PRICE_LEVEL_CHEAP = "cheap" ;
107+ public static final String PRICE_LEVEL_NORMAL = "normal" ;
108+ public static final String PRICE_LEVEL_EXPENSIVE = "expensive" ;
109+ public static final String PRICE_LEVEL_VERY_EXPENSIVE = "very_expensive" ;
85110
86111 public static final Set <ThingTypeUID > SUPPORTED_THING_TYPES_UIDS = Stream .of (TIBBER_THING_TYPE )
87112 .collect (Collectors .toSet ());
113+
114+ // parameter keys
115+ public static final String PARAM_EARLIEST_START = "earliestStart" ;
116+ public static final String PARAM_LATEST_END = "latestEnd" ;
117+ public static final String PARAM_ASCENDING = "ascending" ;
118+ public static final String PARAM_POWER = "power" ;
119+ public static final String PARAM_DURATION = "duration" ;
120+ public static final String PARAM_CURVE = "curve" ;
121+ public static final String PARAM_TIMESTAMP = "timestamp" ;
88122}
0 commit comments