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

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

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

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          686

                                          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