Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Vergleich Solarprognosen Solarwetter und brightsky

NEWS

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

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    229

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

Vergleich Solarprognosen Solarwetter und brightsky

Scheduled Pinned Locked Moved ioBroker Allgemein
235 Posts 7 Posters 16.2k Views 10 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 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 Do not disturb
    T Do not disturb
    ticaki
    wrote on last edited by
    #6

    @martybr

    Daily ist von mir zusammengerechnet aus den hourly werten.

    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

    Spenden

    HomoranH 1 Reply Last reply
    0
    • T ticaki

      @martybr

      Daily ist von mir zusammengerechnet aus den hourly werten.

      HomoranH Do not disturb
      HomoranH Do not disturb
      Homoran
      Global Moderator Administrators
      wrote on last edited by 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 -
      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      T 1 Reply Last reply
      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 Do not disturb
        T Do not disturb
        ticaki
        wrote on last edited by
        #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 Reply Last reply
        1
        • T ticaki

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

          HomoranH Do not disturb
          HomoranH Do not disturb
          Homoran
          Global Moderator Administrators
          wrote on last edited by
          #9

          @ticaki siehe Edit!

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

          1 Reply Last reply
          0
          • HomoranH Do not disturb
            HomoranH Do not disturb
            Homoran
            Global Moderator Administrators
            wrote on last edited by
            #10

            brightsky wird wegen Schummelns disqualifiziert 😂

            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 -
            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
            Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            T 1 Reply Last reply
            0
            • HomoranH Homoran

              brightsky wird wegen Schummelns disqualifiziert 😂

              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 Do not disturb
              T Do not disturb
              ticaki
              wrote on last edited by
              #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 Replies Last reply
              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
                wrote on last edited by
                #12

                @ticaki

                historische Prognosen klingt irgendwie merkwürdig 😊

                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 Reply Last reply
                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 Do not disturb
                  HomoranH Do not disturb
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by 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 🤔

                  @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 -
                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                  Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  T 1 Reply Last reply
                  0
                  • K Offline
                    K Offline
                    klassisch
                    Most Active
                    wrote on last edited by
                    #14

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

                    HomoranH 1 Reply Last reply
                    0
                    • K klassisch

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

                      HomoranH Do not disturb
                      HomoranH Do not disturb
                      Homoran
                      Global Moderator Administrators
                      wrote on last edited by
                      #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 -
                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      K 1 Reply Last reply
                      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
                        wrote on last edited by
                        #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 Reply Last reply
                        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 🤔

                          @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 Do not disturb
                          T Do not disturb
                          ticaki
                          wrote on last edited by 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 Reply Last reply
                          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 Do not disturb
                            HomoranH Do not disturb
                            Homoran
                            Global Moderator Administrators
                            wrote on last edited by
                            #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 -
                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                            Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                            T 1 Reply Last reply
                            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 Do not disturb
                              T Do not disturb
                              ticaki
                              wrote on last edited by
                              #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 Reply Last reply
                              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 Do not disturb
                                HomoranH Do not disturb
                                Homoran
                                Global Moderator Administrators
                                wrote on last edited by
                                #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 -
                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                T 2 Replies Last reply
                                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 Do not disturb
                                  T Do not disturb
                                  ticaki
                                  wrote on last edited by
                                  #21

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

                                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                  Spenden

                                  1 Reply Last reply
                                  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 Do not disturb
                                    T Do not disturb
                                    ticaki
                                    wrote on last edited by 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 Replies Last reply
                                    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 Do not disturb
                                      HomoranH Do not disturb
                                      Homoran
                                      Global Moderator Administrators
                                      wrote on last edited by 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 -
                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                      1 Reply Last reply
                                      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 Do not disturb
                                        HomoranH Do not disturb
                                        Homoran
                                        Global Moderator Administrators
                                        wrote on last edited by
                                        #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 😂 ?

                                        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 -
                                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                        1 Reply Last reply
                                        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
                                          wrote on last edited by 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 Reply Last reply
                                          1

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

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

                                          647

                                          Online

                                          32.8k

                                          Users

                                          82.8k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe