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. Tester
  4. Betatest Bright Sky v0.6.x

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Betatest Bright Sky v0.6.x

Geplant Angeheftet Gesperrt Verschoben Tester
203 Beiträge 20 Kommentatoren 14.9k Aufrufe 32 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 ticaki

    @Homoran
    sry keine Ahnung :)

    @daniel-syberg
    Ich weiß nicht ob man das aus den vorhanden Daten berechnen kann, es gibt jedoch dieses Wert nicht in den API-Daten.

    ArmilarA Offline
    ArmilarA Offline
    Armilar
    Most Active Forum Testing
    schrieb am zuletzt editiert von
    #135

    @ticaki

    Veruche es mal damit... Hab das intern schon Jahre laufen... Nur die Datenpunkte abgeändert:

    let vWindchill = 0;
    let vHeatindex = 0;
    
    const Debug = false;
    
    //Windchill (gefühlte Temperatur) Berechnung (US/Kanada, UK)
    //Die gefühlte Temperatur oder Windchill bezieht neben der Lufttemperatur auch die Windgeschwindigkeit mit ein. 
    //Der Windchill ist für Temperaturen unterhalb von ca. 10 °C und Windgeschwindigkeiten zwischen 4.8 und 177 km/h definiert. 
    //Bei Temperaturen über 27°C wird der Hitzeindex, Humidex oder Summer-Simmer-Index verwendet.
    
    //Stufe	Windchill	    Gefahr
    //1	    0 bis -9	    Keine oder nur geringe Gefahr.
    //2	    -10 bis -27	    Geringe Gefahr. Unwohlsein. Risiko von Unterkühlung bei langen Außenaktivitäten ohne Schutz.
    //3	    -28 bis -39	    Risiko von Erfrierungen innerhalb von 10 bis 30 Minuten. Risiko von Erfrierungen und Unterkühlung ohne schützende Kleidung.
    //4	    -40 bis -47	    Hohe Gefahr! Haut kann innerhalb von 5 bis 10 Minuten erfrieren.
    //5	    -48 bis -54	    Sehr hohe Gefahr! Haut kann innerhalb von 2 bis 5 Minuten erfrieren.
    //6	         ab -55	    Extrem hohe Gefahr! Haut kann innerhalb von 2 Minuten erfrieren.
    
    function windchill() {
        let temperature = getState('brightsky.0.current.temperature').val;
        let windspeed = getState('brightsky.0.current.wind_speed_10').val;
        if (temperature < 10 && windspeed > 4.8 && windspeed < 177) {
            vWindchill = 13.12 + 0.6215 * temperature - 11.37 * Math.pow(windspeed, 0.16) + 0.3965 * temperature * Math.pow(windspeed, 0.16);
            setState("0_userdata.0.wetter.Windchill", Math.round (vWindchill * 10) / 10);
            if (Debug) log("Windchill: " + vWindchill.toFixed(1), 'info');
        } else {
            setState("0_userdata.0.wetter.Windchill", Math.round (temperature * 10) / 10);
            if (Debug) log("Windchill: Keine Berechnung, da Parameter nicht passen", 'info');
        }
    }
    
    //Der Hitzeindex ist die gefühlte Temperatur in Abhängigkeit von der Lufttemperatur und der relativen Luftfeuchtigkeit. 
    //Der Hitzeindex ist bei Temperaturen ab 26.7°C und einer relativen Luftfeuchtigkeit von mindestens 40% anwendbar.
    
    //Stufe	Hitzeindex	Gefahr
    //1	    27-32°C	    Vorsicht – Bei längeren Zeiträumen und körperlicher Aktivität kann es zu Erschöpfungserscheinungen kommen.
    //2	    33-41°C	    Erhöhte Vorsicht – Es besteht die Möglichkeit von Hitzeschäden wie Sonnenstich, Hitzekrampf und Hitzekollaps.
    //3	    42-54°C	    Gefahr – Sonnenstich, Hitzekrampf und Hitzekollaps sind wahrscheinlich; Hitzschlag ist möglich.“
    //4	    ab 55°C	    Erhöhte Gefahr – Hitzschlag und Sonnenstich sind wahrscheinlich.
    
    function heatindex() {
        let temperature = getState('brightsky.0.current.temperature').val;
        let humidity = getState('brightsky.0.current.relative_humidity').val;
    
        // Relative Luftfeuchtigkeit limitieren
        if (humidity < 0) { humidity = 0; }
        if (humidity > 100) { humidity = 100; }
    
        // Hitzeindex
        if (temperature > 26.7 && humidity > 40) {
            vHeatindex = -8.784695 + 1.61139411 * temperature + 2.338549 * humidity - 0.14611605 * temperature * humidity - 0.012308094 * (temperature * temperature) - 0.016424828 * (humidity * humidity) + 0.002211732* (temperature * temperature) * humidity + 0.00072546 * temperature * (humidity * humidity) - 0.000003582 * (temperature * temperature) * (humidity * humidity);
            setState("0_userdata.0.wetter.Windchill", Math.round (vHeatindex * 10) / 10);
            if (Debug) log("HeatIndex: " + vHeatindex.toFixed(1), 'info');
        } else {
            if (Debug) log("HeatIndex: Keine Berechnung, da Parameter nicht passen", 'info');
        }
    }
    
    on({ id: [].concat(['brightsky.0.current.temperature',
                        'brightsky.0.current.relative_humidity',
                        'brightsky.0.current.wind_speed_10']), change: 'ne' }, async (obj) => {
        windchill();
        heatindex();
    });
    

    Kannst du mit ein paar kleineren Änderunge direkt in den Adapter schreddern...

    Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
    https://github.com/joBr99/nspanel-lovelace-ui/wiki

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

    T 1 Antwort Letzte Antwort
    0
    • ArmilarA Armilar

      @ticaki

      Veruche es mal damit... Hab das intern schon Jahre laufen... Nur die Datenpunkte abgeändert:

      let vWindchill = 0;
      let vHeatindex = 0;
      
      const Debug = false;
      
      //Windchill (gefühlte Temperatur) Berechnung (US/Kanada, UK)
      //Die gefühlte Temperatur oder Windchill bezieht neben der Lufttemperatur auch die Windgeschwindigkeit mit ein. 
      //Der Windchill ist für Temperaturen unterhalb von ca. 10 °C und Windgeschwindigkeiten zwischen 4.8 und 177 km/h definiert. 
      //Bei Temperaturen über 27°C wird der Hitzeindex, Humidex oder Summer-Simmer-Index verwendet.
      
      //Stufe	Windchill	    Gefahr
      //1	    0 bis -9	    Keine oder nur geringe Gefahr.
      //2	    -10 bis -27	    Geringe Gefahr. Unwohlsein. Risiko von Unterkühlung bei langen Außenaktivitäten ohne Schutz.
      //3	    -28 bis -39	    Risiko von Erfrierungen innerhalb von 10 bis 30 Minuten. Risiko von Erfrierungen und Unterkühlung ohne schützende Kleidung.
      //4	    -40 bis -47	    Hohe Gefahr! Haut kann innerhalb von 5 bis 10 Minuten erfrieren.
      //5	    -48 bis -54	    Sehr hohe Gefahr! Haut kann innerhalb von 2 bis 5 Minuten erfrieren.
      //6	         ab -55	    Extrem hohe Gefahr! Haut kann innerhalb von 2 Minuten erfrieren.
      
      function windchill() {
          let temperature = getState('brightsky.0.current.temperature').val;
          let windspeed = getState('brightsky.0.current.wind_speed_10').val;
          if (temperature < 10 && windspeed > 4.8 && windspeed < 177) {
              vWindchill = 13.12 + 0.6215 * temperature - 11.37 * Math.pow(windspeed, 0.16) + 0.3965 * temperature * Math.pow(windspeed, 0.16);
              setState("0_userdata.0.wetter.Windchill", Math.round (vWindchill * 10) / 10);
              if (Debug) log("Windchill: " + vWindchill.toFixed(1), 'info');
          } else {
              setState("0_userdata.0.wetter.Windchill", Math.round (temperature * 10) / 10);
              if (Debug) log("Windchill: Keine Berechnung, da Parameter nicht passen", 'info');
          }
      }
      
      //Der Hitzeindex ist die gefühlte Temperatur in Abhängigkeit von der Lufttemperatur und der relativen Luftfeuchtigkeit. 
      //Der Hitzeindex ist bei Temperaturen ab 26.7°C und einer relativen Luftfeuchtigkeit von mindestens 40% anwendbar.
      
      //Stufe	Hitzeindex	Gefahr
      //1	    27-32°C	    Vorsicht – Bei längeren Zeiträumen und körperlicher Aktivität kann es zu Erschöpfungserscheinungen kommen.
      //2	    33-41°C	    Erhöhte Vorsicht – Es besteht die Möglichkeit von Hitzeschäden wie Sonnenstich, Hitzekrampf und Hitzekollaps.
      //3	    42-54°C	    Gefahr – Sonnenstich, Hitzekrampf und Hitzekollaps sind wahrscheinlich; Hitzschlag ist möglich.“
      //4	    ab 55°C	    Erhöhte Gefahr – Hitzschlag und Sonnenstich sind wahrscheinlich.
      
      function heatindex() {
          let temperature = getState('brightsky.0.current.temperature').val;
          let humidity = getState('brightsky.0.current.relative_humidity').val;
      
          // Relative Luftfeuchtigkeit limitieren
          if (humidity < 0) { humidity = 0; }
          if (humidity > 100) { humidity = 100; }
      
          // Hitzeindex
          if (temperature > 26.7 && humidity > 40) {
              vHeatindex = -8.784695 + 1.61139411 * temperature + 2.338549 * humidity - 0.14611605 * temperature * humidity - 0.012308094 * (temperature * temperature) - 0.016424828 * (humidity * humidity) + 0.002211732* (temperature * temperature) * humidity + 0.00072546 * temperature * (humidity * humidity) - 0.000003582 * (temperature * temperature) * (humidity * humidity);
              setState("0_userdata.0.wetter.Windchill", Math.round (vHeatindex * 10) / 10);
              if (Debug) log("HeatIndex: " + vHeatindex.toFixed(1), 'info');
          } else {
              if (Debug) log("HeatIndex: Keine Berechnung, da Parameter nicht passen", 'info');
          }
      }
      
      on({ id: [].concat(['brightsky.0.current.temperature',
                          'brightsky.0.current.relative_humidity',
                          'brightsky.0.current.wind_speed_10']), change: 'ne' }, async (obj) => {
          windchill();
          heatindex();
      });
      

      Kannst du mit ein paar kleineren Änderunge direkt in den Adapter schreddern...

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

      @armilar sagte in Betatest Bright Sky v0.3.x:

      Kannst du mit ein paar kleineren Änderunge direkt in den Adapter schreddern...

      @daniel-syberg

      https://github.com/ticaki/ioBroker.brightsky/pull/64

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      1 Antwort Letzte Antwort
      1
      • T Nicht stören
        T Nicht stören
        ticaki
        schrieb am zuletzt editiert von
        #137

        0.6.6 (2025-10-11)

        • (ticaki) Added apparent temperature datapoints for current, hourly, and daily weather data

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        1 Antwort Letzte Antwort
        1
        • Daniel SybergD Offline
          Daniel SybergD Offline
          Daniel Syberg
          schrieb am zuletzt editiert von
          #138

          WOW! Das ging ja schnell!
          Vielen lieben Dank, das wird direkt getestet.

          T 1 Antwort Letzte Antwort
          0
          • Daniel SybergD Daniel Syberg

            WOW! Das ging ja schnell!
            Vielen lieben Dank, das wird direkt getestet.

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

            @daniel-syberg
            Ich hab die berechnung von Armilar genommen - wir haben da noch eine Formel aber das muß dann erstmal bissle getestet werden nicht dass dabei müll berechnet wird :)

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            HomoranH 1 Antwort Letzte Antwort
            0
            • T ticaki

              @daniel-syberg
              Ich hab die berechnung von Armilar genommen - wir haben da noch eine Formel aber das muß dann erstmal bissle getestet werden nicht dass dabei müll berechnet wird :)

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

              @ticaki

              Naja, die gefühlte Temperatur und der Windchill sind ja eigentlich stark subjektiv.
              Ob das wirklich rein mathematisch abgebildet werden kann ist für ich nicht ganz klar.

              Hab mal kurz die Kommentare im Skript gelesen

              @armilar sagte in Betatest Bright Sky v0.3.x:

              Die gefühlte Temperatur oder Windchill bezieht neben der Lufttemperatur auch die Windgeschwindigkeit mit ein.

              @armilar sagte in Betatest Bright Sky v0.3.x:

              Der Hitzeindex ist die gefühlte Temperatur in Abhängigkeit von der Lufttemperatur und der relativen Luftfeuchtigkeit.

              Das Wärmeempfinden, ins beso dere bei hohen Temperaturen ist natürlich von der relativen Luftfeuchtigkeit abhängig, da der Körper mit zunehmender Umgebungsfeuchte den Schweiss, den er zu Kühlung produziert nicht mehr ausreichend verdunsten kann.
              (deswegen reicht im Sommer oft ein Entfeuchter, kühler muss es gar nicht sein)

              Aber auch beim Windchill spielt IMHO die relative Luftfeuchtigkeit eine Rolle.
              Ist die zu hoch, bleibt ja der Schweiß (auch wenn noch unsichtbar) auf der Haut, und dann reicht schon ein geringerer Luftzug um es als unangenehm kalt zu empfinden.

              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 1 Antwort Letzte Antwort
              1
              • HomoranH Homoran

                @ticaki

                Naja, die gefühlte Temperatur und der Windchill sind ja eigentlich stark subjektiv.
                Ob das wirklich rein mathematisch abgebildet werden kann ist für ich nicht ganz klar.

                Hab mal kurz die Kommentare im Skript gelesen

                @armilar sagte in Betatest Bright Sky v0.3.x:

                Die gefühlte Temperatur oder Windchill bezieht neben der Lufttemperatur auch die Windgeschwindigkeit mit ein.

                @armilar sagte in Betatest Bright Sky v0.3.x:

                Der Hitzeindex ist die gefühlte Temperatur in Abhängigkeit von der Lufttemperatur und der relativen Luftfeuchtigkeit.

                Das Wärmeempfinden, ins beso dere bei hohen Temperaturen ist natürlich von der relativen Luftfeuchtigkeit abhängig, da der Körper mit zunehmender Umgebungsfeuchte den Schweiss, den er zu Kühlung produziert nicht mehr ausreichend verdunsten kann.
                (deswegen reicht im Sommer oft ein Entfeuchter, kühler muss es gar nicht sein)

                Aber auch beim Windchill spielt IMHO die relative Luftfeuchtigkeit eine Rolle.
                Ist die zu hoch, bleibt ja der Schweiß (auch wenn noch unsichtbar) auf der Haut, und dann reicht schon ein geringerer Luftzug um es als unangenehm kalt zu empfinden.

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

                @homoran

                Die aktuell zur Diskussion stehende Berechnung sieht so aus - ist aber noch nirgendwo drin - chatGPT baut auch genug mist :)

                Die von Armilar ist lange getestet.

                /**
                 * Convert kWh/m² per day to average W/m² (instantaneous mean over 24h).
                 * If your kWh/m² is for a different period, adjust `hours`.
                 *
                 * @param kwhPerM2 kWh per m² (e.g. daily total)
                 * @param hours number of hours for the period (default 24)
                 * @returns average W/m²
                 */
                function kwhm2_per_day_to_Wm2(kwhPerM2, hours = 24) {
                  return (kwhPerM2 * 1000) / hours;
                }
                
                /**
                 * Calculate saturation vapor pressure (Magnus formula) and vapor pressure e (hPa).
                 *
                 * @param T temperature in °C
                 * @param RH relative humidity in % (0-100)
                 * @returns vapor pressure e in hPa
                 */
                function vaporPressure_hPa(T, RH) {
                  const es = 6.105 * Math.exp((17.27 * T) / (237.7 + T));
                  return (RH / 100) * es;
                }
                
                /**
                 * Apparent Temperature (Steadman).
                 * Inputs: temperature °C, RH %, wind in km/h.
                 *
                 * @param T temperature in °C
                 * @param RH relative humidity in %
                 * @param wind_kmh wind speed in km/h (10-min avg ok)
                 * @returns apparent temperature in °C
                 */
                function apparentTemperature(T, RH, wind_kmh) {
                  const v_ms = wind_kmh / 3.6;
                  const e = vaporPressure_hPa(T, RH); // hPa
                  return T + 0.33 * e - 0.70 * v_ms - 4.0;
                }
                
                /**
                 * Wind Chill Temperature (WS/meteorological standard).
                 * Validity: T <= 10°C and wind > ~4.8 km/h.
                 *
                 * @param T temperature in °C
                 * @param wind_kmh wind speed in km/h
                 * @returns wind chill in °C or NaN if outside typical validity
                 */
                function windChill(T, wind_kmh) {
                  if (T > 10 || wind_kmh < 4.8) return NaN;
                  const v16 = Math.pow(wind_kmh, 0.16);
                  return 13.12 + 0.6215 * T - 11.37 * v16 + 0.3965 * T * v16;
                }
                
                /**
                 * Heat Index (NOAA / Rothfusz), expects T in °C and RH in %.
                 * Typical validity: T >= 27°C and RH reasonably high.
                 *
                 * @param T temperature in °C
                 * @param RH relative humidity in %
                 * @returns heat index in °C
                 */
                function heatIndex(T, RH) {
                  const T_f = (T * 9) / 5 + 32;
                  const R = RH;
                  let HI_f =
                    -42.379 +
                    2.04901523 * T_f +
                    10.14333127 * R -
                    0.22475541 * T_f * R -
                    6.83783e-3 * T_f * T_f -
                    5.481717e-2 * R * R +
                    1.22874e-3 * T_f * T_f * R +
                    8.5282e-4 * T_f * R * R -
                    1.99e-6 * T_f * T_f * R * R;
                
                  if (R < 13 && T_f >= 80 && T_f <= 112) {
                    HI_f -= ((13 - R) / 4) * Math.sqrt((17 - Math.abs(T_f - 95)) / 17);
                  } else if (R > 85 && T_f >= 80 && T_f <= 87) {
                    HI_f += ((R - 85) / 10) * ((87 - T_f) / 5);
                  }
                
                  return ((HI_f - 32) * 5) / 9;
                }
                
                /**
                 * Pragmatic "feels-like" chooser:
                 * - if T <= 10°C -> use Wind Chill (if valid)
                 * - else if T >= 27°C -> use Heat Index
                 * - else -> use Apparent Temperature (Steadman)
                 *
                 * Solar input (kWh/m² per day) is converted to average W/m² and returned,
                 * but NOT applied automatically to the index (proper inclusion needs MRT/UTCI).
                 *
                 * @param T temperature in °C
                 * @param RH relative humidity in %
                 * @param wind_kmh wind speed in km/h (10-min)
                 * @param solar_kwh_m2_per_day optional solar in kWh/m² (daily). pass null if none.
                 * @returns object { indexName, value_C, solar_Wm2 (or null) }
                 */
                function feelsLike(T, RH, wind_kmh, solar_kwh_m2_per_day = null) {
                  const solar_Wm2 = solar_kwh_m2_per_day !== null ? kwhm2_per_day_to_Wm2(solar_kwh_m2_per_day, 24) : null;
                
                  if (T <= 10) {
                    const wc = windChill(T, wind_kmh);
                    if (!Number.isNaN(wc)) return { indexName: 'WindChill', value_C: wc, solar_Wm2: solar_Wm2 };
                    // fallback to apparent temperature if wind chill out of range
                  }
                  if (T >= 27) {
                    return { indexName: 'HeatIndex', value_C: heatIndex(T, RH), solar_Wm2: solar_Wm2 };
                  }
                  return { indexName: 'ApparentTemperature', value_C: apparentTemperature(T, RH, wind_kmh), solar_Wm2: solar_Wm2 };
                }
                

                EDIT: Das mit windchill und schweiß stimmt natürlich - fraglich ist halt ob das bei < 10°C ne rolle spielt, weil da kann ich dir schon jetzt sagen - im boxershirt wird dir kalt sein :)
                Da wird auch die reduktion der isolierung der kleidung durch feuchtigkeit - ok das wird dann echt komplex - da brauchste paar sensoren an dir die das dann korrekt berechnen.

                EDIT2: die <10°C nimmt auch chatGPT als hürde für die berechnung von windchill

                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                Spenden

                Matze RM 1 Antwort Letzte Antwort
                1
                • T ticaki

                  @homoran

                  Die aktuell zur Diskussion stehende Berechnung sieht so aus - ist aber noch nirgendwo drin - chatGPT baut auch genug mist :)

                  Die von Armilar ist lange getestet.

                  /**
                   * Convert kWh/m² per day to average W/m² (instantaneous mean over 24h).
                   * If your kWh/m² is for a different period, adjust `hours`.
                   *
                   * @param kwhPerM2 kWh per m² (e.g. daily total)
                   * @param hours number of hours for the period (default 24)
                   * @returns average W/m²
                   */
                  function kwhm2_per_day_to_Wm2(kwhPerM2, hours = 24) {
                    return (kwhPerM2 * 1000) / hours;
                  }
                  
                  /**
                   * Calculate saturation vapor pressure (Magnus formula) and vapor pressure e (hPa).
                   *
                   * @param T temperature in °C
                   * @param RH relative humidity in % (0-100)
                   * @returns vapor pressure e in hPa
                   */
                  function vaporPressure_hPa(T, RH) {
                    const es = 6.105 * Math.exp((17.27 * T) / (237.7 + T));
                    return (RH / 100) * es;
                  }
                  
                  /**
                   * Apparent Temperature (Steadman).
                   * Inputs: temperature °C, RH %, wind in km/h.
                   *
                   * @param T temperature in °C
                   * @param RH relative humidity in %
                   * @param wind_kmh wind speed in km/h (10-min avg ok)
                   * @returns apparent temperature in °C
                   */
                  function apparentTemperature(T, RH, wind_kmh) {
                    const v_ms = wind_kmh / 3.6;
                    const e = vaporPressure_hPa(T, RH); // hPa
                    return T + 0.33 * e - 0.70 * v_ms - 4.0;
                  }
                  
                  /**
                   * Wind Chill Temperature (WS/meteorological standard).
                   * Validity: T <= 10°C and wind > ~4.8 km/h.
                   *
                   * @param T temperature in °C
                   * @param wind_kmh wind speed in km/h
                   * @returns wind chill in °C or NaN if outside typical validity
                   */
                  function windChill(T, wind_kmh) {
                    if (T > 10 || wind_kmh < 4.8) return NaN;
                    const v16 = Math.pow(wind_kmh, 0.16);
                    return 13.12 + 0.6215 * T - 11.37 * v16 + 0.3965 * T * v16;
                  }
                  
                  /**
                   * Heat Index (NOAA / Rothfusz), expects T in °C and RH in %.
                   * Typical validity: T >= 27°C and RH reasonably high.
                   *
                   * @param T temperature in °C
                   * @param RH relative humidity in %
                   * @returns heat index in °C
                   */
                  function heatIndex(T, RH) {
                    const T_f = (T * 9) / 5 + 32;
                    const R = RH;
                    let HI_f =
                      -42.379 +
                      2.04901523 * T_f +
                      10.14333127 * R -
                      0.22475541 * T_f * R -
                      6.83783e-3 * T_f * T_f -
                      5.481717e-2 * R * R +
                      1.22874e-3 * T_f * T_f * R +
                      8.5282e-4 * T_f * R * R -
                      1.99e-6 * T_f * T_f * R * R;
                  
                    if (R < 13 && T_f >= 80 && T_f <= 112) {
                      HI_f -= ((13 - R) / 4) * Math.sqrt((17 - Math.abs(T_f - 95)) / 17);
                    } else if (R > 85 && T_f >= 80 && T_f <= 87) {
                      HI_f += ((R - 85) / 10) * ((87 - T_f) / 5);
                    }
                  
                    return ((HI_f - 32) * 5) / 9;
                  }
                  
                  /**
                   * Pragmatic "feels-like" chooser:
                   * - if T <= 10°C -> use Wind Chill (if valid)
                   * - else if T >= 27°C -> use Heat Index
                   * - else -> use Apparent Temperature (Steadman)
                   *
                   * Solar input (kWh/m² per day) is converted to average W/m² and returned,
                   * but NOT applied automatically to the index (proper inclusion needs MRT/UTCI).
                   *
                   * @param T temperature in °C
                   * @param RH relative humidity in %
                   * @param wind_kmh wind speed in km/h (10-min)
                   * @param solar_kwh_m2_per_day optional solar in kWh/m² (daily). pass null if none.
                   * @returns object { indexName, value_C, solar_Wm2 (or null) }
                   */
                  function feelsLike(T, RH, wind_kmh, solar_kwh_m2_per_day = null) {
                    const solar_Wm2 = solar_kwh_m2_per_day !== null ? kwhm2_per_day_to_Wm2(solar_kwh_m2_per_day, 24) : null;
                  
                    if (T <= 10) {
                      const wc = windChill(T, wind_kmh);
                      if (!Number.isNaN(wc)) return { indexName: 'WindChill', value_C: wc, solar_Wm2: solar_Wm2 };
                      // fallback to apparent temperature if wind chill out of range
                    }
                    if (T >= 27) {
                      return { indexName: 'HeatIndex', value_C: heatIndex(T, RH), solar_Wm2: solar_Wm2 };
                    }
                    return { indexName: 'ApparentTemperature', value_C: apparentTemperature(T, RH, wind_kmh), solar_Wm2: solar_Wm2 };
                  }
                  

                  EDIT: Das mit windchill und schweiß stimmt natürlich - fraglich ist halt ob das bei < 10°C ne rolle spielt, weil da kann ich dir schon jetzt sagen - im boxershirt wird dir kalt sein :)
                  Da wird auch die reduktion der isolierung der kleidung durch feuchtigkeit - ok das wird dann echt komplex - da brauchste paar sensoren an dir die das dann korrekt berechnen.

                  EDIT2: die <10°C nimmt auch chatGPT als hürde für die berechnung von windchill

                  Matze RM Offline
                  Matze RM Offline
                  Matze R
                  schrieb am zuletzt editiert von
                  #142

                  Hallo,

                  ich habe heute den Bright Sky Adapter installiert. Als ich mir die Wetterinformationen für die Vis einrichten wollte, bin ich auf ein paar Probleme gestoßen, die ich auch hier durch diese Seite nicht lösen konnte.
                  Das erste Problem war das Einbinden der Icons. Dieser Datenpunkt auf dem Bild fehlt bei mir in den bright sky Ordner.bright_sky_datenpunkt1.png
                  Das nächste Problem ist das die Datenpunkte "dayName_long " und "dayName_short" bei mir auch im Ordner Bright Sky fehlen.
                  bright_sky_datenpunkte2.png
                  Also Zusammengefasst, mir fehlen die Datenpunkte dayName_long , dayName_short und iconUrl.

                  Warum werden die Datenpunkte nicht angezeigt ich habe den bright sky 0.3.5 . ich bin für jede Hilfe dankbar

                  FG
                  Maro

                  ArmilarA 1 Antwort Letzte Antwort
                  0
                  • Matze RM Matze R

                    Hallo,

                    ich habe heute den Bright Sky Adapter installiert. Als ich mir die Wetterinformationen für die Vis einrichten wollte, bin ich auf ein paar Probleme gestoßen, die ich auch hier durch diese Seite nicht lösen konnte.
                    Das erste Problem war das Einbinden der Icons. Dieser Datenpunkt auf dem Bild fehlt bei mir in den bright sky Ordner.bright_sky_datenpunkt1.png
                    Das nächste Problem ist das die Datenpunkte "dayName_long " und "dayName_short" bei mir auch im Ordner Bright Sky fehlen.
                    bright_sky_datenpunkte2.png
                    Also Zusammengefasst, mir fehlen die Datenpunkte dayName_long , dayName_short und iconUrl.

                    Warum werden die Datenpunkte nicht angezeigt ich habe den bright sky 0.3.5 . ich bin für jede Hilfe dankbar

                    FG
                    Maro

                    ArmilarA Offline
                    ArmilarA Offline
                    Armilar
                    Most Active Forum Testing
                    schrieb am zuletzt editiert von Armilar
                    #143

                    @matze-r

                    Ist ja auch ein wenig alt:

                    ef921849-daa8-4bc5-a393-ca62e33269d6-image.png

                    0.6.6 ist aktuell die Version

                    Geh mal über Adapter und ziehe dir die:
                    https://github.com/ticaki/ioBroker.brightsky


                    EDIT:
                    2584d26b-b221-4657-a65c-9dfe16261ad8-image.png

                    0.3.5 ist stable... Da ist das nicht drin... Also "latest" (Beta) wie oben beschrieben installieren...

                    Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

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

                    1 Antwort Letzte Antwort
                    0
                    • Matze RM Offline
                      Matze RM Offline
                      Matze R
                      schrieb am zuletzt editiert von
                      #144

                      Hi danke cool . Aber mit welchem Widget und wie funktioniert das . Html- und Image- Widget haben nicht funktioniert.
                      diese Inventwo auch nicht. Auch ein Wetter Widget aus der Time and weather Serie hat nicht funktoiniert .
                      Vielen dank nochmal für die Hilfe
                      FG

                      Maro

                      andre1deA 1 Antwort Letzte Antwort
                      0
                      • andre1deA Offline
                        andre1deA Offline
                        andre1de
                        schrieb am zuletzt editiert von andre1de
                        #145

                        Hallo,
                        erstmal danke für den Adapter!
                        Eine Frage: Manche Datenpunkte, wie z.B. "icon" oder "timestamp", sind auf englisch. Bleibt es so? Muss man dann es selbst durch Scripts erledigen?

                        T 1 Antwort Letzte Antwort
                        0
                        • Matze RM Matze R

                          Hi danke cool . Aber mit welchem Widget und wie funktioniert das . Html- und Image- Widget haben nicht funktioniert.
                          diese Inventwo auch nicht. Auch ein Wetter Widget aus der Time and weather Serie hat nicht funktoiniert .
                          Vielen dank nochmal für die Hilfe
                          FG

                          Maro

                          andre1deA Offline
                          andre1deA Offline
                          andre1de
                          schrieb am zuletzt editiert von
                          #146

                          @matze-r Probiermal Bildschirmfoto_21-10-2025_13170_192.168.178.30.jpeg und verbinde "Objekt ID" mit "brightsky.0.current.iconUrl"

                          1 Antwort Letzte Antwort
                          0
                          • andre1deA andre1de

                            Hallo,
                            erstmal danke für den Adapter!
                            Eine Frage: Manche Datenpunkte, wie z.B. "icon" oder "timestamp", sind auf englisch. Bleibt es so? Muss man dann es selbst durch Scripts erledigen?

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

                            @andre1de
                            icon ist ein token, das so von der Api kommt. condition könnte ich in einem weiteren Feld übersetzen - bei icon macht das jetzt nicht wirklich sinn.

                            timestamp ist nicht übersetzbar - das ist ein ISO-Date-String 2025-10-21T10:30:00+00:00 das wird vom Admin so dargestellt wie du es siehst, wenn das im Datenfeld anderes aussehen soll ist das ein Adminproblem. Der Datenpunkt inhalt lässt sich per Blockly oder Javascript so formatierten wie man es will. z.B. new Date('2025-10-21T10:30:00+00:00').toLocaleDateString('de', { weekday: 'long', day: '2-digit', month: 'long', year: 'numeric' });

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            andre1deA 1 Antwort Letzte Antwort
                            1
                            • T ticaki

                              @andre1de
                              icon ist ein token, das so von der Api kommt. condition könnte ich in einem weiteren Feld übersetzen - bei icon macht das jetzt nicht wirklich sinn.

                              timestamp ist nicht übersetzbar - das ist ein ISO-Date-String 2025-10-21T10:30:00+00:00 das wird vom Admin so dargestellt wie du es siehst, wenn das im Datenfeld anderes aussehen soll ist das ein Adminproblem. Der Datenpunkt inhalt lässt sich per Blockly oder Javascript so formatierten wie man es will. z.B. new Date('2025-10-21T10:30:00+00:00').toLocaleDateString('de', { weekday: 'long', day: '2-digit', month: 'long', year: 'numeric' });

                              andre1deA Offline
                              andre1deA Offline
                              andre1de
                              schrieb am zuletzt editiert von
                              #148

                              @ticaki
                              Danke für die Antwort!
                              Ich wollte noch wie z.B. bei anderen Wetter-Adapter den aktuelle Wetterzustand in Textform haben. Z.B "Sonnig" oder "Bewölkt" usw.
                              Aber das kann ich auch mit Blockly realisieren.

                              T Matze RM 2 Antworten Letzte Antwort
                              0
                              • andre1deA andre1de

                                @ticaki
                                Danke für die Antwort!
                                Ich wollte noch wie z.B. bei anderen Wetter-Adapter den aktuelle Wetterzustand in Textform haben. Z.B "Sonnig" oder "Bewölkt" usw.
                                Aber das kann ich auch mit Blockly realisieren.

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

                                @andre1de

                                in condition gehen folgende Werte:

                                dry fog rain sleet snow hail thunderstorm null

                                in icon:
                                clear-day clear-night partly-cloudy-day partly-cloudy-night cloudy fog wind rain sleet snow hail thunderstorm null

                                ist halt kein Problem da was in einem weiteren State zu übersetzen aber nicht in die Orginalfelder.
                                icon z.B. in localLanguageCondition oder so :)

                                Aber nicht diesen Monat - eröffne ein Issue dann lass ich das nächsten Monat Copilot einbauen. Der übersetzt das dann auch ordentlich in die verschiedenen Sprachen.

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                andre1deA 1 Antwort Letzte Antwort
                                0
                                • T ticaki

                                  @andre1de

                                  in condition gehen folgende Werte:

                                  dry fog rain sleet snow hail thunderstorm null

                                  in icon:
                                  clear-day clear-night partly-cloudy-day partly-cloudy-night cloudy fog wind rain sleet snow hail thunderstorm null

                                  ist halt kein Problem da was in einem weiteren State zu übersetzen aber nicht in die Orginalfelder.
                                  icon z.B. in localLanguageCondition oder so :)

                                  Aber nicht diesen Monat - eröffne ein Issue dann lass ich das nächsten Monat Copilot einbauen. Der übersetzt das dann auch ordentlich in die verschiedenen Sprachen.

                                  andre1deA Offline
                                  andre1deA Offline
                                  andre1de
                                  schrieb am zuletzt editiert von
                                  #150

                                  @ticaki
                                  Vielen Dank!

                                  1 Antwort Letzte Antwort
                                  0
                                  • andre1deA andre1de

                                    @ticaki
                                    Danke für die Antwort!
                                    Ich wollte noch wie z.B. bei anderen Wetter-Adapter den aktuelle Wetterzustand in Textform haben. Z.B "Sonnig" oder "Bewölkt" usw.
                                    Aber das kann ich auch mit Blockly realisieren.

                                    Matze RM Offline
                                    Matze RM Offline
                                    Matze R
                                    schrieb am zuletzt editiert von
                                    #151

                                    @andre1de Screenshot (23).png

                                    hier siehst du auch den Wetterstatus, ist ganz einfach
                                    Unbenannt.png

                                    Das ist meine Wettervorschau für die Startseite
                                    das Datum habe ich aus dem Timestamp Datenpunkt und mit javascript und blockly so verändert

                                    FG
                                    Maro

                                    andre1deA 1 Antwort Letzte Antwort
                                    0
                                    • Matze RM Matze R

                                      @andre1de Screenshot (23).png

                                      hier siehst du auch den Wetterstatus, ist ganz einfach
                                      Unbenannt.png

                                      Das ist meine Wettervorschau für die Startseite
                                      das Datum habe ich aus dem Timestamp Datenpunkt und mit javascript und blockly so verändert

                                      FG
                                      Maro

                                      andre1deA Offline
                                      andre1deA Offline
                                      andre1de
                                      schrieb am zuletzt editiert von
                                      #152

                                      @matze-r
                                      Danke!
                                      Wochentag wäre kein Problem. Das habe ich nur als Beispiel dazu geschrieben (dass auch auf englisch ist). Hauptsätzlich interessierte mich Wetterzustand in Textform. Bei dir hast du deine "Klarer Tag" durch Blockly hingekriegt oder?
                                      Aber damit kann ich erst abwarten oder Blockly schreiben. Es wäre kein Problem.

                                      1 Antwort Letzte Antwort
                                      0
                                      • HomoranH Nicht stören
                                        HomoranH Nicht stören
                                        Homoran
                                        Global Moderator Administrators
                                        schrieb am zuletzt editiert von
                                        #153

                                        Ich habe gestern an meiner Konfig herumgespielt um "bessere" Werte zu erhalten und eine fixe Wetterstation eingegeben.

                                        jetzt abe ich dauend

                                        brightsky.0
                                        	2025-10-25 17:07:48.968	error	Error fetching weather data: {}
                                        brightsky.0
                                        	2025-10-25 17:07:48.968	error	Error fetching weather data: {}
                                        

                                        im log.
                                        leider ohne mehr Infos

                                        Loglevel auf debug zeigt massig input.

                                        ich habe jetzt die Station wieder herausgenommen, aber die error message bleibt.

                                        habe noch v0.5.2

                                        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 1 Antwort Letzte Antwort
                                        0
                                        • HomoranH Homoran

                                          Ich habe gestern an meiner Konfig herumgespielt um "bessere" Werte zu erhalten und eine fixe Wetterstation eingegeben.

                                          jetzt abe ich dauend

                                          brightsky.0
                                          	2025-10-25 17:07:48.968	error	Error fetching weather data: {}
                                          brightsky.0
                                          	2025-10-25 17:07:48.968	error	Error fetching weather data: {}
                                          

                                          im log.
                                          leider ohne mehr Infos

                                          Loglevel auf debug zeigt massig input.

                                          ich habe jetzt die Station wieder herausgenommen, aber die error message bleibt.

                                          habe noch v0.5.2

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

                                          @homoran
                                          Ist das gleiche falsche Errorhandling was ich auch in pirate-weather hatte. Muß ich hier auch anpassen - mache ich später. Dann gibts zumindest mal ne brauchbare Errormessage

                                          EDIT:
                                          Da sind noch 2 Issue offen die bearbeite ich auch noch (morgen) bevor es eine neue Version gibt.

                                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                          Spenden

                                          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

                                          677

                                          Online

                                          32.6k

                                          Benutzer

                                          82.0k

                                          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