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. Skripten / Logik
  4. Import von Daten in ioBroker

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    225

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Import von Daten in ioBroker

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptblockly
24 Beiträge 5 Kommentatoren 3.5k 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.
  • J.A.R.V.I.S.J Offline
    J.A.R.V.I.S.J Offline
    J.A.R.V.I.S.
    Developer
    schrieb am zuletzt editiert von J.A.R.V.I.S.
    #4

    Hey,

    hier mein erster Ansatz. Ist noch nicht perfekt, fragt aber schon vernünftig die Daten ab.

    const request = require("request");
    
    const url = "https://api.awattar.de/v1/marketdata";
    
    function requestData() {
    
        const options = {
            url: url,
            method: 'GET'
        };
    
        request(options, (error, response, body) => {
            
            if(error) return console.log(error);
    
            if(response.statusCode == 200) {
    
                let array = JSON.parse(body).data;
    
                for(let i = 0; i < array.length; i++) {
                    
                    let stateBaseName = "electricity.prices." + i + ".";
                    
                    createState(stateBaseName + "start", "", {
                        read: true,
                        write: true,
                        name: "Gultigkeitsbeginn (Uhrzeit)",
                        type: "string",
                        def: false
                    });
    
                    createState(stateBaseName + "startDate", "", {
                        read: true,
                        write: true,
                        name: "Gultigkeitsbeginn (Datum)",
                        type: "string",
                        def: false
                    });
    
                    createState(stateBaseName + "end", "", {
                        read: true,
                        write: true,
                        name: "Gultigkeitsende (Uhrzeit)",
                        type: "string",
                        def: false
                    });
    
                    createState(stateBaseName + "endDate", "", {
                        read: true,
                        write: true,
                        name: "Gultigkeitsende (Datum)",
                        type: "string",
                        def: false
                    });
    
                    createState(stateBaseName + "price", 0, {
                        read: true,
                        write: true,
                        name: "Preis",
                        type: "number",
                        def: 0
                    });
    
                    createState(stateBaseName + "unit", "", {
                        read: true,
                        write: true,
                        name: "Einheit",
                        type: "string",
                        def: false
                    });
    
                    let start = new Date(array[i].start_timestamp);
                    let startTime = start.toLocaleTimeString('de-DE');
                    let startDate = start.toLocaleDateString('de-DE');
    
                    let end = new Date(array[i].end_timestamp);
                    let endTime = end.toLocaleTimeString('de-DE');
                    let endDate = end.toLocaleDateString('de-DE');
    
                    let price = array[i].marketprice;
                    let unit = array[i].unit;
    
                    setState(stateBaseName + "start", startTime);
                    setState(stateBaseName + "startDate", startDate);
                    setState(stateBaseName + "end", endTime);
                    setState(stateBaseName + "endDate", endDate);
                    setState(stateBaseName + "price", price);
                    setState(stateBaseName + "unit", unit);
                }
            }
        });
    }
    
    schedule("30 15 * * *", function () {
        requestData();
    });
    

    Das Thema mit dem Stundenpreis (soll das der Durschnittspreis sein?) musst du mir noch ein bisschen erläutern, am besten an einem Beispiel, oder du probierst dich mit dem jetzigen selber ein bisschen aus.

    J.A.R.V.I.S.

    1 Antwort Letzte Antwort
    0
    • D Offline
      D Offline
      deta
      Most Active
      schrieb am zuletzt editiert von
      #5

      Mh ok danke schon mal.
      Hab das Skript jetzt als JS eingebunden.
      Start kein Fehler.
      Wo schreibt er die Daten hin? In den Objekten?

      Also ich versuche es mal zu erklären.
      bei dem Anbieter wird die KW / h Stündlich verändert.
      d.h. je nach Börsenwert.
      Der gesamte KW/h Preis ist dan jede Stunde anders.
      Der Preis setzt sich dann so zusammen:
      Gesamtpreis

      Arbeitspreis 19,91 + EPEX Spot DE + 0,250
      19,91 = Netznutzung, Umlagen, Abgaben, Steuern1
      EPEX = der aktuelle Börsenpreis

      Preis ist immer Cent/kWh

      Wird genau hier beschrieben KLICK

      Die kW bekommt man über den Discovergy Adapter.
      Es langt erst mal das man den jewiligen Stunden Preis Cent/kWh hat.

      Dann kann man mal weiter sehen.

      Das Ziel soll sein, das ich jederzeit genau sehen kann, was kommt auf die nächste Rechnung :-)

      Mfg
      Deta

      J.A.R.V.I.S.J 1 Antwort Letzte Antwort
      0
      • D deta

        Mh ok danke schon mal.
        Hab das Skript jetzt als JS eingebunden.
        Start kein Fehler.
        Wo schreibt er die Daten hin? In den Objekten?

        Also ich versuche es mal zu erklären.
        bei dem Anbieter wird die KW / h Stündlich verändert.
        d.h. je nach Börsenwert.
        Der gesamte KW/h Preis ist dan jede Stunde anders.
        Der Preis setzt sich dann so zusammen:
        Gesamtpreis

        Arbeitspreis 19,91 + EPEX Spot DE + 0,250
        19,91 = Netznutzung, Umlagen, Abgaben, Steuern1
        EPEX = der aktuelle Börsenpreis

        Preis ist immer Cent/kWh

        Wird genau hier beschrieben KLICK

        Die kW bekommt man über den Discovergy Adapter.
        Es langt erst mal das man den jewiligen Stunden Preis Cent/kWh hat.

        Dann kann man mal weiter sehen.

        Das Ziel soll sein, das ich jederzeit genau sehen kann, was kommt auf die nächste Rechnung :-)

        Mfg
        Deta

        J.A.R.V.I.S.J Offline
        J.A.R.V.I.S.J Offline
        J.A.R.V.I.S.
        Developer
        schrieb am zuletzt editiert von
        #6

        @deta sagte in Import von Daten in ioBroker:

        Wo schreibt er die Daten hin? In den Objekten?

        Die Datenpunkte liegen, je nach Instanz, unter javascript.0.electricity ...

        Das mit den Preisen schau ich mir bei Gelegenheit nochmal an. Wird aber vermutlich erst nächste Woche etwas.

        J.A.R.V.I.S.

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          deta
          Most Active
          schrieb am zuletzt editiert von
          #7

          Leider nur das in den Objekten:
          Screenshot_20191121_155939.png

          Sonst nix!

          1 Antwort Letzte Antwort
          0
          • J.A.R.V.I.S.J Offline
            J.A.R.V.I.S.J Offline
            J.A.R.V.I.S.
            Developer
            schrieb am zuletzt editiert von J.A.R.V.I.S.
            #8

            Hast du in der Javascript Instanz das "request" Modul hinzugefügt?

            Falls nicht, einfach in der Instanz "request" bei den zusätzlichen NPM Modulen eintragen.

            D 1 Antwort Letzte Antwort
            0
            • J.A.R.V.I.S.J J.A.R.V.I.S.

              Hast du in der Javascript Instanz das "request" Modul hinzugefügt?

              Falls nicht, einfach in der Instanz "request" bei den zusätzlichen NPM Modulen eintragen.

              D Offline
              D Offline
              deta
              Most Active
              schrieb am zuletzt editiert von
              #9

              @J-A-R-V-I-S sagte in Import von Daten in ioBroker:

              Hast du in der Javascript Instanz das "request" Modul hinzugefügt?

              Falls nicht, einfach in der Instanz "request" bei den zusätzlichen NPM Modulen eintragen.

              Mh denke nicht, weis auch jetzt nicht genau was du meinst.
              Hab es als JS einfach angelegt. Wo genau muss ich da jetzt noch was machen?
              Es ist ja nur das Javascipt welche Instanz ?
              :thinking_face:

              J.A.R.V.I.S.J 1 Antwort Letzte Antwort
              0
              • D deta

                @J-A-R-V-I-S sagte in Import von Daten in ioBroker:

                Hast du in der Javascript Instanz das "request" Modul hinzugefügt?

                Falls nicht, einfach in der Instanz "request" bei den zusätzlichen NPM Modulen eintragen.

                Mh denke nicht, weis auch jetzt nicht genau was du meinst.
                Hab es als JS einfach angelegt. Wo genau muss ich da jetzt noch was machen?
                Es ist ja nur das Javascipt welche Instanz ?
                :thinking_face:

                J.A.R.V.I.S.J Offline
                J.A.R.V.I.S.J Offline
                J.A.R.V.I.S.
                Developer
                schrieb am zuletzt editiert von J.A.R.V.I.S.
                #10

                @deta die Javascript Instanz. Also die Einstellungen von Javascript. Dort musst du das einmal eintragen.

                1 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  deta
                  Most Active
                  schrieb am zuletzt editiert von
                  #11

                  Sieht jetzt so aus...
                  Screenshot_20191121_195028.png
                  Hab die Instanz neu gestartet. Aber in den Objekten tat sich nix neues.

                  J.A.R.V.I.S.J 1 Antwort Letzte Antwort
                  0
                  • D deta

                    Sieht jetzt so aus...
                    Screenshot_20191121_195028.png
                    Hab die Instanz neu gestartet. Aber in den Objekten tat sich nix neues.

                    J.A.R.V.I.S.J Offline
                    J.A.R.V.I.S.J Offline
                    J.A.R.V.I.S.
                    Developer
                    schrieb am zuletzt editiert von
                    #12

                    @deta mit dem Setup sollte es aber funktionieren.

                    181192e4-5013-461a-ae0f-4567ed7e0865-grafik.png

                    So in der Art sollte es dann aussehen. Habe auch keine extra Einstellungen, außer dem NPM Modul.

                    D 1 Antwort Letzte Antwort
                    0
                    • J.A.R.V.I.S.J J.A.R.V.I.S.

                      @deta mit dem Setup sollte es aber funktionieren.

                      181192e4-5013-461a-ae0f-4567ed7e0865-grafik.png

                      So in der Art sollte es dann aussehen. Habe auch keine extra Einstellungen, außer dem NPM Modul.

                      D Offline
                      D Offline
                      deta
                      Most Active
                      schrieb am zuletzt editiert von
                      #13

                      @J-A-R-V-I-S hab jetzt sogar den iobroker komplett neu gestartet!
                      Die Datenpunkte werden nicht angelegt.

                      1 Antwort Letzte Antwort
                      0
                      • J.A.R.V.I.S.J Offline
                        J.A.R.V.I.S.J Offline
                        J.A.R.V.I.S.
                        Developer
                        schrieb am zuletzt editiert von J.A.R.V.I.S.
                        #14

                        @deta ... ich habe da etwas vergessen zu sagen :man-facepalming:

                        Das Skript wird nur täglich um 15:30 Uhr ausgeführt.

                        Du kannst es einmal triggern, indem du folgende Zeile außerhalb der Funktionen hinschreibst du einmal das Skript anstartest.

                        requestData();
                        
                        1 Antwort Letzte Antwort
                        0
                        • D Offline
                          D Offline
                          deta
                          Most Active
                          schrieb am zuletzt editiert von
                          #15

                          Alles klar, Datenpunkte sind jetzt da!
                          Nur noch keine Werte. Ich lass es mal laufen und werde ja sehen was heute wenn ich nach Hause komme
                          nach 15:30 aussieht :-)

                          Sag dir bescheid dann ...

                          1 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            deta
                            Most Active
                            schrieb am zuletzt editiert von
                            #16

                            Jep Datenpunkte und Daten sind da....

                            So nun mal weiter denken...
                            Der Discovergy Adapter liefert nun immer den aktuellen Stromverbauch in Watt der jetzt gerade verbracht wird.
                            Dieser müste dann Stündlich zusammengefasst werden. Dann habe wir den Wattverbrauch der Stunde.
                            Das umgerechnet in kwh, das mit dem aktuellen Preis der Stunde ausgerechnet. Haben dann die Kosten für diese Stunde.
                            Und das für jede Stunde gerechnet am Ende nach 24 Stunden hab ich die genauen kosten für diesen Tag.

                            Ähm ich hoffe ich hab da nix jetzt verdreht :dizzy_face:

                            Ich denke so muss die Berechnung erfolgen.

                            Bekommt man das irgendwie hin oder hab ich da einen Denkfehler..

                            1 Antwort Letzte Antwort
                            0
                            • D Offline
                              D Offline
                              deta
                              Most Active
                              schrieb am zuletzt editiert von
                              #17

                              Eventuell bekomme ich die Watt per Stunde über den Discovergy Adapter, da dieser per API wohl abfragbar ist.
                              Erst mal nix machen weiter... Das würde denke ich einiges vereinfachen...

                              Melde mich wieder wenn ich weiteres weis.

                              1 Antwort Letzte Antwort
                              0
                              • J.A.R.V.I.S.J Offline
                                J.A.R.V.I.S.J Offline
                                J.A.R.V.I.S.
                                Developer
                                schrieb am zuletzt editiert von
                                #18

                                Okay, dann warte ich auf deine Rückmeldung.

                                1 Antwort Letzte Antwort
                                0
                                • N Offline
                                  N Offline
                                  NetFritz
                                  schrieb am zuletzt editiert von
                                  #19

                                  @J-A-R-V-I-S sagte in Import von Daten in ioBroker:

                                  https://api.awattar.de/v1/marketdata

                                  Hallo
                                  Was gibt es Neues zu diesen Script.
                                  Wollte eigentlich nur zum Testen die Preise in eine InfluxDB schreiben.
                                  Gruß NetFritz

                                  1 Antwort Letzte Antwort
                                  0
                                  • J.A.R.V.I.S.J J.A.R.V.I.S.

                                    Hey @deta,

                                    ich würde mir das mal anschauen, wenn du mir noch ein paar Informationen bereitstellst.

                                    1. Möchtest du die Daten auch im VIS anzeigen?

                                    2. Möchtest du die Daten in einzelnen Datenpunkten oder als ein Datenpunkt mit JSON?

                                    3. Wie möchtest du den Stundenpreis an Tag X ermitteln? Per Skript? Beim Update der Daten oder im Nachhinein?

                                    J.A.R.V.I.S.

                                    H Offline
                                    H Offline
                                    Holyasgard
                                    schrieb am zuletzt editiert von
                                    #20

                                    @J-A-R-V-I-S
                                    Dürfte ich Fragen wie es zwecks auslesen der API für ein Status gibt ?

                                    wenn ich die Daten der API Auslese, dann stimmen die Preise nicht mit den der auf der Website überein.
                                    Selbst wenn man durch 10 dividiert was das beheben sollte.

                                    Kann man die API irgendwie importieren in iobroker sodass man so eine Tabelle erstellen kann wie bei Awattar.de ?

                                    Also von 0 Uhr bis 0 Uhr Heute und dann ab 14 Uhr dann 0 Uhr bis 0 Uhr Morgen.
                                    Hätte gerne die 2 Tabellen untereinander auf meinen Magic Mirror. Von 0 Uhr an wenn die untere nach oben geht, kann ja dann in der unteren Tabelle stehen das es erst ab 14 Uhr zur Verfügung steht.

                                    Bzw. wie kann man die Curl Werte von der API in IOBroker importieren ?

                                    Gibt es dazu irgendwelche Youtube Videos ? Mir ist da lieder nichts bekannt.

                                    AWattar ist eigentlich nicht unbekannt und mich wundert es schon irgendwie das man die Daten nicht per vorhandenes Awattar Modul einladen kann für IOBroker.
                                    Selbst Magic Mirror was eine größere Community hat wie Mirr.OS kann es nicht.

                                    Ich weiß aber auch nicht ob Magic Mirror mit einer API umgehen kann.

                                    Grüße.

                                    J.A.R.V.I.S.J 1 Antwort Letzte Antwort
                                    0
                                    • H Holyasgard

                                      @J-A-R-V-I-S
                                      Dürfte ich Fragen wie es zwecks auslesen der API für ein Status gibt ?

                                      wenn ich die Daten der API Auslese, dann stimmen die Preise nicht mit den der auf der Website überein.
                                      Selbst wenn man durch 10 dividiert was das beheben sollte.

                                      Kann man die API irgendwie importieren in iobroker sodass man so eine Tabelle erstellen kann wie bei Awattar.de ?

                                      Also von 0 Uhr bis 0 Uhr Heute und dann ab 14 Uhr dann 0 Uhr bis 0 Uhr Morgen.
                                      Hätte gerne die 2 Tabellen untereinander auf meinen Magic Mirror. Von 0 Uhr an wenn die untere nach oben geht, kann ja dann in der unteren Tabelle stehen das es erst ab 14 Uhr zur Verfügung steht.

                                      Bzw. wie kann man die Curl Werte von der API in IOBroker importieren ?

                                      Gibt es dazu irgendwelche Youtube Videos ? Mir ist da lieder nichts bekannt.

                                      AWattar ist eigentlich nicht unbekannt und mich wundert es schon irgendwie das man die Daten nicht per vorhandenes Awattar Modul einladen kann für IOBroker.
                                      Selbst Magic Mirror was eine größere Community hat wie Mirr.OS kann es nicht.

                                      Ich weiß aber auch nicht ob Magic Mirror mit einer API umgehen kann.

                                      Grüße.

                                      J.A.R.V.I.S.J Offline
                                      J.A.R.V.I.S.J Offline
                                      J.A.R.V.I.S.
                                      Developer
                                      schrieb am zuletzt editiert von J.A.R.V.I.S.
                                      #21

                                      @Holyasgard die Daten die du bekommst sind richtig. Die API liefert den Preis als Eur/mWh zurück, auf der Seite stehen sie als Cent/kWh. Die Preise der API sind die Netto-Preise, also ohne MWSt. Die müsstest du dann selber noch oben drauf rechnen.

                                      Auf der Seite selber kannst du auch zwischen Brutto- und Netto-Preisen wechseln.

                                      H 2 Antworten Letzte Antwort
                                      0
                                      • J.A.R.V.I.S.J J.A.R.V.I.S.

                                        @Holyasgard die Daten die du bekommst sind richtig. Die API liefert den Preis als Eur/mWh zurück, auf der Seite stehen sie als Cent/kWh. Die Preise der API sind die Netto-Preise, also ohne MWSt. Die müsstest du dann selber noch oben drauf rechnen.

                                        Auf der Seite selber kannst du auch zwischen Brutto- und Netto-Preisen wechseln.

                                        H Offline
                                        H Offline
                                        Holyasgard
                                        schrieb am zuletzt editiert von
                                        #22

                                        @J-A-R-V-I-S auch bei Netto wüsste ich nicht das es gestimmt hat. Hätte ich auch mal verglichen. Wie rechnet man es denn um ?

                                        Kann man das mit einer Excel Formel lösen ? Unten das in mwh eingeben und darunter steht dann das Ergebniss gleich in brutto ?

                                        Aber wie man das in iobroker bzw. Für smart Mirror einbinden kann wüsste ich aktuell leider immer noch nicht. Finde dazu leider nichts im Netz.

                                        Oder hat jemand ein Link für mich ?

                                        Ein Modul scheint es ja nicht zu geben für z.b. iobroker.

                                        1 Antwort Letzte Antwort
                                        0
                                        • J.A.R.V.I.S.J J.A.R.V.I.S.

                                          @Holyasgard die Daten die du bekommst sind richtig. Die API liefert den Preis als Eur/mWh zurück, auf der Seite stehen sie als Cent/kWh. Die Preise der API sind die Netto-Preise, also ohne MWSt. Die müsstest du dann selber noch oben drauf rechnen.

                                          Auf der Seite selber kannst du auch zwischen Brutto- und Netto-Preisen wechseln.

                                          H Offline
                                          H Offline
                                          Holyasgard
                                          schrieb am zuletzt editiert von
                                          #23

                                          @J-A-R-V-I-S Da es dafür keine wirkliche Lösung gibt es für ein Smart Mirror bzw. IOBroker aufzubereiten scheint es wohl doch Komplizierter zu sein.

                                          Awattar gibt es schon so lang und da gehe ich schon von aus das es da eigentlich ein Modul dafür geben müsste.
                                          Scheint aber doch komplizierter zu sein als gedacht.

                                          Trotzdem danke für die Hilfe.

                                          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

                                          486

                                          Online

                                          32.7k

                                          Benutzer

                                          82.5k

                                          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