diff --git a/.ruby-version b/.ruby-version index a0891f5..9c25013 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.3.4 +3.3.6 diff --git a/Dockerfile b/Dockerfile index 29e26f6..f6d2594 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:3.3.4-alpine AS builder +FROM ruby:3.3.6-alpine AS builder RUN apk add --no-cache build-base WORKDIR /tibber-collector @@ -8,7 +8,7 @@ RUN bundle config --local frozen 1 && \ bundle install -j4 --retry 3 && \ bundle clean --force -FROM ruby:3.3.4-alpine +FROM ruby:3.3.6-alpine LABEL maintainer="georg@ledermann.dev" # Add tzdata to get correct timezone diff --git a/Gemfile.lock b/Gemfile.lock index 1750cc1..a7272b1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,8 +1,9 @@ GEM remote: https://rubygems.org/ specs: - activesupport (7.2.1) + activesupport (8.0.0) base64 + benchmark (>= 0.3) bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) @@ -12,10 +13,12 @@ GEM minitest (>= 5.1) securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) ast (2.4.2) base64 (0.2.0) + benchmark (0.4.0) bigdecimal (3.1.8) climate_control (1.2.0) concurrent-ruby (1.3.4) @@ -25,27 +28,27 @@ GEM rexml csv (3.3.0) docile (1.4.1) - dotenv (3.1.2) + dotenv (3.1.4) drb (2.2.1) fiber-storage (1.0.0) - graphql (2.3.14) + graphql (2.4.2) base64 fiber-storage graphql-client (0.23.0) activesupport (>= 3.0) graphql (>= 1.13.0) hashdiff (1.1.1) - i18n (1.14.5) + i18n (1.14.6) concurrent-ruby (~> 1.0) influxdb-client (3.1.0) - json (2.7.2) + json (2.8.1) language_server-protocol (3.17.0.3) - logger (1.6.0) + logger (1.6.1) minitest (5.25.1) minitest-silence (0.2.4) minitest (~> 5.12) parallel (1.26.3) - parser (3.3.4.2) + parser (3.3.6.0) ast (~> 2.4.1) racc public_suffix (6.0.1) @@ -53,27 +56,25 @@ GEM rainbow (3.1.1) rake (13.2.1) regexp_parser (2.9.2) - rexml (3.3.6) - strscan - rubocop (1.65.1) + rexml (3.3.9) + rubocop (1.68.0) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.4, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.31.1, < 2.0) + rubocop-ast (>= 1.32.2, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.32.1) + rubocop-ast (1.34.1) parser (>= 3.3.1.0) rubocop-graphql (1.5.4) rubocop (>= 1.50, < 2) - rubocop-minitest (0.35.1) + rubocop-minitest (0.36.0) rubocop (>= 1.61, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) - rubocop-performance (1.21.1) + rubocop-performance (1.22.1) rubocop (>= 1.48.1, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) rubocop-rake (0.6.0) @@ -84,15 +85,15 @@ GEM docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) + simplecov-html (0.13.1) simplecov_json_formatter (0.1.4) - strscan (3.1.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (2.5.0) + unicode-display_width (2.6.0) + uri (1.0.1) vcr (6.3.1) base64 - webmock (3.23.1) + webmock (3.24.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) @@ -120,4 +121,4 @@ DEPENDENCIES webmock BUNDLED WITH - 2.5.18 + 2.5.23 diff --git a/schema.json b/schema.json index 8051152..34cd165 100644 --- a/schema.json +++ b/schema.json @@ -167,7 +167,7 @@ }, { "name": "mobile", - "description": "The mobile phone no of the corresponding entity", + "description": "The mobile phone number of the corresponding entity", "args": [ ], @@ -212,7 +212,7 @@ }, { "name": "firstName", - "description": "First/Christian name of the entity", + "description": "First/Given name of the entity", "args": [ ], @@ -226,7 +226,7 @@ }, { "name": "isCompany", - "description": "'true' if the entity is a company", + "description": "True if the entity is a company", "args": [ ], @@ -375,7 +375,7 @@ "fields": [ { "name": "endCursor", - "description": "The global ID of the last element in the list", + "description": "The global ID of the last element in the page", "args": [ ], @@ -417,7 +417,7 @@ }, { "name": "startCursor", - "description": "The global ID of the first element in the list", + "description": "The global ID of the first element in the page", "args": [ ], @@ -431,7 +431,7 @@ }, { "name": "count", - "description": "The number of elements in the list", + "description": "The number of elements in the page", "args": [ ], @@ -556,7 +556,7 @@ "fields": [ { "name": "endCursor", - "description": "The global ID of the last element in the list", + "description": "The global ID of the last element in the page", "args": [ ], @@ -598,7 +598,7 @@ }, { "name": "startCursor", - "description": "The global ID of the first element in the list", + "description": "The global ID of the first element in the page", "args": [ ], @@ -612,7 +612,7 @@ }, { "name": "count", - "description": "The number of elements in the list", + "description": "The number of elements in the page", "args": [ ], @@ -807,31 +807,31 @@ "enumValues": [ { "name": "NORMAL", - "description": "The price is greater than 90 % and smaller than 115 % compared to average price.", + "description": "The price is greater than 90 % and less than 115 % compared to average price", "isDeprecated": false, "deprecationReason": null }, { "name": "CHEAP", - "description": "The price is greater than 60 % and smaller or equal to 90 % compared to average price.", + "description": "The price is greater than 60 % and less or equal to 90 % compared to average price", "isDeprecated": false, "deprecationReason": null }, { "name": "VERY_CHEAP", - "description": "The price is smaller or equal to 60 % compared to average price.", + "description": "The price is smaller or equal to 60 % compared to average price", "isDeprecated": false, "deprecationReason": null }, { "name": "EXPENSIVE", - "description": "The price is greater or equal to 115 % and smaller than 140 % compared to average price.", + "description": "The price is greater or equal to 115 % and less than 140 % compared to average price", "isDeprecated": false, "deprecationReason": null }, { "name": "VERY_EXPENSIVE", - "description": "The price is greater or equal to 140 % compared to average price.", + "description": "The price is greater or equal to 140 % compared to average price", "isDeprecated": false, "deprecationReason": null } @@ -1328,7 +1328,7 @@ }, { "name": "range", - "description": "Range of prices relative to before/after arguments", + "description": "Range of prices, optionally relative to `before`/`after` arguments. Capped at 744 items (31 days) for resolution HOURLY, and 31 items for resolution DAILY. If you need to fetch a longer interval, perform multiple requests and take advantage of the `pageInfo` data. Do note that prices never change, so store already fetched historical prices locally; if you can use `today`/`tomorrow` instead, use that since the API can serve this data faster and in a more reliable way.", "args": [ { "name": "resolution", @@ -1346,7 +1346,7 @@ }, { "name": "first", - "description": "Take the `n` first results from cursor. Cannot be used in conjunction with `last`", + "description": "Take the `n` first results from cursor. Cannot be used in conjunction with `last`. Limit count: 744 (HOURLY), 31 (DAILY).", "type": { "kind": "SCALAR", "name": "Int", @@ -1356,7 +1356,7 @@ }, { "name": "last", - "description": "Take the `n` last results from cursor. Cannot be used in conjunction with `first`", + "description": "Take the `n` last results from cursor. Cannot be used in conjunction with `first`. Limit count: 744 (HOURLY), 31 (DAILY).", "type": { "kind": "SCALAR", "name": "Int", @@ -1366,7 +1366,7 @@ }, { "name": "before", - "description": "Base64-encoded ISO8601 date/time cursor position. Cannot be used in conjunction with `after`", + "description": "Base64-encoded ISO8601 date/time cursor position. Cannot be used in conjunction with `after.` Has no influence when `first` is used.", "type": { "kind": "SCALAR", "name": "String", @@ -1376,7 +1376,7 @@ }, { "name": "after", - "description": "Base64-encoded ISO8601 date/time cursor position. Cannot be used in conjunction with `before`", + "description": "Base64-encoded ISO8601 date/time cursor position. Cannot be used in conjunction with `before`. Has no influence when `last` is used.", "type": { "kind": "SCALAR", "name": "String", @@ -1909,7 +1909,7 @@ "ofType": null }, "isDeprecated": true, - "deprecationReason": "no longer available." + "deprecationReason": "no longer available" }, { "name": "priceInfo", @@ -3048,7 +3048,7 @@ }, { "name": "consumption", - "description": "Consumption connection", + "description": "Consumption connection. Capped at 744 items (31 days) for resolution HOURLY, 31 items for DAILY, 52 items for WEEKLY, 12 items for MONTHLY and 1 for ANNUAL. If you need to fetch a longer interval, perform multiple requests and take advantage of the `pageInfo` data. Do note that this data is not updated in real-time, so try not to fetch this continually if there is no need to; and try to cache/store historical data locally.", "args": [ { "name": "resolution", @@ -3066,7 +3066,7 @@ }, { "name": "first", - "description": "Take the `n` first results from cursor. Cannot be used in conjunction with `last`", + "description": "Take the `n` first results from cursor. Cannot be used in conjunction with `last`. Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).", "type": { "kind": "SCALAR", "name": "Int", @@ -3076,7 +3076,7 @@ }, { "name": "last", - "description": "Take the `n` last results from cursor. Cannot be used in conjunction with `first`", + "description": "Take the `n` last results from cursor. Cannot be used in conjunction with `first`. Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).", "type": { "kind": "SCALAR", "name": "Int", @@ -3086,7 +3086,7 @@ }, { "name": "before", - "description": "Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `after`", + "description": "Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `after`. Has no influence when `first` is used.", "type": { "kind": "SCALAR", "name": "String", @@ -3096,7 +3096,7 @@ }, { "name": "after", - "description": "Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `before`", + "description": "Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `before`. Has no influence when `last` is used.", "type": { "kind": "SCALAR", "name": "String", @@ -3125,7 +3125,7 @@ }, { "name": "production", - "description": "Production connection", + "description": "Production connection. Capped at 744 items (31 days) for resolution HOURLY, 31 items for DAILY, 52 items for WEEKLY, 12 items for MONTHLY and 1 for ANNUAL. If you need to fetch a longer interval, perform multiple requests and take advantage of the `pageInfo` data. Do note that this data is not updated in real-time, so try not to fetch this continually if there is no need to; and try to cache/store historical data locally.", "args": [ { "name": "resolution", @@ -3143,7 +3143,7 @@ }, { "name": "first", - "description": "Take the `n` first results from cursor. Cannot be used in conjunction with `last`", + "description": "Take the `n` first results from cursor. Cannot be used in conjunction with `last`. Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).", "type": { "kind": "SCALAR", "name": "Int", @@ -3153,7 +3153,7 @@ }, { "name": "last", - "description": "Take the `n` last results from cursor. Cannot be used in conjunction with `first`", + "description": "Take the `n` last results from cursor. Cannot be used in conjunction with `first`. Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).", "type": { "kind": "SCALAR", "name": "Int", @@ -3163,7 +3163,7 @@ }, { "name": "before", - "description": "Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `after`", + "description": "Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `after`. Has no influence when `first` is used.", "type": { "kind": "SCALAR", "name": "String", @@ -3173,7 +3173,7 @@ }, { "name": "after", - "description": "Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `before`", + "description": "Base64-encoded ISO8601 date/time cursor start. Cannot be used in conjunction with `before`. Has no influence when `last` is used.", "type": { "kind": "SCALAR", "name": "String", @@ -3565,7 +3565,7 @@ }, { "name": "type", - "description": "The type of home.", + "description": "The type of home", "type": { "kind": "ENUM", "name": "HomeType", @@ -3575,7 +3575,7 @@ }, { "name": "numberOfResidents", - "description": "The number of people living in the home", + "description": "The number of people living in the household", "type": { "kind": "SCALAR", "name": "Int", @@ -3585,7 +3585,7 @@ }, { "name": "primaryHeatingSource", - "description": "The primary form of heating in the household", + "description": "The primary form of heating in the home", "type": { "kind": "ENUM", "name": "HeatingSource", @@ -3605,7 +3605,7 @@ }, { "name": "mainFuseSize", - "description": "The main fuse size", + "description": "The main fuse size in amperes", "type": { "kind": "SCALAR", "name": "Int", @@ -3643,7 +3643,7 @@ }, { "name": "power", - "description": "Consumption at the moment (Watt)", + "description": "Consumption at the moment in watts (W)", "args": [ ], @@ -3661,7 +3661,7 @@ }, { "name": "lastMeterConsumption", - "description": "Last meter active import register state (kWh)", + "description": "Last meter active import register state in kilowatt-hours (kWh)", "args": [ ], @@ -3675,7 +3675,7 @@ }, { "name": "accumulatedConsumption", - "description": "kWh consumed since midnight", + "description": "Energy consumed since midnight in kilowatt-hours (kWh)", "args": [ ], @@ -3693,7 +3693,7 @@ }, { "name": "accumulatedProduction", - "description": "net kWh produced since midnight", + "description": "Net energy produced since midnight in kilowatt-hours (kWh)", "args": [ ], @@ -3711,7 +3711,7 @@ }, { "name": "accumulatedConsumptionLastHour", - "description": "kWh consumed since since last hour shift", + "description": "Energy consumed since since last hour shift in kilowatt-hours (kWh)", "args": [ ], @@ -3729,7 +3729,7 @@ }, { "name": "accumulatedProductionLastHour", - "description": "net kWh produced since last hour shift", + "description": "Net energy produced since last hour shift in kilowatt-hours (kWh)", "args": [ ], @@ -3789,7 +3789,7 @@ }, { "name": "minPower", - "description": "Min consumption since midnight (Watt)", + "description": "Minimum power consumption since midnight in watts (W)", "args": [ ], @@ -3807,7 +3807,7 @@ }, { "name": "averagePower", - "description": "Average consumption since midnight (Watt)", + "description": "Average power consumption since midnight in watts (W)", "args": [ ], @@ -3825,7 +3825,7 @@ }, { "name": "maxPower", - "description": "Peak consumption since midnight (Watt)", + "description": "Peak power consumption since midnight in watts (W)", "args": [ ], @@ -3843,7 +3843,7 @@ }, { "name": "powerProduction", - "description": "Net production (A-) at the moment (Watt)", + "description": "Net power production (A-) at the moment in watts (W)", "args": [ ], @@ -3857,7 +3857,7 @@ }, { "name": "powerReactive", - "description": "Reactive consumption (Q+) at the moment (kVAr)", + "description": "Reactive power consumption (Q+) at the moment (kVAr)", "args": [ ], @@ -3871,7 +3871,7 @@ }, { "name": "powerProductionReactive", - "description": "Net reactive production (Q-) at the moment (kVAr)", + "description": "Net reactive power production (Q-) at the moment (kVAr)", "args": [ ], @@ -3885,7 +3885,7 @@ }, { "name": "minPowerProduction", - "description": "Min net production since midnight (Watt)", + "description": "Minimum net power production since midnight in watts (W)", "args": [ ], @@ -3899,7 +3899,7 @@ }, { "name": "maxPowerProduction", - "description": "Max net production since midnight (Watt)", + "description": "Maximum net power production since midnight in watts (W)", "args": [ ], @@ -3913,7 +3913,7 @@ }, { "name": "lastMeterProduction", - "description": "Last meter active export register state (kWh)", + "description": "Last meter active export register state in kilowatt-hours (kWh)", "args": [ ], @@ -3927,7 +3927,7 @@ }, { "name": "powerFactor", - "description": "Power factor (active power / apparent power)", + "description": "Power factor (active power / apparent power); 0 to 1 where 1 is 100 %", "args": [ ], @@ -4067,7 +4067,7 @@ }, { "name": "signalStrength", - "description": "Device signal strength (Pulse - dB; Watty - percent)", + "description": "Device signal strength (Pulse: dB(m); Watty: percent)", "args": [ ], @@ -4285,8 +4285,8 @@ "ofType": null } }, - "isDeprecated": false, - "deprecationReason": null + "isDeprecated": true, + "deprecationReason": "no longer available" }, { "name": "updateHome", @@ -4765,6 +4765,20 @@ }, "isDeprecated": false, "deprecationReason": null + }, + { + "name": "isOneOf", + "description": null, + "args": [ + + ], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null } ], "inputFields": null, @@ -5494,6 +5508,16 @@ "defaultValue": null } ] + }, + { + "name": "oneOf", + "description": "Indicates exactly one field must be supplied and this field must not be `null`.", + "locations": [ + "INPUT_OBJECT" + ], + "args": [ + + ] } ] } diff --git a/test/cassettes/tibber_invalid_token.yml b/test/cassettes/tibber_invalid_token.yml index 6a87815..11d1645 100644 --- a/test/cassettes/tibber_invalid_token.yml +++ b/test/cassettes/tibber_invalid_token.yml @@ -25,7 +25,7 @@ http_interactions: message: Bad Request headers: Date: - - Wed, 21 Aug 2024 06:04:14 GMT + - Thu, 31 Oct 2024 08:16:35 GMT Content-Type: - application/json; charset=utf-8 Content-Length: @@ -45,5 +45,5 @@ http_interactions: string: '{"errors":[{"message":"Context creation failed: invalid token","extensions":{"code":"UNAUTHENTICATED"}}]} ' - recorded_at: Wed, 21 Aug 2024 06:04:14 GMT + recorded_at: Thu, 31 Oct 2024 08:16:35 GMT recorded_with: VCR 6.3.1 diff --git a/test/cassettes/tibber_schema.yml b/test/cassettes/tibber_schema.yml index c04d379..8bfe743 100644 --- a/test/cassettes/tibber_schema.yml +++ b/test/cassettes/tibber_schema.yml @@ -36,7 +36,7 @@ http_interactions: message: OK headers: Date: - - Wed, 21 Aug 2024 06:04:15 GMT + - Thu, 31 Oct 2024 08:15:21 GMT Content-Type: - application/json; charset=utf-8 Transfer-Encoding: @@ -48,7 +48,7 @@ http_interactions: Access-Control-Allow-Origin: - "*" Etag: - - W/"12c6c-nMBJSKtsNvORgRTqA6+xlVr2K24" + - W/"135f8-Uj0lDdWhgrdWRoCyxL/Pqakw2kg" Vary: - Accept-Encoding body: @@ -58,8 +58,8 @@ http_interactions: sequences. The String type is most often used by GraphQL to represent free-form human-readable text.","fields":null,"inputFields":null,"interfaces":null,"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"ContactInfo","description":null,"fields":[{"name":"email","description":"The email of the corresponding entity","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"mobile","description":"The - mobile phone no of the corresponding entity","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"LegalEntity","description":null,"fields":[{"name":"id","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"firstName","description":"First/Christian - name of the entity","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"isCompany","description":"''true'' + mobile phone number of the corresponding entity","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"LegalEntity","description":null,"fields":[{"name":"id","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"firstName","description":"First/Given + name of the entity","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"isCompany","description":"True if the entity is a company","args":[],"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"name","description":"Full name of the entity","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"middleName","description":"Middle name of the entity","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"lastName","description":"Last @@ -74,11 +74,11 @@ http_interactions: an input type, any string (such as `\"4\"`) or integer (such as `4`) input value will be accepted as an ID.","fields":null,"inputFields":null,"interfaces":null,"enumValues":null,"possibleTypes":null},{"kind":"SCALAR","name":"Boolean","description":"The `Boolean` scalar type represents `true` or `false`.","fields":null,"inputFields":null,"interfaces":null,"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"HomeConsumptionPageInfo","description":null,"fields":[{"name":"endCursor","description":"The - global ID of the last element in the list","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"hasNextPage","description":"True + global ID of the last element in the page","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"hasNextPage","description":"True if further pages are available","args":[],"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"hasPreviousPage","description":"True if previous pages are available","args":[],"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"startCursor","description":"The - global ID of the first element in the list","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"count","description":"The - number of elements in the list","args":[],"type":{"kind":"SCALAR","name":"Int","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"currency","description":"The + global ID of the first element in the page","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"count","description":"The + number of elements in the page","args":[],"type":{"kind":"SCALAR","name":"Int","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"currency","description":"The currency of the page","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"totalCost","description":"Page total cost","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"energyCost","description":"Page energy cost","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":true,"deprecationReason":"redundant"},{"name":"totalConsumption","description":"Total @@ -88,11 +88,11 @@ http_interactions: can represent values between -(2^31) and 2^31 - 1.","fields":null,"inputFields":null,"interfaces":null,"enumValues":null,"possibleTypes":null},{"kind":"SCALAR","name":"Float","description":"The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).","fields":null,"inputFields":null,"interfaces":null,"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"HomeProductionPageInfo","description":null,"fields":[{"name":"endCursor","description":"The - global ID of the last element in the list","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"hasNextPage","description":"True + global ID of the last element in the page","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"hasNextPage","description":"True if further pages are available","args":[],"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"hasPreviousPage","description":"True if previous pages are available","args":[],"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"startCursor","description":"The - global ID of the first element in the list","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"count","description":"The - number of elements in the list","args":[],"type":{"kind":"SCALAR","name":"Int","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"currency","description":"The + global ID of the first element in the page","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"count","description":"The + number of elements in the page","args":[],"type":{"kind":"SCALAR","name":"Int","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"currency","description":"The currency of the page","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"totalProfit","description":"Page total profit","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"totalProduction","description":"Page total production","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"filtered","description":"Number @@ -106,24 +106,32 @@ http_interactions: price level compared to recent price values","args":[],"type":{"kind":"ENUM","name":"PriceLevel","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"ENUM","name":"PriceLevel","description":"Price level based on trailing price average (3 days for hourly values and 30 days for daily values)","fields":null,"inputFields":null,"interfaces":null,"enumValues":[{"name":"NORMAL","description":"The - price is greater than 90 % and smaller than 115 % compared to average price.","isDeprecated":false,"deprecationReason":null},{"name":"CHEAP","description":"The - price is greater than 60 % and smaller or equal to 90 % compared to average - price.","isDeprecated":false,"deprecationReason":null},{"name":"VERY_CHEAP","description":"The - price is smaller or equal to 60 % compared to average price.","isDeprecated":false,"deprecationReason":null},{"name":"EXPENSIVE","description":"The - price is greater or equal to 115 % and smaller than 140 % compared to average - price.","isDeprecated":false,"deprecationReason":null},{"name":"VERY_EXPENSIVE","description":"The - price is greater or equal to 140 % compared to average price.","isDeprecated":false,"deprecationReason":null}],"possibleTypes":null},{"kind":"OBJECT","name":"SubscriptionPriceEdge","description":null,"fields":[{"name":"cursor","description":"The + price is greater than 90 % and less than 115 % compared to average price","isDeprecated":false,"deprecationReason":null},{"name":"CHEAP","description":"The + price is greater than 60 % and less or equal to 90 % compared to average price","isDeprecated":false,"deprecationReason":null},{"name":"VERY_CHEAP","description":"The + price is smaller or equal to 60 % compared to average price","isDeprecated":false,"deprecationReason":null},{"name":"EXPENSIVE","description":"The + price is greater or equal to 115 % and less than 140 % compared to average + price","isDeprecated":false,"deprecationReason":null},{"name":"VERY_EXPENSIVE","description":"The + price is greater or equal to 140 % compared to average price","isDeprecated":false,"deprecationReason":null}],"possibleTypes":null},{"kind":"OBJECT","name":"SubscriptionPriceEdge","description":null,"fields":[{"name":"cursor","description":"The global ID of the element","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"node","description":"A single price node","args":[],"type":{"kind":"OBJECT","name":"Price","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"INTERFACE","name":"PageInfo","description":null,"fields":[{"name":"endCursor","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"hasNextPage","description":null,"args":[],"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"hasPreviousPage","description":null,"args":[],"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"startCursor","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":[{"kind":"OBJECT","name":"HomeConsumptionPageInfo","ofType":null},{"kind":"OBJECT","name":"HomeProductionPageInfo","ofType":null},{"kind":"OBJECT","name":"SubscriptionPriceConnectionPageInfo","ofType":null}]},{"kind":"OBJECT","name":"SubscriptionPriceConnectionPageInfo","description":null,"fields":[{"name":"endCursor","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"hasNextPage","description":null,"args":[],"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"hasPreviousPage","description":null,"args":[],"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"startCursor","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"resolution","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"currency","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"count","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Int","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"precision","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"minEnergy","description":null,"args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"minTotal","description":null,"args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"maxEnergy","description":null,"args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"maxTotal","description":null,"args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[{"kind":"INTERFACE","name":"PageInfo","ofType":null}],"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"SubscriptionPriceConnection","description":null,"fields":[{"name":"pageInfo","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"SubscriptionPriceConnectionPageInfo","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"edges","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"LIST","name":null,"ofType":{"kind":"OBJECT","name":"SubscriptionPriceEdge","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"nodes","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"LIST","name":null,"ofType":{"kind":"OBJECT","name":"Price","ofType":null}}},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"ENUM","name":"PriceResolution","description":null,"fields":null,"inputFields":null,"interfaces":null,"enumValues":[{"name":"HOURLY","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"DAILY","description":null,"isDeprecated":false,"deprecationReason":null}],"possibleTypes":null},{"kind":"OBJECT","name":"PriceInfo","description":null,"fields":[{"name":"current","description":"The energy price right now","args":[],"type":{"kind":"OBJECT","name":"Price","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"today","description":"The hourly prices of the current day","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"LIST","name":null,"ofType":{"kind":"OBJECT","name":"Price","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"tomorrow","description":"The hourly prices of the upcoming day","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"LIST","name":null,"ofType":{"kind":"OBJECT","name":"Price","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"range","description":"Range - of prices relative to before/after arguments","args":[{"name":"resolution","description":"Temporal - resolution","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"PriceResolution","ofType":null}},"defaultValue":null},{"name":"first","description":"Take - the `n` first results from cursor. Cannot be used in conjunction with `last`","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"last","description":"Take - the `n` last results from cursor. Cannot be used in conjunction with `first`","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"before","description":"Base64-encoded - ISO8601 date/time cursor position. Cannot be used in conjunction with `after`","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"after","description":"Base64-encoded - ISO8601 date/time cursor position. Cannot be used in conjunction with `before`","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null}],"type":{"kind":"OBJECT","name":"SubscriptionPriceConnection","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"ENUM","name":"PriceRatingLevel","description":null,"fields":null,"inputFields":null,"interfaces":null,"enumValues":[{"name":"NORMAL","description":"The + of prices, optionally relative to `before`/`after` arguments. Capped at 744 + items (31 days) for resolution HOURLY, and 31 items for resolution DAILY. + If you need to fetch a longer interval, perform multiple requests and take + advantage of the `pageInfo` data. Do note that prices never change, so store + already fetched historical prices locally; if you can use `today`/`tomorrow` + instead, use that since the API can serve this data faster and in a more reliable + way.","args":[{"name":"resolution","description":"Temporal resolution","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"PriceResolution","ofType":null}},"defaultValue":null},{"name":"first","description":"Take + the `n` first results from cursor. Cannot be used in conjunction with `last`. + Limit count: 744 (HOURLY), 31 (DAILY).","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"last","description":"Take + the `n` last results from cursor. Cannot be used in conjunction with `first`. + Limit count: 744 (HOURLY), 31 (DAILY).","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"before","description":"Base64-encoded + ISO8601 date/time cursor position. Cannot be used in conjunction with `after.` + Has no influence when `first` is used.","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"after","description":"Base64-encoded + ISO8601 date/time cursor position. Cannot be used in conjunction with `before`. + Has no influence when `last` is used.","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null}],"type":{"kind":"OBJECT","name":"SubscriptionPriceConnection","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"ENUM","name":"PriceRatingLevel","description":null,"fields":null,"inputFields":null,"interfaces":null,"enumValues":[{"name":"NORMAL","description":"The price is within the range of what is considered being normal (market dependent; see ''priceRating.thresholdPercentages'' for limits)","isDeprecated":false,"deprecationReason":null},{"name":"LOW","description":"The price is within the range of what is considered being low (market dependent; @@ -156,7 +164,7 @@ http_interactions: time the subscription started","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"validTo","description":"The time the subscription ended","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"status","description":"The current status of the subscription","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"statusReason","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":true,"deprecationReason":"no - longer available."},{"name":"priceInfo","description":"Price information related + longer available"},{"name":"priceInfo","description":"Price information related to the subscription","args":[],"type":{"kind":"OBJECT","name":"PriceInfo","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"priceRating","description":"Price information related to the subscription","args":[],"type":{"kind":"OBJECT","name":"PriceRating","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"Consumption","description":null,"fields":[{"name":"from","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"to","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"unitPrice","description":null,"args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"unitPriceVAT","description":null,"args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"consumption","description":"kWh consumed","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"consumptionUnit","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"totalCost","description":"Total @@ -188,17 +196,35 @@ http_interactions: registered owner of the house","args":[],"type":{"kind":"OBJECT","name":"LegalEntity","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"meteringPointData","description":null,"args":[],"type":{"kind":"OBJECT","name":"MeteringPointData","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"currentSubscription","description":"The current/latest subscription related to the home","args":[],"type":{"kind":"OBJECT","name":"Subscription","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"subscriptions","description":"All historic subscriptions related to the home","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"LIST","name":null,"ofType":{"kind":"OBJECT","name":"Subscription","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"consumption","description":"Consumption - connection","args":[{"name":"resolution","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"EnergyResolution","ofType":null}},"defaultValue":null},{"name":"first","description":"Take - the `n` first results from cursor. Cannot be used in conjunction with `last`","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"last","description":"Take - the `n` last results from cursor. Cannot be used in conjunction with `first`","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"before","description":"Base64-encoded - ISO8601 date/time cursor start. Cannot be used in conjunction with `after`","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"after","description":"Base64-encoded - ISO8601 date/time cursor start. Cannot be used in conjunction with `before`","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"filterEmptyNodes","description":"Whether + connection. Capped at 744 items (31 days) for resolution HOURLY, 31 items + for DAILY, 52 items for WEEKLY, 12 items for MONTHLY and 1 for ANNUAL. If + you need to fetch a longer interval, perform multiple requests and take advantage + of the `pageInfo` data. Do note that this data is not updated in real-time, + so try not to fetch this continually if there is no need to; and try to cache/store + historical data locally.","args":[{"name":"resolution","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"EnergyResolution","ofType":null}},"defaultValue":null},{"name":"first","description":"Take + the `n` first results from cursor. Cannot be used in conjunction with `last`. + Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"last","description":"Take + the `n` last results from cursor. Cannot be used in conjunction with `first`. + Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"before","description":"Base64-encoded + ISO8601 date/time cursor start. Cannot be used in conjunction with `after`. + Has no influence when `first` is used.","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"after","description":"Base64-encoded + ISO8601 date/time cursor start. Cannot be used in conjunction with `before`. + Has no influence when `last` is used.","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"filterEmptyNodes","description":"Whether to include empty nodes. Default value: false","type":{"kind":"SCALAR","name":"Boolean","ofType":null},"defaultValue":"false"}],"type":{"kind":"OBJECT","name":"HomeConsumptionConnection","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"production","description":"Production - connection","args":[{"name":"resolution","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"EnergyResolution","ofType":null}},"defaultValue":null},{"name":"first","description":"Take - the `n` first results from cursor. Cannot be used in conjunction with `last`","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"last","description":"Take - the `n` last results from cursor. Cannot be used in conjunction with `first`","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"before","description":"Base64-encoded - ISO8601 date/time cursor start. Cannot be used in conjunction with `after`","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"after","description":"Base64-encoded - ISO8601 date/time cursor start. Cannot be used in conjunction with `before`","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"filterEmptyNodes","description":"Whether + connection. Capped at 744 items (31 days) for resolution HOURLY, 31 items + for DAILY, 52 items for WEEKLY, 12 items for MONTHLY and 1 for ANNUAL. If + you need to fetch a longer interval, perform multiple requests and take advantage + of the `pageInfo` data. Do note that this data is not updated in real-time, + so try not to fetch this continually if there is no need to; and try to cache/store + historical data locally.","args":[{"name":"resolution","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"EnergyResolution","ofType":null}},"defaultValue":null},{"name":"first","description":"Take + the `n` first results from cursor. Cannot be used in conjunction with `last`. + Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"last","description":"Take + the `n` last results from cursor. Cannot be used in conjunction with `first`. + Limit count: 744 (HOURLY), 31 (DAILY), 52 (WEEKLY), 12 (MONTHLY), 1 (ANNUAL).","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"before","description":"Base64-encoded + ISO8601 date/time cursor start. Cannot be used in conjunction with `after`. + Has no influence when `first` is used.","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"after","description":"Base64-encoded + ISO8601 date/time cursor start. Cannot be used in conjunction with `before`. + Has no influence when `last` is used.","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"filterEmptyNodes","description":"Whether to include empty nodes. Default value: false","type":{"kind":"SCALAR","name":"Boolean","ofType":null},"defaultValue":"false"}],"type":{"kind":"OBJECT","name":"HomeProductionConnection","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"features","description":"Home features","args":[],"type":{"kind":"OBJECT","name":"HomeFeatures","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"Viewer","description":null,"fields":[{"name":"login","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"userId","description":"Unique user identifier","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"name","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"accountType","description":"The @@ -209,32 +235,32 @@ http_interactions: contains data about the logged-in user","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"Viewer","ofType":null}},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"INPUT_OBJECT","name":"MeterReadingInput","description":null,"fields":null,"inputFields":[{"name":"homeId","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}},"defaultValue":null},{"name":"time","description":null,"type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"reading","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Int","ofType":null}},"defaultValue":null}],"interfaces":null,"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"MeterReadingResponse","description":null,"fields":[{"name":"homeId","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"time","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"reading","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Int","ofType":null}},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"INPUT_OBJECT","name":"UpdateHomeInput","description":null,"fields":null,"inputFields":[{"name":"homeId","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}},"defaultValue":null},{"name":"appNickname","description":null,"type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"appAvatar","description":"The chosen avatar for the home","type":{"kind":"ENUM","name":"HomeAvatar","ofType":null},"defaultValue":null},{"name":"size","description":"The size of the home in square meters","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"type","description":"The - type of home.","type":{"kind":"ENUM","name":"HomeType","ofType":null},"defaultValue":null},{"name":"numberOfResidents","description":"The - number of people living in the home","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"primaryHeatingSource","description":"The - primary form of heating in the household","type":{"kind":"ENUM","name":"HeatingSource","ofType":null},"defaultValue":null},{"name":"hasVentilationSystem","description":"Whether + type of home","type":{"kind":"ENUM","name":"HomeType","ofType":null},"defaultValue":null},{"name":"numberOfResidents","description":"The + number of people living in the household","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null},{"name":"primaryHeatingSource","description":"The + primary form of heating in the home","type":{"kind":"ENUM","name":"HeatingSource","ofType":null},"defaultValue":null},{"name":"hasVentilationSystem","description":"Whether the home has a ventilation system","type":{"kind":"SCALAR","name":"Boolean","ofType":null},"defaultValue":null},{"name":"mainFuseSize","description":"The - main fuse size","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null}],"interfaces":null,"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"LiveMeasurement","description":null,"fields":[{"name":"timestamp","description":"Timestamp + main fuse size in amperes","type":{"kind":"SCALAR","name":"Int","ofType":null},"defaultValue":null}],"interfaces":null,"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"LiveMeasurement","description":null,"fields":[{"name":"timestamp","description":"Timestamp when usage occurred","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"power","description":"Consumption - at the moment (Watt)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"lastMeterConsumption","description":"Last - meter active import register state (kWh)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"accumulatedConsumption","description":"kWh - consumed since midnight","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"accumulatedProduction","description":"net - kWh produced since midnight","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"accumulatedConsumptionLastHour","description":"kWh - consumed since since last hour shift","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"accumulatedProductionLastHour","description":"net - kWh produced since last hour shift","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"accumulatedCost","description":"Accumulated + at the moment in watts (W)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"lastMeterConsumption","description":"Last + meter active import register state in kilowatt-hours (kWh)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"accumulatedConsumption","description":"Energy + consumed since midnight in kilowatt-hours (kWh)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"accumulatedProduction","description":"Net + energy produced since midnight in kilowatt-hours (kWh)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"accumulatedConsumptionLastHour","description":"Energy + consumed since since last hour shift in kilowatt-hours (kWh)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"accumulatedProductionLastHour","description":"Net + energy produced since last hour shift in kilowatt-hours (kWh)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"accumulatedCost","description":"Accumulated cost since midnight; requires active Tibber power deal; includes VAT (where applicable)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"accumulatedReward","description":"Accumulated reward since midnight; requires active Tibber power deal","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"currency","description":"Currency - of displayed cost; requires active Tibber power deal","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"minPower","description":"Min - consumption since midnight (Watt)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"averagePower","description":"Average - consumption since midnight (Watt)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"maxPower","description":"Peak - consumption since midnight (Watt)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"powerProduction","description":"Net - production (A-) at the moment (Watt)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"powerReactive","description":"Reactive - consumption (Q+) at the moment (kVAr)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"powerProductionReactive","description":"Net - reactive production (Q-) at the moment (kVAr)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"minPowerProduction","description":"Min - net production since midnight (Watt)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"maxPowerProduction","description":"Max - net production since midnight (Watt)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"lastMeterProduction","description":"Last - meter active export register state (kWh)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"powerFactor","description":"Power - factor (active power / apparent power)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"voltagePhase1","description":"Voltage + of displayed cost; requires active Tibber power deal","args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"minPower","description":"Minimum + power consumption since midnight in watts (W)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"averagePower","description":"Average + power consumption since midnight in watts (W)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"maxPower","description":"Peak + power consumption since midnight in watts (W)","args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Float","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"powerProduction","description":"Net + power production (A-) at the moment in watts (W)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"powerReactive","description":"Reactive + power consumption (Q+) at the moment (kVAr)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"powerProductionReactive","description":"Net + reactive power production (Q-) at the moment (kVAr)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"minPowerProduction","description":"Minimum + net power production since midnight in watts (W)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"maxPowerProduction","description":"Maximum + net power production since midnight in watts (W)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"lastMeterProduction","description":"Last + meter active export register state in kilowatt-hours (kWh)","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"powerFactor","description":"Power + factor (active power / apparent power); 0 to 1 where 1 is 100 %","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"voltagePhase1","description":"Voltage on phase 1; on Kaifa and Aidon meters the value is not part of every HAN data frame therefore the value is null at timestamps with second value other than 0, 10, 20, 30, 40, 50. There can be other deviations based on concrete meter @@ -273,9 +299,9 @@ http_interactions: value is null at timestamps with second value other than 0, 10, 20, 30, 40, 50. There can be other deviations based on concrete meter firmware. Value is always null for single phase meters.","args":[],"type":{"kind":"SCALAR","name":"Float","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"signalStrength","description":"Device - signal strength (Pulse - dB; Watty - percent)","args":[],"type":{"kind":"SCALAR","name":"Int","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"ENUM","name":"AppScreen","description":null,"fields":null,"inputFields":null,"interfaces":null,"enumValues":[{"name":"HOME","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"REPORTS","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"CONSUMPTION","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"COMPARISON","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"DISAGGREGATION","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"HOME_PROFILE","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"CUSTOMER_PROFILE","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"METER_READING","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"NOTIFICATIONS","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"INVOICES","description":null,"isDeprecated":false,"deprecationReason":null}],"possibleTypes":null},{"kind":"INPUT_OBJECT","name":"PushNotificationInput","description":null,"fields":null,"inputFields":[{"name":"title","description":null,"type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"message","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}},"defaultValue":null},{"name":"screenToOpen","description":null,"type":{"kind":"ENUM","name":"AppScreen","ofType":null},"defaultValue":null}],"interfaces":null,"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"PushNotificationResponse","description":null,"fields":[{"name":"successful","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Boolean","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"pushedToNumberOfDevices","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Int","ofType":null}},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"RootMutation","description":null,"fields":[{"name":"sendMeterReading","description":"Send - meter reading for home (only available for Norwegian users)","args":[{"name":"input","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"INPUT_OBJECT","name":"MeterReadingInput","ofType":null}},"defaultValue":null}],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"MeterReadingResponse","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"updateHome","description":"Update - home information","args":[{"name":"input","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"INPUT_OBJECT","name":"UpdateHomeInput","ofType":null}},"defaultValue":null}],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"Home","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"sendPushNotification","description":"Send + signal strength (Pulse: dB(m); Watty: percent)","args":[],"type":{"kind":"SCALAR","name":"Int","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"ENUM","name":"AppScreen","description":null,"fields":null,"inputFields":null,"interfaces":null,"enumValues":[{"name":"HOME","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"REPORTS","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"CONSUMPTION","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"COMPARISON","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"DISAGGREGATION","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"HOME_PROFILE","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"CUSTOMER_PROFILE","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"METER_READING","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"NOTIFICATIONS","description":null,"isDeprecated":false,"deprecationReason":null},{"name":"INVOICES","description":null,"isDeprecated":false,"deprecationReason":null}],"possibleTypes":null},{"kind":"INPUT_OBJECT","name":"PushNotificationInput","description":null,"fields":null,"inputFields":[{"name":"title","description":null,"type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":null},{"name":"message","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}},"defaultValue":null},{"name":"screenToOpen","description":null,"type":{"kind":"ENUM","name":"AppScreen","ofType":null},"defaultValue":null}],"interfaces":null,"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"PushNotificationResponse","description":null,"fields":[{"name":"successful","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Boolean","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"pushedToNumberOfDevices","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"Int","ofType":null}},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"RootMutation","description":null,"fields":[{"name":"sendMeterReading","description":"Send + meter reading for home (only available for Norwegian users)","args":[{"name":"input","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"INPUT_OBJECT","name":"MeterReadingInput","ofType":null}},"defaultValue":null}],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"MeterReadingResponse","ofType":null}},"isDeprecated":true,"deprecationReason":"no + longer available"},{"name":"updateHome","description":"Update home information","args":[{"name":"input","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"INPUT_OBJECT","name":"UpdateHomeInput","ofType":null}},"defaultValue":null}],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"Home","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"sendPushNotification","description":"Send notification to Tibber app on registered devices","args":[{"name":"input","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"INPUT_OBJECT","name":"PushNotificationInput","ofType":null}},"defaultValue":null}],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"PushNotificationResponse","ofType":null}},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"RootSubscription","description":null,"fields":[{"name":"liveMeasurement","description":"Subscribe to real-time measurement stream from Pulse or Watty device","args":[{"name":"homeId","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}},"defaultValue":null}],"type":{"kind":"OBJECT","name":"LiveMeasurement","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"testMeasurement","description":"Subscribe to test stream","args":[{"name":"homeId","description":null,"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"ID","ofType":null}},"defaultValue":null}],"type":{"kind":"OBJECT","name":"LiveMeasurement","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"OBJECT","name":"__Schema","description":"A @@ -295,7 +321,7 @@ http_interactions: types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the - Object types possible at runtime. List and NonNull types compose other types.","fields":[{"name":"kind","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"__TypeKind","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"name","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"description","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"specifiedByURL","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"fields","description":null,"args":[{"name":"includeDeprecated","description":null,"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"defaultValue":"false"}],"type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"__Field","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"interfaces","description":null,"args":[],"type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"__Type","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"possibleTypes","description":null,"args":[],"type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"__Type","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"enumValues","description":null,"args":[{"name":"includeDeprecated","description":null,"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"defaultValue":"false"}],"type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"__EnumValue","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"inputFields","description":null,"args":[{"name":"includeDeprecated","description":null,"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"defaultValue":"false"}],"type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"__InputValue","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"ofType","description":null,"args":[],"type":{"kind":"OBJECT","name":"__Type","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"ENUM","name":"__TypeKind","description":"An + Object types possible at runtime. List and NonNull types compose other types.","fields":[{"name":"kind","description":null,"args":[],"type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"ENUM","name":"__TypeKind","ofType":null}},"isDeprecated":false,"deprecationReason":null},{"name":"name","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"description","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"specifiedByURL","description":null,"args":[],"type":{"kind":"SCALAR","name":"String","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"fields","description":null,"args":[{"name":"includeDeprecated","description":null,"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"defaultValue":"false"}],"type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"__Field","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"interfaces","description":null,"args":[],"type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"__Type","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"possibleTypes","description":null,"args":[],"type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"__Type","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"enumValues","description":null,"args":[{"name":"includeDeprecated","description":null,"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"defaultValue":"false"}],"type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"__EnumValue","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"inputFields","description":null,"args":[{"name":"includeDeprecated","description":null,"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"defaultValue":"false"}],"type":{"kind":"LIST","name":null,"ofType":{"kind":"NON_NULL","name":null,"ofType":{"kind":"OBJECT","name":"__InputValue","ofType":null}}},"isDeprecated":false,"deprecationReason":null},{"name":"ofType","description":null,"args":[],"type":{"kind":"OBJECT","name":"__Type","ofType":null},"isDeprecated":false,"deprecationReason":null},{"name":"isOneOf","description":null,"args":[],"type":{"kind":"SCALAR","name":"Boolean","ofType":null},"isDeprecated":false,"deprecationReason":null}],"inputFields":null,"interfaces":[],"enumValues":null,"possibleTypes":null},{"kind":"ENUM","name":"__TypeKind","description":"An enum describing what kind of type a given `__Type` is.","fields":null,"inputFields":null,"interfaces":null,"enumValues":[{"name":"SCALAR","description":"Indicates this type is a scalar.","isDeprecated":false,"deprecationReason":null},{"name":"OBJECT","description":"Indicates this type is an object. `fields` and `interfaces` are valid fields.","isDeprecated":false,"deprecationReason":null},{"name":"INTERFACE","description":"Indicates @@ -352,8 +378,9 @@ http_interactions: specified by [CommonMark](https://commonmark.org/).","type":{"kind":"SCALAR","name":"String","ofType":null},"defaultValue":"\"No longer supported\""}]},{"name":"specifiedBy","description":"Exposes a URL that specifies the behavior of this scalar.","locations":["SCALAR"],"args":[{"name":"url","description":"The - URL that specifies the behavior of this scalar.","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}},"defaultValue":null}]}]}}} + URL that specifies the behavior of this scalar.","type":{"kind":"NON_NULL","name":null,"ofType":{"kind":"SCALAR","name":"String","ofType":null}},"defaultValue":null}]},{"name":"oneOf","description":"Indicates + exactly one field must be supplied and this field must not be `null`.","locations":["INPUT_OBJECT"],"args":[]}]}}} ' - recorded_at: Wed, 21 Aug 2024 06:04:15 GMT + recorded_at: Thu, 31 Oct 2024 08:15:21 GMT recorded_with: VCR 6.3.1 diff --git a/test/cassettes/tibber_success.yml b/test/cassettes/tibber_success.yml index 4810a50..a7f20eb 100644 --- a/test/cassettes/tibber_success.yml +++ b/test/cassettes/tibber_success.yml @@ -25,7 +25,7 @@ http_interactions: message: OK headers: Date: - - Wed, 21 Aug 2024 06:04:14 GMT + - Thu, 31 Oct 2024 08:15:21 GMT Content-Type: - application/json; charset=utf-8 Transfer-Encoding: @@ -37,13 +37,13 @@ http_interactions: Access-Control-Allow-Origin: - "*" Etag: - - W/"7b4-T5YgOLjKXecjJXEdEP9iNbm9zNg" + - W/"7c3-3t6EmC+d3VknHfRCkNeC/J5msks" Vary: - Accept-Encoding body: encoding: ASCII-8BIT - string: '{"data":{"viewer":{"homes":[{"currentSubscription":{"priceInfo":{"today":[{"total":0.0984,"startsAt":"2024-08-21T00:00:00.000+02:00","level":"VERY_CHEAP"},{"total":0.0919,"startsAt":"2024-08-21T01:00:00.000+02:00","level":"VERY_CHEAP"},{"total":0.0886,"startsAt":"2024-08-21T02:00:00.000+02:00","level":"VERY_CHEAP"},{"total":0.0885,"startsAt":"2024-08-21T03:00:00.000+02:00","level":"VERY_CHEAP"},{"total":0.0916,"startsAt":"2024-08-21T04:00:00.000+02:00","level":"VERY_CHEAP"},{"total":0.1,"startsAt":"2024-08-21T05:00:00.000+02:00","level":"VERY_CHEAP"},{"total":0.1317,"startsAt":"2024-08-21T06:00:00.000+02:00","level":"CHEAP"},{"total":0.1711,"startsAt":"2024-08-21T07:00:00.000+02:00","level":"CHEAP"},{"total":0.2187,"startsAt":"2024-08-21T08:00:00.000+02:00","level":"NORMAL"},{"total":0.2189,"startsAt":"2024-08-21T09:00:00.000+02:00","level":"NORMAL"},{"total":0.142,"startsAt":"2024-08-21T10:00:00.000+02:00","level":"CHEAP"},{"total":0.1264,"startsAt":"2024-08-21T11:00:00.000+02:00","level":"CHEAP"},{"total":0.1061,"startsAt":"2024-08-21T12:00:00.000+02:00","level":"VERY_CHEAP"},{"total":0.1,"startsAt":"2024-08-21T13:00:00.000+02:00","level":"VERY_CHEAP"},{"total":0.099,"startsAt":"2024-08-21T14:00:00.000+02:00","level":"VERY_CHEAP"},{"total":0.0999,"startsAt":"2024-08-21T15:00:00.000+02:00","level":"VERY_CHEAP"},{"total":0.1199,"startsAt":"2024-08-21T16:00:00.000+02:00","level":"CHEAP"},{"total":0.1563,"startsAt":"2024-08-21T17:00:00.000+02:00","level":"CHEAP"},{"total":0.222,"startsAt":"2024-08-21T18:00:00.000+02:00","level":"EXPENSIVE"},{"total":0.2052,"startsAt":"2024-08-21T19:00:00.000+02:00","level":"EXPENSIVE"},{"total":0.1755,"startsAt":"2024-08-21T20:00:00.000+02:00","level":"NORMAL"},{"total":0.1628,"startsAt":"2024-08-21T21:00:00.000+02:00","level":"NORMAL"},{"total":0.156,"startsAt":"2024-08-21T22:00:00.000+02:00","level":"CHEAP"},{"total":0.1472,"startsAt":"2024-08-21T23:00:00.000+02:00","level":"CHEAP"}],"tomorrow":[]}}}]}}} + string: '{"data":{"viewer":{"homes":[{"currentSubscription":{"priceInfo":{"today":[{"total":0.1068,"startsAt":"2024-10-31T00:00:00.000+01:00","level":"VERY_CHEAP"},{"total":0.1097,"startsAt":"2024-10-31T01:00:00.000+01:00","level":"VERY_CHEAP"},{"total":0.1222,"startsAt":"2024-10-31T02:00:00.000+01:00","level":"VERY_CHEAP"},{"total":0.1369,"startsAt":"2024-10-31T03:00:00.000+01:00","level":"VERY_CHEAP"},{"total":0.1457,"startsAt":"2024-10-31T04:00:00.000+01:00","level":"VERY_CHEAP"},{"total":0.1646,"startsAt":"2024-10-31T05:00:00.000+01:00","level":"VERY_CHEAP"},{"total":0.3728,"startsAt":"2024-10-31T06:00:00.000+01:00","level":"NORMAL"},{"total":0.5597,"startsAt":"2024-10-31T07:00:00.000+01:00","level":"VERY_EXPENSIVE"},{"total":0.551,"startsAt":"2024-10-31T08:00:00.000+01:00","level":"EXPENSIVE"},{"total":0.4776,"startsAt":"2024-10-31T09:00:00.000+01:00","level":"EXPENSIVE"},{"total":0.3918,"startsAt":"2024-10-31T10:00:00.000+01:00","level":"NORMAL"},{"total":0.2992,"startsAt":"2024-10-31T11:00:00.000+01:00","level":"CHEAP"},{"total":0.2685,"startsAt":"2024-10-31T12:00:00.000+01:00","level":"CHEAP"},{"total":0.2558,"startsAt":"2024-10-31T13:00:00.000+01:00","level":"CHEAP"},{"total":0.2552,"startsAt":"2024-10-31T14:00:00.000+01:00","level":"CHEAP"},{"total":0.2517,"startsAt":"2024-10-31T15:00:00.000+01:00","level":"CHEAP"},{"total":0.2526,"startsAt":"2024-10-31T16:00:00.000+01:00","level":"CHEAP"},{"total":0.2682,"startsAt":"2024-10-31T17:00:00.000+01:00","level":"CHEAP"},{"total":0.254,"startsAt":"2024-10-31T18:00:00.000+01:00","level":"CHEAP"},{"total":0.2425,"startsAt":"2024-10-31T19:00:00.000+01:00","level":"CHEAP"},{"total":0.2233,"startsAt":"2024-10-31T20:00:00.000+01:00","level":"VERY_CHEAP"},{"total":0.1857,"startsAt":"2024-10-31T21:00:00.000+01:00","level":"VERY_CHEAP"},{"total":0.1678,"startsAt":"2024-10-31T22:00:00.000+01:00","level":"VERY_CHEAP"},{"total":0.1519,"startsAt":"2024-10-31T23:00:00.000+01:00","level":"VERY_CHEAP"}],"tomorrow":[]}}}]}}} ' - recorded_at: Wed, 21 Aug 2024 06:04:14 GMT + recorded_at: Thu, 31 Oct 2024 08:15:21 GMT recorded_with: VCR 6.3.1