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. Hilfe für Schleife

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    893

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Hilfe für Schleife

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
22 Beiträge 8 Kommentatoren 3.6k Aufrufe 5 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.
  • P Offline
    P Offline
    pix
    schrieb am zuletzt editiert von
    #21

    Habs geändert:

    /* Wunderground Regen
    
    Abfrage des Weatherunderground Adapters im Bereich Vorhersage,
    wann der nächste Regen erwartet wird.
    
    Findet in den forecastHourly-Datenpunkt den ersten Regen-Eintrag
    Ausgabe in Text ("kein Regen", "X Stunden (X% [Wahrscheinlichkeit])")
    
    
    
    http://forum.iobroker.net/viewtopic.php?f=21&t=3447#p31858
    
    01.08.2016 erstellt von Pix unter Nutzung des obigen Skriptes
    28.06.2017 Korrekturen
    12.07.2017 Fehler abfangen und Typ Variable auf String geändert
    06.03.2019 Code optimiert
               berücksichtigt Niederschlag in der aktuellen Stunde (Stunde 0)
    11.06.2019 auf neue Datenpunkte angepasst für weatherground-Adapter (getestet V3.0.11)
    04.08.2019 geändert für Wunderground Adapter 3.1.1
    */
    
    const vorstd = 36; // Vorschau in Stunden (weatherundergroudn bietet neuerdings bis 36h Vorschau), kann hier auch kleiner sein
    const idRegen = "javascript."+ instance + ".Wunderground.Regenvorschau"; // Ziel-Datenpunkt
    const wunder_inst = "weatherunderground.0."; // Weatherground-Adapter Instanz
    const logging = false;
    const fC = false; // nicht dauerhaft auf true stehen lassen. Wegen AAsynchronität dann keine Werte.
    
    createState(idRegen, "kein Regen", fC, {
       name: "Regenvorschau",
       dec: "Wann gibt es den nächsten Regen",
       type: "string",
       role: "text"
    });
    
    function berechneZeit() {
        if (logging) log("Berechne Dauer in Stunden bis zum nächsten Regen");
        let i = 0;
        let data; // leer
        let pop; // leer
        for (i=0 ; i<vorstd; i++) {
            if (getState(wunder_inst + "forecastHourly." + i + "h.precipitation").val > 0) {
                data = getState(wunder_inst + "forecastHourly." + i + "h.precipitation").val;
                pop = getState(wunder_inst + "forecastHourly." + i + "h.precipitationChance").val;
                if (logging) log("Regeneintrag gefunden bei " + i + "h " + data + "mm");
    
                if (i == 0) { // wenn jetzt Regen
                    if (logging) log("In dieser Stunde werden " + data + "mm Regen erwartet (Wahrscheinlichkeit " + pop + "%)");
                    setState(idRegen, "jetzt (" + pop + "%)");
                } else {
                    if (logging) log("In " + i + " Stunden werden " + data + "mm Regen erwartet (Wahrscheinlichkeit " + pop + "%)");
                    setState(idRegen, i + " Stunden (" + pop + "%)");
                }
    
                i=vorstd; // beim ersten Auftreten der Regenwahrscheinlichkeit über 0 abbrechen
            } 
            if ((i == vorstd) && (pop === 0)) {
                setState(idRegen, "Kein Regen erwartet (" + pop + "%)");
                if (logging) log("Kein Regen erwartet (" + pop + "%)");
            }
        }
        
    }
    
    // bei jeglicher Aktualisierung von Weatherunderground Berechnung starten
    on({
        id: /^weatherunderground\.[0-9]+\.forecast.*\.[0-9]+h\.precipitation$/,  // forecastHourly, forecastDaily, forecast
        change: "any"
    }, berechneZeit);
    
    // bei Skriptstart
    
    berechneZeit();
    

    Gruß
    Pix

    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

    NegaleinN 1 Antwort Letzte Antwort
    2
    • P pix

      Habs geändert:

      /* Wunderground Regen
      
      Abfrage des Weatherunderground Adapters im Bereich Vorhersage,
      wann der nächste Regen erwartet wird.
      
      Findet in den forecastHourly-Datenpunkt den ersten Regen-Eintrag
      Ausgabe in Text ("kein Regen", "X Stunden (X% [Wahrscheinlichkeit])")
      
      
      
      http://forum.iobroker.net/viewtopic.php?f=21&t=3447#p31858
      
      01.08.2016 erstellt von Pix unter Nutzung des obigen Skriptes
      28.06.2017 Korrekturen
      12.07.2017 Fehler abfangen und Typ Variable auf String geändert
      06.03.2019 Code optimiert
                 berücksichtigt Niederschlag in der aktuellen Stunde (Stunde 0)
      11.06.2019 auf neue Datenpunkte angepasst für weatherground-Adapter (getestet V3.0.11)
      04.08.2019 geändert für Wunderground Adapter 3.1.1
      */
      
      const vorstd = 36; // Vorschau in Stunden (weatherundergroudn bietet neuerdings bis 36h Vorschau), kann hier auch kleiner sein
      const idRegen = "javascript."+ instance + ".Wunderground.Regenvorschau"; // Ziel-Datenpunkt
      const wunder_inst = "weatherunderground.0."; // Weatherground-Adapter Instanz
      const logging = false;
      const fC = false; // nicht dauerhaft auf true stehen lassen. Wegen AAsynchronität dann keine Werte.
      
      createState(idRegen, "kein Regen", fC, {
         name: "Regenvorschau",
         dec: "Wann gibt es den nächsten Regen",
         type: "string",
         role: "text"
      });
      
      function berechneZeit() {
          if (logging) log("Berechne Dauer in Stunden bis zum nächsten Regen");
          let i = 0;
          let data; // leer
          let pop; // leer
          for (i=0 ; i<vorstd; i++) {
              if (getState(wunder_inst + "forecastHourly." + i + "h.precipitation").val > 0) {
                  data = getState(wunder_inst + "forecastHourly." + i + "h.precipitation").val;
                  pop = getState(wunder_inst + "forecastHourly." + i + "h.precipitationChance").val;
                  if (logging) log("Regeneintrag gefunden bei " + i + "h " + data + "mm");
      
                  if (i == 0) { // wenn jetzt Regen
                      if (logging) log("In dieser Stunde werden " + data + "mm Regen erwartet (Wahrscheinlichkeit " + pop + "%)");
                      setState(idRegen, "jetzt (" + pop + "%)");
                  } else {
                      if (logging) log("In " + i + " Stunden werden " + data + "mm Regen erwartet (Wahrscheinlichkeit " + pop + "%)");
                      setState(idRegen, i + " Stunden (" + pop + "%)");
                  }
      
                  i=vorstd; // beim ersten Auftreten der Regenwahrscheinlichkeit über 0 abbrechen
              } 
              if ((i == vorstd) && (pop === 0)) {
                  setState(idRegen, "Kein Regen erwartet (" + pop + "%)");
                  if (logging) log("Kein Regen erwartet (" + pop + "%)");
              }
          }
          
      }
      
      // bei jeglicher Aktualisierung von Weatherunderground Berechnung starten
      on({
          id: /^weatherunderground\.[0-9]+\.forecast.*\.[0-9]+h\.precipitation$/,  // forecastHourly, forecastDaily, forecast
          change: "any"
      }, berechneZeit);
      
      // bei Skriptstart
      
      berechneZeit();
      

      Gruß
      Pix

      NegaleinN Offline
      NegaleinN Offline
      Negalein
      Global Moderator
      schrieb am zuletzt editiert von
      #22

      @pix sagte in Hilfe für Schleife:

      Habs geändert:
      neuer Code für Wunderground 3.1.1

      Hallo Pix!

      Mir ist gerade aufgefallen, dass das Script seit 4.8. 21:50 Uhr nicht mehr aktuakisiert.

      Beim DP javascript.0.Wunderground.Regenvorschausteht noch immer der Wert vom 4.8.
      objects - ioBroker (8).png

      Unter weathunderground.0wird jedoch der aktuelle Wert angezeigt.
      objects - ioBroker (7).png

      /* Wunderground Regen
      {1}
      Abfrage des Weatherunderground Adapters im Bereich Vorhersage,
      wann der nächste Regen erwartet wird.
      {1}
      Findet in den forecastHourly-Datenpunkt den ersten Regen-Eintrag
      Ausgabe in Text ("kein Regen", "X Stunden (X% [Wahrscheinlichkeit])")
      {1}
      {1}
      {1}
      http://forum.iobroker.net/viewtopic.php?f=21&t=3447#p31858
      {1}
      01.08.2016 erstellt von Pix unter Nutzung des obigen Skriptes
      28.06.2017 Korrekturen
      12.07.2017 Fehler abfangen und Typ Variable auf String geändert
      06.03.2019 Code optimiert
                 berücksichtigt Niederschlag in der aktuellen Stunde (Stunde 0)
      11.06.2019 auf neue Datenpunkte angepasst für weatherground-Adapter (getestet V3.0.11)
      04.08.2019 geändert für Wunderground Adapter 3.1.1
      */
       
      const vorstd = 36; // Vorschau in Stunden (weatherundergroudn bietet neuerdings bis 36h Vorschau), kann hier auch kleiner sein
      const idRegen = "javascript."+ instance + ".Wunderground.Regenvorschau"; // Ziel-Datenpunkt
      const wunder_inst = "weatherunderground.0."; // Weatherground-Adapter Instanz
      const logging = false;
      const fC = false; // nicht dauerhaft auf true stehen lassen. Wegen AAsynchronität dann keine Werte.
       
      createState(idRegen, "kein Regen", fC, {
         name: "Regenvorschau",
         dec: "Wann gibt es den nächsten Regen",
         type: "string",
         role: "text"
      });
       
      function berechneZeit() {
          if (logging) log("Berechne Dauer in Stunden bis zum nächsten Regen");
          let i = 0;
          let data; // leer
          let pop; // leer
          for (i=0 ; i<vorstd; i++) {
              if (getState(wunder_inst + "forecastHourly." + i + "h.precipitation").val > 0) {
                  data = getState(wunder_inst + "forecastHourly." + i + "h.precipitation").val;
                  pop = getState(wunder_inst + "forecastHourly." + i + "h.precipitationChance").val;
                  if (logging) log("Regeneintrag gefunden bei " + i + "h " + data + "mm");
       
                  if (i == 0) { // wenn jetzt Regen
                      if (logging) log("In dieser Stunde werden " + data + "mm Regen erwartet (Wahrscheinlichkeit " + pop + "%)");
                      setState(idRegen, "jetzt (" + pop + "%)");
                  } else {
                      if (logging) log("In " + i + " Stunden werden " + data + "mm Regen erwartet (Wahrscheinlichkeit " + pop + "%)");
                      setState(idRegen, i + " Stunden (" + pop + "%)");
                  }
       
                  i=vorstd; // beim ersten Auftreten der Regenwahrscheinlichkeit über 0 abbrechen
              } 
              if ((i == vorstd) && (pop === 0)) {
                  setState(idRegen, "Kein Regen erwartet (" + pop + "%)");
                  if (logging) log("Kein Regen erwartet (" + pop + "%)");
              }
          }
          
      }
       
      // bei jeglicher Aktualisierung von Weatherunderground Berechnung starten
      on({
          id: /^weatherunderground\.[0-9]+\.forecast.*\.[0-9]+h\.precipitation$/,  // forecastHourly, forecastDaily, forecast
          change: "any"
      }, berechneZeit);
       
      // bei Skriptstart
       
      berechneZeit();
      

      Weatherunderground läuft in 3.2.1

      Hast du eine Idee?

      ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
      ° Node.js Fixer ---> iob nodejs-update
      ° Fixer ---> iob fix

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


      Support us

      ioBroker
      Community Adapters
      Donate

      752

      Online

      32.6k

      Benutzer

      82.1k

      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