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. Solarprognose

NEWS

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

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

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

Solarprognose

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
solarprognoseadapterjavascript
157 Beiträge 27 Kommentatoren 27.6k Aufrufe 30 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.
  • paul53P paul53

    @babl sagte in Solarprognose:

    schaut doch gut aus.

    Dann hier ein komplettes Script, das jede Stunde von 4:16 Uhr bis 22:16 Uhr die Daten holt:

    const url = 'hier die komplette URL eintragen';
    const path = '0_userdata.0.Solar.';
    const idLeistung = path + 'Leistung.';
    const idEnergie  = path + 'Energie.';
    
    schedule('16 4-22 * * *', function() { 
        request(url, function (error, response, result) {
            if(error) log(error, 'error');
            else {
                let obj = JSON.parse(result);
                if(obj.status) log('Fehler: ' + obj.status, 'warn');
                else {
                    let data = obj.data;
                    for(let entry in data) {
                        let time = formatDate(parseInt(entry), 'MM-DD.hh:mm');
                        if(existsState(idLeistung + time)) setState(idLeistung + time, data[entry][0], true);
                        else createState(idLeistung + time, data[entry][0], {
                            type: 'number', 
                            role: 'value', 
                            name: 'Solarleistung ' + formatDate(parseInt(entry), 'DD.MM. hh:mm'),
                            read: true,
                            write: false,
                            unit: 'kW'
                        });
                        if(existsState(idEnergie + time)) setState(idEnergie + time, data[entry][1], true);
                        else createState(idEnergie + time, data[entry][1], {
                            type: 'number', 
                            role: 'value', 
                            name: 'Solarenergie ' + formatDate(parseInt(entry), 'DD.MM. hh:mm'),
                            read: true,
                            write: false,
                            unit: 'kWh'
                        });
                    }
                }
            }
        });
    });
    
    B Offline
    B Offline
    babl
    schrieb am zuletzt editiert von
    #23

    @paul53 sagte in Solarprognose:

    wow, cool wie kann man sowas so schnell erstellen, gibt es hier eine anleitung? ich will dich ja nicht andauernd nerven :)

    paul53P 1 Antwort Letzte Antwort
    0
    • B babl

      @paul53 sagte in Solarprognose:

      wow, cool wie kann man sowas so schnell erstellen, gibt es hier eine anleitung? ich will dich ja nicht andauernd nerven :)

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #24

      @babl sagte:

      wie kann man sowas so schnell erstellen

      Etwas Erfahrung gehört schon dazu.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      HomoranH B 2 Antworten Letzte Antwort
      0
      • paul53P paul53

        @babl sagte:

        wie kann man sowas so schnell erstellen

        Etwas Erfahrung gehört schon dazu.

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

        @paul53 sagte in Solarprognose:

        Etwas Erfahrung gehört schon dazu.

        Die Untertreibung des Jahrhunderts ! ;-)

        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 -

        Meister MopperM 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @babl sagte:

          wie kann man sowas so schnell erstellen

          Etwas Erfahrung gehört schon dazu.

          B Offline
          B Offline
          babl
          schrieb am zuletzt editiert von
          #26

          @paul53 wer es glaubt. eine frage noch den datenpunkt "0_userdata.0.Solar." muß ich selbst erstellen in den objekten, oder?

          paul53P 1 Antwort Letzte Antwort
          0
          • B babl

            @paul53 wer es glaubt. eine frage noch den datenpunkt "0_userdata.0.Solar." muß ich selbst erstellen in den objekten, oder?

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #27

            @babl sagte:

            den datenpunkt "0_userdata.0.Solar." muß ich selbst erstellen in den objekten, oder?

            Nein, die Struktur wird durch das Script erzeugt. Das ist kein Datenpunkt, sondern ein Ordner.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            B 2 Antworten Letzte Antwort
            0
            • paul53P paul53

              @babl sagte:

              den datenpunkt "0_userdata.0.Solar." muß ich selbst erstellen in den objekten, oder?

              Nein, die Struktur wird durch das Script erzeugt. Das ist kein Datenpunkt, sondern ein Ordner.

              B Offline
              B Offline
              babl
              schrieb am zuletzt editiert von
              #28

              @paul53 ok danke, ich habe es dann mal aktiviert, schaun wir mal was passiert, aufgeregt.:+1:

              1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @babl sagte:

                in flot ein diagramm zum möglichen solarertrag daß ich dann in vis einbinden kann.

                Flot kann nur History-Daten mit Echtzeit als x-Achse darstellen, keine Vorausschau.

                R Offline
                R Offline
                rudiraz
                schrieb am zuletzt editiert von rudiraz
                #29

                @paul53 sagte in Solarprognose:

                @babl sagte:

                in flot ein diagramm zum möglichen solarertrag daß ich dann in vis einbinden kann.

                Flot kann nur History-Daten mit Echtzeit als x-Achse darstellen, keine Vorausschau.

                Ich habe leider auch keine andere Lösung gefunden.

                Da wir eine PV-Anlage nutzen, wäre auch ich sehr an der Prognose interessiert.
                Vor allem die grafische Darstellung.

                Grüße

                1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @babl sagte:

                  den datenpunkt "0_userdata.0.Solar." muß ich selbst erstellen in den objekten, oder?

                  Nein, die Struktur wird durch das Script erzeugt. Das ist kein Datenpunkt, sondern ein Ordner.

                  B Offline
                  B Offline
                  babl
                  schrieb am zuletzt editiert von
                  #30

                  @paul53 hallo schaut gut aus, die punkte werden erzeugt und stehen in den objekten, coole sache aber was mir gerade so kommt hier bläht sich ja dann die datenbank immens auf kann man eventuell dieses script erweitern und die vergangen tage us den objekten löschen?. Und ein weiteres Problem sehe ich noch wie ich die Daten verwenden kann denn morgen ist es ja ein anderer Datenpunkt. Hast du da eine Idee oder jemand anderes?

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • B babl

                    @paul53 hallo schaut gut aus, die punkte werden erzeugt und stehen in den objekten, coole sache aber was mir gerade so kommt hier bläht sich ja dann die datenbank immens auf kann man eventuell dieses script erweitern und die vergangen tage us den objekten löschen?. Und ein weiteres Problem sehe ich noch wie ich die Daten verwenden kann denn morgen ist es ja ein anderer Datenpunkt. Hast du da eine Idee oder jemand anderes?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #31

                    @babl
                    Da Du keine Auskunft gegeben hast, welche Daten Du abholst, musste das Datum mit in die Datenpunkt-ID. Ich habe es nur an den Daten selbst gesehen, dass es die Daten von 2 Tagen sind. Wenn Du mitteilst, dass immer die Werte von heute und morgen abgeholt werden, kann man auch mit festen Datenpunkt-IDs arbeiten, so dass deren Anzahl konstant bleibt.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    B 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @babl
                      Da Du keine Auskunft gegeben hast, welche Daten Du abholst, musste das Datum mit in die Datenpunkt-ID. Ich habe es nur an den Daten selbst gesehen, dass es die Daten von 2 Tagen sind. Wenn Du mitteilst, dass immer die Werte von heute und morgen abgeholt werden, kann man auch mit festen Datenpunkt-IDs arbeiten, so dass deren Anzahl konstant bleibt.

                      B Offline
                      B Offline
                      babl
                      schrieb am zuletzt editiert von
                      #32

                      @paul53 sorry dafür, das wußte ich nicht, schäm:disappointed_relieved:

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • B babl

                        @paul53 sorry dafür, das wußte ich nicht, schäm:disappointed_relieved:

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #33

                        @babl
                        Wenn nur die Werte von heute und morgen abgeholt werden, kann es so aussehen:

                        const url = 'hier die komplette URL eintragen';
                        const path = '0_userdata.0.Solar.';
                        const idLeistung = path + 'Leistung.';
                        const idEnergie  = path + 'Energie.';
                        
                        schedule('16 4-22 * * *', function() { 
                            request(url, function (error, response, result) {
                                if(error) log(error, 'error');
                                else {
                                    let obj = JSON.parse(result);
                                    if(obj.status) log('Fehler: ' + obj.status, 'warn');
                                    else {
                                        let data = obj.data;
                                        let wdHeute = new Date().getDay();
                                        for(let entry in data) {
                                            let wd = new Date(1000 * parseInt(entry)).getDay();
                                            let time = formatDate(parseInt(entry), 'hh:mm');
                                            if(wd == wdHeute) time = 'heute_' + time;
                                            else time = 'morgen_' + time;
                                            if(existsState(idLeistung + time)) setState(idLeistung + time, data[entry][0]);
                                            else createState(idLeistung + time, data[entry][0], {
                                                type: 'number', 
                                                role: 'value', 
                                                name: 'Solarleistung ' + time,
                                                read: true,
                                                write: false,
                                                unit: 'kW'
                                            });
                                            if(existsState(idEnergie + time)) setState(idEnergie + time, data[entry][1]);
                                            else createState(idEnergie + time, data[entry][1], {
                                                type: 'number', 
                                                role: 'value', 
                                                name: 'Solarenergie ' + time,
                                                read: true,
                                                write: false,
                                                unit: 'kWh'
                                            });
                                        }
                                    }
                                }
                            });
                        });
                        

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        B R 2 Antworten Letzte Antwort
                        1
                        • paul53P paul53

                          @babl
                          Wenn nur die Werte von heute und morgen abgeholt werden, kann es so aussehen:

                          const url = 'hier die komplette URL eintragen';
                          const path = '0_userdata.0.Solar.';
                          const idLeistung = path + 'Leistung.';
                          const idEnergie  = path + 'Energie.';
                          
                          schedule('16 4-22 * * *', function() { 
                              request(url, function (error, response, result) {
                                  if(error) log(error, 'error');
                                  else {
                                      let obj = JSON.parse(result);
                                      if(obj.status) log('Fehler: ' + obj.status, 'warn');
                                      else {
                                          let data = obj.data;
                                          let wdHeute = new Date().getDay();
                                          for(let entry in data) {
                                              let wd = new Date(1000 * parseInt(entry)).getDay();
                                              let time = formatDate(parseInt(entry), 'hh:mm');
                                              if(wd == wdHeute) time = 'heute_' + time;
                                              else time = 'morgen_' + time;
                                              if(existsState(idLeistung + time)) setState(idLeistung + time, data[entry][0]);
                                              else createState(idLeistung + time, data[entry][0], {
                                                  type: 'number', 
                                                  role: 'value', 
                                                  name: 'Solarleistung ' + time,
                                                  read: true,
                                                  write: false,
                                                  unit: 'kW'
                                              });
                                              if(existsState(idEnergie + time)) setState(idEnergie + time, data[entry][1]);
                                              else createState(idEnergie + time, data[entry][1], {
                                                  type: 'number', 
                                                  role: 'value', 
                                                  name: 'Solarenergie ' + time,
                                                  read: true,
                                                  write: false,
                                                  unit: 'kWh'
                                              });
                                          }
                                      }
                                  }
                              });
                          });
                          
                          B Offline
                          B Offline
                          babl
                          schrieb am zuletzt editiert von
                          #34

                          @paul53 top, jetzt muß ich nur noch das irgendwie zum anzeigen bringen

                          R 1 Antwort Letzte Antwort
                          0
                          • B babl

                            @paul53 top, jetzt muß ich nur noch das irgendwie zum anzeigen bringen

                            R Offline
                            R Offline
                            Rand
                            schrieb am zuletzt editiert von
                            #35

                            @babl

                            Bastele gerade an was ähnlichem mit solcast, und wollte das dann in Das Wetter (https://forum.iobroker.net/topic/32232/material-design-widgets-wetter-view) packen, so parallel zu Temperatur und Regenvorhersage...

                            Vieleicht wäre das ja auch für Dich ne Idee - bin nur leider noch nicht so weit.

                            B 1 Antwort Letzte Antwort
                            0
                            • HomoranH Homoran

                              @babl sagte in Solarprognose:

                              man das in dieser Form irgendwie darstellen.

                              ist jetzt etwas OT, aber 21 kWh am Tag bei maximal 3,1 kW klingt für mich etwas unglaublich.
                              Da müsste ja etwa 7 Stunden die Höchstleistung geliefert worden sein

                              H Offline
                              H Offline
                              hans_999
                              schrieb am zuletzt editiert von
                              #36

                              @Homoran said in Solarprognose:

                              ist jetzt etwas OT, aber 21 kWh am Tag bei maximal 3,1 kW klingt für mich etwas unglaublich.
                              Da müsste ja etwa 7 Stunden die Höchstleistung geliefert worden sein

                              Das ist laut Diagramm der Tagesertrag über 12 Stunden von 7-19 Uhr.
                              Von 10:30 bis 15:00 (also 4,5 Std.) liegt die Leistung jenseits der 2,5 kW.
                              Integriert über die Stundenleistung schaut es durchaus plausibel aus.
                              Zu Fuß einfach einmal alle Stundenwerte aufsummen, das kommt zumindest in die Richtung des Ertrags.

                              B 1 Antwort Letzte Antwort
                              0
                              • H hans_999

                                @Homoran said in Solarprognose:

                                ist jetzt etwas OT, aber 21 kWh am Tag bei maximal 3,1 kW klingt für mich etwas unglaublich.
                                Da müsste ja etwa 7 Stunden die Höchstleistung geliefert worden sein

                                Das ist laut Diagramm der Tagesertrag über 12 Stunden von 7-19 Uhr.
                                Von 10:30 bis 15:00 (also 4,5 Std.) liegt die Leistung jenseits der 2,5 kW.
                                Integriert über die Stundenleistung schaut es durchaus plausibel aus.
                                Zu Fuß einfach einmal alle Stundenwerte aufsummen, das kommt zumindest in die Richtung des Ertrags.

                                B Offline
                                B Offline
                                babl
                                schrieb am zuletzt editiert von
                                #37

                                @hans_999 gestern wurden 15,09 vorausgesagt tatsächlich kam ich auf 15,3 Gesamtleistung, heute werden 14,9 vorausgesagt mal schauen ich halt euch auf dem laufenden

                                1 Antwort Letzte Antwort
                                0
                                • R Rand

                                  @babl

                                  Bastele gerade an was ähnlichem mit solcast, und wollte das dann in Das Wetter (https://forum.iobroker.net/topic/32232/material-design-widgets-wetter-view) packen, so parallel zu Temperatur und Regenvorhersage...

                                  Vieleicht wäre das ja auch für Dich ne Idee - bin nur leider noch nicht so weit.

                                  B Offline
                                  B Offline
                                  babl
                                  schrieb am zuletzt editiert von
                                  #38

                                  @Rand wow schaut gut aus

                                  1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @babl
                                    Wenn nur die Werte von heute und morgen abgeholt werden, kann es so aussehen:

                                    const url = 'hier die komplette URL eintragen';
                                    const path = '0_userdata.0.Solar.';
                                    const idLeistung = path + 'Leistung.';
                                    const idEnergie  = path + 'Energie.';
                                    
                                    schedule('16 4-22 * * *', function() { 
                                        request(url, function (error, response, result) {
                                            if(error) log(error, 'error');
                                            else {
                                                let obj = JSON.parse(result);
                                                if(obj.status) log('Fehler: ' + obj.status, 'warn');
                                                else {
                                                    let data = obj.data;
                                                    let wdHeute = new Date().getDay();
                                                    for(let entry in data) {
                                                        let wd = new Date(1000 * parseInt(entry)).getDay();
                                                        let time = formatDate(parseInt(entry), 'hh:mm');
                                                        if(wd == wdHeute) time = 'heute_' + time;
                                                        else time = 'morgen_' + time;
                                                        if(existsState(idLeistung + time)) setState(idLeistung + time, data[entry][0]);
                                                        else createState(idLeistung + time, data[entry][0], {
                                                            type: 'number', 
                                                            role: 'value', 
                                                            name: 'Solarleistung ' + time,
                                                            read: true,
                                                            write: false,
                                                            unit: 'kW'
                                                        });
                                                        if(existsState(idEnergie + time)) setState(idEnergie + time, data[entry][1]);
                                                        else createState(idEnergie + time, data[entry][1], {
                                                            type: 'number', 
                                                            role: 'value', 
                                                            name: 'Solarenergie ' + time,
                                                            read: true,
                                                            write: false,
                                                            unit: 'kWh'
                                                        });
                                                    }
                                                }
                                            }
                                        });
                                    });
                                    
                                    R Offline
                                    R Offline
                                    RGW
                                    schrieb am zuletzt editiert von
                                    #39

                                    @paul53 Was ist "die komplette URL"?
                                    Das habe ich jetzt drinstehen: http://www.solarprognose.de/web/solarprediction/api/v1?access-token="Zugriffsschlüssel aus der API-Übersicht meines Standortes"&item="Standortnummer (ID)"&id="Anlagennummer (ID)" Vielleicht stelle ich mich dumm an, jedenfalls funktionierten alle meine Versuche nicht. Deshalb wäre ich dankbar für ein Beispiel.

                                    paul53P B 2 Antworten Letzte Antwort
                                    0
                                    • R RGW

                                      @paul53 Was ist "die komplette URL"?
                                      Das habe ich jetzt drinstehen: http://www.solarprognose.de/web/solarprediction/api/v1?access-token="Zugriffsschlüssel aus der API-Übersicht meines Standortes"&item="Standortnummer (ID)"&id="Anlagennummer (ID)" Vielleicht stelle ich mich dumm an, jedenfalls funktionierten alle meine Versuche nicht. Deshalb wäre ich dankbar für ein Beispiel.

                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #40

                                      @RGW sagte:

                                      Was ist "die komplette URL"?

                                      Keine Ahnung. Da kann sicherlich @babl helfen.

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      1 Antwort Letzte Antwort
                                      0
                                      • R RGW

                                        @paul53 Was ist "die komplette URL"?
                                        Das habe ich jetzt drinstehen: http://www.solarprognose.de/web/solarprediction/api/v1?access-token="Zugriffsschlüssel aus der API-Übersicht meines Standortes"&item="Standortnummer (ID)"&id="Anlagennummer (ID)" Vielleicht stelle ich mich dumm an, jedenfalls funktionierten alle meine Versuche nicht. Deshalb wäre ich dankbar für ein Beispiel.

                                        B Offline
                                        B Offline
                                        babl
                                        schrieb am zuletzt editiert von
                                        #41

                                        @RGW hi,

                                        so sieht meine URL aus.

                                        http://www.solarprognose.de/web/solarprediction/api/v1?_format=json&access-token=dein_token&item=location&id=deine ID vom Standort&type=hourly
                                        

                                        dein_token ersetzen mit deinem token (api Key)
                                        deine Id vom Standort ersetzen mit deiner ID die du unter Verwaltung - Standorte rauslesen kannst und dann funktioniert das

                                        R M 2 Antworten Letzte Antwort
                                        1
                                        • B babl

                                          @RGW hi,

                                          so sieht meine URL aus.

                                          http://www.solarprognose.de/web/solarprediction/api/v1?_format=json&access-token=dein_token&item=location&id=deine ID vom Standort&type=hourly
                                          

                                          dein_token ersetzen mit deinem token (api Key)
                                          deine Id vom Standort ersetzen mit deiner ID die du unter Verwaltung - Standorte rauslesen kannst und dann funktioniert das

                                          R Offline
                                          R Offline
                                          RGW
                                          schrieb am zuletzt editiert von
                                          #42

                                          @babl
                                          vielen Dank für deine "Geburtshilfe" :-) Kaum macht man's richtig, dann klappt das.

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          905

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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