Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Script täglich ausführen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Script täglich ausführen

Scheduled Pinned Locked Moved JavaScript
9 Posts 3 Posters 624 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    Kellerassel75
    wrote on last edited by Kellerassel75
    #1

    Hallo!
    Ich würde gerne das dieses Script täglich um 23:50 ausführt wird und die Daten geschrieben werden!
    Was muss ich ändern?
    Danke!
    Falko

    const idJson = "gruenbeck.0.softliQ.D/BS50006089.water";
    
    const path = "0_userdata.0.Gruenbeck.Wasserverbrauch.";
    
     
    
    if(!existsState(path + '0.Nummer')) {
    
        for(let i = 0; i < 3; i++) {
    
            createState(path + i + '.Datum', '', {type: 'string', name: 'Datum, Uhrzeit', role: 'info'}); 
    
            createState(path + i + '.Verbrauch', '', {type: 'number', name: 'Verbrauch', role: 'info'});
    
        }
    
    }
    
     
    
    on(idJson, function(dp) {
    
        let arr = JSON.parse(dp.state.val);
    
        let anzahl = arr.length;
    
        if(anzahl > 3) anzahl = 3;
    
        for(let i = 0; i < anzahl; i++) {
    
            setState(path + i + '.Datum', arr[i].date, true); 
    
            setState(path + i + '.Verbrauch', arr[i].value, true);
    
        }
    
    });
    
    paul53P 2 Replies Last reply
    0
    • K Kellerassel75

      Hallo!
      Ich würde gerne das dieses Script täglich um 23:50 ausführt wird und die Daten geschrieben werden!
      Was muss ich ändern?
      Danke!
      Falko

      const idJson = "gruenbeck.0.softliQ.D/BS50006089.water";
      
      const path = "0_userdata.0.Gruenbeck.Wasserverbrauch.";
      
       
      
      if(!existsState(path + '0.Nummer')) {
      
          for(let i = 0; i < 3; i++) {
      
              createState(path + i + '.Datum', '', {type: 'string', name: 'Datum, Uhrzeit', role: 'info'}); 
      
              createState(path + i + '.Verbrauch', '', {type: 'number', name: 'Verbrauch', role: 'info'});
      
          }
      
      }
      
       
      
      on(idJson, function(dp) {
      
          let arr = JSON.parse(dp.state.val);
      
          let anzahl = arr.length;
      
          if(anzahl > 3) anzahl = 3;
      
          for(let i = 0; i < anzahl; i++) {
      
              setState(path + i + '.Datum', arr[i].date, true); 
      
              setState(path + i + '.Verbrauch', arr[i].value, true);
      
          }
      
      });
      
      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @kellerassel75 sagte: täglich um 23:50 ausführt wird

      Siehe Doku.

      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

      1 Reply Last reply
      1
      • K Offline
        K Offline
        Kellerassel75
        wrote on last edited by
        #3

        Ich habe es nicht hin bekommen!
        Welche Zeile muss ich ändern?
        Danke!
        Falko

        R 1 Reply Last reply
        0
        • K Kellerassel75

          Ich habe es nicht hin bekommen!
          Welche Zeile muss ich ändern?
          Danke!
          Falko

          R Offline
          R Offline
          reutli
          wrote on last edited by
          #4

          @kellerassel75

          Ganz ehrlich:
          Wenn Du von Javascript noch keine Ahnung hast, warum arbeitest Du dann damit?

          Stell das Script doch mal in Blockly nach, dann ist das mit dem schedule auch nicht das Problem.

          Es nützt Dir nichts, ein Skript zu kopieren, wenn Du nicht verstanden hast, was es macht und wie es funktioniert.

          Ich hoffe ich darf solch' konstruktives feedback geben...

          Ansonsten sieht es m.E. aber korrekt dann so aus:

          schedule("59 23 * * *", async function () {
          
          const idJson = "gruenbeck.0.softliQ.D/BS50006089.water";
           
          const path = "0_userdata.0.Gruenbeck.Wasserverbrauch.";
           
           
           
          if(!existsState(path + '0.Nummer')) {
           
              for(let i = 0; i < 3; i++) {
           
                  createState(path + i + '.Datum', '', {type: 'string', name: 'Datum, Uhrzeit', role: 'info'}); 
           
                  createState(path + i + '.Verbrauch', '', {type: 'number', name: 'Verbrauch', role: 'info'});
           
              }
           
          }
           
           
           
          on(idJson, function(dp) {
           
              let arr = JSON.parse(dp.state.val);
           
              let anzahl = arr.length;
           
              if(anzahl > 3) anzahl = 3;
           
              for(let i = 0; i < anzahl; i++) {
           
                  setState(path + i + '.Datum', arr[i].date, true); 
           
                  setState(path + i + '.Verbrauch', arr[i].value, true);
           
              }
          
          });
          

          BITTE BEACHTET DOCH DAS: https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
          iobroker in Debian-VM auf Proxmox Server (Ryzen 7 / 32GB / 1TB NVMe SSD) als Master - mehrere Raspberry Pis (3+4) als Slaves. InfluxDB V2 und Grafana auf LXC.

          *Wer freundlich ist, dem wird freundlich geholfen *

          1 Reply Last reply
          0
          • K Offline
            K Offline
            Kellerassel75
            wrote on last edited by
            #5

            Da hast du vollkommen recht. Ich versuche, es zu verstehen. Einige Zeilen kann ich auch lesen. Ich dachte, ich komme schneller damit zurecht. Leider fehlt mir die Zeit.
            Deshalb folgende Frage:
            Du hast nun oben die Zeit eingetragen. Jetzt wird es ausgeführt zu einer bestimmten Zeit und bei Änderung! Richtig?
            Ich habe die Zeile gesucht, wo bei Änderung das ausgeführt wird!
            "let arr = JSON.parse(dp.state.val);" ist das richtig?
            Ich wollte diesen Wert ändern, um die Automatik zu ändern.
            Vielen Dank für die Hilfe!
            Ich gelobe Besserung!
            Falko

            1 Reply Last reply
            0
            • K Offline
              K Offline
              Kellerassel75
              wrote on last edited by
              #6

              Es gibt so viele Möglichkeiten.
              Javascript, Blockly, Node Red.
              Es ist nicht so einfach, die beste Möglichkeit zu finden.
              Ich bin mir noch nicht sicher, was für mich das Richtige ist.
              Ich versuche mich überall ein wenig einzuarbeiten, um das Richtige für mich zu finden.
              Falko

              R 1 Reply Last reply
              0
              • K Kellerassel75

                Hallo!
                Ich würde gerne das dieses Script täglich um 23:50 ausführt wird und die Daten geschrieben werden!
                Was muss ich ändern?
                Danke!
                Falko

                const idJson = "gruenbeck.0.softliQ.D/BS50006089.water";
                
                const path = "0_userdata.0.Gruenbeck.Wasserverbrauch.";
                
                 
                
                if(!existsState(path + '0.Nummer')) {
                
                    for(let i = 0; i < 3; i++) {
                
                        createState(path + i + '.Datum', '', {type: 'string', name: 'Datum, Uhrzeit', role: 'info'}); 
                
                        createState(path + i + '.Verbrauch', '', {type: 'number', name: 'Verbrauch', role: 'info'});
                
                    }
                
                }
                
                 
                
                on(idJson, function(dp) {
                
                    let arr = JSON.parse(dp.state.val);
                
                    let anzahl = arr.length;
                
                    if(anzahl > 3) anzahl = 3;
                
                    for(let i = 0; i < anzahl; i++) {
                
                        setState(path + i + '.Datum', arr[i].date, true); 
                
                        setState(path + i + '.Verbrauch', arr[i].value, true);
                
                    }
                
                });
                
                paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by paul53
                #7

                @kellerassel75
                Ersetze

                on(idJson, function(dp) {
                    let arr = JSON.parse(dp.state.val);
                

                durch

                schedule('59 23 * * *', function () {
                    let arr = JSON.parse(getState(idJson).val);
                

                Keine Trigger innerhalb von Triggern (schedule) verwenden!

                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

                R 1 Reply Last reply
                0
                • paul53P paul53

                  @kellerassel75
                  Ersetze

                  on(idJson, function(dp) {
                      let arr = JSON.parse(dp.state.val);
                  

                  durch

                  schedule('59 23 * * *', function () {
                      let arr = JSON.parse(getState(idJson).val);
                  

                  Keine Trigger innerhalb von Triggern (schedule) verwenden!

                  R Offline
                  R Offline
                  reutli
                  wrote on last edited by
                  #8

                  @paul53

                  Wo Du Recht hast hast Du eindeutig Recht - deshalb bleibe ich erst einmal bei Blockly :grimacing:

                  @Kellerassel75
                  Siehst Du, so schnell passieren Fehler wenn man nicht weiss was man tut...

                  BITTE BEACHTET DOCH DAS: https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
                  iobroker in Debian-VM auf Proxmox Server (Ryzen 7 / 32GB / 1TB NVMe SSD) als Master - mehrere Raspberry Pis (3+4) als Slaves. InfluxDB V2 und Grafana auf LXC.

                  *Wer freundlich ist, dem wird freundlich geholfen *

                  1 Reply Last reply
                  0
                  • K Kellerassel75

                    Es gibt so viele Möglichkeiten.
                    Javascript, Blockly, Node Red.
                    Es ist nicht so einfach, die beste Möglichkeit zu finden.
                    Ich bin mir noch nicht sicher, was für mich das Richtige ist.
                    Ich versuche mich überall ein wenig einzuarbeiten, um das Richtige für mich zu finden.
                    Falko

                    R Offline
                    R Offline
                    reutli
                    wrote on last edited by
                    #9

                    @kellerassel75 sagte in Script täglich ausführen:

                    Javascript, Blockly, Node Red.

                    Zum Start von Abläufen und Skripten ist Blockly meines Erachtens die intuitivste Art.
                    NodeRed geht auch, klar, aber mir persönlich war das am Anfang etwas zu intransparent (ist aber Geschmacksache).

                    Für jemand der als Developer unterwegs ist, wird Javascript natürlich das Richtige sein.

                    Wie Du richtig erkannt hast, ist es wichtig zu wissen, was man tut und was das Skript tut, sonst hilft es einem genau so lange bis sich was ändert und nichts mehr funktioniert.

                    BITTE BEACHTET DOCH DAS: https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
                    iobroker in Debian-VM auf Proxmox Server (Ryzen 7 / 32GB / 1TB NVMe SSD) als Master - mehrere Raspberry Pis (3+4) als Slaves. InfluxDB V2 und Grafana auf LXC.

                    *Wer freundlich ist, dem wird freundlich geholfen *

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    694

                    Online

                    32.7k

                    Users

                    82.4k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe