Strømpris

Noen som vet hvordan man kan få inn strømpris fra f.eks. tibber eller norpol som en variabel for å styre f.eks. varme?

Tibber har et api - https://developer.tibber.com som skal kunne benyttes og de har dokumentert api’et så hvis du har kontroll på programmering så kan du hente ut der.

Ellers har jeg sett i noen forum at enkelte henter spotpriser fra Nordpool direkte. Tror du får omtrent det samme som ut av Tibber API’et

Da må du selv lage logikken på hva som er dyr og billig strøm gjennom døgnet.

Jeg har laget en Flow som henter strømpris fra Tibbers API og lagrer det til en global variabel i TP. Tibber APIet leverer også PriceLevel, som er relativt prisnivå.

PriceLevel
Price level based on trailing price average (3 days for hourly values and 30 days for daily values)

Value Description
NORMAL
The price is greater than 90 % and smaller than 115 % compared to average price.

CHEAP
The price is greater than 60 % and smaller or equal to 90 % compared to average price.

VERY_CHEAP
The price is smaller or equal to 60 % compared to average price.

EXPENSIVE
The price is greater or equal to 115 % and smaller than 140 % compared to average price.

VERY_EXPENSIVE
The price is greater or equal to 140 % compared to average price.

Henter PriceLevel hver time og bruker dette til å justere temp. på vannbåren varme, noe Tibber-appen ikke fikser. Har fungert fint til å unngå de største toppene så langt.

I prinsippet er det bare to noder; time trigger > HTTP Request. Legger ved et eksempel her.

NB! Husk å erstatte <TOKEN> med ditt Tibber-token og opprette den globale variablen (energy_level i dette eksempelet).

{
  "Id": "cmPORuamlXeoRAV",
  "ClassId": "cmPORuamlXeoRAV",
  "Author": "jonathse",
  "Version": 0,
  "CreatedAt": "2021-01-13T22:38:09.518958632+01:00",
  "UpdatedAt": "2021-02-01T23:56:37.956580257+01:00",
  "Name": "Get Energy PriceLevel",
  "Group": "",
  "Description": "",
  "Nodes": [
    {
      "Id": "1",
      "Type": "time_trigger",
      "Label": "2min past each our",
      "SuccessTransition": "2",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "DefaultMsg": {
          "Value": "",
          "ValueType": ""
        },
        "Expressions": [
          {
            "Comments": "",
            "Expression": "2 * * * *",
            "Name": ""
          }
        ],
        "GenerateAstroTimeEvents": false,
        "Latitude": 0,
        "Longitude": 0,
        "SunriseTimeOffset": 0,
        "SunsetTimeOffset": 0
      },
      "Ui": {
        "nodeType": "",
        "x": 46,
        "y": 205
      },
      "TypeAlias": "Time trigger"
    },
    {
      "Id": "2",
      "Type": "rest_action",
      "Label": "Get Energy Price Level from Tibber",
      "SuccessTransition": "",
      "TimeoutTransition": "",
      "ErrorTransition": "",
      "Address": "",
      "Service": "",
      "ServiceInterface": "",
      "Config": {
        "Auth": {
          "ClientID": "",
          "ClientSecret": "",
          "Enabled": false,
          "GrantType": "password",
          "Password": "",
          "Scope": "",
          "Url": "http://",
          "Username": ""
        },
        "Headers": [
          {
            "Name": "Content-type",
            "Value": "application/json"
          },
          {
            "Name": "Authorization",
            "Value": "Bearer <TOKEN>"
          }
        ],
        "LogResponse": true,
        "Method": "POST",
        "RequestPayloadType": "json",
        "RequestTemplate": "{ \"query\": \"{viewer {homes {currentSubscription {priceInfo {current {total energy tax startsAt level}}}}}}\" }\n",
        "ResponseMapping": [
          {
            "IsVariableGlobal": true,
            "Name": "Level",
            "Path": "$.data.viewer.homes[0].currentSubscription.priceInfo.current.level",
            "PathType": "json",
            "TargetVariableName": "energy_level",
            "TargetVariableType": "string"
          }
        ],
        "Url": "https://api.tibber.com/v1-beta/gql"
      },
      "Ui": {
        "nodeType": "",
        "x": 42,
        "y": 413
      },
      "TypeAlias": "HTTP msg"
    }
  ],
  "Settings": null,
  "IsDisabled": false,
  "IsDefault": false,
  "ParallelExecution": "parallel"
}
5 Likes

En av FH utviklerne har nevnt at de jobber med å få lagt inn blant annet disse pris verdiene i neste versjon av Tibber appen i Playgrounds, så det kan brukes i Automasjoner.

1 Like

Takk. Fikk den til å funke!

Testet denne her nå, men ifølge loggen så mangler det en Transistion node ‘9’. Er det noe som mangler i koden du har lagt ut?

@KetilH Koden var klippet ut fra en større flow som også gjør noen påfølgende beregninger etter at strømprisene er hentet.

Har endret i innlegget over. Du kan også rette i flowen du har ved å åpne “source”, deretter under node id 2 fjerner du 9 fra SuccessTransition. Eventuelt legger du bare en ny node etter Http Request noden.

Ok, takker

Takk for at du deler! I det siste, så har jeg flere ganger oppdaget at pris fra Tibber har vært EXPENSIVE eller VERY EXPENSIVE i mer enn ett døgn. Dette selv om prisen er lav i antall øre. Tenker at det kan være lurt å innføre en sjekk på hvor lenge triggeren skal være aktiv - eller kanskje innføre restriksjoner slik at prisvariabel ikke settes på gitte klokkeslett. I mitt tilfelle, så har jeg våknet til kaldt vann i dusjen. Noen som har et forslag til hvordan dette løses i forbindelse med Time Trigger?

Har opplevd det samme jeg, men jeg har lagt inn et par timefilter i flowen, så jeg uansett søreger for å ha varmt vann til ‘normale’ dusjtider

Skulle gjerne hatt en flow som slår av et relé de seks dyreste timene i døgnet basert på tibbers priser. Kan dette da brukes?