Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Hilfe für Javascript Legastheniker und js v8.3.x

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    346

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Hilfe für Javascript Legastheniker und js v8.3.x

Geplant Angeheftet Gesperrt Verschoben JavaScript
104 Beiträge 8 Kommentatoren 13.0k Aufrufe 7 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T TT-Tom

    @ofbeqnpolkkl6mby5e13

    sende bitte nochmal jetzt das komplette Script, ich sehe mir das morgenfrüh an. da Passt etwas mit dem erstellen des color State nicht.

    O Offline
    O Offline
    oFbEQnpoLKKl6mbY5e13
    schrieb am zuletzt editiert von
    #90

    @tt-tom

    Okay, vielen Dank!

    const city_id = 66005;
    const area_id = 2800;
    const logging = false;
    const name = 'Müllabfuhr';
    const numberOfEntries = 69;
    
    const instanz = '0_userdata.' + instance + '.muell-test';
    
    if (logging) log('starting muell.' + instanz);
    
    extendObject(instanz, {
           type: "device",
           common: {
               name: name
           }
       }, function (err) {
           if (err) {
               log('could not create device: ', 'warn');
               return;
           }
       
       }
    );
    let baseData = {};
    
    // query names first
    
    httpGet('https://mymuell.jumomind.com/mmapp/api.php?r=trash&city_id=' + city_id + '&area_id=' + area_id, { timeout: 2000 }, (error, response) => {
      if (!error && response.statusCode == 200) {
           var data = JSON.parse(response.data);  // info ist ein Objekt
              data.forEach((v, i) => {
                  baseData[v._name] = v;
              })
      updateMuell();
      } else {
          console.error(error);	
      }
    });
    
    
    schedule('{"time":{"exactTime":true,"start":"12:17"},"period":{"days":1}}', updateMuell);
    
    
    function updateMuell() {
       var options = 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3'
    
       httpGet(options, (error, response) => {
           if (!error && response.statusCode == 200) {
               var info = JSON.parse(response.data);  // info ist ein Objekt
               if (info[0].Ack === 'Success') {
                   var data = info[0]._data;  // xy ist eine Eigenschaft des Objektes info
                   let counter = 0;
                   const date = (new Date())
                   const todayStr = date.getFullYear() + "-" + ('00' + (date.getMonth() + 1)).slice(-2) + "-" + ('00' + date.getDate()).slice(-2)
                   log(todayStr);
                   data.forEach((v, i) => {
                       if (todayStr < v.cal_date && counter <= numberOfEntries) {
    
                           const basePath = instanz + '.' + ('000' + counter).slice(-3);
                           log(v.cal_date + ' -> ' + basePath, 'debug');
                           // States erstellen
                           extendObject(basePath, {
                               type: "channel",
                               common: {
                                   name: v.cal_date_normal
                               }
                           }, function (err) {
                               if (err) {
                                   log('could not create device: ', 'warn');
                                   return;
                               }
    
                           }
                           );
                           createState(basePath + '.date', v.cal_date_normal, {
                               name: 'Datum',
                               desc: 'Datum der Abholung',
                               type: 'string',
                               read: true,
                               write: false
                           }, () => {
                               setState(basePath + '.date', v.cal_date_normal, true);
                           });
    
                           createState(basePath + '.desc', baseData[v.cal_garbage_type].title, {
                               name: 'Beschreibung',
                               desc: 'Beschreibung der Abholung',
                               type: 'string',
                               read: true,
                               write: false
                           }, () => {
                               setState(basePath + '.desc', baseData[v.cal_garbage_type].title, true);
                           });
                           createState(basePath + '.color', {
                               name: 'Farbe',
                               desc: 'Farbe',
                               type: 'string',
                               role: 'level.color',
                               read: true,
                               write: false
                           }, () => {
                               setState(basePath + '.color', baseData[v.cal_garbage_type].color, true);
                           });
    
                           counter++;
                       }
                   });
               }
           };
       })
    }
    
    

    W T 2 Antworten Letzte Antwort
    0
    • O oFbEQnpoLKKl6mbY5e13

      @tt-tom

      Okay, vielen Dank!

      const city_id = 66005;
      const area_id = 2800;
      const logging = false;
      const name = 'Müllabfuhr';
      const numberOfEntries = 69;
      
      const instanz = '0_userdata.' + instance + '.muell-test';
      
      if (logging) log('starting muell.' + instanz);
      
      extendObject(instanz, {
             type: "device",
             common: {
                 name: name
             }
         }, function (err) {
             if (err) {
                 log('could not create device: ', 'warn');
                 return;
             }
         
         }
      );
      let baseData = {};
      
      // query names first
      
      httpGet('https://mymuell.jumomind.com/mmapp/api.php?r=trash&city_id=' + city_id + '&area_id=' + area_id, { timeout: 2000 }, (error, response) => {
        if (!error && response.statusCode == 200) {
             var data = JSON.parse(response.data);  // info ist ein Objekt
                data.forEach((v, i) => {
                    baseData[v._name] = v;
                })
        updateMuell();
        } else {
            console.error(error);	
        }
      });
      
      
      schedule('{"time":{"exactTime":true,"start":"12:17"},"period":{"days":1}}', updateMuell);
      
      
      function updateMuell() {
         var options = 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3'
      
         httpGet(options, (error, response) => {
             if (!error && response.statusCode == 200) {
                 var info = JSON.parse(response.data);  // info ist ein Objekt
                 if (info[0].Ack === 'Success') {
                     var data = info[0]._data;  // xy ist eine Eigenschaft des Objektes info
                     let counter = 0;
                     const date = (new Date())
                     const todayStr = date.getFullYear() + "-" + ('00' + (date.getMonth() + 1)).slice(-2) + "-" + ('00' + date.getDate()).slice(-2)
                     log(todayStr);
                     data.forEach((v, i) => {
                         if (todayStr < v.cal_date && counter <= numberOfEntries) {
      
                             const basePath = instanz + '.' + ('000' + counter).slice(-3);
                             log(v.cal_date + ' -> ' + basePath, 'debug');
                             // States erstellen
                             extendObject(basePath, {
                                 type: "channel",
                                 common: {
                                     name: v.cal_date_normal
                                 }
                             }, function (err) {
                                 if (err) {
                                     log('could not create device: ', 'warn');
                                     return;
                                 }
      
                             }
                             );
                             createState(basePath + '.date', v.cal_date_normal, {
                                 name: 'Datum',
                                 desc: 'Datum der Abholung',
                                 type: 'string',
                                 read: true,
                                 write: false
                             }, () => {
                                 setState(basePath + '.date', v.cal_date_normal, true);
                             });
      
                             createState(basePath + '.desc', baseData[v.cal_garbage_type].title, {
                                 name: 'Beschreibung',
                                 desc: 'Beschreibung der Abholung',
                                 type: 'string',
                                 read: true,
                                 write: false
                             }, () => {
                                 setState(basePath + '.desc', baseData[v.cal_garbage_type].title, true);
                             });
                             createState(basePath + '.color', {
                                 name: 'Farbe',
                                 desc: 'Farbe',
                                 type: 'string',
                                 role: 'level.color',
                                 read: true,
                                 write: false
                             }, () => {
                                 setState(basePath + '.color', baseData[v.cal_garbage_type].color, true);
                             });
      
                             counter++;
                         }
                     });
                 }
             };
         })
      }
      
      

      W Online
      W Online
      wolfi913
      schrieb am zuletzt editiert von
      #91

      @ofbeqnpolkkl6mby5e13
      @tt-tom
      Nur eine Idee von jemandem der sich aber mit JS nicht auskennt. Daher schlagt mich nicht, falls ich totalen Unsinn schreibe.
      Evtl. liegt's an der Variable var data im Ursprungsscript (z.B. Zeile 51). Möglicherweise funktioniert das nach dem Update auf V8.3.1 nicht mehr. Hatte ein ähnliches Problem in einem Blockly. Da hatte ich eine Variable log. Die musste auch umbenannt werden damit's wieder funktioniert.

      HomoranH 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @homoran sagte: nur noch mit timeout of x msec exceeded und nicht mehr die ganzen null Meldungen

        Blockly_temp.JPG

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von Homoran
        #92

        @paul53 DANKE!
        den Block hab ich gesucht.
        Das Pulldown habe ich natürlich nicht gesehen.

        hatte gestern abend den Timeout auf 4000 gestellt.
        Seitdem kein Fehler mehr.
        Sehe gerade dass im Original ein Timeout von 3000 steht.

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Antwort Letzte Antwort
        0
        • W wolfi913

          @ofbeqnpolkkl6mby5e13
          @tt-tom
          Nur eine Idee von jemandem der sich aber mit JS nicht auskennt. Daher schlagt mich nicht, falls ich totalen Unsinn schreibe.
          Evtl. liegt's an der Variable var data im Ursprungsscript (z.B. Zeile 51). Möglicherweise funktioniert das nach dem Update auf V8.3.1 nicht mehr. Hatte ein ähnliches Problem in einem Blockly. Da hatte ich eine Variable log. Die musste auch umbenannt werden damit's wieder funktioniert.

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von Homoran
          #93

          @wolfi913 sagte in Hilfe für Javascript Legastheniker und js v8.3.x:

          Evtl. liegt's an der Variable var data im Ursprungsscript

          Hab zwar auch keine Ahnung, kann mir aber nicht vorstellen dassdie variable data bei response.data mitmischen sollte.

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          T O 2 Antworten Letzte Antwort
          0
          • O oFbEQnpoLKKl6mbY5e13

            @tt-tom

            Okay, vielen Dank!

            const city_id = 66005;
            const area_id = 2800;
            const logging = false;
            const name = 'Müllabfuhr';
            const numberOfEntries = 69;
            
            const instanz = '0_userdata.' + instance + '.muell-test';
            
            if (logging) log('starting muell.' + instanz);
            
            extendObject(instanz, {
                   type: "device",
                   common: {
                       name: name
                   }
               }, function (err) {
                   if (err) {
                       log('could not create device: ', 'warn');
                       return;
                   }
               
               }
            );
            let baseData = {};
            
            // query names first
            
            httpGet('https://mymuell.jumomind.com/mmapp/api.php?r=trash&city_id=' + city_id + '&area_id=' + area_id, { timeout: 2000 }, (error, response) => {
              if (!error && response.statusCode == 200) {
                   var data = JSON.parse(response.data);  // info ist ein Objekt
                      data.forEach((v, i) => {
                          baseData[v._name] = v;
                      })
              updateMuell();
              } else {
                  console.error(error);	
              }
            });
            
            
            schedule('{"time":{"exactTime":true,"start":"12:17"},"period":{"days":1}}', updateMuell);
            
            
            function updateMuell() {
               var options = 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3'
            
               httpGet(options, (error, response) => {
                   if (!error && response.statusCode == 200) {
                       var info = JSON.parse(response.data);  // info ist ein Objekt
                       if (info[0].Ack === 'Success') {
                           var data = info[0]._data;  // xy ist eine Eigenschaft des Objektes info
                           let counter = 0;
                           const date = (new Date())
                           const todayStr = date.getFullYear() + "-" + ('00' + (date.getMonth() + 1)).slice(-2) + "-" + ('00' + date.getDate()).slice(-2)
                           log(todayStr);
                           data.forEach((v, i) => {
                               if (todayStr < v.cal_date && counter <= numberOfEntries) {
            
                                   const basePath = instanz + '.' + ('000' + counter).slice(-3);
                                   log(v.cal_date + ' -> ' + basePath, 'debug');
                                   // States erstellen
                                   extendObject(basePath, {
                                       type: "channel",
                                       common: {
                                           name: v.cal_date_normal
                                       }
                                   }, function (err) {
                                       if (err) {
                                           log('could not create device: ', 'warn');
                                           return;
                                       }
            
                                   }
                                   );
                                   createState(basePath + '.date', v.cal_date_normal, {
                                       name: 'Datum',
                                       desc: 'Datum der Abholung',
                                       type: 'string',
                                       read: true,
                                       write: false
                                   }, () => {
                                       setState(basePath + '.date', v.cal_date_normal, true);
                                   });
            
                                   createState(basePath + '.desc', baseData[v.cal_garbage_type].title, {
                                       name: 'Beschreibung',
                                       desc: 'Beschreibung der Abholung',
                                       type: 'string',
                                       read: true,
                                       write: false
                                   }, () => {
                                       setState(basePath + '.desc', baseData[v.cal_garbage_type].title, true);
                                   });
                                   createState(basePath + '.color', {
                                       name: 'Farbe',
                                       desc: 'Farbe',
                                       type: 'string',
                                       role: 'level.color',
                                       read: true,
                                       write: false
                                   }, () => {
                                       setState(basePath + '.color', baseData[v.cal_garbage_type].color, true);
                                   });
            
                                   counter++;
                               }
                           });
                       }
                   };
               })
            }
            
            

            T Offline
            T Offline
            TT-Tom
            schrieb am zuletzt editiert von
            #94

            @ofbeqnpolkkl6mby5e13

            bei mir kommen die Meldungen auch, aber nur beim anlegen der States, irgendwie verschluckt er sich da mit den Daten. Wenn die States alle angelegt sind bekomme ich dann keine Meldungen mehr. Werde mal die Stateserstellung mir nochmal genauer ansehen, kann aber etwas dauern.

            Gruß Tom
            https://github.com/tt-tom17
            Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

            NSPanel Script Wiki
            https://github.com/joBr99/nspanel-lovelace-ui/wiki

            NSPanel Adapter Wiki
            https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

            T 1 Antwort Letzte Antwort
            1
            • HomoranH Homoran

              @wolfi913 sagte in Hilfe für Javascript Legastheniker und js v8.3.x:

              Evtl. liegt's an der Variable var data im Ursprungsscript

              Hab zwar auch keine Ahnung, kann mir aber nicht vorstellen dassdie variable data bei response.data mitmischen sollte.

              T Offline
              T Offline
              TT-Tom
              schrieb am zuletzt editiert von
              #95

              @homoran
              Nein daran liegt es nicht. Die Meldungen kommen nur beim anlegen der States. Danach läuft es bei mir ohne Meldungen weiter.

              Gruß Tom
              https://github.com/tt-tom17
              Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

              NSPanel Script Wiki
              https://github.com/joBr99/nspanel-lovelace-ui/wiki

              NSPanel Adapter Wiki
              https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

              1 Antwort Letzte Antwort
              0
              • T TT-Tom

                @ofbeqnpolkkl6mby5e13

                bei mir kommen die Meldungen auch, aber nur beim anlegen der States, irgendwie verschluckt er sich da mit den Daten. Wenn die States alle angelegt sind bekomme ich dann keine Meldungen mehr. Werde mal die Stateserstellung mir nochmal genauer ansehen, kann aber etwas dauern.

                T Offline
                T Offline
                TT-Tom
                schrieb am zuletzt editiert von
                #96

                @oFbEQnpoLKKl6mbY5e13

                so jetzt sollte es ohne Meldung funktionieren, bei Color State hat der Wert gefehlt beim erstellen des State.

                const city_id = 66005;
                const area_id = 2800;
                const logging = false;
                const deviceName = 'Müllabfuhr';
                const numberOfEntries = 69;
                 
                const instanz = '0_userdata.' + instance + '.muell-test';
                 
                if (logging) log('starting muell.' + instanz);
                 
                extendObject(instanz, {
                       type: "device",
                       common: {
                           name: deviceName
                       }
                   }, function (err) {
                       if (err) {
                           log('could not create device: ', 'warn');
                           return;
                       }
                   
                   }
                );
                let baseData = {};
                 
                // query names first
                  
                httpGet('https://mymuell.jumomind.com/mmapp/api.php?r=trash&city_id=' + city_id + '&area_id=' + area_id, { timeout: 2000 }, (error, response) => {
                    if (logging) log(`first query statusCode ${response.statusCode}`);
                    if (logging) log(`first query data ${response.data}`);
                    if (!error && response.statusCode == 200) {
                        let data = JSON.parse(response.data);  // info ist ein Objekt
                        data.forEach((v, i) => {
                            baseData[v._name] = v;
                        })
                        updateMuell();
                    } else {
                        log(error, 'error');
                    }
                });
                
                  
                schedule('{"time":{"exactTime":true,"start":"12:17"},"period":{"days":1}}', updateMuell);
                  
                  
                function updateMuell() {
                    const options = 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3'
                
                    httpGet(options, (error, response) => {
                        if (logging) log(`update query statusCode ${response.statusCode}`);
                        if (logging) log(`update query data ${response.data}`);
                        if (!error && response.statusCode == 200) {
                            let info = JSON.parse(response.data);  // info ist ein Objekt
                            if (info[0].Ack === 'Success') {
                                let data = info[0]._data;  // xy ist eine Eigenschaft des Objektes info
                                let counter = 0;
                                const date = (new Date())
                                const todayStr = date.getFullYear() + "-" + ('00' + (date.getMonth() + 1)).slice(-2) + "-" + ('00' + date.getDate()).slice(-2)
                                log(todayStr);
                                data.forEach((v, i) => {
                                    if (todayStr < v.cal_date && counter <= numberOfEntries) {
                
                                        const basePath = instanz + '.' + ('000' + counter).slice(-3);
                                        if (logging) log(v.cal_date + ' -> ' + basePath);
                                        // States erstellen
                                        extendObject(basePath, {
                                            type: "channel",
                                            common: {
                                                name: v.cal_date_normal
                                            }
                                        }, function (err) {
                                            if (err) {
                                                log('could not create device: ', 'warn');
                                                return;
                                            }
                
                                        }
                                        );
                                        createState(basePath + '.date', v.cal_date_normal, {
                                            name: 'Datum',
                                            desc: 'Datum der Abholung',
                                            type: 'string',
                                            read: true,
                                            write: false
                                        }, () => {
                                            setState(basePath + '.date', v.cal_date_normal, true);
                                        });
                
                                        createState(basePath + '.desc', baseData[v.cal_garbage_type].title, {
                                            name: 'Beschreibung',
                                            desc: 'Beschreibung der Abholung',
                                            type: 'string',
                                            read: true,
                                            write: false
                                        }, () => {
                                            setState(basePath + '.desc', baseData[v.cal_garbage_type].title, true);
                                        });
                
                                        createState(basePath + '.color',baseData[v.cal_garbage_type].color, {
                                            name: 'Farbe',
                                            desc: 'Farbe',
                                            type: 'string',
                                            read: true,
                                            write: false
                                        }, () => {
                                            setState(basePath + '.color', baseData[v.cal_garbage_type].color, true);
                                        });
                
                                        counter++;
                                    }
                                });
                            }
                        }
                    });
                }
                

                Gruß Tom
                https://github.com/tt-tom17
                Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                NSPanel Script Wiki
                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                NSPanel Adapter Wiki
                https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                O 1 Antwort Letzte Antwort
                1
                • T TT-Tom

                  @oFbEQnpoLKKl6mbY5e13

                  so jetzt sollte es ohne Meldung funktionieren, bei Color State hat der Wert gefehlt beim erstellen des State.

                  const city_id = 66005;
                  const area_id = 2800;
                  const logging = false;
                  const deviceName = 'Müllabfuhr';
                  const numberOfEntries = 69;
                   
                  const instanz = '0_userdata.' + instance + '.muell-test';
                   
                  if (logging) log('starting muell.' + instanz);
                   
                  extendObject(instanz, {
                         type: "device",
                         common: {
                             name: deviceName
                         }
                     }, function (err) {
                         if (err) {
                             log('could not create device: ', 'warn');
                             return;
                         }
                     
                     }
                  );
                  let baseData = {};
                   
                  // query names first
                    
                  httpGet('https://mymuell.jumomind.com/mmapp/api.php?r=trash&city_id=' + city_id + '&area_id=' + area_id, { timeout: 2000 }, (error, response) => {
                      if (logging) log(`first query statusCode ${response.statusCode}`);
                      if (logging) log(`first query data ${response.data}`);
                      if (!error && response.statusCode == 200) {
                          let data = JSON.parse(response.data);  // info ist ein Objekt
                          data.forEach((v, i) => {
                              baseData[v._name] = v;
                          })
                          updateMuell();
                      } else {
                          log(error, 'error');
                      }
                  });
                  
                    
                  schedule('{"time":{"exactTime":true,"start":"12:17"},"period":{"days":1}}', updateMuell);
                    
                    
                  function updateMuell() {
                      const options = 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3'
                  
                      httpGet(options, (error, response) => {
                          if (logging) log(`update query statusCode ${response.statusCode}`);
                          if (logging) log(`update query data ${response.data}`);
                          if (!error && response.statusCode == 200) {
                              let info = JSON.parse(response.data);  // info ist ein Objekt
                              if (info[0].Ack === 'Success') {
                                  let data = info[0]._data;  // xy ist eine Eigenschaft des Objektes info
                                  let counter = 0;
                                  const date = (new Date())
                                  const todayStr = date.getFullYear() + "-" + ('00' + (date.getMonth() + 1)).slice(-2) + "-" + ('00' + date.getDate()).slice(-2)
                                  log(todayStr);
                                  data.forEach((v, i) => {
                                      if (todayStr < v.cal_date && counter <= numberOfEntries) {
                  
                                          const basePath = instanz + '.' + ('000' + counter).slice(-3);
                                          if (logging) log(v.cal_date + ' -> ' + basePath);
                                          // States erstellen
                                          extendObject(basePath, {
                                              type: "channel",
                                              common: {
                                                  name: v.cal_date_normal
                                              }
                                          }, function (err) {
                                              if (err) {
                                                  log('could not create device: ', 'warn');
                                                  return;
                                              }
                  
                                          }
                                          );
                                          createState(basePath + '.date', v.cal_date_normal, {
                                              name: 'Datum',
                                              desc: 'Datum der Abholung',
                                              type: 'string',
                                              read: true,
                                              write: false
                                          }, () => {
                                              setState(basePath + '.date', v.cal_date_normal, true);
                                          });
                  
                                          createState(basePath + '.desc', baseData[v.cal_garbage_type].title, {
                                              name: 'Beschreibung',
                                              desc: 'Beschreibung der Abholung',
                                              type: 'string',
                                              read: true,
                                              write: false
                                          }, () => {
                                              setState(basePath + '.desc', baseData[v.cal_garbage_type].title, true);
                                          });
                  
                                          createState(basePath + '.color',baseData[v.cal_garbage_type].color, {
                                              name: 'Farbe',
                                              desc: 'Farbe',
                                              type: 'string',
                                              read: true,
                                              write: false
                                          }, () => {
                                              setState(basePath + '.color', baseData[v.cal_garbage_type].color, true);
                                          });
                  
                                          counter++;
                                      }
                                  });
                              }
                          }
                      });
                  }
                  

                  O Offline
                  O Offline
                  oFbEQnpoLKKl6mbY5e13
                  schrieb am zuletzt editiert von
                  #97

                  @tt-tom

                  Ganz herzlichen Dank für deine Hilfe! Skript läuft.

                  1 Antwort Letzte Antwort
                  0
                  • HomoranH Homoran

                    @wolfi913 sagte in Hilfe für Javascript Legastheniker und js v8.3.x:

                    Evtl. liegt's an der Variable var data im Ursprungsscript

                    Hab zwar auch keine Ahnung, kann mir aber nicht vorstellen dassdie variable data bei response.data mitmischen sollte.

                    O Offline
                    O Offline
                    oFbEQnpoLKKl6mbY5e13
                    schrieb am zuletzt editiert von oFbEQnpoLKKl6mbY5e13
                    #98

                    @homoran

                    Welches Fazit wollen wir nun ziehen?

                    Aus meiner Sicht ist es schlicht unmöglich, eine Anleitung zu erstellen. Jedes Skript ist potentiell so unterschiedlich, dass man nicht einfach einen Block durch einen anderen austauschen kann. Vielleicht muss man hier das Wort "Anleitung" im wahrsten Sinn des Wortes verstehen. Sie kann einen User nur bei der Umstellung "anleiten".

                    T W HomoranH 3 Antworten Letzte Antwort
                    0
                    • O oFbEQnpoLKKl6mbY5e13

                      @homoran

                      Welches Fazit wollen wir nun ziehen?

                      Aus meiner Sicht ist es schlicht unmöglich, eine Anleitung zu erstellen. Jedes Skript ist potentiell so unterschiedlich, dass man nicht einfach einen Block durch einen anderen austauschen kann. Vielleicht muss man hier das Wort "Anleitung" im wahrsten Sinn des Wortes verstehen. Sie kann einen User nur bei der Umstellung "anleiten".

                      T Offline
                      T Offline
                      TT-Tom
                      schrieb am zuletzt editiert von
                      #99

                      @ofbeqnpolkkl6mby5e13
                      ich glaube, wenn am die alte Schreibweise der neuen gegenüberstellt und sieht, wo die Parameter jetzt eingesetzt werden bzw. wie sie jetzt heißen, wird es verständlicher.

                      Gruß Tom
                      https://github.com/tt-tom17
                      Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                      NSPanel Script Wiki
                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                      NSPanel Adapter Wiki
                      https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                      O 2 Antworten Letzte Antwort
                      1
                      • O oFbEQnpoLKKl6mbY5e13

                        @homoran

                        Welches Fazit wollen wir nun ziehen?

                        Aus meiner Sicht ist es schlicht unmöglich, eine Anleitung zu erstellen. Jedes Skript ist potentiell so unterschiedlich, dass man nicht einfach einen Block durch einen anderen austauschen kann. Vielleicht muss man hier das Wort "Anleitung" im wahrsten Sinn des Wortes verstehen. Sie kann einen User nur bei der Umstellung "anleiten".

                        W Online
                        W Online
                        wolfi913
                        schrieb am zuletzt editiert von
                        #100

                        @ofbeqnpolkkl6mby5e13 sagte in Hilfe für Javascript Legastheniker und js v8.3.x:

                        Welches Fazit wollen wir nun ziehen?

                        Matthias @haus-automatisierung hat hier zwischenzeitlich einen Upgrade-Guide erstellt.

                        https://forum.iobroker.net/topic/74659/request-package-is-deprecated-please-use-httpget/25

                        1 Antwort Letzte Antwort
                        2
                        • O oFbEQnpoLKKl6mbY5e13

                          @homoran

                          Welches Fazit wollen wir nun ziehen?

                          Aus meiner Sicht ist es schlicht unmöglich, eine Anleitung zu erstellen. Jedes Skript ist potentiell so unterschiedlich, dass man nicht einfach einen Block durch einen anderen austauschen kann. Vielleicht muss man hier das Wort "Anleitung" im wahrsten Sinn des Wortes verstehen. Sie kann einen User nur bei der Umstellung "anleiten".

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #101

                          @ofbeqnpolkkl6mby5e13 Ja, da gebe ich dir recht.
                          Allerdings denke ich (will ich glauben) dass die komplexen Skripte, die nicht einfach umzustellen sind, in der Minderheit sind.

                          Inzwischen gibt es schon mehrere Threads zu diesem Thema und ich habe alle verfolgt!
                          Ich glaube auch, dass die Welle der Hilfesuchenden gerade erst anschwappt und noch lange icht ihren Höhepunkt erreicht hat.

                          Zum Glück gibt's auch Inzwischen viele Helfende, die sich um die Hilfesuchenden kümmern.

                          Wenn es hilft einigen bis mehreren durch die einfachste Formel
                          request(... durch httpGet(.... zu ersetzen, body dort zu streichen und statt den folgenden body jetzt response.data einzugeben wäre schon viel geholfen.

                          Die wichtigste Botschaft für Hilfesuchende, die ich aus diesem bisherigen Thread entnehme, ist: Es wird schon irgendwie ans laufen zu bringen sein.

                          DANKE an alle Unterstützer

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Antwort Letzte Antwort
                          3
                          • T TT-Tom

                            @ofbeqnpolkkl6mby5e13
                            ich glaube, wenn am die alte Schreibweise der neuen gegenüberstellt und sieht, wo die Parameter jetzt eingesetzt werden bzw. wie sie jetzt heißen, wird es verständlicher.

                            O Offline
                            O Offline
                            oFbEQnpoLKKl6mbY5e13
                            schrieb am zuletzt editiert von
                            #102

                            @tt-tom

                            Ich hatte das gestern jedes Mal gemacht, wenn du neuen Code gepostest hast. Heute hatte ich bisher nicht mehr die Muße..

                            1 Antwort Letzte Antwort
                            0
                            • T TT-Tom

                              @ofbeqnpolkkl6mby5e13
                              ich glaube, wenn am die alte Schreibweise der neuen gegenüberstellt und sieht, wo die Parameter jetzt eingesetzt werden bzw. wie sie jetzt heißen, wird es verständlicher.

                              O Offline
                              O Offline
                              oFbEQnpoLKKl6mbY5e13
                              schrieb am zuletzt editiert von oFbEQnpoLKKl6mbY5e13
                              #103

                              @tt-tom

                              Noch mal eine kleine Frage zum Parameter Timeout. Diesen hatte ich in der ersten httpGet-Abfrage eingebaut, allerdings in der zweiten Abfrage entweder vergessen oder erstmal zur Vereinfachung weggelassen.

                              httpGet('https://mymuell.jumomind.com/mmapp/api.php?r=trash&city_id=' + city_id + '&area_id=' + area_id, { timeout: 4000 }, (error, response) => {
                                  if (logging) log(`first query statusCode ${response.statusCode}`);
                                  if (logging) log(`first query data ${response.data}`);
                                  if (!error && response.statusCode == 200) {
                                      let data = JSON.parse(response.data);  // info ist ein Objekt
                                      data.forEach((v, i) => {
                                          baseData[v._name] = v;
                                      })
                                      updateMuell();
                                  } else {
                                      log(error, 'error');
                                  }
                              });
                               
                                
                              schedule('{"time":{"exactTime":true,"start":"12:17"},"period":{"days":1}}', updateMuell);
                                
                                
                              function updateMuell() {
                                  const options = 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3'
                               
                                  httpGet(options, (error, response) => {
                              

                              Wäre die Syntax so richtig?

                              function updateMuell() {
                                  const options = 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3'
                               
                                  httpGet(options, { timeout: 4000 }, (error, response) => {
                              
                              T 1 Antwort Letzte Antwort
                              0
                              • O oFbEQnpoLKKl6mbY5e13

                                @tt-tom

                                Noch mal eine kleine Frage zum Parameter Timeout. Diesen hatte ich in der ersten httpGet-Abfrage eingebaut, allerdings in der zweiten Abfrage entweder vergessen oder erstmal zur Vereinfachung weggelassen.

                                httpGet('https://mymuell.jumomind.com/mmapp/api.php?r=trash&city_id=' + city_id + '&area_id=' + area_id, { timeout: 4000 }, (error, response) => {
                                    if (logging) log(`first query statusCode ${response.statusCode}`);
                                    if (logging) log(`first query data ${response.data}`);
                                    if (!error && response.statusCode == 200) {
                                        let data = JSON.parse(response.data);  // info ist ein Objekt
                                        data.forEach((v, i) => {
                                            baseData[v._name] = v;
                                        })
                                        updateMuell();
                                    } else {
                                        log(error, 'error');
                                    }
                                });
                                 
                                  
                                schedule('{"time":{"exactTime":true,"start":"12:17"},"period":{"days":1}}', updateMuell);
                                  
                                  
                                function updateMuell() {
                                    const options = 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3'
                                 
                                    httpGet(options, (error, response) => {
                                

                                Wäre die Syntax so richtig?

                                function updateMuell() {
                                    const options = 'https://mymuell.jumomind.com/webservice.php?idx=termins&city_id=' + city_id + '&area_id=' + area_id + '&ws=3'
                                 
                                    httpGet(options, { timeout: 4000 }, (error, response) => {
                                
                                T Offline
                                T Offline
                                TT-Tom
                                schrieb am zuletzt editiert von
                                #104

                                @oFbEQnpoLKKl6mbY5e13
                                Jo passt
                                Link Doku

                                Gruß Tom
                                https://github.com/tt-tom17
                                Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                                NSPanel Script Wiki
                                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                NSPanel Adapter Wiki
                                https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                                1 Antwort Letzte Antwort
                                1
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                756

                                Online

                                32.5k

                                Benutzer

                                81.8k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2025
                                logo
                                • Anmelden

                                • Du hast noch kein Konto? Registrieren

                                • Anmelden oder registrieren, um zu suchen
                                • Erster Beitrag
                                  Letzter Beitrag
                                0
                                • Home
                                • Aktuell
                                • Tags
                                • Ungelesen 0
                                • Kategorien
                                • Unreplied
                                • Beliebt
                                • GitHub
                                • Docu
                                • Hilfe