Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. brauche Hilfe nach Update Javascript v8.3.1

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    brauche Hilfe nach Update Javascript v8.3.1

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @kwone last edited by Homoran

      @kwone die library request ist schon seit Jahren veraltet und wird nicht mehr gepflegt.
      in 8.3.1 wurde sie nativ nicht mehr unterstützt.
      Dies wurde auch vor dem Start des Updates als PopUp so angezeigt.

      Du musst jetzt request durch httpGet ersetzen
      Dazu gibt es schon etliche Threads.

      ich bin kein Programmierer, aber bei dir müsste es gehen, indem du einfach request gegen httpGet austauschst, das folgende body in der Klammer incl vorangehendrm Komma entfernst, und das body in Zeile 21 JSON.Parse(body)
      Gegen response.data austauschst

      K 2 Replies Last reply Reply Quote 1
      • K
        kwone @Homoran last edited by Homoran

        @homoran sagte in brauche Hilfe nach Update Javascript v8.3.1:

        @kwone die library request ist schon seit Jahren veraltet und wird nicht mehr gepflegt.
        in 8.3.1 wurde sie nativ nicht mehr unterstützt.
        Dies wurde auch vor dem Start des Updates als PopUp so angezeigt.

        Du musst jetzt request durch httpGet ersetzen
        Dazu gibt es schon etliche Threads.

        ich bin kein Programmierer, aber bei dir müsste es gehen, indem du einfach request gegen httpGet austauschst, das folgende body in der Klammer incl vorangehendrm Komma entfernst, und das body in Zeile 21 JSON.Parse(body)
        Gegen response.data austauschst

        Hallo Homoran,
        erstmal danke für deine schnelle antwort.
        leider ist das Problem noch nicht gelöst

        function iter(name, obj) {
           for(let i in obj) {
              if(typeof obj[i] == 'object') iter(name + '.' + i, obj[i]);
              else {
                 log(name + '.' + i + ': ' + obj[i]);
                 if(existsState(name + '.' + i)) setState(name + '.' + i, obj[i]);
                 else createState(name + '.' + i, obj[i]); // type: "mixed"
              }
           }
        }
         
         function SendRequest(){
            var options = {
                url: 'http://192.168.178.49/AllJsonData',
                qs: {
                    ack: true 
                    
               }      
            };
            httpGet(options, function (error, response){
                if (!error) iter('javascript.0.EPever', JSON.parse(response.data));
                else console.error(error);
            });
        }
         schedule('*/5 * * * * *', SendRequest);
        

        bringt Fehler :

        javascript.0	11:44:30.002	error	at Object.SendRequest (script.js.common.EPever:21:5)
        

        MOD-EDIT: Code in code-tags gesetzt!

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

          @kwone sagte in brauche Hilfe nach Update Javascript v8.3.1:

          bringt Fehler :

          da muss dir jetzt ein js-Kundiger helfen, ob da in der Funktion iter noch was versteckt ist

          K 1 Reply Last reply Reply Quote 0
          • K
            kwone @Homoran last edited by

            @homoran OK danke für Deine Hilfe

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

              @kwone sagte in brauche Hilfe nach Update Javascript v8.3.1:

              leider ist das Problem noch nicht gelöst

              Der erste Parameter ist die URL als String und kein Objekt, ...

              function iter(name, obj) {
                 for (let i in obj) {
                    if (typeof obj[i] == 'object') iter(name + '.' + i, obj[i]);
                    else {
                       log(name + '.' + i + ': ' + obj[i]);
                       if (existsState(name + '.' + i)) setState(name + '.' + i, obj[i]);
                       else createState(name + '.' + i, obj[i]); // type: "mixed"
                    }
                 }
              }
               
              function SendRequest() {
                 httpGet('http://192.168.178.49/AllJsonData', (error, response) => {
                    if (!error) iter('javascript.0.EPever', JSON.parse(response.data));
                    else console.error(error);
                 });
              }
              
              schedule('*/5 * * * * *', SendRequest);
              

              https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/upgrade-guide.md

              https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httpget

              1 Reply Last reply Reply Quote 1
              • Homoran
                Homoran Global Moderator Administrators @kwone last edited by Homoran

                @kwone sagte in brauche Hilfe nach Update Javascript v8.3.1:

                @homoran OK danke für Deine Hilfe

                gerne, aber ich sehe gerade, dass sich die Meldung auf SendRequest bezieht.

                ich weiss es natürlich nicht, aber möglicherweise sind die als options für request definierten "Dinge" so nicht für httpGet kompatibel.

                Wäre schön wenn @haus-automatisierung oder @paul53 dazu was sagen könnte, damit ich auch noch was lerne.

                EDIT: hat sich überschnitten

                1 Reply Last reply Reply Quote 0
                • K
                  kwone @Homoran last edited by

                  @Homoran
                  Hallo nochmals Danke für die Bemühungen.
                  ich konnte de Umstellung des Scripts mit Hilfe von ChatGPT lösen.

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @kwone last edited by

                    @kwone sagte in brauche Hilfe nach Update Javascript v8.3.1:

                    @Homoran
                    Hallo nochmals Danke für die Bemühungen.
                    ich konnte de Umstellung des Scripts mit Hilfe von ChatGPT lösen.

                    und dann belästigst du uns 😂

                    würdest du der Nachwelt auch die Lösung präsentieren, bitte!

                    K 1 Reply Last reply Reply Quote 0
                    • K
                      kwone @Homoran last edited by Homoran

                      @homoran
                      ja sicher hier das funktionierende Script

                       const http = require('http');
                      
                      function iter(name, obj) {
                          for (let i in obj) {
                              if (typeof obj[i] === 'object' && obj[i] !== null) {
                                  iter(name + '.' + i, obj[i]);
                              } else {
                                  log(name + '.' + i + ': ' + obj[i]);
                                  if (existsState(name + '.' + i)) {
                                      setState(name + '.' + i, obj[i]);
                                  } else {
                                      createState(name + '.' + i, obj[i]); // type: "mixed"
                                  }
                              }
                          }
                      }
                      
                      function SendRequest() {
                          const options = {
                              hostname: '192.168.178.49',
                              port: 80,
                              path: '/AllJsonData',
                              method: 'GET',
                          };
                      
                          const req = http.request(options, (resp) => {
                              let data = '';
                      
                              // Ein Datenchunk wurde empfangen.
                              resp.on('data', (chunk) => {
                                  data += chunk;
                              });
                      
                              // Die gesamte Antwort wurde erhalten.
                              resp.on('end', () => {
                                  try {
                                      const jsonData = JSON.parse(data);
                                      iter('javascript.0.EPever', jsonData);
                                  } catch (e) {
                                      console.error('Error parsing JSON:', e);
                                  }
                              });
                          });
                      
                          req.on('error', (err) => {
                              console.error('Error fetching data:', err.message);
                          });
                      
                          req.end();
                      }
                      
                      // Set interval to fetch data every 5 seconds
                      schedule('*/5 * * * * *', SendRequest);
                      

                      MOD-EDIT: Code in code-tags gesetzt!

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

                        @kwone Und warum so kompliziert ...?

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        412
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        3
                        11
                        442
                        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