Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine

    This topic has been deleted. Only users with topic management privileges can see it.
    • haus-automatisierung
      haus-automatisierung Developer Most Active @sachsflo last edited by

      @sachsflo sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:

      Ich scheitere gerade kläglich daran bei einem ShellyPlug Plus den Status eines Scripts per http (get) abzufragen.

      Dann schau doch mal meine Implementierung im Shelly-Adapter an…

      1 Reply Last reply Reply Quote 0
      • S
        sachsflo last edited by sachsflo

        @haus-automatisierung

        Das wäre mir tatsächlich auch die liebste Lösung.
        Ich steh allerdings wohl irgendwie auf dem Schlauch.

        Das letzte was ich zu dem Thema gefunden habe ist das hier: (/post/1156925) [Shelly Skripte an/aus schalten]
        Da ich mehrere Inhalte zu Shelly Scripting erstellt habe, und das Interesse super gering war, habe ich das nicht im Adapter integriert.

        Hier im Forum fragt auch fast nie jemand nach Scripts auf dem Shelly direkt. Also für mich ist die Zielgruppe zu klein damit ich da Zeit investiere.

        Und entsprechende Datenpunkt finde ich im Shelly Adapter auch nicht.

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

          @sachsflo Ich meinte, dass Du im Adapter-Code ein Beispiel zu Digest Auth gegen die Shellies findest.

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

            @haus-automatisierung

            Danke für den Tipp, dann muss ich da mal suchen...auch wenn ich befürchte, dass das meine Skills evtl. übersteigt.

            Ist denn die Integration des Shelly Scriptings in einer der zukünftigen Versionen vom Shelly Adapter absehbar?

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

              @sachsflo sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:

              Ist denn die Integration des Shelly Scriptings in einer der zukünftigen Versionen vom Shelly Adapter absehbar?

              Aktuell nicht geplant von meiner Seite.

              I 1 Reply Last reply Reply Quote 0
              • BananaJoe
                BananaJoe Most Active @sachsflo last edited by

                @sachsflo sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:

                Ich scheitere gerade kläglich daran bei einem ShellyPlug Plus den Status eines Scripts per http (get) abzufragen.

                Du könntest ja umgekehrt den Status des Skriptes aus dem Skript heraus an ioBroker senden.
                Entweder per MQTT (falls dieser nicht auf den Shelly-Adapter eingestellt ist) oder z.B. per SimpleAPI aufruf.

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

                  @haus-automatisierung

                  Eigentlich eine Frage an alle Java-Script und HTTP Experten.
                  Ich versuche einen Blog-Beitrag auf eine Worpress Seite zu senden.
                  Der Wordpress Webserver läuft auf einer Bitnami VM, die für Wordpress aufgesetzt ist.

                  Ich hab im Java-Script das folgende geschrieben:

                  // Basic Auth Daten (Benutzername und Passwort)
                  const username = 'user'; // WordPress-Benutzername
                  const password = 'cJMj LlFL QeCY aNk6 b9Cx 94QX'; // Dein Application Password
                  
                  // Blog-Beitragsdaten
                  const postData = {
                      title: 'Neuer Blog von Falk',
                      content: 'Gesendet vom IoBroker',
                      status: 'publish',  // Beitrag veröffentlichen, kann auch "draft" sein
                  };
                  
                  // HTTP-Anfrage
                  const options = {
                     // method: 'POST',
                     // url: wordpressUrl,
                      headers: {
                          'Authorization': 'Basic ' + Buffer.from(username + ':' + password).toString('base64'),
                          'Content-Type': 'application/json',
                      },
                      body: JSON.stringify(postData),
                  };
                  
                  
                  
                  on({ id: '0_userdata.0.Testbutton' /* Testbutton */, val: true }, async (obj) => {
                    let value = obj.state.val;
                    let oldValue = obj.oldState.val;
                    httpPost('http://192.168.1.70/wp-json/wp/v2/posts', options, { timeout: 2000, responseType: 'text' }, async (err, response) => {
                      console.info(response.statusCode);
                      console.info(response.responseTime);
                      console.info(response.headers);
                      console.info(err);
                    });
                  });
                  

                  Jetzt bekomme ich einen Status code 401 zurück, was so viel wie Authentifizierungsfehler heißt.
                  Kann mir jemand sagen an welchen Stellen ich noch was kontrollieren oder einstellen muss oder sind Fehler im Code vorhanden?

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @ichwersonst last edited by Codierknecht

                    @ichwersonst sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:

                    eine Worpress Seite

                    Per HTTPS?
                    Dann solltest Du eigentlich die Basic-Authentication auch im URL mitgeben können:
                    https://username:password@mywordpress.com

                    I 1 Reply Last reply Reply Quote 1
                    • I
                      ichwersonst @Codierknecht last edited by

                      @codierknecht

                      Da kommt dann, certificate has expired.
                      Kommt das auch, wenn der Port 443 nicht offen ist oder bezieht sich die Meldung tatsächlich nur auf das Zertifikat?

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

                        @ichwersonst sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:

                        bezieht sich die Meldung tatsächlich nur auf das Zertifikat?

                        Auf das Zertifikat, welches ausgeliefert wird. Auf welchem Port ist egal. 443 ist der Standard-Port für https, wenn keiner explizit angegeben wird.

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

                          @haus-automatisierung

                          hmm komisch, denn wenn ich den Befehl absetze wie ich es beschrieben habe bekomme ich den Fehler 401 zurück, was heißt, dass die Zertifikatprüfung schon erledigt und okay ist, da die glaube ich vorher statt findet bevor die Authentifizierung kommt oder?

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

                            @ichwersonst sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:

                            Fehler 401

                            Du meinst den HTTP Response Status Code 401? 401 = Unauthorized. Also falsche Benutzerdaten (oder falsch übermittelt).

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

                              @haus-automatisierung
                              genau.
                              Wie ist das falsch übermittelt zu verstehen? Was wäre eine falsche Übermittlung und was eine richtige?

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

                                @ichwersonst sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:

                                Was wäre eine falsche Übermittlung und was eine richtige?

                                Am besten mal den Verbose-Mode einschalten. Dann siehst Du schon was genau gesendet wird und welche Header gesetzt werden usw. Der Authorization Header ist ja einfach nur Base64 aus Username:Password. Da siehst Du schnell was falsch sein könnte.

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

                                  @haus-automatisierung
                                  also ich habe mittlerweile alles hinbekommen. Ich musste tatsächlich "nur" das Zertifikat auf der Bitnami VM aktualisieren und in der wordpress Rest-API einen Nutzer mit Passwort anlegen.
                                  Dann konnte ich mit httpPost einen neuen Blogbeitrag vom Iobroker an die Website senden und erstellen.
                                  Wenn ich jedoch einen bestehende Eintrag auf einer Website ändern möchte, dann müsste ich doch httpPut verwenden, oder? Aber httpPut kennt der Javascript Adapter nicht. Wie müsste ich vorgehen?

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

                                    @ichwersonst sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:

                                    Wenn ich jedoch einen bestehende Eintrag auf einer Website ändern möchte, dann müsste ich doch httpPut verwenden, oder?

                                    Wenn das so für die Schnittstelle definiert ist, ja. Für PUT habe ich noch keine Methode implementiert. Das musst Du dann selbst lösen (mit axios o.ä. in JavaScript).

                                    I 2 Replies Last reply Reply Quote 0
                                    • I
                                      ichwersonst @haus-automatisierung last edited by

                                      @haus-automatisierung

                                      Ich glaube ich habe es schon gefunden.
                                      Ich musste nur in der URL noch die ID des bestehenden Beitrags antragen.
                                      Damit damit bearbeitet er den bestehenden Beitrag und erstellt keinen neuen trotz PSOT Befehl.

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

                                        @haus-automatisierung

                                        axios müsste ich erst noch installieren, oder?

                                        BananaJoe 1 Reply Last reply Reply Quote 0
                                        • BananaJoe
                                          BananaJoe Most Active @ichwersonst last edited by BananaJoe

                                          @ichwersonst nein, ist schon mit drin im JavaScript-Adapter, die neuen HTTP-Bausteine nutzen das ja "unten drunter" auch.

                                          I 1 Reply Last reply Reply Quote 0
                                          • I
                                            ichwersonst @BananaJoe last edited by

                                            @bananajoe

                                            okay, ich hatte erwartet, dass wenn ich im JavaScript Editor "axios" eingebe, dass dann ein Auto-Fill aufgeht wie wenn ich "http" eingebe.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            814
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            24
                                            148
                                            16590
                                            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