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. [gelöst] Brauche Hilfe bei Speichern in versch. Objekten

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] Brauche Hilfe bei Speichern in versch. Objekten

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 3 Kommentatoren 442 Aufrufe 2 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.
  • T Offline
    T Offline
    Torsten_MG
    schrieb am zuletzt editiert von Torsten_MG
    #1

    Hallo Leute,

    ich beschäftige mich nach langer Abstinenz mal wieder mit dem IOB und auch JavaScript.
    Ich habe nun ein Script nach einiger Recherche zusammengebaut welches um 00:01Uhr einige Daten mit getHistory holt.

    Nun möchte ich, dass
    am Montag morgen das Ergebnis in das Objekt "0_userdata.0.Benzinpreis.Tagesdurchschnitt.Sonntag"
    vom Dienstag morgen in das Objekt "0_userdata.0.Benzinpreis.Tagesdurchschnitt.Montag"

    usw

    geschrieben wird. Wie bekomme ich das hin?

    var end = new Date().getTime();
    var Anzahl = 0;
    var Summe = 0;
    var Summe2 = 0;
    
    
    schedule('{"time":{"exactTime":true,"start":"00:01"},"period":{"days":1}}', function () {
    getHistory('sql.0', {
     
            id:         'tankerkoenig.0.stations.1.e10.feed',
            start:      end - 86400000,
            end:        end,
            aggregate:  'min',
            timeout:    2000
        }, function (err, result) {
            if (err) console.error(err);
            if (result) {
                log(JSON.stringify(result))
                for (var i = 0; i < result.length; i++) {
    //            console.log(result[i].val + ' ' + new Date(result[i].ts).toISOString());
                console.log(result[i].val);
                Anzahl = i;
                Summe = Summe + result[i].val;
                }
                Summe2 = parseFloat((Summe / Anzahl).toFixed(2));
            }
        setState("0_userdata.0.Benzinpreis.Tagesdurchschnitt.Donnerstag", Summe2); 
        console.log("Anzahl: " + Anzahl);
        console.log("Summe: " + Summe);
        console.log("Summe: " + Summe2);
           
        });
        
     });
    
    

    Vielen Dank schonmal

    paul53P 1 Antwort Letzte Antwort
    0
    • T Torsten_MG

      Hallo Leute,

      ich beschäftige mich nach langer Abstinenz mal wieder mit dem IOB und auch JavaScript.
      Ich habe nun ein Script nach einiger Recherche zusammengebaut welches um 00:01Uhr einige Daten mit getHistory holt.

      Nun möchte ich, dass
      am Montag morgen das Ergebnis in das Objekt "0_userdata.0.Benzinpreis.Tagesdurchschnitt.Sonntag"
      vom Dienstag morgen in das Objekt "0_userdata.0.Benzinpreis.Tagesdurchschnitt.Montag"

      usw

      geschrieben wird. Wie bekomme ich das hin?

      var end = new Date().getTime();
      var Anzahl = 0;
      var Summe = 0;
      var Summe2 = 0;
      
      
      schedule('{"time":{"exactTime":true,"start":"00:01"},"period":{"days":1}}', function () {
      getHistory('sql.0', {
       
              id:         'tankerkoenig.0.stations.1.e10.feed',
              start:      end - 86400000,
              end:        end,
              aggregate:  'min',
              timeout:    2000
          }, function (err, result) {
              if (err) console.error(err);
              if (result) {
                  log(JSON.stringify(result))
                  for (var i = 0; i < result.length; i++) {
      //            console.log(result[i].val + ' ' + new Date(result[i].ts).toISOString());
                  console.log(result[i].val);
                  Anzahl = i;
                  Summe = Summe + result[i].val;
                  }
                  Summe2 = parseFloat((Summe / Anzahl).toFixed(2));
              }
          setState("0_userdata.0.Benzinpreis.Tagesdurchschnitt.Donnerstag", Summe2); 
          console.log("Anzahl: " + Anzahl);
          console.log("Summe: " + Summe);
          console.log("Summe: " + Summe2);
             
          });
          
       });
      
      

      Vielen Dank schonmal

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

      @torsten_mg sagte: am Montag morgen das Ergebnis in das Objekt "0_userdata.0.Benzinpreis.Tagesdurchschnitt.Sonntag"

      const wds = ['Samstag','Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag'];
      
      schedule('1 0 * * *', function () {
          let end = Date.now() - 60000;
          getHistory('sql.0', {
              id:         'tankerkoenig.0.stations.1.e10.feed',
              start:      end - 86400000,
              end:        end,
              aggregate:  'min',
              timeout:    2000
          }, function (err, result) {
              if (err) console.error(err);
              else if (result) {
                  log(JSON.stringify(result));
                  let Summe = 0;
                  for (let i = 0; i < result.length; i++) {
      //                console.log(result[i].val + ' ' + new Date(result[i].ts).toISOString());
                      console.log(result[i].val);
                      Summe += result[i].val;
                  }
                  let Summe2 = Math.round(100 * Summe / result.length) / 100;
                  let wd = new Date().getDay();
                  setState("0_userdata.0.Benzinpreis.Tagesdurchschnitt." + wds[wd], Summe2, true); 
                  console.log("Anzahl: " + result.length);
                  console.log("Summe: " + Summe);
                  console.log("Durchschnitt: " + Summe2);
              }
          });
      });
      

      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

      T 2 Antworten Letzte Antwort
      0
      • paul53P paul53

        @torsten_mg sagte: am Montag morgen das Ergebnis in das Objekt "0_userdata.0.Benzinpreis.Tagesdurchschnitt.Sonntag"

        const wds = ['Samstag','Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag'];
        
        schedule('1 0 * * *', function () {
            let end = Date.now() - 60000;
            getHistory('sql.0', {
                id:         'tankerkoenig.0.stations.1.e10.feed',
                start:      end - 86400000,
                end:        end,
                aggregate:  'min',
                timeout:    2000
            }, function (err, result) {
                if (err) console.error(err);
                else if (result) {
                    log(JSON.stringify(result));
                    let Summe = 0;
                    for (let i = 0; i < result.length; i++) {
        //                console.log(result[i].val + ' ' + new Date(result[i].ts).toISOString());
                        console.log(result[i].val);
                        Summe += result[i].val;
                    }
                    let Summe2 = Math.round(100 * Summe / result.length) / 100;
                    let wd = new Date().getDay();
                    setState("0_userdata.0.Benzinpreis.Tagesdurchschnitt." + wds[wd], Summe2, true); 
                    console.log("Anzahl: " + result.length);
                    console.log("Summe: " + Summe);
                    console.log("Durchschnitt: " + Summe2);
                }
            });
        });
        
        T Offline
        T Offline
        Torsten_MG
        schrieb am zuletzt editiert von
        #3

        @paul53

        Vielen Dank!!

        Leider schaffe ich es heute nicht mehr, mir das genauer anzuschauen. Werde morgen dein Script testen und verinnerlichen!!

        Gruß Torsten

        1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @torsten_mg sagte: am Montag morgen das Ergebnis in das Objekt "0_userdata.0.Benzinpreis.Tagesdurchschnitt.Sonntag"

          const wds = ['Samstag','Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag'];
          
          schedule('1 0 * * *', function () {
              let end = Date.now() - 60000;
              getHistory('sql.0', {
                  id:         'tankerkoenig.0.stations.1.e10.feed',
                  start:      end - 86400000,
                  end:        end,
                  aggregate:  'min',
                  timeout:    2000
              }, function (err, result) {
                  if (err) console.error(err);
                  else if (result) {
                      log(JSON.stringify(result));
                      let Summe = 0;
                      for (let i = 0; i < result.length; i++) {
          //                console.log(result[i].val + ' ' + new Date(result[i].ts).toISOString());
                          console.log(result[i].val);
                          Summe += result[i].val;
                      }
                      let Summe2 = Math.round(100 * Summe / result.length) / 100;
                      let wd = new Date().getDay();
                      setState("0_userdata.0.Benzinpreis.Tagesdurchschnitt." + wds[wd], Summe2, true); 
                      console.log("Anzahl: " + result.length);
                      console.log("Summe: " + Summe);
                      console.log("Durchschnitt: " + Summe2);
                  }
              });
          });
          
          T Offline
          T Offline
          Torsten_MG
          schrieb am zuletzt editiert von
          #4

          @paul53

          Habe mir gerade deinen Code angeschaut (bin gerade nicht am heimischen PC) und versuche zu verstehen, was du da geschrieben hast.

          Das meiste erklärt sich ja von selbst (wie einfach es doch sein kann, wenn man sich damit auskennt), aber

          was genau macht diese Zeile :

          log(JSON.stringify(result));
          

          Gruß Torsten

          AsgothianA paul53P 2 Antworten Letzte Antwort
          0
          • T Torsten_MG

            @paul53

            Habe mir gerade deinen Code angeschaut (bin gerade nicht am heimischen PC) und versuche zu verstehen, was du da geschrieben hast.

            Das meiste erklärt sich ja von selbst (wie einfach es doch sein kann, wenn man sich damit auskennt), aber

            was genau macht diese Zeile :

            log(JSON.stringify(result));
            

            Gruß Torsten

            AsgothianA Offline
            AsgothianA Offline
            Asgothian
            Developer
            schrieb am zuletzt editiert von
            #5

            @torsten_mg
            Sie gibt den Inhalt der Variable "Result" in das ioBroker Log aus. Da nicht klar ist was für Daten in "Result" stehen nutzt Paul da zur Sicherheit eine Umwandlung zu einem text (JSON.stringify).

            A.

            ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
            "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

            1 Antwort Letzte Antwort
            0
            • T Torsten_MG

              @paul53

              Habe mir gerade deinen Code angeschaut (bin gerade nicht am heimischen PC) und versuche zu verstehen, was du da geschrieben hast.

              Das meiste erklärt sich ja von selbst (wie einfach es doch sein kann, wenn man sich damit auskennt), aber

              was genau macht diese Zeile :

              log(JSON.stringify(result));
              

              Gruß Torsten

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

              @torsten_mg sagte: was genau macht diese Zeile :

              Die Zeile (18) habe ich aus Deinem Skript übernommen.

              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

              T 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @torsten_mg sagte: was genau macht diese Zeile :

                Die Zeile (18) habe ich aus Deinem Skript übernommen.

                T Offline
                T Offline
                Torsten_MG
                schrieb am zuletzt editiert von
                #7

                @paul53 sagte in Brauche Hilfe bei Speichern in versch. Objekten:

                @torsten_mg sagte: was genau macht diese Zeile :

                Die Zeile (18) habe ich aus Deinem Skript übernommen.

                Tatsache :face_palm:
                Da kann man mal wieder sehen, wenn man etwas Blind übernimmt (drag&drop) das da einem einiges durch die Lappen geht.

                Danke!

                T 1 Antwort Letzte Antwort
                0
                • T Torsten_MG

                  @paul53 sagte in Brauche Hilfe bei Speichern in versch. Objekten:

                  @torsten_mg sagte: was genau macht diese Zeile :

                  Die Zeile (18) habe ich aus Deinem Skript übernommen.

                  Tatsache :face_palm:
                  Da kann man mal wieder sehen, wenn man etwas Blind übernimmt (drag&drop) das da einem einiges durch die Lappen geht.

                  Danke!

                  T Offline
                  T Offline
                  Torsten_MG
                  schrieb am zuletzt editiert von Torsten_MG
                  #8

                  @asgothian sagte in Brauche Hilfe bei Speichern in versch. Objekten:

                  @torsten_mg
                  Sie gibt den Inhalt der Variable "Result" in das ioBroker Log aus. Da nicht klar ist was für Daten in "Result" stehen nutzt Paul da zur Sicherheit eine Umwandlung zu einem text (JSON.stringify).

                  A.

                  Die Zeile ist also nur dafür da, dass die Werte im Iobroker log angezeigt werden?!

                  ich will das ja alles verstehen lernen.

                   getHistory('sql.0', {
                          id:         'tankerkoenig.0.stations.1.e10.feed',
                          start:      end - 86400000,
                          end:        end,
                          aggregate:  'min',
                          timeout:    2000
                      }, 
                  

                  damit hole ich mir die Daten aus der sql

                          function (err, result) {
                          if (err) console.error(err);
                          else if (result) {
                  

                  Wenn es Daten gibt, stehen die in der Variable result, wenn es keine Daten gibt, wird etwas in die Variable err reingeschrieben und mit dieser function ausgewertet.

                  Habe ich das so richtig verstanden?

                  Gruß Torsten

                  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

                  695

                  Online

                  32.6k

                  Benutzer

                  82.2k

                  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