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. JavaScript
  5. Array nach Preisen sortiert mit Startzeit aus Tibberconnect

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

Array nach Preisen sortiert mit Startzeit aus Tibberconnect

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 633 Aufrufe 4 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.
  • paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #1

    @babl
    Gemäß Deinem Wunsch, ein nach Preisen sortiertes Array zu erhalten, in dessen Objekten auch die Startzeit enthalten ist, schlage ich folgendes Skript vor. Es soll die Preise und Startstunden für heute 17:00 Uhr bis morgen 16:00 Uhr liefern (hoffe ich). Format:

    [{start: 4, preis: 0.24}, {start: 3, preis: 0.25}, ...]
    
    const tibber = 'tibberconnect.0.Homes.ffXXX.'; // Anpassen!
    const idSort = '0_userdata.0.Tibber.Preise.sortiert'; // DP-Typ: "array"
    
    function sortPreis(a, b) {
        return a.preis - b.preis;
    }
    
    schedule('57 16 * * *', function() {
        const preise = [];
        for(let i = 17; i < 24; i++) {
            let obj = {};
            let idStart = tibber + 'PricesToday.' + i + '.startsAt';
            let idPreis = tibber + 'PricesToday.' + i + '.total';
            obj.start = new Date(getState(idStart).val).getHours();
            obj.preis = getState(idPreis).val;
            preise.push(obj);
        }
        for(let i = 0; i < 17; i++) {
            let obj = {};
            let idStart = tibber + 'PricesTomorrow.' + i + '.startsAt';
            let idPreis = tibber + 'PricesTomorrow.' + i + '.total';
            obj.start = new Date(getState(idStart).val).getHours();
            obj.preis = getState(idPreis).val;
            preise.push(obj);
        }
        preise.sort(sortPreis);
        setState(idSort, preise, true);
    });
    

    Das Skript ist nicht getestet, da keine Datenpunkte vorhanden.
    Das Array im Datenpunkt lässt sich auch mit Blockly weiter verarbeiten.

    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

    arteckA 1 Antwort Letzte Antwort
    1
    • paul53P paul53

      @babl
      Gemäß Deinem Wunsch, ein nach Preisen sortiertes Array zu erhalten, in dessen Objekten auch die Startzeit enthalten ist, schlage ich folgendes Skript vor. Es soll die Preise und Startstunden für heute 17:00 Uhr bis morgen 16:00 Uhr liefern (hoffe ich). Format:

      [{start: 4, preis: 0.24}, {start: 3, preis: 0.25}, ...]
      
      const tibber = 'tibberconnect.0.Homes.ffXXX.'; // Anpassen!
      const idSort = '0_userdata.0.Tibber.Preise.sortiert'; // DP-Typ: "array"
      
      function sortPreis(a, b) {
          return a.preis - b.preis;
      }
      
      schedule('57 16 * * *', function() {
          const preise = [];
          for(let i = 17; i < 24; i++) {
              let obj = {};
              let idStart = tibber + 'PricesToday.' + i + '.startsAt';
              let idPreis = tibber + 'PricesToday.' + i + '.total';
              obj.start = new Date(getState(idStart).val).getHours();
              obj.preis = getState(idPreis).val;
              preise.push(obj);
          }
          for(let i = 0; i < 17; i++) {
              let obj = {};
              let idStart = tibber + 'PricesTomorrow.' + i + '.startsAt';
              let idPreis = tibber + 'PricesTomorrow.' + i + '.total';
              obj.start = new Date(getState(idStart).val).getHours();
              obj.preis = getState(idPreis).val;
              preise.push(obj);
          }
          preise.sort(sortPreis);
          setState(idSort, preise, true);
      });
      

      Das Skript ist nicht getestet, da keine Datenpunkte vorhanden.
      Das Array im Datenpunkt lässt sich auch mit Blockly weiter verarbeiten.

      arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      @paul53 bin auf dein script gestossen

      in Zeile 26

      preise.sort(sortPreis);
      

      in der funktion sind aber 2 parameter

      function sortPreis(a, b) {
          return a.preis - b.preis;
      }
      

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      paul53P 1 Antwort Letzte Antwort
      0
      • arteckA arteck

        @paul53 bin auf dein script gestossen

        in Zeile 26

        preise.sort(sortPreis);
        

        in der funktion sind aber 2 parameter

        function sortPreis(a, b) {
            return a.preis - b.preis;
        }
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

        @arteck sagte: in Zeile 26

        Das ist eine Funktionsreferenz für die Javascriptfunktion array.sort().

        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

        arteckA 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @arteck sagte: in Zeile 26

          Das ist eine Funktionsreferenz für die Javascriptfunktion array.sort().

          arteckA Offline
          arteckA Offline
          arteck
          Developer Most Active
          schrieb am zuletzt editiert von arteck
          #4

          @paul53 das kannst du auch so schreiben

          preise.sort(function(a, b) {
                  return a.preis - b.preis;
              });
          

          übrigends funktionert gut

          zigbee hab ich, zwave auch, nuc's genauso und HA auch

          paul53P 1 Antwort Letzte Antwort
          0
          • arteckA arteck

            @paul53 das kannst du auch so schreiben

            preise.sort(function(a, b) {
                    return a.preis - b.preis;
                });
            

            übrigends funktionert gut

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

            @arteck sagte: das kannst du auch so schreiben

            Richtig.

            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
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            807

            Online

            32.4k

            Benutzer

            81.6k

            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