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

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.6k

Vergleich Solarprognosen Solarwetter und brightsky

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
234 Beiträge 7 Kommentatoren 10.8k Aufrufe 10 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T ticaki

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

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

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

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

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

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

    @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

    stur - die aktualisieren/erstellen sich um 5,

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

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

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

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

    1 Antwort Letzte Antwort
    0
    • T ticaki

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

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

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

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

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

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

      folge der sturen 5 Uhr Regel :joy: ?

      zu deinem EDIT

      @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

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

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

      Vielleicht kann @klassisch aushelfen

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

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

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

      1 Antwort Letzte Antwort
      0
      • T ticaki

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

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

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

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

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

        @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

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

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

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

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

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

        HomoranH 1 Antwort Letzte Antwort
        1
        • K klassisch

          @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

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

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

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

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

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

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

          @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

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

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

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

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

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

          K 1 Antwort Letzte Antwort
          0
          • 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
            #27

            @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

            Guckmal im Admin und sag mir, ob das was ich noch eingebaut habe was taugt

            Meinst du advanced und diesen DP?
            Screenshot_20250909-204555_Firefox.jpg

            auch wenn du deine trigonometrischen Kenntnisse bezweifelst, so ist es doch
            Screenshot_20250909-204633_Firefox.jpg
            verdammt dicht dran

            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:

              Guckmal im Admin und sag mir, ob das was ich noch eingebaut habe was taugt

              Meinst du advanced und diesen DP?
              Screenshot_20250909-204555_Firefox.jpg

              auch wenn du deine trigonometrischen Kenntnisse bezweifelst, so ist es doch
              Screenshot_20250909-204633_Firefox.jpg
              verdammt dicht dran

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

              @homoran
              Bei mir war es auch recht dicht dran. Hier ist aber ein L Dach und ich habe Abschattungen in der Formel ignoriert

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              HomoranH 2 Antworten Letzte Antwort
              2
              • HomoranH Homoran

                @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

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

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

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

                @homoran Ich hoffe doch schwer, daß ChatGPT hier mal vorbei schaut. Irgendwoher muss ja das Wissen kommen.
                Hier mal das Skript auf Basis von ChatGPT.
                Es hat noch einige spezifische Datenpunkte aus meinem userdata Bestand.
                Dann wird npm "suncalc" benötigt. War bei mir schon im Bestand. Mit dem Handling der dependencies kenne ich mich nicht aus.

                Ich lasse das Skript um 05:00 und 08:00 rennen.
                Falls es untertägig gestartet wird, verwende ich noch den bis dahin angefallenen PV Ertrag mit, weil das Skript ja nur in die Zukunft schaut, wenn ich die Datenstruktur richtig verstanden habe.

                
                /*********************************************
                *
                *  calculates expected sun energy on base of DWD stations
                *  provided by bright sky adapter
                *
                * suncalc is mandatory
                * if not already installed
                * cd /opt/iobroker
                * npm install suncalc
                *    on my Win computer
                *    C:\ioBroker>npm install suncalc
                *    and was already existent
                *
                *  Some common terms used in this script according https://www.intechopen.com/chapters/82468
                *  Global horizontal irradiance (GHI) is the solar irradiance from the hemisphere above on a horizontal surface
                *  plane of array (POA) or global tilted irradiance (GTI) is solar irradiance incident on a tilted plane (PV panel
                *  
                *
                *
                *
                *
                ***/
                
                
                // ==========================
                // Konfiguration
                // ==========================
                const AREA_M2      = 20 * 1.755 * 1.038;    // Fläche A in m²
                const EFFICIENCY   = 0.20;  // Wirkungsgrad (z. B. 20% -> 0.20)
                const ALPHA_DEG    = -10;     // Azimut der Fläche (0 = Süd, negativ Ost, positiv West)
                const BETA_DEG     = 30;    // Neigung in Grad gegen Horizontal
                
                const pVEnergyUpToNowId= '0_userdata.0.power.pvFrDCEnergy.pvFrDCEnergyToday';
                var pVEnergyUpToNow = getState(pVEnergyUpToNowId).val;
                
                // ==========================
                const SunCalc = require("suncalc");
                
                function deg2rad(d){ return d * Math.PI / 180; }
                function rad2deg(r){ return r * 180 / Math.PI; }
                
                // Hauptfunktion
                function calcPOA() {
                    // 1) Koordinaten holen
                    const lat = getState("brightsky.0.current.sources.00.lat").val;
                    const lon = getState("brightsky.0.current.sources.00.lon").val;
                
                    const alpha = deg2rad(ALPHA_DEG);
                    const beta  = deg2rad(BETA_DEG);
                
                    let results = [];
                    let totalEnergy = 0;
                
                    for (let i=0; i<=12; i++) {
                        const base = "brightsky.0.hourly." + ("0"+i).slice(-2);
                
                        const tsStr = getState(base + ".timestamp").val; // z. B. 2025-09-09T03:00:00+00:00
                        const ghi   = getState(base + ".solar").val;     // in kWh/m²
                
                        if (!tsStr || ghi == null) continue;
                
                        const time = new Date(tsStr); // iobroker zeigt automatisch in Lokaltime
                        const pos = SunCalc.getPosition(time, lat, lon);
                
                        const h = pos.altitude;  // Sonnenhöhe (rad)
                        //console.log('Sonnenhoehe: ' + h);
                        const gamma_s = pos.azimuth; // Sonnenazimut (rad, von Süden gegen Westen)
                
                        if (h <= 0) {
                            results.push({hour:i, time:time.toString(), ghi, poa:0, energy:0});
                            continue;
                        }
                
                        const cosTheta = Math.sin(h) * Math.cos(beta) +
                                         Math.cos(h) * Math.sin(beta) * Math.cos(gamma_s - alpha);
                
                        const Rb = Math.max(0, cosTheta) / Math.max(1e-6, Math.sin(h));
                        const RbClamped = Math.min(Rb, 5);
                
                        const poa_kwh_m2 = ghi * RbClamped;
                        const energy_kWh = poa_kwh_m2 * AREA_M2 * EFFICIENCY;
                
                        totalEnergy += energy_kWh;
                
                        results.push({
                            hour: i,
                            time: time.toString(),
                            ghi,
                            poa_kwh_m2,
                            energy_kWh
                        });
                    }
                
                    log("Gesamte erwartete Energie (next 12h): " + totalEnergy.toFixed(2) + " kWh");
                    log("Gesamte erwartete Energie heute: " + Math.round(totalEnergy + getState(pVEnergyUpToNowId).val/1000) + " kWh"); 
                    log("Detail: " + JSON.stringify(results, null, 2));
                
                    // Optional: Ergebnis in einen Datenpunkt schreiben
                    //on my ioBroker: 0_userdata.0.power.pvFrDCEnergy
                    const solarforecastUserdataId = "0_userdata.0.power.pvFrDCEnergy.SolarForecast-total12h";
                    createState(solarforecastUserdataId, 0, {type: "number", unit: "kWh"});
                    setState(solarforecastUserdataId, Math.round(totalEnergy + getState(pVEnergyUpToNowId).val/1000), true); // if run after 05:00, the energy which was already harvested has to be added
                }
                
                // Skript beim Start und jeden Morgen um 05:10 Uhr ausführen
                schedule("10 5 * * *", calcPOA); 
                schedule("10 8 * * *", calcPOA); 
                
                calcPOA(); // sofort beim Start einmalig
                
                
                
                
                1 Antwort Letzte Antwort
                0
                • T ticaki

                  @homoran
                  Bei mir war es auch recht dicht dran. Hier ist aber ein L Dach und ich habe Abschattungen in der Formel ignoriert

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

                  @ticaki wenn man die heutige Sonnenscheinverteilung bei mir sieht
                  Screenshot_20250909-210217_Firefox.jpg
                  hat heute wahrscheinlich die diffuse Strahlung das meiste gebracht :joy:

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

                    @ticaki wenn man die heutige Sonnenscheinverteilung bei mir sieht
                    Screenshot_20250909-210217_Firefox.jpg
                    hat heute wahrscheinlich die diffuse Strahlung das meiste gebracht :joy:

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

                    @homoran sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                    @ticaki wenn man die heutige Sonnenscheinverteilung bei mir sieht hat heute wahrscheinlich die diffuse Strahlung das meiste gebracht :joy:

                    An solchen Tagen ist die Fahrweise einfach. Ich habe heute auch alles selbst gebraucht.

                    HomoranH 1 Antwort Letzte Antwort
                    0
                    • K klassisch

                      @homoran sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                      @ticaki wenn man die heutige Sonnenscheinverteilung bei mir sieht hat heute wahrscheinlich die diffuse Strahlung das meiste gebracht :joy:

                      An solchen Tagen ist die Fahrweise einfach. Ich habe heute auch alles selbst gebraucht.

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

                      @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                      Ich habe heute auch alles selbst gebraucht.

                      "Meine Batterie ist alle"
                      (Bis auf die Reserve für Blackout)

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

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

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

                      K 1 Antwort Letzte Antwort
                      0
                      • HomoranH Homoran

                        @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                        Ich habe heute auch alles selbst gebraucht.

                        "Meine Batterie ist alle"
                        (Bis auf die Reserve für Blackout)

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

                        @homoran Heute wird es interessant. Morgennebel, der auch in der DWD App erkennbar ist. Es fehlen also am Morgen 1 bis 2 Stunden Sonne. Dennoch sagt das Skript einen relativ guten Jahresertrag voraus, der es auf Platz 131 in 2025 schaffen würde. Mal schauen was passiert. Wahrscheinlich muß ich den Wirkungsgrad noch ein paar Prozentpunkte pauschal runter nehmen.

                        HomoranH 1 Antwort Letzte Antwort
                        0
                        • K klassisch

                          @homoran Heute wird es interessant. Morgennebel, der auch in der DWD App erkennbar ist. Es fehlen also am Morgen 1 bis 2 Stunden Sonne. Dennoch sagt das Skript einen relativ guten Jahresertrag voraus, der es auf Platz 131 in 2025 schaffen würde. Mal schauen was passiert. Wahrscheinlich muß ich den Wirkungsgrad noch ein paar Prozentpunkte pauschal runter nehmen.

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

                          @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                          Heute wird es interessant

                          ja!

                          der estimate passt heute zu meiner Faktorisierung.
                          Screenshot_20250910-085705_Firefox.jpg

                          ich muss mich irgendwann :tm: mal mit den stündlichen Werten beschäftigen

                          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

                            @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                            Heute wird es interessant

                            ja!

                            der estimate passt heute zu meiner Faktorisierung.
                            Screenshot_20250910-085705_Firefox.jpg

                            ich muss mich irgendwann :tm: mal mit den stündlichen Werten beschäftigen

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

                            @homoran sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                            ich muss mich irgendwann :tm: mal mit den stündlichen Werten beschäftigen

                            hm von X kenne ich da das soon ™ - du wast da nicht mal aktiv vor jahrzehnten? :)

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            HomoranH 1 Antwort Letzte Antwort
                            0
                            • T ticaki

                              @homoran sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                              ich muss mich irgendwann :tm: mal mit den stündlichen Werten beschäftigen

                              hm von X kenne ich da das soon ™ - du wast da nicht mal aktiv vor jahrzehnten? :)

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

                              @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                              du wast da nicht mal aktiv vor jahrzehnten?

                              never! keine unsoziale Medien!

                              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 wenn man die heutige Sonnenscheinverteilung bei mir sieht
                                Screenshot_20250909-210217_Firefox.jpg
                                hat heute wahrscheinlich die diffuse Strahlung das meiste gebracht :joy:

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

                                [OT]
                                @homoran sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                Screenshot_20250909-210217_Firefox.jpg

                                Wie erzeugst Du den underlay, also die hellgraue Parabel? Das muß doch auch dynamisch sein. Wäre hier auch vorteilhaft. Dann könnte man sehen, wie zutreffend die stündliche Prognose startet.

                                HomoranH 1 Antwort Letzte Antwort
                                0
                                • HomoranH Homoran

                                  @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                  du wast da nicht mal aktiv vor jahrzehnten?

                                  never! keine unsoziale Medien!

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

                                  @homoran
                                  vor Jahrzehnte war X nicht vermurks sondern ne Weltraumhandelssimulation von Egosoft :)

                                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                  Spenden

                                  1 Antwort Letzte Antwort
                                  1
                                  • K klassisch

                                    [OT]
                                    @homoran sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                    Screenshot_20250909-210217_Firefox.jpg

                                    Wie erzeugst Du den underlay, also die hellgraue Parabel? Das muß doch auch dynamisch sein. Wäre hier auch vorteilhaft. Dann könnte man sehen, wie zutreffend die stündliche Prognose startet.

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

                                    @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                    Wie erzeugst Du den underlay, also die hellgraue Parabel?

                                    Das ist eine empirisch ermittelte Parabel. Jetzt im Bereich Equinoktium passt sie ganz gut, zur Sommersonnenwende noch nicht.
                                    Schlimmer wurde das Ganze als ich versuchte noch die Temperatur einfließen zu lassen.
                                    Da ich (noch) nicht wirklich die Paneltemperatur zur Verfügung habe, arbeite ich mit der Lufttemperatur.
                                    Bei reichlich Wind sind die Panels wegen doppellagiger Hinterlüftung aber anscheinend deutlich kühler.

                                    Der neue Sensor liegt bereit. will ich im Herbst unter zwei Panels kleben.

                                    Ich seh mal ob ich das Teilblockly sinnvoll hier hereinbekomme

                                    EDIT:
                                    ist das lesbar?
                                    Screenshot_20250910-124217_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
                                    0
                                    • HomoranH Homoran

                                      @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                      Wie erzeugst Du den underlay, also die hellgraue Parabel?

                                      Das ist eine empirisch ermittelte Parabel. Jetzt im Bereich Equinoktium passt sie ganz gut, zur Sommersonnenwende noch nicht.
                                      Schlimmer wurde das Ganze als ich versuchte noch die Temperatur einfließen zu lassen.
                                      Da ich (noch) nicht wirklich die Paneltemperatur zur Verfügung habe, arbeite ich mit der Lufttemperatur.
                                      Bei reichlich Wind sind die Panels wegen doppellagiger Hinterlüftung aber anscheinend deutlich kühler.

                                      Der neue Sensor liegt bereit. will ich im Herbst unter zwei Panels kleben.

                                      Ich seh mal ob ich das Teilblockly sinnvoll hier hereinbekomme

                                      EDIT:
                                      ist das lesbar?
                                      Screenshot_20250910-124217_Firefox.jpg

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

                                      [OT]
                                      @homoran Wow, mit Temperaturabhängigkeit! Das sieht etwas nach @Homoran schen Perfektionismus aus.
                                      So viel Aufwand, werde ich nicht spendieren. Wenn ich schon Wetter höre, geht mein Fehlerband gleich ganz weit auf.
                                      Aber von vorne: Hat diese underlay Kurve einen eigenen Datenpunkt mit einer Sequenz von ts und data, die morgens für history erzeugt wird und dann von flot mit angezeigt wird?

                                      HomoranH 1 Antwort Letzte Antwort
                                      0
                                      • K klassisch

                                        [OT]
                                        @homoran Wow, mit Temperaturabhängigkeit! Das sieht etwas nach @Homoran schen Perfektionismus aus.
                                        So viel Aufwand, werde ich nicht spendieren. Wenn ich schon Wetter höre, geht mein Fehlerband gleich ganz weit auf.
                                        Aber von vorne: Hat diese underlay Kurve einen eigenen Datenpunkt mit einer Sequenz von ts und data, die morgens für history erzeugt wird und dann von flot mit angezeigt wird?

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

                                        @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                        Hat diese underlay Kurve einen eigenen Datenpunkt

                                        ja!

                                        @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                        mit einer Sequenz von ts und data, die morgens für history erzeugt wird

                                        nein, das kann ich nicht.

                                        Die wird live erzeugt (Temperatur und Wind [fehlt noch] kenne ich außerdem morgens noch nicht)

                                        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

                                          @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                          Hat diese underlay Kurve einen eigenen Datenpunkt

                                          ja!

                                          @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                          mit einer Sequenz von ts und data, die morgens für history erzeugt wird

                                          nein, das kann ich nicht.

                                          Die wird live erzeugt (Temperatur und Wind [fehlt noch] kenne ich außerdem morgens noch nicht)

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

                                          @homoran
                                          dafür gibts einen Wetteradapter die sagen dir was für temperaturen du erwarten kannst und wind ist da auch :P

                                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                          Spenden

                                          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

                                          873

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe