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. Gelöst: Datenpunkte addieren

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Gelöst: Datenpunkte addieren

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
44 Beiträge 5 Kommentatoren 1.9k 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.
  • M michihorn

    Hallo ich protokolliere die Regenmengen jeden Tag, einmal die Woche möchte ich die Regenmengen zusammen addieren und als Regenmenge Kalenderwoche ausgeben.
    Die Datenpunkte sehen so aus:
    regen.png
    Wie kann ich nun ohne große Tip Arbeit die DP addieren, nun sind es bei den Tagen nur 7, ist überschaubar, wenn ich aber später die 52 KW addieren möchte wird es aufwendig.
    DP Syntax = 0_userdata.0.Giethoorn.Wetter.Regen_Mo usw.
    Gibt es eine elegante Lösung?
    Gruß
    Michael

    CodierknechtC Online
    CodierknechtC Online
    Codierknecht
    Developer Most Active
    schrieb am zuletzt editiert von
    #3

    @michihorn
    Mit "ID von Selektor" geht das eigentlich ziemlich einfach.

    Wie lautet genau die ID von Wetter.KW?

    Sollte etwa so funktionieren:

    bf8e4fb8-15c0-4797-ba2e-af39532e45b6-grafik.png

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
    HmIP|ZigBee|Tasmota|Unifi
    Zabbix Certified Specialist
    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

    M 1 Antwort Letzte Antwort
    0
    • mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #4

      War klar dass id Puzzlefreunde meinen es geht schneller - aber NodeRed ist unschlagbar:

      838bc0d0-fbe3-456b-abb9-d9bfa831bf5d-image.png

      Also die Summe lautet 21.6 :)

      fc8b6032-5f85-462b-a256-99eb8f4ae25b-image.png

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      CodierknechtC 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        War klar dass id Puzzlefreunde meinen es geht schneller - aber NodeRed ist unschlagbar:

        838bc0d0-fbe3-456b-abb9-d9bfa831bf5d-image.png

        Also die Summe lautet 21.6 :)

        fc8b6032-5f85-462b-a256-99eb8f4ae25b-image.png

        CodierknechtC Online
        CodierknechtC Online
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von
        #5

        @mickym
        Wenn man NodeRed installiert hat.

        Ich brauch's nicht :grin:

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        1 Antwort Letzte Antwort
        0
        • mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #6

          Na wenn man den JS Adapter installiert hat, ich brauch ihn nicht. ;)

          Ich hätte ja nichts im gepostet, wenn der Threadersteller im Blockly oder JS Forum gepostet hätte, aber so gehe ich mal davon aus, dass er technologieoffen ist und keine ideologische Brille auf hat.

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          CodierknechtC 1 Antwort Letzte Antwort
          0
          • mickymM mickym

            Na wenn man den JS Adapter installiert hat, ich brauch ihn nicht. ;)

            Ich hätte ja nichts im gepostet, wenn der Threadersteller im Blockly oder JS Forum gepostet hätte, aber so gehe ich mal davon aus, dass er technologieoffen ist und keine ideologische Brille auf hat.

            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von
            #7

            @mickym
            Mir persönlich ist das doch Wumpe.
            Jeder so, wie er/sie am besten klarkommt.

            Allerdings haben die meisten halt JS eh schon installiert.
            Da wäre dann wieder NodeRed unnötig, nur um an eine Summe zu kommen.

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            mickymM 1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

              @mickym
              Mir persönlich ist das doch Wumpe.
              Jeder so, wie er/sie am besten klarkommt.

              Allerdings haben die meisten halt JS eh schon installiert.
              Da wäre dann wieder NodeRed unnötig, nur um an eine Summe zu kommen.

              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von
              #8

              @codierknecht Alles gut - Du machst einen tollen Job hier und hilfst vielen und die meisten puzzeln inzwischen eh hier alle, insofern ist Dein Beitrag für den TE sowieso sinnvoller als meiner. Ich will nur manchmal aufgrund der Technologieoffenheit auf Alternativen hinweisen.

              Aber wie gesagt - Du machst hier einen tollen Job und störe nicht länger, ausser es wird gewünscht.

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              CodierknechtC 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @codierknecht Alles gut - Du machst einen tollen Job hier und hilfst vielen und die meisten puzzeln inzwischen eh hier alle, insofern ist Dein Beitrag für den TE sowieso sinnvoller als meiner. Ich will nur manchmal aufgrund der Technologieoffenheit auf Alternativen hinweisen.

                Aber wie gesagt - Du machst hier einen tollen Job und störe nicht länger, ausser es wird gewünscht.

                CodierknechtC Online
                CodierknechtC Online
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von
                #9

                @mickym sagte in Datenpunkte addieren:

                Du machst einen tollen Job hier

                Gebe ich gerne zurück.

                Lassen wir den TE entscheiden, was für ihn sinnvoller oder einfacher ist.

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Certified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @michihorn Wenn Du NodeRed nutzt ist das mit wenigen Nodes erledigt.

                  M Online
                  M Online
                  michihorn
                  schrieb am zuletzt editiert von
                  #10

                  @mickym Ich würde das gerne per Script machen

                  1 Antwort Letzte Antwort
                  1
                  • CodierknechtC Codierknecht

                    @michihorn
                    Mit "ID von Selektor" geht das eigentlich ziemlich einfach.

                    Wie lautet genau die ID von Wetter.KW?

                    Sollte etwa so funktionieren:

                    bf8e4fb8-15c0-4797-ba2e-af39532e45b6-grafik.png

                    M Online
                    M Online
                    michihorn
                    schrieb am zuletzt editiert von
                    #11

                    @codierknecht 0_userdata.0.Giethoorn.Wetter.Regen_Mo
                    Bitte kein Blocky

                    CodierknechtC 1 Antwort Letzte Antwort
                    0
                    • M michihorn

                      @codierknecht 0_userdata.0.Giethoorn.Wetter.Regen_Mo
                      Bitte kein Blocky

                      CodierknechtC Online
                      CodierknechtC Online
                      Codierknecht
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #12

                      @michihorn sagte in Datenpunkte addieren:

                      Bitte kein Blocky

                      Dann etwa so:

                      var regenmenge = 0;
                      const states = Array.prototype.slice.apply($('0_userdata.0.Giethoorn.Wetter.*'));
                      for (var state_index in states) {
                        state = states[state_index];
                        regenmenge += getState(state).val;
                      }
                      console.log(regenmenge);
                      

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Certified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      paul53P 1 Antwort Letzte Antwort
                      1
                      • CodierknechtC Codierknecht

                        @michihorn sagte in Datenpunkte addieren:

                        Bitte kein Blocky

                        Dann etwa so:

                        var regenmenge = 0;
                        const states = Array.prototype.slice.apply($('0_userdata.0.Giethoorn.Wetter.*'));
                        for (var state_index in states) {
                          state = states[state_index];
                          regenmenge += getState(state).val;
                        }
                        console.log(regenmenge);
                        
                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #13

                        @codierknecht sagte: Dann etwa so:

                        Der $Selector hat eine eigene Schleifenfunktion.

                        const states = $('0_userdata.0.Giethoorn.Wetter.Regen_*');
                        
                        let regenmenge = 0;
                        states.each(function(id) {
                          regenmenge += getState(id).val;
                        });
                        log(regenmenge);
                        

                        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

                        CodierknechtC M 2 Antworten Letzte Antwort
                        0
                        • paul53P paul53

                          @codierknecht sagte: Dann etwa so:

                          Der $Selector hat eine eigene Schleifenfunktion.

                          const states = $('0_userdata.0.Giethoorn.Wetter.Regen_*');
                          
                          let regenmenge = 0;
                          states.each(function(id) {
                            regenmenge += getState(id).val;
                          });
                          log(regenmenge);
                          
                          CodierknechtC Online
                          CodierknechtC Online
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #14

                          @paul53
                          Danke. Muss ich mir merken.
                          Da kann ich noch das eine oder andere Script umbauen.

                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                          HmIP|ZigBee|Tasmota|Unifi
                          Zabbix Certified Specialist
                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                          1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @codierknecht sagte: Dann etwa so:

                            Der $Selector hat eine eigene Schleifenfunktion.

                            const states = $('0_userdata.0.Giethoorn.Wetter.Regen_*');
                            
                            let regenmenge = 0;
                            states.each(function(id) {
                              regenmenge += getState(id).val;
                            });
                            log(regenmenge);
                            
                            M Online
                            M Online
                            michihorn
                            schrieb am zuletzt editiert von
                            #15

                            @paul53 sagte in Datenpunkte addieren:

                            const states = $('0_userdata.0.Giethoorn.Wetter.Regen_*'); let regenmenge = 0; states.each(function(id) { regenmenge += getState(id).val; } log(regenmenge);

                            Danke bis auf eine fehlende "schliessende Klammer", in Zeile 6, klappt das:

                            const states = $('0_userdata.0.Giethoorn.Wetter.Tage.Regen_*');
                             
                            let regenmenge = 0;
                            states.each(function(id) {
                              regenmenge += getState(id).val;
                            })
                            log(regenmenge);
                            

                            Hast du noch einen Tip wie ich die aktuelle Kalenderwoche berechne?
                            Gruß
                            Michael

                            CodierknechtC 1 Antwort Letzte Antwort
                            0
                            • M michihorn

                              @paul53 sagte in Datenpunkte addieren:

                              const states = $('0_userdata.0.Giethoorn.Wetter.Regen_*'); let regenmenge = 0; states.each(function(id) { regenmenge += getState(id).val; } log(regenmenge);

                              Danke bis auf eine fehlende "schliessende Klammer", in Zeile 6, klappt das:

                              const states = $('0_userdata.0.Giethoorn.Wetter.Tage.Regen_*');
                               
                              let regenmenge = 0;
                              states.each(function(id) {
                                regenmenge += getState(id).val;
                              })
                              log(regenmenge);
                              

                              Hast du noch einen Tip wie ich die aktuelle Kalenderwoche berechne?
                              Gruß
                              Michael

                              CodierknechtC Online
                              CodierknechtC Online
                              Codierknecht
                              Developer Most Active
                              schrieb am zuletzt editiert von Codierknecht
                              #16

                              @michihorn sagte in Datenpunkte addieren:

                              Hast du noch einen Tip wie ich die aktuelle Kalenderwoche berechne?

                              const moment = require("moment");
                              
                              let week = moment().isoWeek();
                              // oder für ein spezifisches Datum:
                              // let week = moment('2024/02/13').isoWeek();
                              log(week);
                              

                              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                              HmIP|ZigBee|Tasmota|Unifi
                              Zabbix Certified Specialist
                              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                              M 1 Antwort Letzte Antwort
                              1
                              • CodierknechtC Codierknecht

                                @michihorn sagte in Datenpunkte addieren:

                                Hast du noch einen Tip wie ich die aktuelle Kalenderwoche berechne?

                                const moment = require("moment");
                                
                                let week = moment().isoWeek();
                                // oder für ein spezifisches Datum:
                                // let week = moment('2024/02/13').isoWeek();
                                log(week);
                                
                                M Online
                                M Online
                                michihorn
                                schrieb am zuletzt editiert von michihorn
                                #17

                                @codierknecht sagte in Datenpunkte addieren:

                                const moment = require("moment"); let week = moment().isoWeek(); // oder für ein spezifisches Datum: // let week = moment('2024/02/13').isoWeek(); log(week);

                                Danke, klappt, gibt es auch eine Funktion für den Monat?

                                CodierknechtC 1 Antwort Letzte Antwort
                                0
                                • mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von mickym
                                  #18

                                  Es kann sein, dass du mit der Moment Bibliothek und dem JS Adapter bei jedem Neustart einen Haufen Warnungen bekommst.

                                  Dann nutze lieber die days Bibliothek: https://day.js.org/docs/en/get-set/iso-weeks-in-year

                                  Jetzt bin ich aber wirklich weg. ;)

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • mickymM mickym

                                    Es kann sein, dass du mit der Moment Bibliothek und dem JS Adapter bei jedem Neustart einen Haufen Warnungen bekommst.

                                    Dann nutze lieber die days Bibliothek: https://day.js.org/docs/en/get-set/iso-weeks-in-year

                                    Jetzt bin ich aber wirklich weg. ;)

                                    M Online
                                    M Online
                                    michihorn
                                    schrieb am zuletzt editiert von
                                    #19

                                    @mickym Ne es gab keine Warnungen, Moment im JS als zusätze NPM eintragen und gut.
                                    Leider gibt es über "moment" keine Funktion "isoMonth".
                                    Eine Days Bibliothek kenne ich nicht. Danke für den Link.

                                    1 Antwort Letzte Antwort
                                    0
                                    • M michihorn

                                      @codierknecht sagte in Datenpunkte addieren:

                                      const moment = require("moment"); let week = moment().isoWeek(); // oder für ein spezifisches Datum: // let week = moment('2024/02/13').isoWeek(); log(week);

                                      Danke, klappt, gibt es auch eine Funktion für den Monat?

                                      CodierknechtC Online
                                      CodierknechtC Online
                                      Codierknecht
                                      Developer Most Active
                                      schrieb am zuletzt editiert von
                                      #20

                                      @michihorn sagte in Datenpunkte addieren:

                                      Danke, klappt, gibt es auch eine Funktion für den Monat?

                                      Ein- oder zweistellig?

                                      let month = moment().format('M');
                                      log(month);
                                      month = moment().format('MM');
                                      log(month);
                                      

                                      @mickym moment funzt einwandfrei - ohne Warnungen o.ä. ;-)

                                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                      HmIP|ZigBee|Tasmota|Unifi
                                      Zabbix Certified Specialist
                                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                      mickymM 1 Antwort Letzte Antwort
                                      0
                                      • CodierknechtC Codierknecht

                                        @michihorn sagte in Datenpunkte addieren:

                                        Danke, klappt, gibt es auch eine Funktion für den Monat?

                                        Ein- oder zweistellig?

                                        let month = moment().format('M');
                                        log(month);
                                        month = moment().format('MM');
                                        log(month);
                                        

                                        @mickym moment funzt einwandfrei - ohne Warnungen o.ä. ;-)

                                        mickymM Online
                                        mickymM Online
                                        mickym
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #21

                                        @codierknecht sagte in Datenpunkte addieren:

                                        @michihorn sagte in Datenpunkte addieren:

                                        Danke, klappt, gibt es auch eine Funktion für den Monat?

                                        Ein- oder zweistellig?

                                        let month = moment().format('M');
                                        log(month);
                                        month = moment().format('MM');
                                        log(month);
                                        

                                        @mickym moment funzt einwandfrei - ohne Warnungen o.ä. ;-)

                                        Na gut. Ich dachte, ich hätte Warnungen gesehen, wenn man die Maschine neu startet.

                                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                        CodierknechtC 1 Antwort Letzte Antwort
                                        1
                                        • M Online
                                          M Online
                                          michihorn
                                          schrieb am zuletzt editiert von
                                          #22

                                          @mickym Ne es gab keine Warnungen, Moment im JS als zusätze NPM eintragen und gut.
                                          Leider gibt es über "moment" keine Funktion "isoMonth".
                                          Eine Days Bibliothek kenne ich nicht. Danke für den Link.

                                          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

                                          711

                                          Online

                                          32.6k

                                          Benutzer

                                          82.3k

                                          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