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. ioBroker Allgemein
  4. Vergleich Solarprognosen Solarwetter und brightsky

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    840

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.4k

Vergleich Solarprognosen Solarwetter und brightsky

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
234 Beiträge 7 Kommentatoren 11.1k Aufrufe 10 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

    @martybr

    Daily ist von mir zusammengerechnet aus den hourly werten.

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

    @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

    @martybr

    Daily ist von mir zusammengerechnet aus den hourly werten.

    wie ich eingangs schrieb könnte eine Korrelation der hourly-Werte mit dem dazugehörigen Sonnenstand und dem daraus resultierenden Auftreffwinkel auf die Panels noch bessere Prognosewerte bringen.
    Ich habe aber im Moment nicht die Zeit (und Lust) mich da tiefer reinzuknien, wenn das grobe Ergebnis auch so passt.

    man müsste dann für jede Stunde in etwa diese Formel rechnen
    Screenshot_20250907-201931_Firefox.jpg

    und dann entweder aufaddieren oder mit den stündlichen Werten weiterarbeiten

    EDIT:
    Wenn es dann so wie heute ziemlich windig ist, die PV-Anlage gut hinterlüftet ist, kommt doch noch mehr als "geplant" raus
    Screenshot_20250907-202221_Firefox.jpg

    Da kann mit bis zum Exzess dran feilen, u d es passt dann trotzdem nicht.

    So eine Prognose soll doch nur einen groben Überblick geben.

    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

      @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

      @martybr

      Daily ist von mir zusammengerechnet aus den hourly werten.

      wie ich eingangs schrieb könnte eine Korrelation der hourly-Werte mit dem dazugehörigen Sonnenstand und dem daraus resultierenden Auftreffwinkel auf die Panels noch bessere Prognosewerte bringen.
      Ich habe aber im Moment nicht die Zeit (und Lust) mich da tiefer reinzuknien, wenn das grobe Ergebnis auch so passt.

      man müsste dann für jede Stunde in etwa diese Formel rechnen
      Screenshot_20250907-201931_Firefox.jpg

      und dann entweder aufaddieren oder mit den stündlichen Werten weiterarbeiten

      EDIT:
      Wenn es dann so wie heute ziemlich windig ist, die PV-Anlage gut hinterlüftet ist, kommt doch noch mehr als "geplant" raus
      Screenshot_20250907-202221_Firefox.jpg

      Da kann mit bis zum Exzess dran feilen, u d es passt dann trotzdem nicht.

      So eine Prognose soll doch nur einen groben Überblick geben.

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

      @homoran
      ich frage mal chatgpt - aber sind noch ne Woche oder so bis stable - bis dahin wird da nix passieren :)

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      HomoranH 1 Antwort Letzte Antwort
      1
      • T ticaki

        @homoran
        ich frage mal chatgpt - aber sind noch ne Woche oder so bis stable - bis dahin wird da nix passieren :)

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

        @ticaki siehe Edit!

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

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

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

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

          brightsky wird wegen Schummelns disqualifiziert :joy:

          Eigentlich wollte ich zeigen, was mir passiert, wenn ich die Gesamttagesvorhersage faktorisiere.

          Beide Vorhersagen lagen wieder nah bei einander, ich kam mit meinem Ertrag bisher aber nur auf 50%.
          Auch wenn jetzt seit gut 2h die Sonne gar nicht so schwach scheint, wird sich das nicht mehr erheblich ändern
          Screenshot_20250908-181856_Firefox.jpg
          Aufgrund der Ausrichtung meiner PV Anlage kommt da jetzt nicht mehr genug Sonne an.

          Das wollte ich zeigen, aber....

          Screenshot_20250908-181229_Firefox.jpg

          Brightsky hat den Wert angepasst!

          Screenshot_20250908-181417_Firefox.jpg

          Ich möchte ja die Qualität der Solarprognosen vergleichen, da muss ich natürlich auch bei brightsky mit dem morgendlichen Wert rechnen.
          Ich muss jetzt mein Skript anpassen und mit dem morgendlichen Vorhersagewert arbeiten. Der war heute morgen bei 11,48kWh.

          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

            brightsky wird wegen Schummelns disqualifiziert :joy:

            Eigentlich wollte ich zeigen, was mir passiert, wenn ich die Gesamttagesvorhersage faktorisiere.

            Beide Vorhersagen lagen wieder nah bei einander, ich kam mit meinem Ertrag bisher aber nur auf 50%.
            Auch wenn jetzt seit gut 2h die Sonne gar nicht so schwach scheint, wird sich das nicht mehr erheblich ändern
            Screenshot_20250908-181856_Firefox.jpg
            Aufgrund der Ausrichtung meiner PV Anlage kommt da jetzt nicht mehr genug Sonne an.

            Das wollte ich zeigen, aber....

            Screenshot_20250908-181229_Firefox.jpg

            Brightsky hat den Wert angepasst!

            Screenshot_20250908-181417_Firefox.jpg

            Ich möchte ja die Qualität der Solarprognosen vergleichen, da muss ich natürlich auch bei brightsky mit dem morgendlichen Wert rechnen.
            Ich muss jetzt mein Skript anpassen und mit dem morgendlichen Vorhersagewert arbeiten. Der war heute morgen bei 11,48kWh.

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

            @homoran
            Der Adapter holt sich neue Daten um:
            0:00 - wegen Tageswechsel
            5:00 - wegen wie wird es heute
            18:00 - wie wird es morgen

            und der Service liefert keine historischen Prognosen sondern Daten :)

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            ArmilarA HomoranH 2 Antworten Letzte Antwort
            0
            • T ticaki

              @homoran
              Der Adapter holt sich neue Daten um:
              0:00 - wegen Tageswechsel
              5:00 - wegen wie wird es heute
              18:00 - wie wird es morgen

              und der Service liefert keine historischen Prognosen sondern Daten :)

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

              @ticaki

              historische Prognosen klingt irgendwie merkwürdig :blush:

              Bright Sky liefert enorm coole Daten

              1114d001-5daf-4f68-b65a-e4e99a3c49ad-image.png

              Für mich ist gar nicht mal so relevant wieviel die Anlage produziert, sondern aus dem Kontext "Energiemanagement": was sollte wann passieren... agieren...

              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
              • T ticaki

                @homoran
                Der Adapter holt sich neue Daten um:
                0:00 - wegen Tageswechsel
                5:00 - wegen wie wird es heute
                18:00 - wie wird es morgen

                und der Service liefert keine historischen Prognosen sondern Daten :)

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

                @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                18:00 - wie wird es morgen

                aaah, dann sind die Daten von daily.00 in Wirklichkeit schon Daten für daily.01, oder wie ist das zu verstehen?

                und um

                @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                0:00 - wegen Tageswechsel

                ist solar = 0, sieht dann eher aus wie current :thinking_face:

                @armilar sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                historische Prognosen klingt irgendwie merkwürdig

                ja! das war dann wohl eine Fehlinterpretation meines Vorhabens.

                ich möchte abends, wenn ich meinen realen Ertrag kennen, diesen mit der Prognose für diesen Tag, die ich morgens bekomme, vergleichen. Dazu hatte ich den Wert im Datenpunkt solar in daily.00 verwendet. Der war aber nicht derselbe wie morgens.
                Umso besser, wenn diese bereits am Vorabend um 18:00 vorliegt
                aber da steht heute morgen etwas anderes 😞
                Screenshot_20250909-083657_Firefox.jpg

                PS
                mit den hourly Daten habe ich mich mangels Zeit noch nicht auseinander gesetzt. damüsste ich wahrscheinlich jede Stunde die Datenpunkte neu zu den zugehörigen Uhrzeiten mappen.

                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
                • K Offline
                  K Offline
                  klassisch
                  Most Active
                  schrieb am zuletzt editiert von
                  #14

                  Berücksichtigen die Energiedaten in "solar" bereits die Wolkenbedeckung oder muß man die noch mit reinrechnen?

                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • K klassisch

                    Berücksichtigen die Energiedaten in "solar" bereits die Wolkenbedeckung oder muß man die noch mit reinrechnen?

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

                    @klassisch da sollte alles drin sein.
                    Anscheinend sogar den Verlust bei den unterschiedlichen Winkeln bei Durchdringungder Atmosphäre.

                    Screenshot_20240306-130143_Firefox.jpg

                    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 -

                    K 1 Antwort Letzte Antwort
                    1
                    • HomoranH Homoran

                      @klassisch da sollte alles drin sein.
                      Anscheinend sogar den Verlust bei den unterschiedlichen Winkeln bei Durchdringungder Atmosphäre.

                      Screenshot_20240306-130143_Firefox.jpg

                      K Offline
                      K Offline
                      klassisch
                      Most Active
                      schrieb am zuletzt editiert von
                      #16

                      @homoran Vielen Dank, das wäre gut brauchbar. Dann muß man in erster Näherung nur noch die Orientierung der Module, Fläche, Wirkungsgrad mit rein rechnen

                      1 Antwort Letzte Antwort
                      1
                      • HomoranH Homoran

                        @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                        18:00 - wie wird es morgen

                        aaah, dann sind die Daten von daily.00 in Wirklichkeit schon Daten für daily.01, oder wie ist das zu verstehen?

                        und um

                        @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                        0:00 - wegen Tageswechsel

                        ist solar = 0, sieht dann eher aus wie current :thinking_face:

                        @armilar sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                        historische Prognosen klingt irgendwie merkwürdig

                        ja! das war dann wohl eine Fehlinterpretation meines Vorhabens.

                        ich möchte abends, wenn ich meinen realen Ertrag kennen, diesen mit der Prognose für diesen Tag, die ich morgens bekomme, vergleichen. Dazu hatte ich den Wert im Datenpunkt solar in daily.00 verwendet. Der war aber nicht derselbe wie morgens.
                        Umso besser, wenn diese bereits am Vorabend um 18:00 vorliegt
                        aber da steht heute morgen etwas anderes 😞
                        Screenshot_20250909-083657_Firefox.jpg

                        PS
                        mit den hourly Daten habe ich mich mangels Zeit noch nicht auseinander gesetzt. damüsste ich wahrscheinlich jede Stunde die Datenpunkte neu zu den zugehörigen Uhrzeiten mappen.

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

                        @homoran

                        Nein ich rufe die Daten von 00:00-23:59 ab, jeweils zu den genannten zeiten. alles was vor der abrufzeit liegt, wird, denke ich, durch die tatsächlichen Werte ersetzt. Und um 00:00 ist heute nicht mehr gestern -daher Update das in heute nicht die Daten von gestern stehen.

                        Wenn du Wetter in was weiß ich dir ansiehst willst du doch nicht die Prognosen von 5:00 um 20:00 sehen

                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                        Spenden

                        HomoranH 1 Antwort Letzte Antwort
                        0
                        • T ticaki

                          @homoran

                          Nein ich rufe die Daten von 00:00-23:59 ab, jeweils zu den genannten zeiten. alles was vor der abrufzeit liegt, wird, denke ich, durch die tatsächlichen Werte ersetzt. Und um 00:00 ist heute nicht mehr gestern -daher Update das in heute nicht die Daten von gestern stehen.

                          Wenn du Wetter in was weiß ich dir ansiehst willst du doch nicht die Prognosen von 5:00 um 20:00 sehen

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

                          @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                          alles was vor der abrufzeit liegt, wird, denke ich, durch die tatsächlichen Werte ersetzt.

                          so sieht's auch für mich aus.
                          Dann ist das um 18:00 der "corrected forecast" und daher dichter an der Realität.

                          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

                            @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                            alles was vor der abrufzeit liegt, wird, denke ich, durch die tatsächlichen Werte ersetzt.

                            so sieht's auch für mich aus.
                            Dann ist das um 18:00 der "corrected forecast" und daher dichter an der Realität.

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

                            @homoran

                            Für vorausplanendes Laden würde ich z.B. die nächsten 8 h betrachten ist das kleiner als die doppelte Batteriekapazität laden frei geben.

                            Für einen genauigkeitsvergleich ist das aber nix😊

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            HomoranH 1 Antwort Letzte Antwort
                            0
                            • T ticaki

                              @homoran

                              Für vorausplanendes Laden würde ich z.B. die nächsten 8 h betrachten ist das kleiner als die doppelte Batteriekapazität laden frei geben.

                              Für einen genauigkeitsvergleich ist das aber nix😊

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

                              @ticaki ja, darauf läuft's hinaus.
                              Bedeutet aber, dass ich mich mit den hourly-Werten beschäftigen muss.
                              Ich hoffte das vorerst vermeiden zu können, mit allen Einschränkungen die das bringt.

                              aber

                              @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                              Für einen genauigkeitsvergleich ist das aber nix

                              wenn ich etwas vergleichen will, muss ich auch gleiche Voraussetzungen vergleichen.
                              Der morgendliche Prognosewert wäre einheitlich.

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

                                @ticaki ja, darauf läuft's hinaus.
                                Bedeutet aber, dass ich mich mit den hourly-Werten beschäftigen muss.
                                Ich hoffte das vorerst vermeiden zu können, mit allen Einschränkungen die das bringt.

                                aber

                                @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                Für einen genauigkeitsvergleich ist das aber nix

                                wenn ich etwas vergleichen will, muss ich auch gleiche Voraussetzungen vergleichen.
                                Der morgendliche Prognosewert wäre einheitlich.

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

                                @homoran
                                Ich Bau dir was ein bekommst heute Abend nen GitHub Branche Link.

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                1 Antwort Letzte Antwort
                                1
                                • HomoranH Homoran

                                  @ticaki ja, darauf läuft's hinaus.
                                  Bedeutet aber, dass ich mich mit den hourly-Werten beschäftigen muss.
                                  Ich hoffte das vorerst vermeiden zu können, mit allen Einschränkungen die das bringt.

                                  aber

                                  @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                  Für einen genauigkeitsvergleich ist das aber nix

                                  wenn ich etwas vergleichen will, muss ich auch gleiche Voraussetzungen vergleichen.
                                  Der morgendliche Prognosewert wäre einheitlich.

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

                                  @homoran
                                  https://github.com/ticaki/ioBroker.brightsky/tree/solar

                                  Deine States sind für dich erkennbar und stur - die aktualisieren/erstellen sich um 5, wenn du aktuell ein Update oder einen State sehen willst - computer uhr umstellen :P

                                  Guckmal im Admin und sag mir, ob das was ich noch eingebaut habe was taugt. ist gerade echt blödes wetter um sowas zu checken

                                  EDIT:
                                  Das scheint nicht so zu fuzen - ok ich brauche in meinem echten Leben nie winkelberechnung daher hab ich das jetzt 3 mal in meinem leben gelernt und wieder vergessen- kann mal einer der sich da auskennt auf die chatGPT funktion schauen:

                                  /**
                                   * Schätzt die erzeugte elektrische Energie (Wh) für die kommende Stunde.
                                   *
                                   * @param valueWhPerM2 GHI für die Stunde (Wh/m²) auf horizontaler Ebene
                                   * @param time Zeitstempel dieser Stunde (Date | number | string)
                                   * @param coords { lat, lon }
                                   * @param panels Array von Panels (azimuth, tilt, area, efficiency in %)
                                   * @returns Wh (elektrisch) für alle Panels zusammen
                                   */
                                  export function estimatePVEnergyForHour(
                                      valueWhPerM2: number,
                                      time: Date | number | string,
                                      coords: Coords,
                                      panels: Panel[],
                                  ): number {
                                      // ===== Helpers (funktion-lokal) =====
                                      const toRad = (d: number): number => (d * Math.PI) / 180;
                                      const clamp01 = (x: number): number => Math.min(1, Math.max(0, x));
                                      const normEff = (pct: number): number => clamp01(pct / 100); // 0..100% → 0..1
                                  
                                      // Konstanten (einfaches, robustes Modell)
                                      const ALBEDO = 0.2; // Bodenreflexionsfaktor
                                  
                                      // Sonnenstand holen
                                      const date = time instanceof Date ? time : new Date(time);
                                      const pos = suncalc.getPosition(date, coords.lat, coords.lon);
                                      const sunEl = pos.altitude; // Elevation in rad
                                      // SunCalc-Azimut: 0 = Süd, +West; auf 0=N, 90=E normieren:
                                      const sunAzDeg = ((pos.azimuth * 180) / Math.PI + 180 + 360) % 360;
                                      const sunAz = toRad(sunAzDeg);
                                  
                                      if (sunEl <= 0 || valueWhPerM2 <= 0 || panels.length === 0) {
                                          return 0;
                                      }
                                  
                                      // Grobe Aufteilung in Direkt/Diffus aus Elevation (ohne externe Daten):
                                      const beamFraction = clamp01(Math.sin(sunEl) * 1.1);
                                      const diffuseFraction = 1 - beamFraction;
                                  
                                      let totalWh = 0;
                                  
                                      for (const p of panels) {
                                          const eff = normEff(p.efficiency);
                                          if (eff <= 0 || p.area <= 0) {
                                              continue;
                                          }
                                  
                                          const tilt = toRad(p.tilt);
                                          const az = toRad(((p.azimuth % 360) + 360) % 360);
                                  
                                          // Modulnormalen-Vektor
                                          const nx = Math.sin(tilt) * Math.sin(az);
                                          const ny = Math.sin(tilt) * Math.cos(az);
                                          const nz = Math.cos(tilt);
                                  
                                          // Sonnenvektor
                                          const sx = Math.cos(sunEl) * Math.sin(sunAz);
                                          const sy = Math.cos(sunEl) * Math.cos(sunAz);
                                          const sz = Math.sin(sunEl);
                                  
                                          // Einfallswinkel
                                          const cosTheta = Math.max(0, nx * sx + ny * sy + nz * sz);
                                  
                                          // Direktanteil von horizontal → Modulfläche
                                          const dirGain = cosTheta / Math.max(1e-6, Math.sin(sunEl));
                                  
                                          // Diffus isotrop + Bodenreflexion
                                          const skyDiffuseGain = (1 + Math.cos(tilt)) / 2;
                                          const groundRefGain = (ALBEDO * (1 - Math.cos(tilt))) / 2;
                                  
                                          // POA-Energie (Wh/m²) auf dem Modul für die Stunde
                                          const poaWhPerM2 = valueWhPerM2 * (beamFraction * dirGain + diffuseFraction * skyDiffuseGain + groundRefGain);
                                  
                                          // Elektrische Energie
                                          const elecWh = Math.max(0, poaWhPerM2) * p.area * eff;
                                          totalWh += elecWh;
                                      }
                                  
                                      return totalWh;
                                  }
                                  

                                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                  Spenden

                                  HomoranH K 4 Antworten Letzte Antwort
                                  1
                                  • T ticaki

                                    @homoran
                                    https://github.com/ticaki/ioBroker.brightsky/tree/solar

                                    Deine States sind für dich erkennbar und stur - die aktualisieren/erstellen sich um 5, wenn du aktuell ein Update oder einen State sehen willst - computer uhr umstellen :P

                                    Guckmal im Admin und sag mir, ob das was ich noch eingebaut habe was taugt. ist gerade echt blödes wetter um sowas zu checken

                                    EDIT:
                                    Das scheint nicht so zu fuzen - ok ich brauche in meinem echten Leben nie winkelberechnung daher hab ich das jetzt 3 mal in meinem leben gelernt und wieder vergessen- kann mal einer der sich da auskennt auf die chatGPT funktion schauen:

                                    /**
                                     * Schätzt die erzeugte elektrische Energie (Wh) für die kommende Stunde.
                                     *
                                     * @param valueWhPerM2 GHI für die Stunde (Wh/m²) auf horizontaler Ebene
                                     * @param time Zeitstempel dieser Stunde (Date | number | string)
                                     * @param coords { lat, lon }
                                     * @param panels Array von Panels (azimuth, tilt, area, efficiency in %)
                                     * @returns Wh (elektrisch) für alle Panels zusammen
                                     */
                                    export function estimatePVEnergyForHour(
                                        valueWhPerM2: number,
                                        time: Date | number | string,
                                        coords: Coords,
                                        panels: Panel[],
                                    ): number {
                                        // ===== Helpers (funktion-lokal) =====
                                        const toRad = (d: number): number => (d * Math.PI) / 180;
                                        const clamp01 = (x: number): number => Math.min(1, Math.max(0, x));
                                        const normEff = (pct: number): number => clamp01(pct / 100); // 0..100% → 0..1
                                    
                                        // Konstanten (einfaches, robustes Modell)
                                        const ALBEDO = 0.2; // Bodenreflexionsfaktor
                                    
                                        // Sonnenstand holen
                                        const date = time instanceof Date ? time : new Date(time);
                                        const pos = suncalc.getPosition(date, coords.lat, coords.lon);
                                        const sunEl = pos.altitude; // Elevation in rad
                                        // SunCalc-Azimut: 0 = Süd, +West; auf 0=N, 90=E normieren:
                                        const sunAzDeg = ((pos.azimuth * 180) / Math.PI + 180 + 360) % 360;
                                        const sunAz = toRad(sunAzDeg);
                                    
                                        if (sunEl <= 0 || valueWhPerM2 <= 0 || panels.length === 0) {
                                            return 0;
                                        }
                                    
                                        // Grobe Aufteilung in Direkt/Diffus aus Elevation (ohne externe Daten):
                                        const beamFraction = clamp01(Math.sin(sunEl) * 1.1);
                                        const diffuseFraction = 1 - beamFraction;
                                    
                                        let totalWh = 0;
                                    
                                        for (const p of panels) {
                                            const eff = normEff(p.efficiency);
                                            if (eff <= 0 || p.area <= 0) {
                                                continue;
                                            }
                                    
                                            const tilt = toRad(p.tilt);
                                            const az = toRad(((p.azimuth % 360) + 360) % 360);
                                    
                                            // Modulnormalen-Vektor
                                            const nx = Math.sin(tilt) * Math.sin(az);
                                            const ny = Math.sin(tilt) * Math.cos(az);
                                            const nz = Math.cos(tilt);
                                    
                                            // Sonnenvektor
                                            const sx = Math.cos(sunEl) * Math.sin(sunAz);
                                            const sy = Math.cos(sunEl) * Math.cos(sunAz);
                                            const sz = Math.sin(sunEl);
                                    
                                            // Einfallswinkel
                                            const cosTheta = Math.max(0, nx * sx + ny * sy + nz * sz);
                                    
                                            // Direktanteil von horizontal → Modulfläche
                                            const dirGain = cosTheta / Math.max(1e-6, Math.sin(sunEl));
                                    
                                            // Diffus isotrop + Bodenreflexion
                                            const skyDiffuseGain = (1 + Math.cos(tilt)) / 2;
                                            const groundRefGain = (ALBEDO * (1 - Math.cos(tilt))) / 2;
                                    
                                            // POA-Energie (Wh/m²) auf dem Modul für die Stunde
                                            const poaWhPerM2 = valueWhPerM2 * (beamFraction * dirGain + diffuseFraction * skyDiffuseGain + groundRefGain);
                                    
                                            // Elektrische Energie
                                            const elecWh = Math.max(0, poaWhPerM2) * p.area * eff;
                                            totalWh += elecWh;
                                        }
                                    
                                        return totalWh;
                                    }
                                    
                                    HomoranH Nicht stören
                                    HomoranH Nicht stören
                                    Homoran
                                    Global Moderator Administrators
                                    schrieb am zuletzt editiert von Homoran
                                    #23

                                    @ticaki Danke!
                                    seh ich mir später genauer an.

                                    @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                    stur - die aktualisieren/erstellen sich um 5,

                                    das mache ich im Moment, indem ich um 15 5 * * * den Wert in einen eigenen Datenpunkt schreibe und mit dem weiterarbeite ;-)

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

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

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

                                    1 Antwort Letzte Antwort
                                    0
                                    • T ticaki

                                      @homoran
                                      https://github.com/ticaki/ioBroker.brightsky/tree/solar

                                      Deine States sind für dich erkennbar und stur - die aktualisieren/erstellen sich um 5, wenn du aktuell ein Update oder einen State sehen willst - computer uhr umstellen :P

                                      Guckmal im Admin und sag mir, ob das was ich noch eingebaut habe was taugt. ist gerade echt blödes wetter um sowas zu checken

                                      EDIT:
                                      Das scheint nicht so zu fuzen - ok ich brauche in meinem echten Leben nie winkelberechnung daher hab ich das jetzt 3 mal in meinem leben gelernt und wieder vergessen- kann mal einer der sich da auskennt auf die chatGPT funktion schauen:

                                      /**
                                       * Schätzt die erzeugte elektrische Energie (Wh) für die kommende Stunde.
                                       *
                                       * @param valueWhPerM2 GHI für die Stunde (Wh/m²) auf horizontaler Ebene
                                       * @param time Zeitstempel dieser Stunde (Date | number | string)
                                       * @param coords { lat, lon }
                                       * @param panels Array von Panels (azimuth, tilt, area, efficiency in %)
                                       * @returns Wh (elektrisch) für alle Panels zusammen
                                       */
                                      export function estimatePVEnergyForHour(
                                          valueWhPerM2: number,
                                          time: Date | number | string,
                                          coords: Coords,
                                          panels: Panel[],
                                      ): number {
                                          // ===== Helpers (funktion-lokal) =====
                                          const toRad = (d: number): number => (d * Math.PI) / 180;
                                          const clamp01 = (x: number): number => Math.min(1, Math.max(0, x));
                                          const normEff = (pct: number): number => clamp01(pct / 100); // 0..100% → 0..1
                                      
                                          // Konstanten (einfaches, robustes Modell)
                                          const ALBEDO = 0.2; // Bodenreflexionsfaktor
                                      
                                          // Sonnenstand holen
                                          const date = time instanceof Date ? time : new Date(time);
                                          const pos = suncalc.getPosition(date, coords.lat, coords.lon);
                                          const sunEl = pos.altitude; // Elevation in rad
                                          // SunCalc-Azimut: 0 = Süd, +West; auf 0=N, 90=E normieren:
                                          const sunAzDeg = ((pos.azimuth * 180) / Math.PI + 180 + 360) % 360;
                                          const sunAz = toRad(sunAzDeg);
                                      
                                          if (sunEl <= 0 || valueWhPerM2 <= 0 || panels.length === 0) {
                                              return 0;
                                          }
                                      
                                          // Grobe Aufteilung in Direkt/Diffus aus Elevation (ohne externe Daten):
                                          const beamFraction = clamp01(Math.sin(sunEl) * 1.1);
                                          const diffuseFraction = 1 - beamFraction;
                                      
                                          let totalWh = 0;
                                      
                                          for (const p of panels) {
                                              const eff = normEff(p.efficiency);
                                              if (eff <= 0 || p.area <= 0) {
                                                  continue;
                                              }
                                      
                                              const tilt = toRad(p.tilt);
                                              const az = toRad(((p.azimuth % 360) + 360) % 360);
                                      
                                              // Modulnormalen-Vektor
                                              const nx = Math.sin(tilt) * Math.sin(az);
                                              const ny = Math.sin(tilt) * Math.cos(az);
                                              const nz = Math.cos(tilt);
                                      
                                              // Sonnenvektor
                                              const sx = Math.cos(sunEl) * Math.sin(sunAz);
                                              const sy = Math.cos(sunEl) * Math.cos(sunAz);
                                              const sz = Math.sin(sunEl);
                                      
                                              // Einfallswinkel
                                              const cosTheta = Math.max(0, nx * sx + ny * sy + nz * sz);
                                      
                                              // Direktanteil von horizontal → Modulfläche
                                              const dirGain = cosTheta / Math.max(1e-6, Math.sin(sunEl));
                                      
                                              // Diffus isotrop + Bodenreflexion
                                              const skyDiffuseGain = (1 + Math.cos(tilt)) / 2;
                                              const groundRefGain = (ALBEDO * (1 - Math.cos(tilt))) / 2;
                                      
                                              // POA-Energie (Wh/m²) auf dem Modul für die Stunde
                                              const poaWhPerM2 = valueWhPerM2 * (beamFraction * dirGain + diffuseFraction * skyDiffuseGain + groundRefGain);
                                      
                                              // Elektrische Energie
                                              const elecWh = Math.max(0, poaWhPerM2) * p.area * eff;
                                              totalWh += elecWh;
                                          }
                                      
                                          return totalWh;
                                      }
                                      
                                      HomoranH Nicht stören
                                      HomoranH Nicht stören
                                      Homoran
                                      Global Moderator Administrators
                                      schrieb am zuletzt editiert von
                                      #24

                                      @ticaki ist das ok so?
                                      brightsky.0 2025-09-09 18:00:34.585 error Error fetching daily weather data: {}

                                      folge der sturen 5 Uhr Regel :joy: ?

                                      zu deinem EDIT

                                      @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                      ich brauche in meinem echten Leben nie winkelberechnung daher hab ich das jetzt 3 mal in meinem leben gelernt und wieder vergessen- kann mal einer der sich da auskennt auf die chatGPT funktion schauen:

                                      ich kann das auch nicht!
                                      Ich muss auch jedesmal irgrndwo abschreiben, sorry!

                                      Vielleicht kann @klassisch aushelfen

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

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

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

                                      1 Antwort Letzte Antwort
                                      0
                                      • T ticaki

                                        @homoran
                                        https://github.com/ticaki/ioBroker.brightsky/tree/solar

                                        Deine States sind für dich erkennbar und stur - die aktualisieren/erstellen sich um 5, wenn du aktuell ein Update oder einen State sehen willst - computer uhr umstellen :P

                                        Guckmal im Admin und sag mir, ob das was ich noch eingebaut habe was taugt. ist gerade echt blödes wetter um sowas zu checken

                                        EDIT:
                                        Das scheint nicht so zu fuzen - ok ich brauche in meinem echten Leben nie winkelberechnung daher hab ich das jetzt 3 mal in meinem leben gelernt und wieder vergessen- kann mal einer der sich da auskennt auf die chatGPT funktion schauen:

                                        /**
                                         * Schätzt die erzeugte elektrische Energie (Wh) für die kommende Stunde.
                                         *
                                         * @param valueWhPerM2 GHI für die Stunde (Wh/m²) auf horizontaler Ebene
                                         * @param time Zeitstempel dieser Stunde (Date | number | string)
                                         * @param coords { lat, lon }
                                         * @param panels Array von Panels (azimuth, tilt, area, efficiency in %)
                                         * @returns Wh (elektrisch) für alle Panels zusammen
                                         */
                                        export function estimatePVEnergyForHour(
                                            valueWhPerM2: number,
                                            time: Date | number | string,
                                            coords: Coords,
                                            panels: Panel[],
                                        ): number {
                                            // ===== Helpers (funktion-lokal) =====
                                            const toRad = (d: number): number => (d * Math.PI) / 180;
                                            const clamp01 = (x: number): number => Math.min(1, Math.max(0, x));
                                            const normEff = (pct: number): number => clamp01(pct / 100); // 0..100% → 0..1
                                        
                                            // Konstanten (einfaches, robustes Modell)
                                            const ALBEDO = 0.2; // Bodenreflexionsfaktor
                                        
                                            // Sonnenstand holen
                                            const date = time instanceof Date ? time : new Date(time);
                                            const pos = suncalc.getPosition(date, coords.lat, coords.lon);
                                            const sunEl = pos.altitude; // Elevation in rad
                                            // SunCalc-Azimut: 0 = Süd, +West; auf 0=N, 90=E normieren:
                                            const sunAzDeg = ((pos.azimuth * 180) / Math.PI + 180 + 360) % 360;
                                            const sunAz = toRad(sunAzDeg);
                                        
                                            if (sunEl <= 0 || valueWhPerM2 <= 0 || panels.length === 0) {
                                                return 0;
                                            }
                                        
                                            // Grobe Aufteilung in Direkt/Diffus aus Elevation (ohne externe Daten):
                                            const beamFraction = clamp01(Math.sin(sunEl) * 1.1);
                                            const diffuseFraction = 1 - beamFraction;
                                        
                                            let totalWh = 0;
                                        
                                            for (const p of panels) {
                                                const eff = normEff(p.efficiency);
                                                if (eff <= 0 || p.area <= 0) {
                                                    continue;
                                                }
                                        
                                                const tilt = toRad(p.tilt);
                                                const az = toRad(((p.azimuth % 360) + 360) % 360);
                                        
                                                // Modulnormalen-Vektor
                                                const nx = Math.sin(tilt) * Math.sin(az);
                                                const ny = Math.sin(tilt) * Math.cos(az);
                                                const nz = Math.cos(tilt);
                                        
                                                // Sonnenvektor
                                                const sx = Math.cos(sunEl) * Math.sin(sunAz);
                                                const sy = Math.cos(sunEl) * Math.cos(sunAz);
                                                const sz = Math.sin(sunEl);
                                        
                                                // Einfallswinkel
                                                const cosTheta = Math.max(0, nx * sx + ny * sy + nz * sz);
                                        
                                                // Direktanteil von horizontal → Modulfläche
                                                const dirGain = cosTheta / Math.max(1e-6, Math.sin(sunEl));
                                        
                                                // Diffus isotrop + Bodenreflexion
                                                const skyDiffuseGain = (1 + Math.cos(tilt)) / 2;
                                                const groundRefGain = (ALBEDO * (1 - Math.cos(tilt))) / 2;
                                        
                                                // POA-Energie (Wh/m²) auf dem Modul für die Stunde
                                                const poaWhPerM2 = valueWhPerM2 * (beamFraction * dirGain + diffuseFraction * skyDiffuseGain + groundRefGain);
                                        
                                                // Elektrische Energie
                                                const elecWh = Math.max(0, poaWhPerM2) * p.area * eff;
                                                totalWh += elecWh;
                                            }
                                        
                                            return totalWh;
                                        }
                                        
                                        K Offline
                                        K Offline
                                        klassisch
                                        Most Active
                                        schrieb am zuletzt editiert von klassisch
                                        #25

                                        @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                        Das scheint nicht so zu fuzen - ok ich brauche in meinem echten Leben nie winkelberechnung daher hab ich das jetzt 3 mal in meinem leben gelernt und wieder vergessen- kann mal einer der sich da auskennt auf die chatGPT funktion schauen:

                                        Ich habe auch CHatGPT gefragt und habe ein Skript am Laufen.
                                        Das nimmt die 13 Stundenwerte für die Enerie, errechnet jeweils den Sonnenstand dazu und die Projektion auf die Modulfläche. Dann werden die 13 Werte addiert.

                                        Es kommt ein Wert raus, der in einem plausiblen Rahmen liegt. Aber heute hat es lange geregnet und es war wolkig und da war die Schätzung zu hoch.

                                        Ich weiss nicht, ob man ChatGPT Programme veröffentlichen darf. Kann es Dir per Chat zukommen lassen bei Bedarf.

                                        Den diffusen Anteil habe ich mal weggelassen. Erst mal die Grundfunktion hinbekommen.
                                        Für den hier behandelten Zweck ist der diffuse Anteil zumindest bei meiner Anlagengröße und -Anordnung nicht wichtig. Wenn der direkte Strahlungsanteil so klein wird, daß der Diffusanteil relevant wird, dann riskiere ich kein netzdienliches Verhalten, sondern fahre mit Priorität auf Selbstversorgung. An solchen Tagen ist Einspeisung - falls es die denn überhaupt gibt - meist eh willkommen.

                                        HomoranH 1 Antwort Letzte Antwort
                                        1
                                        • K klassisch

                                          @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                          Das scheint nicht so zu fuzen - ok ich brauche in meinem echten Leben nie winkelberechnung daher hab ich das jetzt 3 mal in meinem leben gelernt und wieder vergessen- kann mal einer der sich da auskennt auf die chatGPT funktion schauen:

                                          Ich habe auch CHatGPT gefragt und habe ein Skript am Laufen.
                                          Das nimmt die 13 Stundenwerte für die Enerie, errechnet jeweils den Sonnenstand dazu und die Projektion auf die Modulfläche. Dann werden die 13 Werte addiert.

                                          Es kommt ein Wert raus, der in einem plausiblen Rahmen liegt. Aber heute hat es lange geregnet und es war wolkig und da war die Schätzung zu hoch.

                                          Ich weiss nicht, ob man ChatGPT Programme veröffentlichen darf. Kann es Dir per Chat zukommen lassen bei Bedarf.

                                          Den diffusen Anteil habe ich mal weggelassen. Erst mal die Grundfunktion hinbekommen.
                                          Für den hier behandelten Zweck ist der diffuse Anteil zumindest bei meiner Anlagengröße und -Anordnung nicht wichtig. Wenn der direkte Strahlungsanteil so klein wird, daß der Diffusanteil relevant wird, dann riskiere ich kein netzdienliches Verhalten, sondern fahre mit Priorität auf Selbstversorgung. An solchen Tagen ist Einspeisung - falls es die denn überhaupt gibt - meist eh willkommen.

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

                                          @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                          Ich weiss nicht, ob man ChatGPT Programme veröffentlichen darf

                                          ich würde mich sehr wundern, wenn hier kein chatGPT Bot im Forum unterwegs wäre um sein Wissen zu vermehren.
                                          Dementsprechend sollte das ein Nehmen und Geben sein, und wir unsere humanIntelligence mit seinem Wissen schärfen können.

                                          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 -

                                          K 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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          368

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          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