]> git.basschouten.com Git - openhab-addons.git/blob
62f5d0f90b01f7b8490cc5f7ba0fa0a201f3bbf1
[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.tibber.internal.handler;
14
15 import java.io.ByteArrayInputStream;
16 import java.io.InputStream;
17 import java.nio.charset.StandardCharsets;
18
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20
21 /**
22  * The {@link TibberPriceConsumptionHandler} class contains fields mapping price info parameters.
23  *
24  * @author Stian Kjoglum - Initial contribution
25  */
26 @NonNullByDefault
27 public class TibberPriceConsumptionHandler {
28
29     public InputStream connectionInputStream(String homeId) {
30         String connectionquery = "{\"query\": \"{viewer {home (id: \\\"" + homeId + "\\\") {id }}}\"}";
31         return new ByteArrayInputStream(connectionquery.getBytes(StandardCharsets.UTF_8));
32     }
33
34     public InputStream getInputStream(String homeId) {
35         String query = "{\"query\": \"{viewer {home (id: \\\"" + homeId
36                 + "\\\") {currentSubscription {priceInfo {current {total startsAt level } tomorrow { startsAt total } today { startsAt total }}} daily: consumption(resolution: DAILY, last: 1) {nodes {from to cost unitPrice consumption consumptionUnit}} hourly: consumption(resolution: HOURLY, last: 1) {nodes {from to cost unitPrice consumption consumptionUnit}}}}}\"}";
37         return new ByteArrayInputStream(query.getBytes(StandardCharsets.UTF_8));
38     }
39
40     public InputStream getRealtimeInputStream(String homeId) {
41         String realtimeenabledquery = "{\"query\": \"{viewer {home (id: \\\"" + homeId
42                 + "\\\") {features {realTimeConsumptionEnabled }}}}\"}";
43         return new ByteArrayInputStream(realtimeenabledquery.getBytes(StandardCharsets.UTF_8));
44     }
45
46     public InputStream getWebsocketUrl() {
47         String websocketquery = "{\"query\": \"{viewer {websocketSubscriptionUrl }}\"}";
48         return new ByteArrayInputStream(websocketquery.getBytes(StandardCharsets.UTF_8));
49     }
50 }