Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. Script okay? Hier zur Überprüfung

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    500

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    405

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    986

Script okay? Hier zur Überprüfung

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
10 Beiträge 4 Kommentatoren 853 Aufrufe 2 Beobachtet
  • Ä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.
  • Sven SchumacherS Offline
    Sven SchumacherS Offline
    Sven Schumacher
    schrieb am zuletzt editiert von Sven Schumacher
    #1

    @ticaki

    Hier das Script. Aus Gründen mit ungültigem API-Key

    Es werden für die nächsten 24h je 16 Wetterparameter geladen. Als 384 in einigen ms. Das ergibt entsprechend Einträge im Log. Das wird nur einmal Am Tag gemacht, wenn ein neuer Durchlauf bei Kachelmann verfügbar ist.

    top sagt:

    top - 16:20:48 up 1 day, 42 min,  1 user,  load average: 0.07, 0.29, 0.25
    Tasks: 162 total,   1 running, 161 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  4.8 us,  4.8 sy,  0.0 ni, 90.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    MiB Mem :   7812.3 total,   5379.5 free,   1441.3 used,    991.5 buff/cache
    MiB Swap:    100.0 total,    100.0 free,      0.0 used.   6248.2 avail Mem
    
    schedule("* 1 * * *", function () {
        KMW_Vorhersage();
        console.log ("DONE");
    });
    
    const typeOverrides = {
        lat: 'string',
        lon: 'string',
        dateTime: 'string',
        run: 'string',
        weatherSymbol: {value: 'string'}
    };
    
    function getType(key, value) {
        let type = typeof value;
    
        // Special type handling
        let path = key.split('.');
        let currentOverrides = typeOverrides;
        for (let part of path) {
            if (currentOverrides[part]) {
                if (typeof currentOverrides[part] === 'object') {
                    currentOverrides = currentOverrides[part];
                } else {
                    return currentOverrides[part];
                }
            } else {
                break;
            }
        }
    
        return type;
    }
    
    function KMW_Vorhersage() {
        const fetch = require('node-fetch');
    
        const url = 'https://api.kachelmannwetter.com/v02/forecast/55.49413097231316/7.87122704335334/standard/1h';
        const options = {
            method: 'GET',
            headers: {
                    'Accept': 'application/json',
                    'X-API-Key': '0815',
                },
            };
    
        fetch(url, options)
            .then(response => response.json())
            .then(data => {
                createOrUpdateObjectTree('javascript.0.Kachelmann.Vorhersage', data);
            })
            .catch(err => console.error('Fehler:', err));
    }
    
    function createOrUpdateObjectTree(baseId, obj) {
        for (const key in obj) {
            try {
                let value = obj[key];
                const id = `${baseId}.${key}`;
                const field =`${key}`;
                log("Checking type for ID:"+ id);
                let valueType = getType(id, value);
    //            log('Data:' + ' - ' + key + ' - ' + value +  ' - ' + id +  ' - ' + field + ' - ' + valueType);
    
    
                if (valueType === 'object' && value !== null) {
                    createOrUpdateObjectTree(id, value);
                } else {
                    if (key === 'lon' || key === 'lat') {
                        value = value.toString();
                    }
    
                    let typeDefinition = {name: field, type: valueType, read: true, write: false};
    //                log (typeDefinition.type)
                    // Prüfen, ob der Zustand bereits existiert
                    if (existsState(id)) {
                        // Zustand existiert bereits, aktualisieren
                        setState(id, value, true, typeDefinition);
                    } else {
                        // Zustand existiert noch nicht, erstellen
                        createState(id, value, true, typeDefinition);
                    }
                }
            } catch (error) {
                console.error(`Fehler Verarbeitung Key "${key}":`, error);
            }
        }
    }
    
     KMW_Vorhersage();
    
    
    HomoranH paul53P 2 Antworten Letzte Antwort
    0
    • Sven SchumacherS Sven Schumacher

      @ticaki

      Hier das Script. Aus Gründen mit ungültigem API-Key

      Es werden für die nächsten 24h je 16 Wetterparameter geladen. Als 384 in einigen ms. Das ergibt entsprechend Einträge im Log. Das wird nur einmal Am Tag gemacht, wenn ein neuer Durchlauf bei Kachelmann verfügbar ist.

      top sagt:

      top - 16:20:48 up 1 day, 42 min,  1 user,  load average: 0.07, 0.29, 0.25
      Tasks: 162 total,   1 running, 161 sleeping,   0 stopped,   0 zombie
      %Cpu(s):  4.8 us,  4.8 sy,  0.0 ni, 90.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
      MiB Mem :   7812.3 total,   5379.5 free,   1441.3 used,    991.5 buff/cache
      MiB Swap:    100.0 total,    100.0 free,      0.0 used.   6248.2 avail Mem
      
      schedule("* 1 * * *", function () {
          KMW_Vorhersage();
          console.log ("DONE");
      });
      
      const typeOverrides = {
          lat: 'string',
          lon: 'string',
          dateTime: 'string',
          run: 'string',
          weatherSymbol: {value: 'string'}
      };
      
      function getType(key, value) {
          let type = typeof value;
      
          // Special type handling
          let path = key.split('.');
          let currentOverrides = typeOverrides;
          for (let part of path) {
              if (currentOverrides[part]) {
                  if (typeof currentOverrides[part] === 'object') {
                      currentOverrides = currentOverrides[part];
                  } else {
                      return currentOverrides[part];
                  }
              } else {
                  break;
              }
          }
      
          return type;
      }
      
      function KMW_Vorhersage() {
          const fetch = require('node-fetch');
      
          const url = 'https://api.kachelmannwetter.com/v02/forecast/55.49413097231316/7.87122704335334/standard/1h';
          const options = {
              method: 'GET',
              headers: {
                      'Accept': 'application/json',
                      'X-API-Key': '0815',
                  },
              };
      
          fetch(url, options)
              .then(response => response.json())
              .then(data => {
                  createOrUpdateObjectTree('javascript.0.Kachelmann.Vorhersage', data);
              })
              .catch(err => console.error('Fehler:', err));
      }
      
      function createOrUpdateObjectTree(baseId, obj) {
          for (const key in obj) {
              try {
                  let value = obj[key];
                  const id = `${baseId}.${key}`;
                  const field =`${key}`;
                  log("Checking type for ID:"+ id);
                  let valueType = getType(id, value);
      //            log('Data:' + ' - ' + key + ' - ' + value +  ' - ' + id +  ' - ' + field + ' - ' + valueType);
      
      
                  if (valueType === 'object' && value !== null) {
                      createOrUpdateObjectTree(id, value);
                  } else {
                      if (key === 'lon' || key === 'lat') {
                          value = value.toString();
                      }
      
                      let typeDefinition = {name: field, type: valueType, read: true, write: false};
      //                log (typeDefinition.type)
                      // Prüfen, ob der Zustand bereits existiert
                      if (existsState(id)) {
                          // Zustand existiert bereits, aktualisieren
                          setState(id, value, true, typeDefinition);
                      } else {
                          // Zustand existiert noch nicht, erstellen
                          createState(id, value, true, typeDefinition);
                      }
                  }
              } catch (error) {
                  console.error(`Fehler Verarbeitung Key "${key}":`, error);
              }
          }
      }
      
       KMW_Vorhersage();
      
      
      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      @sven-schumacher sagte in Script okay? Hier zur Überprüfung:

      Aus Gründen mit ungültigem API-Key

      hab ich dann mal gelöscht

      kein Support per PN! - Fragen im Forum stellen -
      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      Sven SchumacherS 2 Antworten Letzte Antwort
      1
      • HomoranH Homoran

        @sven-schumacher sagte in Script okay? Hier zur Überprüfung:

        Aus Gründen mit ungültigem API-Key

        hab ich dann mal gelöscht

        Sven SchumacherS Offline
        Sven SchumacherS Offline
        Sven Schumacher
        schrieb am zuletzt editiert von
        #3

        @homoran der key wurde von mir schon verstümmelt, war also eh nutzlos. Aber so ist es halt 100% ;)

        1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @sven-schumacher sagte in Script okay? Hier zur Überprüfung:

          Aus Gründen mit ungültigem API-Key

          hab ich dann mal gelöscht

          Sven SchumacherS Offline
          Sven SchumacherS Offline
          Sven Schumacher
          schrieb am zuletzt editiert von
          #4

          @homoran Hab 0815 eingetragen, weil dein Edit das Syntax-Highlighting kaputt gemacht hat

          1 Antwort Letzte Antwort
          0
          • Sven SchumacherS Offline
            Sven SchumacherS Offline
            Sven Schumacher
            schrieb am zuletzt editiert von
            #5

            Und hier noch das zweite Scipt zu dem Thema.
            Hier werden die aktuelle Messwerte alle 15 Minuten abgefragt.

            schedule("*/15 * * * *", function () {
                KMW_Messwerte();
                console.log ("DONE");
            });
            
            const typeOverrides = {
                lat: 'string',
                lon: 'string',
                dateTime: 'string',
                run: 'string',
                weatherSymbol: {value: 'string'}
            };
            
            function getType(key, value) {
                let type = typeof value;
            
                // Special type handling
                let path = key.split('.');
                let currentOverrides = typeOverrides;
                for (let part of path) {
                    if (currentOverrides[part]) {
                        if (typeof currentOverrides[part] === 'object') {
                            currentOverrides = currentOverrides[part];
                        } else {
                            return currentOverrides[part];
                        }
                    } else {
                        break;
                    }
                }
            
                return type;
            }
            
            function KMW_Messwerte() {
                const fetch = require('node-fetch');
                const url = 'https://api.kachelmannwetter.com/v02/current/55.49413097231316/7.87122704335334';
                const options = {
                    method: 'GET',
                    headers: {
                        'Accept': 'application/json',
                        'X-API-Key': '0815',
                    },
                };
            
                fetch(url, options)
                    .then(response => response.json())
                    .then(data => {
                        createOrUpdateObjectTree('javascript.0.Kachelmann.Messwerte', data);
                    })
                    .catch(err => console.error('Fehler:', err));
            }
            
            function createOrUpdateObjectTree(baseId, obj) {
                for (const key in obj) {
                    const value = obj[key];
                    const id = `${baseId}.${key}`;
                    const field =`${key}`;
                    let valueType = getType(id, value);
            
                    //log('Data:' + ' - ' + key + ' - ' + value +  ' - ' + id +  ' - ' + field + ' - ' + valueType);
            
                    if (valueType === 'object' && value !== null) {
                        //console.log('Descending into sub-object:', value);
                        createOrUpdateObjectTree(id, value);
                    } else {
                        //console.log('Updating or creating state...');
                        let typeDefinition = {name: field, type: valueType, read: true, write: false};
            
                        // Prüfen, ob der Zustand bereits existiert
                        if (existsState(id)) {
                            // Zustand existiert bereits, aktualisieren
                            console.log('State exists, updating...');
                            setState(id, value, true, typeDefinition);
                        } else {
                            // Zustand existiert noch nicht, erstellen
                            console.log('State does not exist, creating...');
                            createState(id, value, true, typeDefinition);
                        }
                    }
                }
            }
            
            
            function createOrUpdateObjectTree_x(baseId, obj) {
                for (const key in obj) {
                    const value = obj[key];
                    const id = `${baseId}.${key}`;
                    const field =`${key}`;
                    let valueType = getType(id, value);
            
                    if (valueType === 'object' && value !== null) {
                        createOrUpdateObjectTree(id, value);
                    } else {
                        let typeDefinition = {name: field, type: valueType, read: true, write: false};
            
                        // Prüfen, ob der Zustand bereits existiert
                        if (existsState(id)) {
                            // Zustand existiert bereits, aktualisieren
                            setState(id, value, true, typeDefinition);
                        } else {
                            // Zustand existiert noch nicht, erstellen
                            createState(id, value, true, typeDefinition);
                        }
                    }
                }
            }
            
             // KMW_Messwerte();
            
            
            T 1 Antwort Letzte Antwort
            0
            • Sven SchumacherS Sven Schumacher

              @ticaki

              Hier das Script. Aus Gründen mit ungültigem API-Key

              Es werden für die nächsten 24h je 16 Wetterparameter geladen. Als 384 in einigen ms. Das ergibt entsprechend Einträge im Log. Das wird nur einmal Am Tag gemacht, wenn ein neuer Durchlauf bei Kachelmann verfügbar ist.

              top sagt:

              top - 16:20:48 up 1 day, 42 min,  1 user,  load average: 0.07, 0.29, 0.25
              Tasks: 162 total,   1 running, 161 sleeping,   0 stopped,   0 zombie
              %Cpu(s):  4.8 us,  4.8 sy,  0.0 ni, 90.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
              MiB Mem :   7812.3 total,   5379.5 free,   1441.3 used,    991.5 buff/cache
              MiB Swap:    100.0 total,    100.0 free,      0.0 used.   6248.2 avail Mem
              
              schedule("* 1 * * *", function () {
                  KMW_Vorhersage();
                  console.log ("DONE");
              });
              
              const typeOverrides = {
                  lat: 'string',
                  lon: 'string',
                  dateTime: 'string',
                  run: 'string',
                  weatherSymbol: {value: 'string'}
              };
              
              function getType(key, value) {
                  let type = typeof value;
              
                  // Special type handling
                  let path = key.split('.');
                  let currentOverrides = typeOverrides;
                  for (let part of path) {
                      if (currentOverrides[part]) {
                          if (typeof currentOverrides[part] === 'object') {
                              currentOverrides = currentOverrides[part];
                          } else {
                              return currentOverrides[part];
                          }
                      } else {
                          break;
                      }
                  }
              
                  return type;
              }
              
              function KMW_Vorhersage() {
                  const fetch = require('node-fetch');
              
                  const url = 'https://api.kachelmannwetter.com/v02/forecast/55.49413097231316/7.87122704335334/standard/1h';
                  const options = {
                      method: 'GET',
                      headers: {
                              'Accept': 'application/json',
                              'X-API-Key': '0815',
                          },
                      };
              
                  fetch(url, options)
                      .then(response => response.json())
                      .then(data => {
                          createOrUpdateObjectTree('javascript.0.Kachelmann.Vorhersage', data);
                      })
                      .catch(err => console.error('Fehler:', err));
              }
              
              function createOrUpdateObjectTree(baseId, obj) {
                  for (const key in obj) {
                      try {
                          let value = obj[key];
                          const id = `${baseId}.${key}`;
                          const field =`${key}`;
                          log("Checking type for ID:"+ id);
                          let valueType = getType(id, value);
              //            log('Data:' + ' - ' + key + ' - ' + value +  ' - ' + id +  ' - ' + field + ' - ' + valueType);
              
              
                          if (valueType === 'object' && value !== null) {
                              createOrUpdateObjectTree(id, value);
                          } else {
                              if (key === 'lon' || key === 'lat') {
                                  value = value.toString();
                              }
              
                              let typeDefinition = {name: field, type: valueType, read: true, write: false};
              //                log (typeDefinition.type)
                              // Prüfen, ob der Zustand bereits existiert
                              if (existsState(id)) {
                                  // Zustand existiert bereits, aktualisieren
                                  setState(id, value, true, typeDefinition);
                              } else {
                                  // Zustand existiert noch nicht, erstellen
                                  createState(id, value, true, typeDefinition);
                              }
                          }
                      } catch (error) {
                          console.error(`Fehler Verarbeitung Key "${key}":`, error);
                      }
                  }
              }
              
               KMW_Vorhersage();
              
              
              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @sven-schumacher sagte: Das wird nur einmal Am Tag gemacht

              Laut Zeile 1 wird es zwischen 1:00 Uhr und 1:59 Uhr jede Minute gemacht.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              HomoranH 1 Antwort Letzte Antwort
              1
              • paul53P paul53

                @sven-schumacher sagte: Das wird nur einmal Am Tag gemacht

                Laut Zeile 1 wird es zwischen 1:00 Uhr und 1:59 Uhr jede Minute gemacht.

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

                @paul53 Die Logmeldungen kamen lt. anderem Thread aber 3x pro Millisekunde.

                kein Support per PN! - Fragen im Forum stellen -
                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                1 Antwort Letzte Antwort
                0
                • Sven SchumacherS Sven Schumacher

                  Und hier noch das zweite Scipt zu dem Thema.
                  Hier werden die aktuelle Messwerte alle 15 Minuten abgefragt.

                  schedule("*/15 * * * *", function () {
                      KMW_Messwerte();
                      console.log ("DONE");
                  });
                  
                  const typeOverrides = {
                      lat: 'string',
                      lon: 'string',
                      dateTime: 'string',
                      run: 'string',
                      weatherSymbol: {value: 'string'}
                  };
                  
                  function getType(key, value) {
                      let type = typeof value;
                  
                      // Special type handling
                      let path = key.split('.');
                      let currentOverrides = typeOverrides;
                      for (let part of path) {
                          if (currentOverrides[part]) {
                              if (typeof currentOverrides[part] === 'object') {
                                  currentOverrides = currentOverrides[part];
                              } else {
                                  return currentOverrides[part];
                              }
                          } else {
                              break;
                          }
                      }
                  
                      return type;
                  }
                  
                  function KMW_Messwerte() {
                      const fetch = require('node-fetch');
                      const url = 'https://api.kachelmannwetter.com/v02/current/55.49413097231316/7.87122704335334';
                      const options = {
                          method: 'GET',
                          headers: {
                              'Accept': 'application/json',
                              'X-API-Key': '0815',
                          },
                      };
                  
                      fetch(url, options)
                          .then(response => response.json())
                          .then(data => {
                              createOrUpdateObjectTree('javascript.0.Kachelmann.Messwerte', data);
                          })
                          .catch(err => console.error('Fehler:', err));
                  }
                  
                  function createOrUpdateObjectTree(baseId, obj) {
                      for (const key in obj) {
                          const value = obj[key];
                          const id = `${baseId}.${key}`;
                          const field =`${key}`;
                          let valueType = getType(id, value);
                  
                          //log('Data:' + ' - ' + key + ' - ' + value +  ' - ' + id +  ' - ' + field + ' - ' + valueType);
                  
                          if (valueType === 'object' && value !== null) {
                              //console.log('Descending into sub-object:', value);
                              createOrUpdateObjectTree(id, value);
                          } else {
                              //console.log('Updating or creating state...');
                              let typeDefinition = {name: field, type: valueType, read: true, write: false};
                  
                              // Prüfen, ob der Zustand bereits existiert
                              if (existsState(id)) {
                                  // Zustand existiert bereits, aktualisieren
                                  console.log('State exists, updating...');
                                  setState(id, value, true, typeDefinition);
                              } else {
                                  // Zustand existiert noch nicht, erstellen
                                  console.log('State does not exist, creating...');
                                  createState(id, value, true, typeDefinition);
                              }
                          }
                      }
                  }
                  
                  
                  function createOrUpdateObjectTree_x(baseId, obj) {
                      for (const key in obj) {
                          const value = obj[key];
                          const id = `${baseId}.${key}`;
                          const field =`${key}`;
                          let valueType = getType(id, value);
                  
                          if (valueType === 'object' && value !== null) {
                              createOrUpdateObjectTree(id, value);
                          } else {
                              let typeDefinition = {name: field, type: valueType, read: true, write: false};
                  
                              // Prüfen, ob der Zustand bereits existiert
                              if (existsState(id)) {
                                  // Zustand existiert bereits, aktualisieren
                                  setState(id, value, true, typeDefinition);
                              } else {
                                  // Zustand existiert noch nicht, erstellen
                                  createState(id, value, true, typeDefinition);
                              }
                          }
                      }
                  }
                  
                   // KMW_Messwerte();
                  
                  
                  T Nicht stören
                  T Nicht stören
                  ticaki
                  schrieb am zuletzt editiert von ticaki
                  #8

                  @sven-schumacher sagte in Script okay? Hier zur Überprüfung:

                  Und hier noch das zweite Scipt zu dem Thema.
                  Hier werden die aktuelle Messwerte alle 15 Minuten abgefragt.

                  schedule("*/15 * * * *", function () {
                      KMW_Messwerte();
                      console.log ("DONE");
                  });
                  
                  const typeOverrides = {
                      lat: 'string',
                      lon: 'string',
                      dateTime: 'string',
                      run: 'string',
                      weatherSymbol: {value: 'string'}
                  };
                  
                  function getType(key, value) {
                      let type = typeof value;
                  
                      // Special type handling
                      let path = key.split('.');
                      let currentOverrides = typeOverrides;
                      for (let part of path) {
                          if (currentOverrides[part]) {
                              if (typeof currentOverrides[part] === 'object') {
                                  currentOverrides = currentOverrides[part];
                              } else {
                                  return currentOverrides[part];
                              }
                          } else {
                              break;
                          }
                      }
                  
                      return type;
                  }
                  
                  function KMW_Messwerte() {
                      const fetch = require('node-fetch');
                      const url = 'https://api.kachelmannwetter.com/v02/current/55.49413097231316/7.87122704335334';
                      const options = {
                          method: 'GET',
                          headers: {
                              'Accept': 'application/json',
                              'X-API-Key': '0815',
                          },
                      };
                  
                      fetch(url, options)
                          .then(response => response.json())
                          .then(data => {
                              createOrUpdateObjectTree('javascript.0.Kachelmann.Messwerte', data);
                          })
                          .catch(err => console.error('Fehler:', err));
                  }
                  
                  function createOrUpdateObjectTree(baseId, obj) {
                      for (const key in obj) {
                          const value = obj[key];
                          const id = `${baseId}.${key}`;
                          const field =`${key}`;
                          let valueType = getType(id, value);
                  
                          //log('Data:' + ' - ' + key + ' - ' + value +  ' - ' + id +  ' - ' + field + ' - ' + valueType);
                  
                          if (valueType === 'object' && value !== null) {
                              //console.log('Descending into sub-object:', value);
                              createOrUpdateObjectTree(id, value);
                          } else {
                              //console.log('Updating or creating state...');
                              let typeDefinition = {name: field, type: valueType, read: true, write: false};
                  
                              // Prüfen, ob der Zustand bereits existiert
                              if (existsState(id)) {
                                  // Zustand existiert bereits, aktualisieren
                                  console.log('State exists, updating...');
                                  setState(id, value, true, typeDefinition);
                              } else {
                                  // Zustand existiert noch nicht, erstellen
                                  console.log('State does not exist, creating...');
                                  createState(id, value, true, typeDefinition);
                              }
                          }
                      }
                  }
                  
                  
                  function createOrUpdateObjectTree_x(baseId, obj) {
                      for (const key in obj) {
                          const value = obj[key];
                          const id = `${baseId}.${key}`;
                          const field =`${key}`;
                          let valueType = getType(id, value);
                  
                          if (valueType === 'object' && value !== null) {
                              createOrUpdateObjectTree(id, value);
                          } else {
                              let typeDefinition = {name: field, type: valueType, read: true, write: false};
                  
                              // Prüfen, ob der Zustand bereits existiert
                              if (existsState(id)) {
                                  // Zustand existiert bereits, aktualisieren
                                  setState(id, value, true, typeDefinition);
                              } else {
                                  // Zustand existiert noch nicht, erstellen
                                  createState(id, value, true, typeDefinition);
                              }
                          }
                      }
                  }
                  
                   // KMW_Messwerte();
                  
                  

                  Log meldungen dazu, damit ich net hin und her klicken muß :)

                  2023-11-28 22:45:01.728  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.728  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.729  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.729  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.729  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.730  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.730  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.730  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.731  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.731  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.731  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.732  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.732  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.732  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.732  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.733  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.733  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.733  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.734  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.734  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.734  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.735  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.735  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.735  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  2023-11-28 22:45:01.736  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                  

                  ein Fehler - weiß nicht was der Fehler für Auswirkungen hat.

                  setState(id, value, true, -typeDefinition-);
                  

                  an der stelle steht ein optionaler callback.

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

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  Sven SchumacherS 1 Antwort Letzte Antwort
                  1
                  • T ticaki

                    @sven-schumacher sagte in Script okay? Hier zur Überprüfung:

                    Und hier noch das zweite Scipt zu dem Thema.
                    Hier werden die aktuelle Messwerte alle 15 Minuten abgefragt.

                    schedule("*/15 * * * *", function () {
                        KMW_Messwerte();
                        console.log ("DONE");
                    });
                    
                    const typeOverrides = {
                        lat: 'string',
                        lon: 'string',
                        dateTime: 'string',
                        run: 'string',
                        weatherSymbol: {value: 'string'}
                    };
                    
                    function getType(key, value) {
                        let type = typeof value;
                    
                        // Special type handling
                        let path = key.split('.');
                        let currentOverrides = typeOverrides;
                        for (let part of path) {
                            if (currentOverrides[part]) {
                                if (typeof currentOverrides[part] === 'object') {
                                    currentOverrides = currentOverrides[part];
                                } else {
                                    return currentOverrides[part];
                                }
                            } else {
                                break;
                            }
                        }
                    
                        return type;
                    }
                    
                    function KMW_Messwerte() {
                        const fetch = require('node-fetch');
                        const url = 'https://api.kachelmannwetter.com/v02/current/55.49413097231316/7.87122704335334';
                        const options = {
                            method: 'GET',
                            headers: {
                                'Accept': 'application/json',
                                'X-API-Key': '0815',
                            },
                        };
                    
                        fetch(url, options)
                            .then(response => response.json())
                            .then(data => {
                                createOrUpdateObjectTree('javascript.0.Kachelmann.Messwerte', data);
                            })
                            .catch(err => console.error('Fehler:', err));
                    }
                    
                    function createOrUpdateObjectTree(baseId, obj) {
                        for (const key in obj) {
                            const value = obj[key];
                            const id = `${baseId}.${key}`;
                            const field =`${key}`;
                            let valueType = getType(id, value);
                    
                            //log('Data:' + ' - ' + key + ' - ' + value +  ' - ' + id +  ' - ' + field + ' - ' + valueType);
                    
                            if (valueType === 'object' && value !== null) {
                                //console.log('Descending into sub-object:', value);
                                createOrUpdateObjectTree(id, value);
                            } else {
                                //console.log('Updating or creating state...');
                                let typeDefinition = {name: field, type: valueType, read: true, write: false};
                    
                                // Prüfen, ob der Zustand bereits existiert
                                if (existsState(id)) {
                                    // Zustand existiert bereits, aktualisieren
                                    console.log('State exists, updating...');
                                    setState(id, value, true, typeDefinition);
                                } else {
                                    // Zustand existiert noch nicht, erstellen
                                    console.log('State does not exist, creating...');
                                    createState(id, value, true, typeDefinition);
                                }
                            }
                        }
                    }
                    
                    
                    function createOrUpdateObjectTree_x(baseId, obj) {
                        for (const key in obj) {
                            const value = obj[key];
                            const id = `${baseId}.${key}`;
                            const field =`${key}`;
                            let valueType = getType(id, value);
                    
                            if (valueType === 'object' && value !== null) {
                                createOrUpdateObjectTree(id, value);
                            } else {
                                let typeDefinition = {name: field, type: valueType, read: true, write: false};
                    
                                // Prüfen, ob der Zustand bereits existiert
                                if (existsState(id)) {
                                    // Zustand existiert bereits, aktualisieren
                                    setState(id, value, true, typeDefinition);
                                } else {
                                    // Zustand existiert noch nicht, erstellen
                                    createState(id, value, true, typeDefinition);
                                }
                            }
                        }
                    }
                    
                     // KMW_Messwerte();
                    
                    

                    Log meldungen dazu, damit ich net hin und her klicken muß :)

                    2023-11-28 22:45:01.728  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.728  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.729  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.729  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.729  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.730  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.730  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.730  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.731  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.731  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.731  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.732  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.732  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.732  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.732  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.733  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.733  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.733  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.734  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.734  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.734  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.735  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.735  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.735  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    2023-11-28 22:45:01.736  - info: javascript.0 (860) script.js.common.Kachelmann-Messwerte: State exists, updating...
                    

                    ein Fehler - weiß nicht was der Fehler für Auswirkungen hat.

                    setState(id, value, true, -typeDefinition-);
                    

                    an der stelle steht ein optionaler callback.

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

                    Sven SchumacherS Offline
                    Sven SchumacherS Offline
                    Sven Schumacher
                    schrieb am zuletzt editiert von
                    #9

                    @ticaki was daran ist ein Fehler? Hier wir ein existierender state geupdated. Es sind halt 384 states, die auf einmal geschickt werden. Ich kann höchstens schauen, ob ich den Debuglevel runter drehen kann.

                    T 1 Antwort Letzte Antwort
                    0
                    • Sven SchumacherS Sven Schumacher

                      @ticaki was daran ist ein Fehler? Hier wir ein existierender state geupdated. Es sind halt 384 states, die auf einmal geschickt werden. Ich kann höchstens schauen, ob ich den Debuglevel runter drehen kann.

                      T Nicht stören
                      T Nicht stören
                      ticaki
                      schrieb am zuletzt editiert von
                      #10

                      @sven-schumacher sagte in Script okay? Hier zur Überprüfung:

                      @ticaki was daran ist ein Fehler? Hier wir ein existierender state geupdated. Es sind halt 384 states, die auf einmal geschickt werden. Ich kann höchstens schauen, ob ich den Debuglevel runter drehen kann.

                      War schlecht ausgedrückt:

                      setState(id, state, ack, callback);
                      

                      Da wo in der Funktion eine Callback-Funktion übergeben werden soll, steht bei dir ein JSON.

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      1 Antwort Letzte Antwort
                      0

                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                      Registrieren Anmelden
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      474

                      Online

                      32.8k

                      Benutzer

                      82.9k

                      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