Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. JS Funktion für Blockly anpassen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    JS Funktion für Blockly anpassen

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

      @david-g
      Wenn man die Datenpunkt-ID, start und stop an die Funktion übergibt, muss man diese auch auswerten. Eine Rückgabe an den Aufruf ist aus einer Callback-Funktion nicht möglich, sondern man muss das Ergebnis auf eine globale Variable (Liste) verweisen. Die Liste kann man auch gut mit Blockly weiter verarbeiten.

      getHistory('sql.0', {
          id: dp,
          start: start,
          end: stop,
          //  aggregate:  'm4',
          timeout:    2000
      }, function (err, result) {
          if (err) console.error(err);
          if (result) Liste = result;
      });
      

      Blockly_temp.JPG

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

        @paul53

        Danke, werde ich morgen testen können.
        Kann es ja so wirklich alles schön umrechnen und dann wieder mit Objekt nach json umformatieren.

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

          @david-g
          Denke daran, dass get_sql() asynchron ausgeführt wird, die Liste also verzögert gefüllt wird.

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

            @paul53

            Okay, dann baue ich da eine Pause ein.

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

              @paul53

              Irgendwo scheint ein Fehler zu sein:

              15:59:13.422	info	javascript.0 (16961) Start javascript script.js.Eigene_Scripte.Tests.Read_sql
              15:59:13.443	info	javascript.0 (16961) script.js.Eigene_Scripte.Tests.Read_sql: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
              15:59:13.445	error	javascript.0 (16961) script.js.Eigene_Scripte.Tests.Read_sql: ReferenceError: stop is not defined
              15:59:13.445	error	javascript.0 (16961) at get_sql (script.js.Eigene_Scripte.Tests.Read_sql:8:14)
              15:59:13.445	error	javascript.0 (16961) at script.js.Eigene_Scripte.Tests.Read_sql:19:7
              15:59:13.445	error	javascript.0 (16961) at script.js.Eigene_Scripte.Tests.Read_sql:22:3
              

              Screenshot 2023-05-23 160616.png

              getHistory('sql.0', {
                  id: dp,
                  start: start,
                  end: stop,
                  //  aggregate:  'm4',
                  timeout:    2000
              }, function (err, result) {
                  if (err) console.error(err);
                  if (result) Liste = result;
              });
              
              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @David G. last edited by

                @david-g sagte: ReferenceError: stop is not defined

                Schau mal in den vom Blockly erzeugten Javascript-Code. Wurde stop in stop2 geändert? Dann ändere es entsprechend in Zeile 4.

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

                  @paul53

                  Das war es.
                  Jetzt hab ich aber eine andere Frage.
                  In der zuerst generierten Liste (ka wie man das nennt) gehören ts und val immer zusammen.

                  Wenn ich jetzt mit der Liste weuterarbeite wird das aufgelöst.

                  Screenshot_20230523_180528_Chrome.jpg

                  18:03:56.340	warn	javascript.0 (16961) script.js.Eigene_Scripte.Tests.Read_sql: [{"ts":1684780235339,"val":8.797098765432098,"i":true},{"ts":1684792728939,"val":17.99}]
                  18:03:56.341	error	javascript.0 (16961) script.js.Eigene_Scripte.Tests.Read_sql: [1684780235339,8.797098765432098,1684792728939,17.99]
                  

                  Das val und ts muss ich noch mit erstelle Text aus vor machen?
                  Würde mit den {} natürlich auch gehen.
                  Vermute aber das geht eleganter?

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

                    @david-g sagte: Das val und ts muss ich noch mit erstelle Text aus vor machen?

                    Was soll mit den val und ts passieren, was ist das Ziel?

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

                      @paul53

                      Die json möchte ich in eCharts verwenden.
                      Möchte in der Visu verschiedene DPs, Zeiträume auswählen können und die Zeitachse was verschieben (im test noch nicht eingebaut) können.
                      So recht ein Chart für zig Kombination.

                      eCharts gibt das Format der json vor.
                      Sie wie im warn aus meinem letzten Beitrag.
                      Nur das i":true darf nicht vorkommen.

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

                        @david-g sagte: wie im warn aus meinem letzten Beitrag. Nur das i":true darf nicht vorkommen.

                        ts soll in ms bleiben?

                        Blockly_temp.JPG

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

                          @paul53

                          Sowas in der Art hatte ich auch schon getestet. Ohne Erfolg. Da waren die " immer zwischen 2 /.

                          So klappt es jetzt.
                          Allerdings habe ich zu Beginn immer ein leeres {}, und dann kommen erst befülle Werte.

                          javascript.0 (16961) script.js.Eigene_Scripte.Tests.Read_sql: [{},{"ts":1684274470454,"val":16.03},{"ts":1684360352054,"val":10.5},{"ts":1684447443254,"val":4.21},{"ts":1684533324854,"val":4.28},{"ts":1684620416054,"val":4.28},{"ts":1684706297654,"val":8.74},{"ts":1684793388854,"val":17.99}]
                          

                          Funktioniert aber trotzdem in eCharts.

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

                            @paul53

                            Hier mein (sehr rudimentärer) Testaufbau für was es die json ist.

                            Erst kann man einen DP auswählen. Im Beispiel Tages/Wochen/Monats/Jahreswerte vom Gasverbrauch.

                            Dann den Zeitraum.

                            Screen_Recordin-1684925174200.gif

                            ECharts hat mit den Jsons aber mal noch 1-2 Problemchen...

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            849
                            Online

                            32.0k
                            Users

                            80.5k
                            Topics

                            1.3m
                            Posts

                            2
                            13
                            205
                            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