Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Tibber Strompreis Simulation

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Tibber Strompreis Simulation

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @Mosel 1992 last edited by 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.

      Mosel 1992 P 2 Replies Last reply Reply Quote 0
      • Mosel 1992
        Mosel 1992 @paul53 last edited by

        @paul53

        super danke dir schon mal. also aktuell klappt es soweit, nur der Strompreis ist der falsch.... er hat aktuell 6 Cent? das kann nicht stimmen oder?

        Mosel 1992 paul53 2 Replies Last reply Reply Quote 0
        • Mosel 1992
          Mosel 1992 @Mosel 1992 last edited by

          @mosel-1992 muss mich korrigieren, der Preis stimmt, es fehlen nur die Nebenkosten. Die muss ich jetzt mal herausfinden, wie die sich rechnerisch zusammensetzen.

          Wenn man bei dem Zeitplan sagt alle 60 Minuten, macht er das dann immer zur vollen Stunde oder ab dem Moment wo das Skript läuft immer alle 60 min ?

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Mosel 1992 last edited by

            @mosel-1992 sagte: er hat aktuell 6 Cent? das kann nicht stimmen oder?

            Es ist der Arbeitspreis ohne Umsatzsteuer.

            @mosel-1992 sagte in Tibber Strompreis Simulation:

            Wenn man bei dem Zeitplan sagt alle 60 Minuten, macht er das dann immer zur vollen Stunde

            Ja, zur vollen Stunde.

            Mosel 1992 1 Reply Last reply Reply Quote 0
            • Mosel 1992
              Mosel 1992 @paul53 last edited by 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 1992 1 Reply Last reply Reply Quote 0
              • Mosel 1992
                Mosel 1992 @Mosel 1992 last edited by

                @mosel-1992

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

                Mosel 1992 1 Reply Last reply Reply Quote 0
                • Mosel 1992
                  Mosel 1992 @Mosel 1992 last edited by

                  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 Reply Last reply Reply Quote 0
                  • Mosel 1992
                    Mosel 1992 @paul53 last edited by

                    @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 ?

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Mosel 1992 last edited by

                      @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 1992 1 Reply Last reply Reply Quote 0
                      • Mosel 1992
                        Mosel 1992 @paul53 last edited by

                        @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 1992 paul53 2 Replies Last reply Reply Quote 0
                        • Mosel 1992
                          Mosel 1992 @Mosel 1992 last edited by

                          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 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Mosel 1992 last edited by

                            @mosel-1992 sagte: hinter dem Zeit trigger?

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

                            1 Reply Last reply Reply Quote 0
                            • Marc Berg
                              Marc Berg Most Active last edited by Marc Berg

                              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.

                              1 Reply Last reply Reply Quote 0
                              • P
                                Peter666666 @paul53 last edited by Peter666666

                                @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 🙄

                                Bild 03.01.24 um 14.16.jpeg

                                1 Reply Last reply Reply Quote 0
                                • P
                                  Peter666666 @paul53 last edited by Peter666666

                                  @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?

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

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

                                  922
                                  Online

                                  31.9k
                                  Users

                                  80.1k
                                  Topics

                                  1.3m
                                  Posts

                                  4
                                  22
                                  1732
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo