mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 15:11:59 +01:00
[Tibber] Added "today" API channel (#14236)
* Added "today" API channel Signed-off-by: Markus Eckhardt <github@familie-eckhardt.eu>
This commit is contained in:
parent
4927585f25
commit
8ee8a1e2ed
@ -33,6 +33,7 @@ Tibber Default:
|
||||
| Hourly From | Timestamp (hourly from) | True |
|
||||
| Hourly To | Timestamp (hourly to) | True |
|
||||
| Tomorrow prices | JSON array of tomorrow's prices. See below for example. | True |
|
||||
| Today prices | JSON array of today's prices. See below for example. | True |
|
||||
|
||||
Tibber Pulse (optional):
|
||||
|
||||
@ -98,9 +99,9 @@ Retrieve personal token and HomeId from description above, and initialize/start
|
||||
|
||||
Tibber API will be auto discovered if provided input is correct.
|
||||
|
||||
## Tomorrow prices
|
||||
## Tomorrow and Today prices
|
||||
|
||||
Example of tomorrow prices data structure - an array of tuples:
|
||||
Example of tomorrow and today prices data structure - an array of tuples:
|
||||
|
||||
```json
|
||||
[
|
||||
@ -232,7 +233,7 @@ Number:Energy TibberAPILiveAccumulatedConsumption "Accumulated Co
|
||||
Number:Dimensionless TibberAPILiveAccumulatedCost "Accumulated Cost [%.2f NOK]" {channel="tibber:tibberapi:7cfae492:live_accumulatedCost"}
|
||||
String TibberAPILiveCurrency "Currency" {channel="tibber:tibberapi:7cfae492:live_currency"}
|
||||
Number:Power TibberAPILiveMinPower "Min Power Consumption [%.0f W]" {channel="tibber:tibberapi:7cfae492:live_minPower"}
|
||||
Number:Power TibberAPILiveAveragePower "Average Power Consumption [%.0f W]" {channel="tibber:tibberapi:7cfae492:live_averagePower"}
|
||||
Number:Power TibberAPILiveAveragePower "Average Power Consumption [%.0f W]" {channel="tibber:tibberapi:7cfae492:live_averagePower"}
|
||||
Number:Power TibberAPILiveMaxPower "Max Power Consumption [%.0f W]" {channel="tibber:tibberapi:7cfae492:live_maxPower"}
|
||||
Number:ElectricPotential TibberAPILiveVoltage1 "Live Voltage Phase 1 [%.0 V]" {channel="tibber:tibberapi:7cfae492:live_voltage1"}
|
||||
Number:ElectricPotential TibberAPILiveVoltage2 "Live Voltage Phase 2 [%.0 V]" {channel="tibber:tibberapi:7cfae492:live_voltage2"}
|
||||
@ -240,9 +241,10 @@ Number:ElectricPotential TibberAPILiveVoltage3 "Live Voltage P
|
||||
Number:ElectricCurrent TibberAPILiveCurrent1 "Live Current Phase 1 [%.1 A]" {channel="tibber:tibberapi:7cfae492:live_current1"}
|
||||
Number:ElectricCurrent TibberAPILiveCurrent2 "Live Current Phase 2 [%.1 A]" {channel="tibber:tibberapi:7cfae492:live_current2"}
|
||||
Number:ElectricCurrent TibberAPILiveCurrent3 "Live Current Phase 3 [%.1 A]" {channel="tibber:tibberapi:7cfae492:live_current3"}
|
||||
Number:Power TibberAPILivePowerProduction "Live Power Production [%.0f W]" {channel="tibber:tibberapi:7cfae492:live_powerProduction"}
|
||||
Number:Power TibberAPILiveMinPowerproduction "Min Power Production [%.0f W]" {channel="tibber:tibberapi:7cfae492:live_minPowerproduction"}
|
||||
Number:Power TibberAPILiveMaxPowerproduction "Max Power Production [%.0f W]" {channel="tibber:tibberapi:7cfae492:live_maxPowerproduction"}
|
||||
Number:Power TibberAPILivePowerProduction "Live Power Production [%.0f W]" {channel="tibber:tibberapi:7cfae492:live_powerProduction"}
|
||||
Number:Power TibberAPILiveMinPowerproduction "Min Power Production [%.0f W]" {channel="tibber:tibberapi:7cfae492:live_minPowerproduction"}
|
||||
Number:Power TibberAPILiveMaxPowerproduction "Max Power Production [%.0f W]" {channel="tibber:tibberapi:7cfae492:live_maxPowerproduction"}
|
||||
Number:Energy TibberAPILiveAccumulatedProduction "Accumulated Production [%.2f kWh]" {channel="tibber:tibberapi:7cfae492:live_accumulatedProduction"}
|
||||
String TibberAPITomorrowPrices "Price per hour tomorrow JSON array" {channel="tibber:tibberapi:7cfae492:tomorrow_prices"}
|
||||
String TibberAPITodayPrices "Price per hour today JSON array" {channel="tibber:tibberapi:7cfae492:today_prices"}
|
||||
```
|
||||
|
@ -45,6 +45,7 @@ public class TibberBindingConstants {
|
||||
public static final String CURRENT_STARTSAT = "current_startsAt";
|
||||
public static final String CURRENT_LEVEL = "current_level";
|
||||
|
||||
public static final String TODAY_PRICES = "today_prices";
|
||||
public static final String TOMORROW_PRICES = "tomorrow_prices";
|
||||
public static final String DAILY_FROM = "daily_from";
|
||||
public static final String DAILY_TO = "daily_to";
|
||||
|
@ -187,6 +187,10 @@ public class TibberHandler extends BaseThingHandler {
|
||||
.getAsJsonObject("home").getAsJsonObject("currentSubscription").getAsJsonObject("priceInfo")
|
||||
.getAsJsonArray("tomorrow");
|
||||
updateState(TOMORROW_PRICES, new StringType(tomorrow.toString()));
|
||||
JsonArray today = rootJsonObject.getAsJsonObject("data").getAsJsonObject("viewer")
|
||||
.getAsJsonObject("home").getAsJsonObject("currentSubscription").getAsJsonObject("priceInfo")
|
||||
.getAsJsonArray("today");
|
||||
updateState(TODAY_PRICES, new StringType(today.toString()));
|
||||
} catch (JsonSyntaxException e) {
|
||||
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR,
|
||||
"Error communicating with Tibber API: " + e.getMessage());
|
||||
|
@ -33,7 +33,7 @@ public class TibberPriceConsumptionHandler {
|
||||
|
||||
public InputStream getInputStream(String homeId) {
|
||||
String query = "{\"query\": \"{viewer {home (id: \\\"" + homeId
|
||||
+ "\\\") {currentSubscription {priceInfo {current {total startsAt level } tomorrow { 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}}}}}\"}";
|
||||
+ "\\\") {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}}}}}\"}";
|
||||
return new ByteArrayInputStream(query.getBytes(StandardCharsets.UTF_8));
|
||||
}
|
||||
|
||||
|
@ -40,4 +40,6 @@ channel-type.tibber.timestamp.description = Timestamp for measurement/change
|
||||
channel-type.tibber.voltage.label = Voltage
|
||||
channel-type.tibber.voltage.description = Voltage on given Phase
|
||||
channel-type.tibber.tomorrow_prices.label = Prices for tomorrow as a JSON array
|
||||
channel-type.tibber.tomorrow_prices.description = JSON array of tuples startsAt,total, e.g. {["startsAt": "2022-09-10T00:00:00+02:00", "total": 5.332}, {"startsAt": ...}]}. See binding documantation for full example.
|
||||
channel-type.tibber.tomorrow_prices.description = JSON array of tuples startsAt,total, e.g. {["startsAt": "2022-09-10T00:00:00+02:00", "total": 5.332}, {"startsAt": ...}]}. See binding documentation for full example.
|
||||
channel-type.tibber.today_prices.label = Prices for today as a JSON array
|
||||
channel-type.tibber.today_prices.description = JSON array of tuples startsAt,total, e.g. {["startsAt": "2022-09-10T00:00:00+02:00", "total": 5.332}, {"startsAt": ...}]}. See binding documentation for full example.
|
||||
|
@ -12,6 +12,7 @@
|
||||
<channel id="current_startsAt" typeId="timestamp"/>
|
||||
<channel id="current_level" typeId="level"/>
|
||||
<channel id="tomorrow_prices" typeId="tomorrow_prices"/>
|
||||
<channel id="today_prices" typeId="today_prices"/>
|
||||
<channel id="daily_from" typeId="timestamp"/>
|
||||
<channel id="daily_to" typeId="timestamp"/>
|
||||
<channel id="daily_cost" typeId="cost"/>
|
||||
@ -120,6 +121,12 @@
|
||||
<item-type>String</item-type>
|
||||
<label>Prices for tomorrow as a JSON array</label>
|
||||
<description>JSON array of tuples startsAt,total, e.g. {["startsAt": "2022-09-10T00:00:00+02:00", "total": 5.332},
|
||||
{"startsAt": ...}]. See binding documantation for full example.</description>
|
||||
{"startsAt": ...}]. See binding documentation for full example.</description>
|
||||
</channel-type>
|
||||
<channel-type id="today_prices" advanced="true">
|
||||
<item-type>String</item-type>
|
||||
<label>Prices for today as a JSON array</label>
|
||||
<description>JSON array of tuples startsAt,total, e.g. {["startsAt": "2022-09-10T00:00:00+02:00", "total": 5.332},
|
||||
{"startsAt": ...}]. See binding documentation for full example.</description>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
||||
|
Loading…
Reference in New Issue
Block a user