Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Tibber Strompreis Simulation

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    507

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

Tibber Strompreis Simulation

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
22 Beiträge 4 Kommentatoren 2.9k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Mosel 1992M Mosel 1992

    @paul53

    Hast du eine Erklärung, wieso die Preise auf einmal mit Tibber nicht mehr übereinstimmen? Also genau bei der 0 Uhr abfrage?

    Hier mal das Ergebnis der URL

    {
      "object": "list",
      "data": [
        {
          "start_timestamp": 1703113200000,
          "end_timestamp": 1703116800000,
          "marketprice": 30.16,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703116800000,
          "end_timestamp": 1703120400000,
          "marketprice": 25.08,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703120400000,
          "end_timestamp": 1703124000000,
          "marketprice": 20.9,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703124000000,
          "end_timestamp": 1703127600000,
          "marketprice": 3.48,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703127600000,
          "end_timestamp": 1703131200000,
          "marketprice": 0.07,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703131200000,
          "end_timestamp": 1703134800000,
          "marketprice": 0.33,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703134800000,
          "end_timestamp": 1703138400000,
          "marketprice": 23.85,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703138400000,
          "end_timestamp": 1703142000000,
          "marketprice": 45.12,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703142000000,
          "end_timestamp": 1703145600000,
          "marketprice": 48.96,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703145600000,
          "end_timestamp": 1703149200000,
          "marketprice": 37.24,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703149200000,
          "end_timestamp": 1703152800000,
          "marketprice": 34.29,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703152800000,
          "end_timestamp": 1703156400000,
          "marketprice": 26.05,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703156400000,
          "end_timestamp": 1703160000000,
          "marketprice": 23.51,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703160000000,
          "end_timestamp": 1703163600000,
          "marketprice": 11.56,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703163600000,
          "end_timestamp": 1703167200000,
          "marketprice": 10.53,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703167200000,
          "end_timestamp": 1703170800000,
          "marketprice": 16.8,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703170800000,
          "end_timestamp": 1703174400000,
          "marketprice": 16.95,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703174400000,
          "end_timestamp": 1703178000000,
          "marketprice": 35.08,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703178000000,
          "end_timestamp": 1703181600000,
          "marketprice": 39.34,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703181600000,
          "end_timestamp": 1703185200000,
          "marketprice": 48.49,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703185200000,
          "end_timestamp": 1703188800000,
          "marketprice": 40.97,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703188800000,
          "end_timestamp": 1703192400000,
          "marketprice": 33.15,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703192400000,
          "end_timestamp": 1703196000000,
          "marketprice": 28.77,
          "unit": "Eur/MWh"
        },
        {
          "start_timestamp": 1703196000000,
          "end_timestamp": 1703199600000,
          "marketprice": 6.05,
          "unit": "Eur/MWh"
        }
      ],
      "url": "/de/v1/marketdata"
    }
    

    Bei Tibber ist der höchste Preis heute 29,21 und hier das sind ja Preise ohne die Nebenkosten. Habe ich hier irgend einen Denkfehler?

    Mosel 1992M Offline
    Mosel 1992M Offline
    Mosel 1992
    schrieb am zuletzt editiert von
    #13

    @mosel-1992

    ahhh, das war dumm... wie war das in der Schule, Vorzeichen und Einheiten können leben retten ... :D es sind €/MWh

    Mosel 1992M 1 Antwort Letzte Antwort
    0
    • Mosel 1992M Mosel 1992

      @mosel-1992

      ahhh, das war dumm... wie war das in der Schule, Vorzeichen und Einheiten können leben retten ... :D es sind €/MWh

      Mosel 1992M Offline
      Mosel 1992M Offline
      Mosel 1992
      schrieb am zuletzt editiert von
      #14

      Hat noch jemand eine schönere Idee für den Abruf der Strompreise?

      Ich habe es jetzt so gemacht, dass er nachts um 0 Uhr die Preise abruft und dann hingeht und

      Preis 0 Uhr = data.0.marketprice
      Preis 1 Uhr = data.1.marketprice
      .
      .
      .
      usw...

      Dann haben ich noch einen Träger für 1 Uhr erstellt, da setzt er mir dann data.23.marketprice auf Preis Morgen 0 Uhr und um 2 Uhr dann data.23.marketprice auf Morgen 1 Uhr usw.
      was natürlich a ein riesen Skript ist und b sehr unflexibel vor allem, wenn man wie jetzt einen Fehler drin hat, muss ich ja bis 0 Uhr heute nacht warten, bis alles wieder stimmt.

      Gibt es eine schöne Lösung, dass er immer hin geht und weiß, ah jetzt ist es 8 Uhr, jetzt schreibe ich die Werte fortlaufend auf die nächsten 24 h. also data.0.marketprice ist dann 8 Uhr und data.1.marketprice ist 9 Uhr usw... Ohen das ich jetzt den Riesen block von 0 Uhr kopiere und auf jede Uhrzeit übertrage?

      1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @mosel-1992 sagte: immer zur vollen Stunde berechnet werden und in eine Objekt gespeichert werden.

        Blockly_temp.JPG

        Mosel 1992M Offline
        Mosel 1992M Offline
        Mosel 1992
        schrieb am zuletzt editiert von
        #15

        @paul53 said in Tibber Strompreis Simulation:

        @mosel-1992 sagte: immer zur vollen Stunde berechnet werden und in eine Objekt gespeichert werden.

        Blockly_temp.JPG

        Kannst du mir erklären, wieso du das Url Request zwei mal im Ablauf hast, also wieso unten noch mal ?

        paul53P 1 Antwort Letzte Antwort
        0
        • Mosel 1992M Mosel 1992

          @paul53 said in Tibber Strompreis Simulation:

          @mosel-1992 sagte: immer zur vollen Stunde berechnet werden und in eine Objekt gespeichert werden.

          Blockly_temp.JPG

          Kannst du mir erklären, wieso du das Url Request zwei mal im Ablauf hast, also wieso unten noch mal ?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #16

          @mosel-1992 sagte: wieso du das Url Request zwei mal im Ablauf hast

          Einmal bei Skriptstart und einmal jede volle Stunde für die Berechnung der Kosten zur nächsten vollen Stunde.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          Mosel 1992M 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @mosel-1992 sagte: wieso du das Url Request zwei mal im Ablauf hast

            Einmal bei Skriptstart und einmal jede volle Stunde für die Berechnung der Kosten zur nächsten vollen Stunde.

            Mosel 1992M Offline
            Mosel 1992M Offline
            Mosel 1992
            schrieb am zuletzt editiert von
            #17

            @paul53 said in Tibber Strompreis Simulation:

            @mosel-1992 sagte: wieso du das Url Request zwei mal im Ablauf hast

            Einmal bei Skriptstart und einmal jede volle Stunde für die Berechnung der Kosten zur nächsten vollen Stunde.

            Ok, müsste der dann aber nicht am Anfang kommen, also hinter dem Zeit trigger? Damit wenn die Vollstunde da ist, er die aktuellen Werte abruft und dann diesen schreibt? Oder habe ich hier einen denkfehler?

            Mosel 1992M paul53P 2 Antworten Letzte Antwort
            0
            • Mosel 1992M Mosel 1992

              @paul53 said in Tibber Strompreis Simulation:

              @mosel-1992 sagte: wieso du das Url Request zwei mal im Ablauf hast

              Einmal bei Skriptstart und einmal jede volle Stunde für die Berechnung der Kosten zur nächsten vollen Stunde.

              Ok, müsste der dann aber nicht am Anfang kommen, also hinter dem Zeit trigger? Damit wenn die Vollstunde da ist, er die aktuellen Werte abruft und dann diesen schreibt? Oder habe ich hier einen denkfehler?

              Mosel 1992M Offline
              Mosel 1992M Offline
              Mosel 1992
              schrieb am zuletzt editiert von
              #18

              Nur damit ich es richtig verstehe und keinen Gedankenfehler drin habe. Ich geh aktuell in einem anderen Skript hin und frage dort zu bestimmten Zeiten die die Werte ab und schreibe Sie mir in Variablen und setze diese dann von der Zeit abhängig ein.

              9a705694-18bc-46af-806e-66eb44e9a268-image.png

              Hier muss aber doch die Requestabfrage als oberstes kommen oder? Der geht die Sachen doch nach der reihe durch und wenn ich das ans ende schreibe, dann hat er doch die Variablen nicht ?

              1 Antwort Letzte Antwort
              0
              • Mosel 1992M Mosel 1992

                @paul53 said in Tibber Strompreis Simulation:

                @mosel-1992 sagte: wieso du das Url Request zwei mal im Ablauf hast

                Einmal bei Skriptstart und einmal jede volle Stunde für die Berechnung der Kosten zur nächsten vollen Stunde.

                Ok, müsste der dann aber nicht am Anfang kommen, also hinter dem Zeit trigger? Damit wenn die Vollstunde da ist, er die aktuellen Werte abruft und dann diesen schreibt? Oder habe ich hier einen denkfehler?

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #19

                @mosel-1992 sagte: hinter dem Zeit trigger?

                Berechnet werden muss mit dem Preis der abgelaufenen Stunde. Erst danach kann der Preis aktualisiert werden.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • Marc BergM Offline
                  Marc BergM Offline
                  Marc Berg
                  Most Active
                  schrieb am zuletzt editiert von Marc Berg
                  #20

                  Wenn man die historischen Börsenpreise der letzten Monate bereits in einer InfluxDB (2) hat, könnte man das zusammen mit seinen Zählerdaten auch grafisch darstellen:

                  5c584e70-9e04-4ae9-b008-bbae7484fdc7-grafik.png

                  Gebraucht werden dafür die Zählerstände, Börsenpreisdaten sowie die Tibber Nebenkosten pro Monat und kWh. Zum grafischen Vergleich noch die kWh Preise + mtl. Grundkosten (klassisch).

                  import "timezone"
                  import "date"
                  option location = timezone.location(name: "Europe/Berlin")
                  
                  zeitraum=-4mo
                  mmntZaehlerstand="ZaehlerStand"  //Measurement für den Zählerstand
                  mmntMarktdaten="Marketdata" //Measurement für die stündl. Börsenstrompreis
                  tbrNebenkosten=0.1462 // Tibber: durchschnittl. Nebenkosten in EUR pro kWh (https://tibber.com/de?modal=preisrechner)
                  tbrGrundpreis=14.53 // Tibber: Nebenkosten in EUR pro Monat (https://tibber.com/de?modal=preisrechner)
                  arbeitspreis=0.2528  // klassisch: fixer Arbeitspreis in EUR/kWh
                  grundpreis=23.69 // klassisch: Grundpreis pro Monat
                  
                  // Query stündlicher Stromverbrauch
                  verbrauch = from(bucket: "iobroker")
                    |> range(start:date.truncate(t:zeitraum, unit:1mo))
                    |> filter(fn: (r) => r["_measurement"] == mmntZaehlerstand)
                    |> filter(fn: (r) => r["_field"] == "value")
                    |> difference()
                    |> aggregateWindow(every: 1h,fn:sum,timeSrc: "_start",createEmpty:false)
                  
                  // Query stündliche Strompreisdaten
                  preis = from(bucket: "iobroker")
                    |> range(start: date.truncate(t:zeitraum, unit:1mo))
                    |> filter(fn: (r) => r["_measurement"] == mmntMarktdaten)
                    |> keep (columns:["_value","_time"])
                    |> aggregateWindow(every: 1h,fn:max,timeSrc: "_start",createEmpty:false)
                    |> map(fn: (r) => ({ r with _value: r._value/1000.0 }))
                  
                  // Query für klassische Kosten
                  kosten=verbrauch
                    |> map(fn: (r) => ({ _time: r._time, _value: r._value * arbeitspreis}))
                    |> aggregateWindow(every: 1mo,fn:sum,timeSrc: "_start",createEmpty:false)
                    |> map(fn: (r) => ({ _time: r._time, _value: r._value + grundpreis}))
                    |> rename(columns: {_value: "Hauspreis"})
                    |> keep(columns: ["_time", "Hauspreis"])
                  
                  // Zusammenführen der Abfragen und Berechnung der Kosten für Tibber
                  tibber=join(tables: {verbrauch: verbrauch, preis: preis},on: ["_time"])
                    |> map(fn: (r) => ({ _time: r._time, _value: r._value_verbrauch * (r._value_preis+tbrNebenkosten)}))
                    |> aggregateWindow(every: 1mo,fn:sum,timeSrc: "_start",createEmpty:false)
                    |> map(fn: (r) => ({ _time: r._time, _value: r._value + tbrGrundpreis}))
                    |> rename(columns: {_value: "Tibber"})
                  
                  // Hinzufügen der klassischen Strompreiskosten
                  join(tables: {tibber: tibber, kosten: kosten},on: ["_time"])
                  

                  Das Ganze ist nicht qualitätsgesichert! Am besten mal selbst durchspielen, ob das passt.

                  NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

                  Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                  Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                  1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @mosel-1992 sagte: immer zur vollen Stunde berechnet werden und in eine Objekt gespeichert werden.

                    Blockly_temp.JPG

                    P Offline
                    P Offline
                    Peter666666
                    schrieb am zuletzt editiert von Peter666666
                    #21

                    @paul53 Habe das Skript nachgebaut. Die Var. habe ich im Skript angelegt (für was ist die Var. result?). Habe DP kosten_gesamt, kosten_zum_letzten_Preis und Zaehlerstand_Stunde angelegt. Bei mir wird aber nur der Wert vom Zählerstand in den DP geschrieben, die anderen beiden bleiben auf 0. Was übersehe ich hier?

                    EDIT: Fehler gefunden. bei data.0. marketprice hat es mir ein O kopiert statt 0 :face_with_rolling_eyes:

                    Bild 03.01.24 um 14.16.jpeg

                    LG Peter

                    Intel NUC i5 / 16GB RAM / 512GB SSD
                    Synology DS220+ 10GB RAM / 8TB

                    1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @mosel-1992 sagte: wie ich automatisch in Objekte die Punkte erstelle und das das Skript weiß, welcher Uhrzeit es aktuell ist und dann in den ordern schreibt

                      Ein Datenpunkt für die Kosten der letzten Stunde genügt. Den Verlauf ermittelt man mittels Historisierung.

                      @mosel-1992 sagte in Tibber Strompreis Simulation:

                      Du addierst ja jetzt die Kosten Pro stunde immer auf.

                      Das ist der kumulative Wert der Kosten.

                      P Offline
                      P Offline
                      Peter666666
                      schrieb am zuletzt editiert von Peter666666
                      #22

                      @paul53 Würde das Historisieren mit dem SA Adapter funktionieren wenn man den DP "kosten Gesamt" nimmt da dieser Wert ja immer steigt oder muss man da den DP "kosten zum letzten Preis" nehmen?

                      LG Peter

                      Intel NUC i5 / 16GB RAM / 512GB SSD
                      Synology DS220+ 10GB RAM / 8TB

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      816

                      Online

                      32.5k

                      Benutzer

                      81.8k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe