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. Script täglich ausführen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    5
    1
    44

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

Script täglich ausführen

Geplant Angeheftet Gesperrt Verschoben JavaScript
9 Beiträge 3 Kommentatoren 578 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.
  • K Offline
    K Offline
    Kellerassel75
    schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      1
      • K Offline
        K Offline
        Kellerassel75
        schrieb am zuletzt editiert von
        #3

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

        R 1 Antwort Letzte Antwort
        0
        • K Kellerassel75

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

          R Offline
          R Offline
          reutli
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • K Offline
            K Offline
            Kellerassel75
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • K Offline
              K Offline
              Kellerassel75
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 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

                    401

                    Online

                    32.5k

                    Benutzer

                    81.7k

                    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