Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Vergleich Solarprognosen Solarwetter und brightsky

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Vergleich Solarprognosen Solarwetter und brightsky

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @klassisch last edited by Homoran

      @klassisch geht zwar inzwischen schon ins OT vom OT, aber egal.

      ich hab jetzt diesen DP angelegt.
      Screenshot_20250918-123009_Firefox.jpg
      den werde ich wahrscheinlich historisiwren müssen, oder?

      und dann mit sendto füttern?

      muss mal dein js verdauen und in Blockly transformieren, damit ich das auch später noch nachvollziehen und ggf. woanders einsetzen kann

      EDIT:
      Bild nachgeliefert

      K 1 Reply Last reply Reply Quote 0
      • K
        klassisch Most Active @Homoran last edited by klassisch

        @homoran sagte in Vergleich Solarprognosen Solarwetter und brightsky:

        @klassisch geht zwar inzwischen schon ins OT vom OT, aber egal.

        ich hab jetzt diesen DP angelegt.
        Gut

        den werde ich wahrscheinlich historisieren müssen, oder?

        Ja, history ankreuzen, damit history sich drum kümmert

        und dann mit sendto füttern?

        Ganz normal mit setState, wie oben gezeigt

        muss mal dein js verdauen und in Blockly transformieren, damit ich das auch später noch nachvollziehen und ggf. woanders einsetzen kann

        Na, wer weiß. Vielleicht kann das auch mal der Adapter?

        Edit:
        sendTo braucht man, wenn history Datensätze löschen soll.

        Edit2:

        // Neue Werte in die History schreiben
        
                myResultSteps.forEach(entry => {
        
                    setState(id, {
        
                        val: entry.val,
        
                        ts: entry.ts,
        
                        ack: true
        
                    });
        

        myResultSteps ist ein array mit den einzelnen Wertepaaren (val, ts) in der Perlenkette.

        forEach nudelt die von vorne bis hinten durch

        Und steState gibt die weg ans Fremework und durch das history-Kreuzchen kümmert sich history drum und organsiert die files.
        So stelle ich mir das vor.

        Homoran 1 Reply Last reply Reply Quote 1
        • K
          klassisch Most Active last edited by

          Und warum machen wir die Prognosen? Z.B. für das netzdienliche Einspeisen.
          Unser Netzbetreiber zeigt die aktuelle (geschätzte??) Situation in unserem Ort

          546dd734-be23-4efb-bbfd-1f4d834e7221-grafik.png

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @klassisch last edited by

            @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

            Unser Netzbetreiber zeigt die aktuelle (geschätzte??) Situation in unserem Ort

            ooh, dann weisst du sogar was der will.
            muss mal suchen, ob es so etwas hier auch gibt.

            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @klassisch last edited by

              @klassisch sorry, Bild fehlte, hab's editiert

              for each ist klar, var id = DatenpunktID hinzufügen ??

              K 1 Reply Last reply Reply Quote 0
              • K
                klassisch Most Active @Homoran last edited by klassisch

                @homoran id ist der Datenpunkt. z.B. '0_userdata.0.power.pvFrDCEnergy.SolarForecastPowerSteps'

                Edit: Tricky wird es, wenn neue Forcast-Werte kommen. Denn dann will man die alten (schlechteren) raus haben und muß löschen bevor man neue reinschreibt. Dabei hilft sendTo(history(id,'deleteRange' ...

                T Homoran 2 Replies Last reply Reply Quote 1
                • T
                  ticaki Developer @klassisch last edited by

                  @klassisch

                  man kanns aber auch einfach woanders hin spiegeln 🙂

                  K 1 Reply Last reply Reply Quote 0
                  • K
                    klassisch Most Active @ticaki last edited by

                    @ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                    @klassisch

                    man kanns aber auch einfach woanders hin spiegeln 🙂

                    Das habe ich nicht verstanden.
                    Einen anderen Datenpunkt nehmen? Also einen Datenpunkt für die 05:00 und einen anderen für die 08:00 Prognose?
                    Wenn man 24 oder 48h forecast hat, wird man ums löschen kaum herumkommen.

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @klassisch last edited by Homoran

                      @klassisch ja, so hab ich das verstanden und versucht
                      Screenshot_20250918-134108_Firefox.jpg

                      ich denke, den Rest muss ich in dem Textbaustein zusammenbauen.

                      Der Code hat zumindest schon eine leichte Ähnlichkeit

                      var id;
                      
                      
                      id = 'Messwerte.0.Solaranlage.Prognosen.clearSkyHourly';
                      sendTo('history.0', 'send', {
                        'parameter': '' + String(id),
                      });
                      

                      EDIT:
                      manchmal muss man erst posten um das Zahnrad zu sehen
                      Screenshot_20250918-134546_Firefox.jpg

                      aber so richtig passt es auch nicht

                      var id;
                      
                      
                      id = 'Messwerte.0.Solaranlage.Prognosen.clearSkyHourly';
                      sendTo('history.0', 'send', {
                        'id': id,
                        'val': '',
                        'ts': '',
                        'ack': '',
                      });
                      
                      K 1 Reply Last reply Reply Quote 0
                      • K
                        klassisch Most Active @Homoran last edited by

                        @homoran das einfache Speichern geht zumindest im Skript mit setState.
                        Blockly kenne ich nicht

                        1 Reply Last reply Reply Quote 0
                        • T
                          ticaki Developer last edited by ticaki

                          Mal was kompliziertes - hab keine Lust das in den Adapter einzubauen

                          Klont einen Datenpunkt oder ein Verzeichnis (sourceDir) in das Verzeichnis (targetDir) und schreibt alle Datenpunkte mit dem Zeitstempel relativ zum tigger zeitpunkt (ahead)

                          const targetDir = '0_userdata.0.brightsky'
                          const sourceDir = 'brightsky.0.hourly.05'
                          const ahead = 60 * 1 // 1 Stunde
                          
                          // ---
                          // code
                          // ---
                          
                          extendObject(targetDir,{type: "channel", common:{name:sourceDir}});
                          
                          const r = new RegExp(`^${sourceDir.replace(/[\\^$.*+?()[]{}|/]/g, '\\$&')}.*`);
                          on({id:r, change: 'any'}, async (dp) => {
                              const end = dp.id.replace(`${sourceDir}.`,'');
                              const tDp = `${targetDir}.${end}`
                              if (!existsObject(tDp)) {
                                  const obj = getObject(dp.id);
                                  const newObj = {
                                      type: obj.type,
                                      common: obj.common,
                                      native: {}
                                  }
                                  await extendObjectAsync(tDp, newObj as any)
                                  await sleep(50);
                              }
                              const ts = Date.now() + ahead * 60 * 1000
                              setState(tDp,{val: dp.state.val, from: dp.state.from, ack:dp.state.ack, ts: ts, lc:ts});
                              log(`write state ${dp.id} to ${tDp} with val: ${dp.state.val}`)
                          })
                          

                          Das log am Ende kann man auskommentieren - das macht nur was, wenn die datenpunkte triggern - außer den channel erstellen wo es rein soll.

                          Hoffe hab den bedarf richtig verstanden... na wenn nicht, das kann ich bestimmt mal selbst gebrauchen.

                          EDIT: Muss setObject in den Einstellungen aktiviert sein.

                          1 Reply Last reply Reply Quote 0
                          • K
                            klassisch Most Active last edited by

                            Frage an den Meister @ticaki : In der Konfig des Adapters kann man ja z.B. die Anzahl der forecast Stunden eingeben. Kann man diese Zahl irgendwo aus der Datenstruktur auslesen oder ermitteln?

                            Homoran T 2 Replies Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @klassisch last edited by

                              @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                              Kann man diese Zahl irgendwo aus der Datenstruktur auslesen oder ermitteln?

                              ich hatte gestern abend noch parallel einen Thread wegen Blockly aufgemacht.
                              Eine ähnliche Frage habe ich gerade da gestellt.
                              https://forum.iobroker.net/post/1295083

                              nicht wörtlich, hat aber das gleiche Ziel.

                              1 Reply Last reply Reply Quote 1
                              • T
                                ticaki Developer @klassisch last edited by

                                @klassisch

                                Ja, die steht in getObject(system.adapter.brightsky.0) und dort im json unter native.hours.

                                K 1 Reply Last reply Reply Quote 2
                                • K
                                  klassisch Most Active @ticaki last edited by

                                  @ticaki Vielen Dank, ich habe es gefunden

                                  1 Reply Last reply Reply Quote 0
                                  • K
                                    klassisch Most Active last edited by

                                    Wenn ich richtig verstanden habe, werden vom Adapter um 05:00 und um 08:00 die DWD Daten geholt und der Obejktbaum aufgefrischt.
                                    Bei den stündlichen Daten kann ich das sowohl im solar und im solar_estimation sehen. Hier scheint das Update sogar noch häufiger (stündlich?) zu sein.
                                    Bei den daily wie z.B. brightsky.0.daily.00.solar_estimate oder auch solar sehe ich das nicht. Hier bleibt der 05:00 Wert stehen.
                                    Stell hier DWD keine neuen Werte zur Verfügung, oder werden die vom Adapter hicht eingepflegt?

                                    Homoran 1 Reply Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators @klassisch last edited by Homoran

                                      @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                      sehe ich das nicht.

                                      das wird um 0:00, 05:00 und um 18:00 aufgefrischt.
                                      deswegen "pinne" ich mir die 05:00 Werte um auch abends nach SU noch die Prognose bewerten zu können.
                                      was nutzen mir da dann die aktuellen Echtwerte!?

                                      andere Frage:
                                      ich versuche gerade die hourly Daten im Voraus in flot zu bekommen.
                                      @paul53 hilft mir da gewaltig.
                                      Das sind aber stündliche kWh Werte, während mein chart ja Leistungen in Watt über die Zeit darstellt.
                                      ich bräuchte da wahrscheinlich einen average über die jeweilige Stunde.
                                      Wie machst du das?
                                      die Werte sind bei mir irgendwie zu niedrig

                                      [{"val":527,"ts":1758351600000,"ack":true},{"val":1211,"ts":1758355200000,"ack":true},{"val":1993,"ts":1758358800000,"ack":true},{"val":2449,"ts":1758362400000,"ack":true},{"val":2532,"ts":1758366000000,"ack":true},{"val":2293,"ts":1758369600000,"ack":true},{"val":1823,"ts":1758373200000,"ack":true},{"val":1276,"ts":1758376800000,"ack":true},{"val":780,"ts":1758380400000,"ack":true},{"val":506,"ts":1758384000000,"ack":true},{"val":178,"ts":1758387600000,"ack":true},{"val":0,"ts":1758391200000,"ack":true},{"val":0,"ts":1758394800000,"ack":true}] 
                                      

                                      Screenshot_20250920-102846_Firefox.jpg

                                      K 1 Reply Last reply Reply Quote 0
                                      • K
                                        klassisch Most Active @Homoran last edited by klassisch

                                        @homoran sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                        das wird um 0:00, 05:00 und um 18:00 aufgefrischt.

                                        Wenn ich mir jetzt gegen 10:30 die heutigen daily Werte
                                        brightsky.0.daily.00.solar
                                        brightsky.0.daily.00.solar_estimate
                                        anschaue, dann haben die mit mouseover einen timestamp von 05:00

                                        Wenn ich mir jetzt gegen 10_30 die hourly Werte
                                        brightsky.0.hourly.00.solar
                                        brightsky.0.hourly.00.solar_estimate
                                        anschauen, dann sehe ich den timestamp 10:00

                                        deswegen "pinne" ich mir die 05:00 Werte um auch abends nach SU noch die Prognose bewerten zu können.
                                        was nutzen mir da dann die aktuellen Echtwerte!?

                                        Das mache ich änlich. Momentan schaue ich mir noch die 05:00 und die 08:00 Werte an, wobei sich das bald eh relativieren wird 😞

                                        andere Frage:
                                        ich versuche gerade die hourly Daten im Voraus in flot zu bekommen.

                                        Also so:
                                        47a36b4e-7e38-4294-8d84-d9dc705df430-grafik.png

                                        Duneklblau mein Frickelskript, Hallblau aus den hourly-Werten solar_estimate des Adapters um 08:00 von meinem Frickelskript in die timeline geschrieben.

                                        Und da siehst Du auch schon die Lösung zur nächsten Frage, die ganz einfach ist. Die Leistung, die benötigt wird, um in einer Stunde (1h) xkWh zu erzeugen ist xkW. Die Zahlen sind gleich, da die timebase von 1h gleich ist.
                                        Um 08:00 habe ich den damaligen 10:00 Wert von 3543 eingetragen, den siehts Du im plot und Ausschnitt des timeline histroy files:

                                        {
                                            "val": 3543,
                                            "ack": 1,
                                            "ts": 1758355200000,
                                            "q": 0,
                                            "c": "script.js.EnergyManagement.PvForecastBrightSkyBased",
                                            "from": "system.adapter.javascript.0",
                                            "user": "system.user.admin"
                                          },
                                        

                                        Derzeit hat in der Datenbasis des Adapters die 10:00 solar_estimate den Wert 4.401, der um 10:00 eingetragen wurde.

                                        @paul53 hilft mir da gewaltig.

                                        Ja, der kanns halt!

                                        Das sind aber stündliche kWh Werte, während mein chart ja Leistungen in Watt über die Zeit darstellt.
                                        ich bräuchte da wahrscheinlich einen average über die jeweilige Stunde.
                                        Wie machst du das?

                                        Wie oben gesagt, die Zahlen sind gleich

                                        Homoran 1 Reply Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators @klassisch last edited by Homoran

                                          @klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                          Die Leistung, die benötigt wird, um in einer Stunde (1h) xkWh zu erzeugen ist xkW. Die Zahlen sind gleich, da die timebase von 1h gleich ist.

                                          ja! aber warum nur 1200 statt 3000+??
                                          also kein Denkfehler meinerseits. Danke

                                          dann haben die mit mouseover einen timestamp von 05:00

                                          passt ja. 1800 ist der nächste refresh

                                          K 1 Reply Last reply Reply Quote 0
                                          • K
                                            klassisch Most Active @Homoran last edited by klassisch

                                            @homoran sagte in Vergleich Solarprognosen Solarwetter und brightsky:

                                            ja! aber warum nur 1200 statt 3000+??
                                            also kein Denkfehler meinerseits. Danke

                                            Die Frage habe ich jetzt nicht verstanden.
                                            Siehe Plot oben. Der 10:00 Wert war 3543 kWh innerhalb der Stunde (nehme an von 10:00 bis 11:00, könnte aber auch 09:30 bis 10:30 sein, hier egal, eine Stunde halt). Für diese Stunde braucht man eine Stunde lang 3543 kW.
                                            Anders ist es im iMSys, wo die Basis 15 Minuten ist. Da muß man die kWh-Werte mit 4 multiplizieren um auf die Leistung in kW zu kommen.

                                            Sorry, die Daten sind natürlich von meiner Anlage mit anderer Fläche Orientierung etc.

                                            Homoran 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            894
                                            Online

                                            32.1k
                                            Users

                                            80.7k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            218
                                            5108
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo