Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. DP mit custom Element anlegen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    DP mit custom Element anlegen

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @David G. last edited by paul53

      @david-g sagte:

      ,":"aber"
      

      Was soll das sein?

      Es fehlt die abschließende geschweifte Klammer für "states" vor dem Komma.

      JSON (Objekte) per Blockly zu erstellen, ist immer ein Krampf.

      Mittels JS-Funktion ist es erheblich einfacher:

      const states = {};
      for(let i = 0; i < 7; i++) {
          states[i] = formatDate(Date.now() + i * 86400000, 'W DD.MM.');
      }
      return JSON.stringify(states);
      

      Blockly_temp.JPG

      Ergebnis:

      {"type":"number","role":"value","states":{"0":"Mi 13.03.","1":"Do 14.03.","2":"Fr 15.03.","3":"Sa 16.03.","4":"So 17.03.","5":"Mo 18.03.","6":"Di 19.03."},"custom":{"lovelace.0":{"enabled":true,"entity":"input_select","name":"aber"}}}
      
      David G. haus-automatisierung 2 Replies Last reply Reply Quote 0
      • David G.
        David G. @paul53 last edited by David G.

        @paul53 sagte in DP mit custom Element anlegen:

        Was soll das sein?

        Da fehlt in der Tat was vor.....

        @paul53 sagte in DP mit custom Element anlegen:

        JSON (Objekte) per Blockly zu erstellen, ist immer ein Krampf.

        Das stimmt wohl....

        Werde deinen Vorschlag heute Abend einmal nachbauen.

        Auf das "heute, morgen und übermorgen" bei den States kann ich verzichten.

        1 Reply Last reply Reply Quote 0
        • haus-automatisierung
          haus-automatisierung Developer Most Active @paul53 last edited by

          @paul53 sagte in DP mit custom Element anlegen:

          JSON (Objekte) per Blockly zu erstellen, ist immer ein Krampf.

          Jetzt zum Glück nicht mehr:

          https://forum.iobroker.net/topic/73439/javascript-7-9-0-neue-objekt-und-http-bausteine

          paul53 David G. 2 Replies Last reply Reply Quote 1
          • paul53
            paul53 @haus-automatisierung last edited by

            @haus-automatisierung sagte: Jetzt zum Glück nicht mehr:

            Endlich! Habe gerade getestet 👍

            1 Reply Last reply Reply Quote 1
            • David G.
              David G. @haus-automatisierung last edited by

              @haus-automatisierung

              Das sieht gut aus.
              Dann versuche ich es mit den neuen Bausteinen, auch wenn sich in meinem Fall die Schleife natürlich anbietet.

              Ich mag es aber, Dinge für einen anderen Zweck modifizieren zu können.

              haus-automatisierung paul53 2 Replies Last reply Reply Quote 0
              • haus-automatisierung
                haus-automatisierung Developer Most Active @David G. last edited by haus-automatisierung

                @david-g sagte in DP mit custom Element anlegen:

                Dann versuche ich es mit den neuen Bausteinen

                Ich glaube im "Datenpunkt erzeugen"-Baustein steht fix ein JSON.parse() im generierten JS-Code. Es könnte also sein, dass man dort nicht direkt ein Objekt für common übergeben kann. Da müsste ich den Block dann nochmal anpassen damit beide Fälle abgedeckt werden.

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @David G. last edited by

                  @david-g sagte: auch wenn sich in meinem Fall die Schleife natürlich anbietet.

                  Ja, aber mit einer kleinen Änderung:

                  const states = {};
                  for(let i = 0; i < 7; i++) {
                      states[i] = formatDate(Date.now() + i * 86400000, 'W DD.MM.');
                  }
                  return states;
                  

                  Blockly:

                  Blockly_temp.JPG

                  haus-automatisierung David G. 2 Replies Last reply Reply Quote 1
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @paul53 last edited by

                    @paul53 Ah tricky, ist halt etwas unschön dass man dann ein JSON.parse(JSON.stringify(...)) generiert.

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @haus-automatisierung last edited by

                      @haus-automatisierung sagte: Da müsste ich den Block dann nochmal anpassen damit beide Fälle abgedeckt werden.

                      Du meinst den Block "Datenpunkt erzeugen"? Dort wäre es sinnvoll. Dann bitte auch gleich so, dass man eine Text-Variable als ID übergeben kann (für konstruierte IDs).

                      1 Reply Last reply Reply Quote 1
                      • David G.
                        David G. @paul53 last edited by

                        @paul53

                        Habe es nachgebaut.
                        Klappt auf Anhieb. Dank dir.

                        In dem Fall macht man die States ja schön mit der Funktion.

                        Könnte man es auch mit den neuen Blöcken machen? Falls man mal was hat, was man nicht sdquenziell abarbeiten kann.

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @David G. last edited by

                          @david-g sagte: Könnte man es auch mit den neuen Blöcken machen?

                          Nein, man kann für das in der Schleife zu setzende Attribut keine Variable übergeben.

                          states[i] = // ist nicht möglich
                          
                          David G. 1 Reply Last reply Reply Quote 0
                          • David G.
                            David G. @paul53 last edited by David G.

                            @paul53

                            Okay.

                            So klappt es jedenfalls auch, falls man Werte hat die man nicht mit einer Schleife berechnen kann.
                            Hab zum testen einfach mal den selben Fall genommen.

                            Screenshot_20240313_175037_Chrome.jpg

                            Wenn man irgendwann mit den Objekten direkt im Datenpunkt erzeugen arbeiten könnte, macht es natürlich weniger Fehleranfallig.

                            Super Baustein @haus-automatisierung

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            644
                            Online

                            32.0k
                            Users

                            80.4k
                            Topics

                            1.3m
                            Posts

                            3
                            13
                            226
                            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