Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Brauche Hilfe bei Speichern in versch. Objekten

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Torsten_MG last edited by 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

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Torsten_MG last edited by 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 2 Replies Last reply Reply Quote 0
        • T
          Torsten_MG @paul53 last edited by

          @paul53

          Vielen Dank!!

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

          Gruß Torsten

          1 Reply Last reply Reply Quote 0
          • T
            Torsten_MG @paul53 last edited by

            @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

            Asgothian paul53 2 Replies Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @Torsten_MG last edited by

              @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.

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Torsten_MG last edited by

                @torsten_mg sagte: was genau macht diese Zeile :

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

                T 1 Reply Last reply Reply Quote 0
                • T
                  Torsten_MG @paul53 last edited by

                  @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 🤦
                  Da kann man mal wieder sehen, wenn man etwas Blind übernimmt (drag&drop) das da einem einiges durch die Lappen geht.

                  Danke!

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    Torsten_MG @Torsten_MG last edited by Torsten_MG

                    @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 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    813
                    Online

                    31.8k
                    Users

                    80.0k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    276
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo