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
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Vergleich Solarprognosen Solarwetter und brightsky

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
234 Beiträge 7 Kommentatoren 11.7k 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.
  • M MartyBr

    @homoran Lustig ist, dass meine Anlage 2600 W liefert und die Prognose 0 W angibt.
    Ich monitore das mal einige Tage.

    Edit:
    Ich hatte bei current geschaut. Der richtige Wert steht bei daily.

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

    @martybr

    Daily ist von mir zusammengerechnet aus den hourly werten.

    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

    Spenden

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

                                          825

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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