Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Code an Restapi senden via http Befehl…

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Code an Restapi senden via http Befehl…

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

      Hallo Leute,

      ich habe da mal eine Frage, und zwar habe ich eine Multiplex Trio E der Firma Viega

      verbaut. Das ist eine elektrische Badewannenbefüllung. Jetzt habe ich dazu von Viega

      ein IOT Modul verbaut, welches zulässt, dass ich die Wanne auch mit dem Handy befüllen

      kann. Nun habe ich mir über deren Technischen Support die Rest API Schnittstellenbeschreibung geben lassen,

      in der Hoffnung auch mit meinem Raspi befehle per http hin senden zu können.

      Ich bin nicht der Guru im Programmieren, habe da eher gefährliches Halbwissen, daher die Frage ob

      es eine Möglichkeit gibt mit Blockly etc. einen solchen Befehl wie "Badewanne füllen" an die

      Schnittstelle zu senden

      Danke vorab….
      13004_viega1.jpg
      13004_viega_2.jpg

      1 Reply Last reply Reply Quote 0
      • Z
        Zodiac2812 last edited by

        Hat keiner eine Idee oder nen Tipp wie ich die HTTP befehle senden und empfangen kann? 😞

        1 Reply Last reply Reply Quote 0
        • Lenny.CB
          Lenny.CB Most Active last edited by

          @Zodiac2812:

          Hat keiner eine Idee oder nen Tipp wie ich die HTTP befehle senden und empfangen kann? 😞 `
          sprichst du die Wanne mit einer internen IP an, oder läuft das alles über eine Cloud mit auth, token und son mist?

          versuche mal (ungetestet):````
          var server = ''; // IP der Wanne
          var id = ''; // ID der Wanne

          request.post ({
          url: server + '/api/tlc/' + id + '/bathtub-fill/',
          headers: {'Content-Type': 'application/json'}
          },
          function (error, response, body) {
          log('Code_statusCode: ' + response.statusCode);
          log(JSON.parse(body));
          });

          1 Reply Last reply Reply Quote 0
          • D
            danw last edited by

            @Lenny.CB:

            @Zodiac2812:

            Hat keiner eine Idee oder nen Tipp wie ich die HTTP befehle senden und empfangen kann? 😞 `
            sprichst du die Wanne mit einer internen IP an, oder läuft das alles über eine Cloud mit auth, token und son mist?

            versuche mal (ungetestet):````
            var server = ''; // IP der Wanne
            var id = ''; // ID der Wanne

            request.post ({
            url: server + '/api/tlc/' + id + '/bathtub-fill/',
            headers: {'Content-Type': 'application/json'}
            },
            function (error, response, body) {
            log('Code_statusCode: ' + response.statusCode);
            log(JSON.parse(body));
            });
            ```` `

            Das zu übertragene JSON fehlt hier.

            var server = '';    // IP der Wanne
            var id  = '';       // ID der Wanne
            var body_sent = {
              "temperature": 23.5,
              "amount": 0.7
            }
            
            request.post    ({  
                        url: server + '/api/tlc/' + id + '/bathtub-fill/',        
                        headers: {'Content-Type': 'application/json'},
                        json:    body_sent
                    },
                        function (error, response, body) {
                                log('Code_statusCode: ' + response.statusCode);
                                log(JSON.parse(body));
                    });
            
            
            1 Reply Last reply Reply Quote 0
            • Lenny.CB
              Lenny.CB Most Active last edited by

              @danw:

              @Lenny.CB:

              @Zodiac2812:

              Hat keiner eine Idee oder nen Tipp wie ich die HTTP befehle senden und empfangen kann? 😞 `
              sprichst du die Wanne mit einer internen IP an, oder läuft das alles über eine Cloud mit auth, token und son mist?

              versuche mal (ungetestet):````
              var server = ''; // IP der Wanne
              var id = ''; // ID der Wanne

              request.post ({
              url: server + '/api/tlc/' + id + '/bathtub-fill/',
              headers: {'Content-Type': 'application/json'}
              },
              function (error, response, body) {
              log('Code_statusCode: ' + response.statusCode);
              log(JSON.parse(body));
              });
              ```` `

              Das zu übertragene JSON fehlt hier.

              var server = '';    // IP der Wanne
              var id  = '';       // ID der Wanne
              var body_sent = {
                "temperature": 23.5,
                "amount": 0.7
              }
              
              request.post    ({  
                          url: server + '/api/tlc/' + id + '/bathtub-fill/',        
                          headers: {'Content-Type': 'application/json'},
                          json:    body_sent
                      },
                          function (error, response, body) {
                                  log('Code_statusCode: ' + response.statusCode);
                                  log(JSON.parse(body));
                      });
              
              ```` `  
              

              ich bin der Meinung, dass du hier Daten abfragst. Da brauchst kein JSON mitschicken. Oder?

              1 Reply Last reply Reply Quote 0
              • D
                danw last edited by

                Laut der API Beschreibung des OP ist bei dem HTTP POST (nicht GET) eine Einstellung der Menge und Temperatur möglich. (was er ja auch wünscht)

                1 Reply Last reply Reply Quote 0
                • Z
                  Zodiac2812 last edited by

                  Hi Männers,

                  sorry grad ne Zeit lang nicht aktiv gewesen, ich spreche die Geräte dann mit einer internen IP-Adresse an.

                  Das sollte das ganze einfacher gestalten.

                  Muss ich jetzt nur noch einen Trigger haben und den entsprechenden Befehl losschicken oder wie starte ich

                  eines der gezeigten Skripte dann?

                  Danke natürlich auch noch an euch 😄

                  1 Reply Last reply Reply Quote 0
                  • D
                    danw last edited by

                    Das Script startet sofort, wenn du Speichern drückst (und auch nur einmal). Es hat keinen Trigger oder ähnliches, das musst du dann noch drumherum bauen.

                    Aber ne Info, ob das so funktioniert, wäre schonmal hilfreich.

                    1 Reply Last reply Reply Quote 0
                    • Z
                      Zodiac2812 last edited by

                      Hallo Leute, bin erst jetzt wieder dazu gekommen es zu testen, bin nebenbei noch am Hausbauen da fehlt oft Zeit.
                      Habe es mal so reingehackt in meinem Unwissen... Es kamen nur Fehlermeldungen, aber ich denke so ganz so einfach war es auch nicht ☺

                      habt ihr mal nen Tipp?

                      064afbce-c9e1-4e11-939a-e3c75f45391e-image.png

                      Z 1 Reply Last reply Reply Quote 0
                      • Z
                        Zodiac2812 @Zodiac2812 last edited by

                        @danw Kannst du mich vll. noch einmal kurz in die richtige Richtung stupsen?

                        Danke vorab....

                        Asgothian 1 Reply Last reply Reply Quote 0
                        • Asgothian
                          Asgothian Developer @Zodiac2812 last edited by

                          @Zodiac2812 Versuch doch mal statt

                          log('Code_statusCode: ' + response.statusCode);
                          log(JSON.parse(body));
                          

                          dieses zu nutzen: Ich gehe davon aus das die response leer ist.

                          log('Code_statusCode: ' + JSON.stringify(statusCode)
                          log(JSON.stringify(body));
                          

                          Des weiteren kann ich dir Insomnia als Werkzeug empfehlen. Das ist ein CrossPlatform Programm mit dem du REST API's abfragen kannst. Deutlich einfacher als ueber js dir das immer selber zusammen zu bauen. Wenn du die Syntax sauber hast kannst du die Requests dann ja in JS nachbilden

                          A.

                          1 Reply Last reply Reply Quote 0
                          • D
                            danw last edited by danw

                            Zeig uns mal den Fehler aus dem Log-Reiter, der sollte größer sein.

                            Ich kriege keine Mail-Benachrichtigung mehr seit dem neuem Forum, deswegen fällt mir das gar nicht auf, wenn jemand was in einem abonnierten Thema schreibt etc.

                            So funktioniert es bei mir:

                            var server = '';    // IP der Wanne
                            var id  = '';       // ID der Wanne
                            var body_sent = {
                               "temperature": 23.5,
                               "amount": 0.7
                             }
                            
                            request.post({
                                    url: server + '/api/tlc/' + id + '/bathtub-fill/',
                                    headers: {'Content-Type': 'application/json'},
                                    json:    body_sent
                                
                                }, function(error, response, body) {
                                    if (error)  { console.log(error); }
                                    if (!error && response.statusCode == 200) {
                                        log(JSON.parse(body));
                                    }
                                }
                            );
                            

                            Bitte dran denken, dass der Code ja noch entsprechend genutzt werden muss oder was auch immer mit gemacht werden muss, was du erreichen willst. Das ist nur ein Beispiel.

                            1 Reply Last reply Reply Quote 0
                            • Z
                              Zodiac2812 last edited by

                              Danke für die Hilfe... setze mich jetzt am Wochenende mal intensiv damit auseinander...
                              und werde Berichten..... Insomnia Teste ich dann auch mal auch wenn ich als kompletter starter denke da nicht viel zu checken. 😕

                              StefanHemi1 1 Reply Last reply Reply Quote 0
                              • StefanHemi1
                                StefanHemi1 @Zodiac2812 last edited by

                                @zodiac2812

                                Guten Abend oder besser noch guten Morgen!

                                Darf ich mal neugierig sein und nachfragen, ob man in diesem Thema schon weiter gekommen ist?

                                MfG, Stefan!

                                OliverIO 1 Reply Last reply Reply Quote 0
                                • OliverIO
                                  OliverIO @StefanHemi1 last edited by OliverIO

                                  @stefanhemi1 sagte in Code an Restapi senden via http Befehl…:

                                  @zodiac2812

                                  Guten Abend oder besser noch guten Morgen!

                                  Darf ich mal neugierig sein und nachfragen, ob man in diesem Thema schon weiter gekommen ist?

                                  MfG, Stefan!

                                  das hier ist schon alt.
                                  was willst du genau erreichen?

                                  folgende fragen muss man sich beim Abruf oder senden per http überlegen:

                                  • mit welcher Methode erwartet die gegenstelle die Anfrage (GET oder POST)
                                  • gibt es eine Authentifizierung? Welche Methode? (formular, oauth, Basic)
                                  • Welche Daten in welchem exakten Format erwartet die Gegenstelle zum Abruf , aber auch zum setzen von Daten (JSON,XML,proprietär). Das findet man entweder in API-Beschreibungen oder bekommt das durch Reengineering raus (sehr aufwändig, viel rumprobieren) und manchmal versucht der Hersteller der Gegenstelle es auch durch verschlüsseln oder verschwurbeln künstlich schwierig zu machen.
                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  895
                                  Online

                                  31.7k
                                  Users

                                  79.7k
                                  Topics

                                  1.3m
                                  Posts

                                  6
                                  15
                                  2475
                                  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