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.5k

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

  • 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 Online
    M Online
    michihorn
    schrieb am zuletzt editiert von michihorn
    #1

    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 CodierknechtC 2 Antworten 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

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          635

                                          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