Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst] Blockly mit Funktion in der es request gibt umbauen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] Blockly mit Funktion in der es request gibt umbauen

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

      Guten Morgen,

      Gehört das hierher unter Blockly, oder unter Javascript?

      Ich lese immer wieder das man "request" nicht mehr verwenden soll, da es abgekündigt ist und bald nicht mehr funktionieren wird. Ich habe 2 IoBroker Instanzen (Proxmox und Raspi4) und die "kommunizieren" über "simple-api" miteinander. So kann ich z.B. über der VIS auf dem Proxmox IoBroker das "BackItUp" auf dem Raspi starten. Da ich keine Ahnung von Javascript habe, habe ich mir das damals über ChatGPT zusammenbauen lassen und die ganzen Blocklys funktionieren auch. Diese Funktionen sind alle mit einem "request" und das würde ich jetzt gerne umstellen, bevor es nicht mehr geht. Dazu mehrere Fragen:
      Ich habe jetzt gelesen, das "axios" auch nicht das gelbe vom Ei sein soll und man lieber "http.Get" verwenden soll. Stimmt das?
      Es gibt ja die neuen Blöcke in der Betaversion, brauche ich dann überhaupt noch eine Javascript Funktion, oder geht das direkt mit den Blöcken?

      So sieht die Funktion aktuell aus:

      var request = require ('request');
      
      let oneClick = getState("0_userdata.0.BackItUp_4GB.oneClick").val;
      
      request('http://192.168.1.11:8087/set/backitup.0.oneClick.iobroker?value=' +oneClick);
      
      

      Das sagt ChatGPT dazu, wenn ich auf "axios" umstellen möchte:

      const axios = require('axios');
      
      let oneClick = getState("0_userdata.0.BackItUp_4GB.oneClick").val;
      
      axios.get('http://192.168.1.11:8087/set/backitup.0.oneClick.iobroker', {
        params: {
          value: oneClick
        }
      })
      .then(response => {
        console.log('Erfolgreich gesendet:', response.data);
      })
      .catch(error => {
        console.error('Fehler beim Senden:', error);
      });
      

      Und wenn ich auf "http.Get" gehen will, kommt das raus:

      const http = require('http');
      
      let oneClick = getState("0_userdata.0.BackItUp_4GB.oneClick").val;
      let value = encodeURIComponent(oneClick); // Stellen Sie sicher, dass der Wert URL-kodiert ist
      
      const url = `http://192.168.1.11:8087/set/backitup.0.oneClick.iobroker?value=${value}`;
      
      http.get(url, (res) => {
        console.log(`STATUS: ${res.statusCode}`);
        res.setEncoding('utf8');
        res.on('data', (chunk) => {
          console.log(`BODY: ${chunk}`);
        });
        res.on('end', () => {
          console.log('No more data in response.');
        });
      }).on('error', (e) => {
        console.error(`Got error: ${e.message}`);
      });
      

      Und damit bin ich dann endgültig überfordert.

      Mit dem "axios" das verstehe ich ja noch einigermaßen, aber "http.Get"? Keine Chance!

      Kann mir jemand einen Tipp geben, was ich tun soll oder was das sinnvollste ist?

      Gruß, Johannes

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

        @jojo58 Zeig mal bitte den Teil mit Beispiel aus der Adapter-Dokumentation. Und was müsste an dem Beispiel angepasst werden, damit Du nicht ChatGPT fragen musst

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

          @haus-automatisierung

          Hmm, ich weiß nicht genau was du meinst, ich habe den Adapter installiert und den Rest hier aus dem Forum, bzw. aus dem Netz. Um ehrlich zu sein, die Adapter Doku rufe ich gerade zum ersten Mal auf. Da steht bei "set" dann:

          http://ipaddress:8087/set/javascript.0.test?value=1
          

          So habe ich es ja auch gemacht. Oder meist du etwas anderes?

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

            @jojo58 Ich dachte hier geht es um httpGet. Dazu ist doch auch ein Beispiel in der Dokumentation zu finden.

            Und für Blockly gibt es einen fertigen Baustein. Warum überhaupt Javascript?

            Homoran JoJo58 2 Replies Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @haus-automatisierung last edited by

              @haus-automatisierung
              Solche Fragen werden demnächst wohl öfter kommen.

              @haus-automatisierung sagte in Blockly mit Funktion in der es request gibt umbauen:

              Warum überhaupt Javascript?

              Sehr viele user haben ihre Skripte

              @jojo58 sagte in Blockly mit Funktion in der es request gibt umbauen:

              hier aus dem Forum,

              und wenn man

              @haus-automatisierung sagte in Blockly mit Funktion in der es request gibt umbauen:

              nicht ChatGPT fragen

              soll/will, wird mit der 8.x wohl einiges der c&p Skripte pflegebedürftig werden.

              Diese c&p user werden

              @haus-automatisierung sagte in Blockly mit Funktion in der es request gibt umbauen:

              mit Beispiel aus der Adapter-Dokumentation

              nicht wirklich in der Lage sein "ihre" Skripte umzubauen.

              Hast du eine Idee, wie dieses sinnvoll gehanhabt werden soll?

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

                @haus-automatisierung

                Sorry, entweder wir reden aneinander vorbei, oder ich verstehe dich absolut nicht. Diesen "set" Befehl:

                request('http://192.168.1.11:8087/set/backitup.0.oneClick.iobroker?value=' +oneClick);
                

                möchte ich vom lokalen IoB zum Raspi IoB schicken, wenn sich lokal der Datenpunkt dazu ändert. Wenn das mit Blöcken geht, anstatt mit Javascript, umso besser.

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

                  @homoran sagte in Blockly mit Funktion in der es request gibt umbauen:

                  @haus-automatisierung
                  Solche Fragen werden demnächst wohl öfter kommen.
                  Hast du eine Idee, wie dieses sinnvoll gehanhabt werden soll?

                  Naja ich erkläre hier in etlichen Foren-Beiträgen ausführlich was sich geändert hat, welchen neuen Blockly-Bausteine es gibt und wie man diese anwendet. Zusätzlich auf YouTube und in den Online-Kursen. Dokumentation des Adapters wird auch ständig erweitert.

                  Was soll ich denn noch machen? Ich verstehe ja nichtmal, warum für dieses einfache Beispiel kein Blockly verwendet wird. Stattdessen wird ChatGPT gefragt und viel zu umständliche Scripts mit Fragezeichen geteilt.

                  JoJo58 Homoran 2 Replies Last reply Reply Quote 0
                  • JoJo58
                    JoJo58 @haus-automatisierung last edited by

                    @haus-automatisierung sagte in Blockly mit Funktion in der es request gibt umbauen:

                    warum für dieses einfache Beispiel kein Blockly verwendet wird

                    Naja, als ich vor etlichen Monaten hier nachgefragt habe, wurde nichts von einem Blockly Baustein erzählt. Daher dieses einfachen Javascripte. Ich habe noch einen dritten IoB und dort ist die Version 8.3.0 von Javascript installiert. Werde dort auch simple-api installieren und dann mal mit Blöcken versuchen das richtig umzusetzen. Dann müsste doch der "http (POST)" der richtige dafür sein, oder liege ich damit falsch?

                    Oh man, vielleicht sollte ich mich wirklich mal mit Javascript beschäftigen, aber ob man das als betagter Rentner noch lernt? Ich weiß nicht so recht...

                    haus-automatisierung 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @haus-automatisierung last edited by

                      @haus-automatisierung
                      Ich glaube wir reden aneinander vorbei.

                      ich rede von c&p usern, die es zu hunderten gibt, die aus dem Forum js-Skripte übernommen haben, teilweise aus der Zeit vor Blockly, die jetzt mit der nächsten Version des Adapters umgebaut werdrn müssen.

                      ob es jetzt wegen request oder was sonst noch umgebaut wurde ist unerheblich.

                      Diesen Usern fehlt schlichtweg das Wissen dies umzubauen, und die js-Doku ist auch nicht gerade für dieses Klientel geeignet das zu ändern.

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

                        @jojo58 sagte in Blockly mit Funktion in der es request gibt umbauen:

                        Naja, als ich vor etlichen Monaten hier nachgefragt habe, wurde nichts von einem Blockly Baustein erzählt.

                        Wo war das? Diese request-Bausteine gibt es auch in Blockly schon seit ich denken kann. Also 7+ Jahre. Die müssen jetzt halt gegen andere Bausteine ausgetauscht werden. Mehr nicht.

                        Daher dieses einfachen Javascripte. Ich habe noch einen dritten IoB und dort ist die Version 8.3.0 von Javascript installiert.

                        Naja und die neuen Funktionen mit httpGet wären noch einfacher.

                        Oh man, vielleicht sollte ich mich wirklich mal mit Javascript beschäftigen, aber ob man das als betagter Rentner noch lernt? Ich weiß nicht so recht...

                        Die Frage wäre ja: Warum? Mit Blockly bekommt man doch die allermeisten Aufgaben erledigt.

                        JoJo58 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @JoJo58 last edited by

                          @jojo58 sagte: So sieht die Funktion aktuell aus:

                          ... und so in Blockly mit JS-Version 8.x:

                          Blockly_temp.JPG

                          Die Simple-API benötigt man nur auf der Empfänger-Seite.

                          JoJo58 1 Reply Last reply Reply Quote 2
                          • JoJo58
                            JoJo58 @haus-automatisierung last edited by

                            @haus-automatisierung sagte in Blockly mit Funktion in der es request gibt umbauen:

                            Wo war das? Diese request-Bausteine gibt es auch in Blockly schon seit ich denken kann. Also 7+ Jahre.

                            https://forum.iobroker.net/topic/66458/datenpunkte-eines-anderen-iobrokers-anzeigen/15

                            Damals war ich froh, das ich Daten bekam 😊

                            1 Reply Last reply Reply Quote 0
                            • JoJo58
                              JoJo58 @paul53 last edited by

                              @paul53

                              Vielen Dank 👍 . Das Beispiel reicht mir um alles umzubauen. Ich hatte schon wieder den falschen Ansatz, dachte das muss mit POST gehen, da ich etwas hinschicken will.

                              paul53 haus-automatisierung 2 Replies Last reply Reply Quote 0
                              • paul53
                                paul53 @JoJo58 last edited by

                                @jojo58 sagte: dachte das muss mit POST gehen, da ich etwas hinschicken will.

                                Alle Informationen für die Simple-API stecken in der URL.

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

                                  @jojo58 sagte in Blockly mit Funktion in der es request gibt umbauen:

                                  Ich hatte schon wieder den falschen Ansatz, dachte das muss mit POST gehen, da ich etwas hinschicken will.

                                  Vorher mit request hattest Du doch auch nur einen GET-Request gesendet.

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

                                    @haus-automatisierung @paul53

                                    Es funktioniert in beide Richtungen und ich kann anfangen alles umzustellen. Vielen Dank für eure Hilfe.

                                    Gruß, Johannes

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    557
                                    Online

                                    32.0k
                                    Users

                                    80.4k
                                    Topics

                                    1.3m
                                    Posts

                                    4
                                    16
                                    398
                                    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