Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Javascript - Warte x Sekunden, DP erstellen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Javascript - Warte x Sekunden, DP erstellen

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      TomTom24 last edited by

      Falls wer das brauchen kann:

      1. x Sekunden Warten
      2. Datenpunkt aus dem Script erzeugen und befüllen - spart die Handarbeit

      Wenn man Sekunden warten will - einfach diese Funktion unten in den global_Scripte einfügen und ihr könnt überall mit waitInSeconds(Anzahl der Sekunden) warten.

      //warten 
      function waitInSeconds(seconds) {
          return new Promise((resolve) => {
              setTimeout(resolve, seconds * 1000);
          });
      }
      
      1. Da ich faul bin... wenn ich Datenpunkte brauche, dann erzeuge ich mir im Script direkt und kann diese dann auch direkt verwenden.
        Wenn der DP nicht da ist, wird er erzeugt, wenn er da ist, wird einfach der Wert geschrieben.

      Aufruf: writeOrCreateState(neuer Datenpunkt mit vollem Pfad, Wert den ihr braucht, <Name optional>, <type optional, wird nix angegeben number>)

      Beispiel:
      writeOrCreateState('0_userdata.0.e3dc.Prozentuele_Leistung_PV',"23"))
      erzeugt folgenden Datenpunkt: Prozentuele_Leistung_PV im Objektbaum unter '0_userdata.0.e3dc., der Typ wäre number und bei Name würde "per Script erzeugt" stehen.

      bitte in global_Scripte einfügen

      function writeOrCreateState(stateName, value, name = "", type = "number") {
          // Check if the state exists
          if (existsState(stateName)) {
              // State exists, so write the value
              setState(stateName, value);
          } else {
              // State does not exist, create it and initialize with the value
              createState(stateName, value, {
                  name: name || "per Script erzeugt", // Use provided name or a default description
                  type: type, // Use provided type or default to "number"
              });
          }
      }
      
      haus-automatisierung T 2 Replies Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @TomTom24 last edited by

        @tomtom24 Wait gibt es doch schon

        https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#wait

        T 1 Reply Last reply Reply Quote 1
        • T
          TomTom24 @haus-automatisierung last edited by

          @haus-automatisierung sorry.... hab ich übersehen...

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

            @tomtom24 als Ergänzung eine Funktion, die keinen Fehler in das Log schreibt, wenn man einen Datenpunkt löschen will, der nicht existiert.

            function delete_State_if_exists(stateName) {
                // Check if the state exists
                if (existsState(stateName)) {
             //löschen, wenn existiert. sonst nichts machen. 
                            deleteState(stateName, value);
                } 
                }
            
            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            1.1k
            Online

            31.7k
            Users

            79.7k
            Topics

            1.3m
            Posts

            2
            4
            234
            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