NEWS
[Gelöst] Quelle für Anzahl der Sonnenstunden?
-
Lösung: Dieser Adapter hier: https://forum.iobroker.net/topic/81967/betatest-bright-sky-v0-6-x
Original Post:
Ich musste am Wochenende meine Integration per
daswetterAdapter beenden.
Ich habe nun auf denOpenWeatherMap-Adapter umgestellt und das klappt sehr gut,
die Mondphasen haben ich gerade per Skript wieder hinzugefügt ( https://forum.iobroker.net/topic/80342/skript-für-mondphase-mondauf-und-untergang )Jetzt würden mir noch
21 Wertefehlendieden ich bisher über DasWetter bekommen hatte:Uhrzeit des Sonnenhöchststand- Anzahl der Sonnenstunden (die Prognose, nicht einfach errechnet)
Hätte da jemand eine Idee?
Den Höchststand habe ich gerade dann doch im
FollowTheSunAdapter gefunden:followthesun.0.short term.today.solarnoon_time -
Lösung: Dieser Adapter hier: https://forum.iobroker.net/topic/81967/betatest-bright-sky-v0-6-x
Original Post:
Ich musste am Wochenende meine Integration per
daswetterAdapter beenden.
Ich habe nun auf denOpenWeatherMap-Adapter umgestellt und das klappt sehr gut,
die Mondphasen haben ich gerade per Skript wieder hinzugefügt ( https://forum.iobroker.net/topic/80342/skript-für-mondphase-mondauf-und-untergang )Jetzt würden mir noch
21 Wertefehlendieden ich bisher über DasWetter bekommen hatte:Uhrzeit des Sonnenhöchststand- Anzahl der Sonnenstunden (die Prognose, nicht einfach errechnet)
Hätte da jemand eine Idee?
Den Höchststand habe ich gerade dann doch im
FollowTheSunAdapter gefunden:followthesun.0.short term.today.solarnoon_time@bananajoe das fehlt mir auch noch.
Ro75.
-
die dwd api scheint diese informationen enthalten

https://dwd.api.bund.dev/
https://dwd.api.proxy.bund.dev/v30/stationOverviewExtended?stationIds=10865,G005dieeinzelwerte sind nicht so gut dokumentiert.
hier steht ein wenig dazu
https://github.com/bundesAPI/dwd-api -
Jo das sollte im brightsky drin sein
-
Lösung: Dieser Adapter hier: https://forum.iobroker.net/topic/81967/betatest-bright-sky-v0-6-x
Original Post:
Ich musste am Wochenende meine Integration per
daswetterAdapter beenden.
Ich habe nun auf denOpenWeatherMap-Adapter umgestellt und das klappt sehr gut,
die Mondphasen haben ich gerade per Skript wieder hinzugefügt ( https://forum.iobroker.net/topic/80342/skript-für-mondphase-mondauf-und-untergang )Jetzt würden mir noch
21 Wertefehlendieden ich bisher über DasWetter bekommen hatte:Uhrzeit des Sonnenhöchststand- Anzahl der Sonnenstunden (die Prognose, nicht einfach errechnet)
Hätte da jemand eine Idee?
Den Höchststand habe ich gerade dann doch im
FollowTheSunAdapter gefunden:followthesun.0.short term.today.solarnoon_time@bananajoe
Würde dir das Script von hier:
https://www.kreyenborg.koeln
helfen?Das Script bei mir:
// * @copyright 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln> // * @author 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln> // * https://www.kreyenborg.koeln // * Skript Name: Astro-Zeiten | Skript Version: 1.41 | Erstell-Datum: 01. April 2021 | Update: 23. Dezember 2022 // Datenpunkte neu erstellen var ueberschreiben = false; // Hauptdatenpunkt unterhalb javascript var datenpunkt = "javascript.0.System.Astro."; // Lesbare Zeiten var lesbare_zeiten = ["Früher Morgen", "Frühe Dämmerung", "Morgendämmerung", "Sonnenaufgang", "Vormittag", "später Vormittag", "Mittag", "früher Abend", "Abend", "Sonnenuntergang", "Abenddämmerung", "später Abend", "Nacht", "Mitternacht"]; // Objekte der Astro Zeiten var objekt = ["nauticalDawn", "nauticalDawn", "dawn", "sunrise", "sunriseEnd", "goldenHourEnd", "solarNoon", "goldenHour", "sunsetStart", "sunset", "dusk", "nauticalDusk", "nauticalDusk", "nadir", "tageszeitAstro", "naechsteTageszeitAstro", "tageszeitLesbar", "naechsteTageszeitLesbar", "aktuelleAstroZeit", "Tag", "sunriseUnix", "sunsetUnix", "sommerzeit", "tageslaenge", "tageslaenge_minuten", "mondphase"]; // Zustände der Astro-Zeiten var beschreibung = ["00 - Ende der Nacht", "01 - nautische Morgendämmerung", "02 - Morgendämmerung", "03 - Sonnenaufgang", "04 - Ende des Sonnenaufgangs", "05 - Ende der goldenen Stunde VM", "06 - Mittag", "07 - goldene Abendstunde", "08 - Start des Sonnenuntergangs", "09 - Sonnenuntergang", "10 - Dämmerung Abends", "11 - nautische Dämmerung abends", "12 - Start der Nacht", "13 - Mitternacht", "Aktuelle Tageszeit (Astro)", "Nächste Tageszeit (Astro)", "Aktuelle Tageszeit (lesbar)", "Nächste Tageszeit (lesbar)", "aktuelle Astrozeit", "Solange die Sonne scheint, ist Tag", "Sunrise Unix Zeitstempel", "Sunset Unix Zeitstempel", "Sommerzeit/Winterzeit", "Länge des Tages in HH:MM", "Länge des Tages in Minuten", "Aktuelle Mondphase"]; // Suncalc const suncalc = require('suncalc'); // Erstelle die benötigten Datenpunkte function datenpunkte_erstellen() { var numstatuss = objekt.length; let datum = new Date(); for (var i = 0; i < objekt.length; i++) { let initial = ""; if (i < 14) { let astro_zeit = zeit_formatieren(getAstroDate(objekt[i], datum)); if (astro_zeit == "Invalid Date") { astro_zeit = "00:00"; } initial = astro_zeit } else { initial = ""; } createState(datenpunkt + objekt[i], initial, ueberschreiben, { read: true, write: true, name: beschreibung[i], desc: beschreibung[i], type: "string", role: "value", unit: "", def: "" }); numstatuss--; if (numstatuss === 0) { update_astro_zeiten(); } } log("Astro: Datenpunkte erstellt!"); } // Haupt-Skript function update_astro_zeiten() { var datum = new Date(), uhrzeit = zeit_formatieren(datum); // Zustand der Daten var aktuell = 0, aktualisiert = 0, keine_aktualisierung = 0, astro_index = 0; // Aktuellen Tagesabschnitt bestimmen var ergebnis = -1, naechste_element = false; // Aktuelle & kommende Tageszeit var aktuelle_tageszeit = 0, kommende_tageszeit = 0; // Tag var astroTag = "Nacht"; for (var i = 0; i < 14; i++) { // Temporäre Zahl var tmp_ergebnis = 0; // Hole Uhrzeit aus aktuellem Datenpunkt var dp_zeit = getState(datenpunkt + objekt[i]).val; // Hole Index aktuelle Tageszeit var tmp_time_uhr = Date.parse('1970-01-01 ' + uhrzeit + ':00'); var tmp_time_dp = Date.parse('1970-01-01 ' + dp_zeit + ':00'); // Aktuelle Zeit ist kleiner als DP if (tmp_time_uhr < tmp_time_dp) { tmp_ergebnis = tmp_time_dp - tmp_time_uhr; if (tmp_ergebnis <= ergebnis || ergebnis == -1) { ergebnis = tmp_ergebnis; astro_index = i; naechste_element = true; } // Aktuelle Zeit ist größer als DP } else { tmp_ergebnis = tmp_time_uhr - tmp_time_dp; if (tmp_ergebnis <= ergebnis || ergebnis == -1) { ergebnis = tmp_ergebnis; astro_index = i; naechste_element = false; } } // Datenpunkt ist kleiner als aktuelle Uhrzeit. Update! if (dp_zeit < uhrzeit) { // Neue Astro-Zeit für den nächsten Tag generieren let morgen = new Date(); morgen.setDate(morgen.getDate() + 1); var astro_zeit = zeit_formatieren(getAstroDate(objekt[i], morgen)); // Datenpunkt und Astro Zeit sind gleich. Kein Update! if (dp_zeit == astro_zeit) { keine_aktualisierung++; } else { if (astro_zeit == "Invalid Date") { astro_zeit = "00:00"; } setState(datenpunkt + objekt[i], astro_zeit, true); aktualisiert++; } } else { // Zeit kommt noch! Kein Update! aktuell++; } } // Wenn wahr, ist der Abstand zum nächsten Zeitpunkt kleiner. Also -1 um aktuellen Index zu erhalten. if (naechste_element) { astro_index--; } // Navigiere zum richtigen Index if (astro_index > 12) { aktuelle_tageszeit = 13; kommende_tageszeit = 0; } else if (astro_index < 0) { aktuelle_tageszeit = 0; kommende_tageszeit = 1; } else { aktuelle_tageszeit = astro_index; kommende_tageszeit = astro_index + 1; } // Prüfe, ob aktuelle Uhrzeit zwischen Sonnenauf- und untergang liegt if (astro_index > 2 && astro_index < 10) { astroTag = "Tag"; } // Update aktuelle Tageszeit Astro (Text) setState(datenpunkt + objekt[14], text_formatieren(beschreibung[aktuelle_tageszeit]), true); // Update kommende Tageszeit Astro (Text) setState(datenpunkt + objekt[15], text_formatieren(beschreibung[kommende_tageszeit]), true); // Update aktuelle Tageszeit lesbar (Text) setState(datenpunkt + objekt[16], lesbare_zeiten[aktuelle_tageszeit], true); // Update kommende Tageszeit lesbar (Text) setState(datenpunkt + objekt[17], lesbare_zeiten[kommende_tageszeit], true); // Update aktuelle AstroZeit setState(datenpunkt + objekt[18], objekt[aktuelle_tageszeit], true); // Setze die Variable "Tag" auf "Tag", wenn Uhrzeit zwischen Sonnenauf- und untergang setState(datenpunkt + objekt[19], astroTag, true); // Setze Sommerzeit auf Sommerzeit, wenn in Sommerzeit setState(datenpunkt + objekt[22], pruefe_sommerzeit(datum), true); // Tageslänge berechnen - in Stunden und Minuten let laenge = tageslaenge(getAstroDate(objekt[9]), getAstroDate(objekt[3])); setState(datenpunkt + objekt[23], laenge.hh_mm, true); setState(datenpunkt + objekt[24], laenge.minuten.toString(), true); // Mondphase let phase = mondphase(datum); setState(datenpunkt + objekt[25], phase, true); // Setze die Variable Sunrise Unix let tmp_morgen = new Date(); tmp_morgen.setDate(tmp_morgen.getDate() + 1); let unix_sunrise = getAstroDate("sunrise", tmp_morgen).getTime() * 1000; setState(datenpunkt + objekt[20], unix_sunrise.toString(), true); // Setze die Variable Sunset Unix let unix_sunset = getAstroDate("sunset", tmp_morgen).getTime() * 1000; setState(datenpunkt + objekt[21], unix_sunset.toString(), true); var ausgabe = "Astro: Gültige Zeiten: [aktueller Tag: " + aktuell + "] | [nächster Tag: " + keine_aktualisierung + "] | [Aktualisiert: " + aktualisiert + "] | Aktuelle Tageszeit: " + lesbare_zeiten[aktuelle_tageszeit] + " | Kommende Tageszeit: " + lesbare_zeiten[kommende_tageszeit]; log(ausgabe); } // Funktion, um die Zeit in HH:MM zu formatieren function zeit_formatieren(zeit) { return zeit.toLocaleTimeString('de-DE', { hour12: false, hour: '2-digit', minute: '2-digit' }); } // Funktion, um den Text zu formatieren. "Mittag" statt "6 - Mittag" function text_formatieren(text) { text = text.split("-")[1]; text = text.substr(1, text.length); return text; } function pruefe_sommerzeit(date = new Date()) { const januar = new Date(date.getFullYear(), 0, 1).getTimezoneOffset(); const juli = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); let sommerzeit = ""; if (Math.max(januar, juli) !== date.getTimezoneOffset()) { sommerzeit = "Sommerzeit"; } else { sommerzeit = "Winterzeit"; } return sommerzeit; } function tageslaenge(endzeit, startzeit) { // Basis - Sonnenauf- und Untergang var stundeDiff = Math.abs(endzeit.getTime() - startzeit.getTime()) / 1000; //in s var hDiff = Math.floor(stundeDiff / 3600) % 24; //in Stunden var minDiff = Math.floor(stundeDiff / 60) % 60; //in Minuten var lesbar = {}; lesbar.hh_mm = hDiff + ":" + minDiff; lesbar.minuten = (hDiff * 60) + minDiff; return lesbar; } function mondphase(datum) { var mondphase = suncalc.getMoonIllumination(datum); var mond_beleuch = mondphase.fraction; var mond = mondphase.phase; var status = 'Neumond'; if (mond > 0.05) status = parseInt(mond_beleuch*100) + '% 1/4 Mond zunehmend'; if (mond > 0.2) status = parseInt(mond_beleuch*100) + '% 1/2 Mond zunehmend'; if (mond > 0.3) status = parseInt(mond_beleuch*100) + '% 3/4 Mond zunehmend'; if (mond > 0.45) status = parseInt(mond_beleuch*100) + '% Vollmond'; if (mond > 0.55) status = parseInt(mond_beleuch*100) + '% 3/4 Mond abnehmend'; if (mond > 0.7) status = parseInt(mond_beleuch*100) + '% 1/2 Mond abnehmend'; if (mond > 0.8) status = parseInt(mond_beleuch*100) + '% 1/4 Mond abnehmend'; if (mond > 0.95) status = parseInt(mond_beleuch*100) + '% Neumond'; return status; } // Erster Start des Skripts und anlegen der Datenpunkte function update_astro_zeiten_erster_start() { log("Astro: Erster Start des Skriptes!") // Datenpunkte werden erstellt datenpunkte_erstellen(); } // Erster Start und Initialisierung update_astro_zeiten_erster_start(); // Alle 60 Minunten das Hauptskript ausführen schedule('*/30 * * * *', update_astro_zeiten);Sieht in Vis dann so aus:

Und die Zeiten dann halt ausrechnen.
-
@bananajoe
Würde dir das Script von hier:
https://www.kreyenborg.koeln
helfen?Das Script bei mir:
// * @copyright 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln> // * @author 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln> // * https://www.kreyenborg.koeln // * Skript Name: Astro-Zeiten | Skript Version: 1.41 | Erstell-Datum: 01. April 2021 | Update: 23. Dezember 2022 // Datenpunkte neu erstellen var ueberschreiben = false; // Hauptdatenpunkt unterhalb javascript var datenpunkt = "javascript.0.System.Astro."; // Lesbare Zeiten var lesbare_zeiten = ["Früher Morgen", "Frühe Dämmerung", "Morgendämmerung", "Sonnenaufgang", "Vormittag", "später Vormittag", "Mittag", "früher Abend", "Abend", "Sonnenuntergang", "Abenddämmerung", "später Abend", "Nacht", "Mitternacht"]; // Objekte der Astro Zeiten var objekt = ["nauticalDawn", "nauticalDawn", "dawn", "sunrise", "sunriseEnd", "goldenHourEnd", "solarNoon", "goldenHour", "sunsetStart", "sunset", "dusk", "nauticalDusk", "nauticalDusk", "nadir", "tageszeitAstro", "naechsteTageszeitAstro", "tageszeitLesbar", "naechsteTageszeitLesbar", "aktuelleAstroZeit", "Tag", "sunriseUnix", "sunsetUnix", "sommerzeit", "tageslaenge", "tageslaenge_minuten", "mondphase"]; // Zustände der Astro-Zeiten var beschreibung = ["00 - Ende der Nacht", "01 - nautische Morgendämmerung", "02 - Morgendämmerung", "03 - Sonnenaufgang", "04 - Ende des Sonnenaufgangs", "05 - Ende der goldenen Stunde VM", "06 - Mittag", "07 - goldene Abendstunde", "08 - Start des Sonnenuntergangs", "09 - Sonnenuntergang", "10 - Dämmerung Abends", "11 - nautische Dämmerung abends", "12 - Start der Nacht", "13 - Mitternacht", "Aktuelle Tageszeit (Astro)", "Nächste Tageszeit (Astro)", "Aktuelle Tageszeit (lesbar)", "Nächste Tageszeit (lesbar)", "aktuelle Astrozeit", "Solange die Sonne scheint, ist Tag", "Sunrise Unix Zeitstempel", "Sunset Unix Zeitstempel", "Sommerzeit/Winterzeit", "Länge des Tages in HH:MM", "Länge des Tages in Minuten", "Aktuelle Mondphase"]; // Suncalc const suncalc = require('suncalc'); // Erstelle die benötigten Datenpunkte function datenpunkte_erstellen() { var numstatuss = objekt.length; let datum = new Date(); for (var i = 0; i < objekt.length; i++) { let initial = ""; if (i < 14) { let astro_zeit = zeit_formatieren(getAstroDate(objekt[i], datum)); if (astro_zeit == "Invalid Date") { astro_zeit = "00:00"; } initial = astro_zeit } else { initial = ""; } createState(datenpunkt + objekt[i], initial, ueberschreiben, { read: true, write: true, name: beschreibung[i], desc: beschreibung[i], type: "string", role: "value", unit: "", def: "" }); numstatuss--; if (numstatuss === 0) { update_astro_zeiten(); } } log("Astro: Datenpunkte erstellt!"); } // Haupt-Skript function update_astro_zeiten() { var datum = new Date(), uhrzeit = zeit_formatieren(datum); // Zustand der Daten var aktuell = 0, aktualisiert = 0, keine_aktualisierung = 0, astro_index = 0; // Aktuellen Tagesabschnitt bestimmen var ergebnis = -1, naechste_element = false; // Aktuelle & kommende Tageszeit var aktuelle_tageszeit = 0, kommende_tageszeit = 0; // Tag var astroTag = "Nacht"; for (var i = 0; i < 14; i++) { // Temporäre Zahl var tmp_ergebnis = 0; // Hole Uhrzeit aus aktuellem Datenpunkt var dp_zeit = getState(datenpunkt + objekt[i]).val; // Hole Index aktuelle Tageszeit var tmp_time_uhr = Date.parse('1970-01-01 ' + uhrzeit + ':00'); var tmp_time_dp = Date.parse('1970-01-01 ' + dp_zeit + ':00'); // Aktuelle Zeit ist kleiner als DP if (tmp_time_uhr < tmp_time_dp) { tmp_ergebnis = tmp_time_dp - tmp_time_uhr; if (tmp_ergebnis <= ergebnis || ergebnis == -1) { ergebnis = tmp_ergebnis; astro_index = i; naechste_element = true; } // Aktuelle Zeit ist größer als DP } else { tmp_ergebnis = tmp_time_uhr - tmp_time_dp; if (tmp_ergebnis <= ergebnis || ergebnis == -1) { ergebnis = tmp_ergebnis; astro_index = i; naechste_element = false; } } // Datenpunkt ist kleiner als aktuelle Uhrzeit. Update! if (dp_zeit < uhrzeit) { // Neue Astro-Zeit für den nächsten Tag generieren let morgen = new Date(); morgen.setDate(morgen.getDate() + 1); var astro_zeit = zeit_formatieren(getAstroDate(objekt[i], morgen)); // Datenpunkt und Astro Zeit sind gleich. Kein Update! if (dp_zeit == astro_zeit) { keine_aktualisierung++; } else { if (astro_zeit == "Invalid Date") { astro_zeit = "00:00"; } setState(datenpunkt + objekt[i], astro_zeit, true); aktualisiert++; } } else { // Zeit kommt noch! Kein Update! aktuell++; } } // Wenn wahr, ist der Abstand zum nächsten Zeitpunkt kleiner. Also -1 um aktuellen Index zu erhalten. if (naechste_element) { astro_index--; } // Navigiere zum richtigen Index if (astro_index > 12) { aktuelle_tageszeit = 13; kommende_tageszeit = 0; } else if (astro_index < 0) { aktuelle_tageszeit = 0; kommende_tageszeit = 1; } else { aktuelle_tageszeit = astro_index; kommende_tageszeit = astro_index + 1; } // Prüfe, ob aktuelle Uhrzeit zwischen Sonnenauf- und untergang liegt if (astro_index > 2 && astro_index < 10) { astroTag = "Tag"; } // Update aktuelle Tageszeit Astro (Text) setState(datenpunkt + objekt[14], text_formatieren(beschreibung[aktuelle_tageszeit]), true); // Update kommende Tageszeit Astro (Text) setState(datenpunkt + objekt[15], text_formatieren(beschreibung[kommende_tageszeit]), true); // Update aktuelle Tageszeit lesbar (Text) setState(datenpunkt + objekt[16], lesbare_zeiten[aktuelle_tageszeit], true); // Update kommende Tageszeit lesbar (Text) setState(datenpunkt + objekt[17], lesbare_zeiten[kommende_tageszeit], true); // Update aktuelle AstroZeit setState(datenpunkt + objekt[18], objekt[aktuelle_tageszeit], true); // Setze die Variable "Tag" auf "Tag", wenn Uhrzeit zwischen Sonnenauf- und untergang setState(datenpunkt + objekt[19], astroTag, true); // Setze Sommerzeit auf Sommerzeit, wenn in Sommerzeit setState(datenpunkt + objekt[22], pruefe_sommerzeit(datum), true); // Tageslänge berechnen - in Stunden und Minuten let laenge = tageslaenge(getAstroDate(objekt[9]), getAstroDate(objekt[3])); setState(datenpunkt + objekt[23], laenge.hh_mm, true); setState(datenpunkt + objekt[24], laenge.minuten.toString(), true); // Mondphase let phase = mondphase(datum); setState(datenpunkt + objekt[25], phase, true); // Setze die Variable Sunrise Unix let tmp_morgen = new Date(); tmp_morgen.setDate(tmp_morgen.getDate() + 1); let unix_sunrise = getAstroDate("sunrise", tmp_morgen).getTime() * 1000; setState(datenpunkt + objekt[20], unix_sunrise.toString(), true); // Setze die Variable Sunset Unix let unix_sunset = getAstroDate("sunset", tmp_morgen).getTime() * 1000; setState(datenpunkt + objekt[21], unix_sunset.toString(), true); var ausgabe = "Astro: Gültige Zeiten: [aktueller Tag: " + aktuell + "] | [nächster Tag: " + keine_aktualisierung + "] | [Aktualisiert: " + aktualisiert + "] | Aktuelle Tageszeit: " + lesbare_zeiten[aktuelle_tageszeit] + " | Kommende Tageszeit: " + lesbare_zeiten[kommende_tageszeit]; log(ausgabe); } // Funktion, um die Zeit in HH:MM zu formatieren function zeit_formatieren(zeit) { return zeit.toLocaleTimeString('de-DE', { hour12: false, hour: '2-digit', minute: '2-digit' }); } // Funktion, um den Text zu formatieren. "Mittag" statt "6 - Mittag" function text_formatieren(text) { text = text.split("-")[1]; text = text.substr(1, text.length); return text; } function pruefe_sommerzeit(date = new Date()) { const januar = new Date(date.getFullYear(), 0, 1).getTimezoneOffset(); const juli = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); let sommerzeit = ""; if (Math.max(januar, juli) !== date.getTimezoneOffset()) { sommerzeit = "Sommerzeit"; } else { sommerzeit = "Winterzeit"; } return sommerzeit; } function tageslaenge(endzeit, startzeit) { // Basis - Sonnenauf- und Untergang var stundeDiff = Math.abs(endzeit.getTime() - startzeit.getTime()) / 1000; //in s var hDiff = Math.floor(stundeDiff / 3600) % 24; //in Stunden var minDiff = Math.floor(stundeDiff / 60) % 60; //in Minuten var lesbar = {}; lesbar.hh_mm = hDiff + ":" + minDiff; lesbar.minuten = (hDiff * 60) + minDiff; return lesbar; } function mondphase(datum) { var mondphase = suncalc.getMoonIllumination(datum); var mond_beleuch = mondphase.fraction; var mond = mondphase.phase; var status = 'Neumond'; if (mond > 0.05) status = parseInt(mond_beleuch*100) + '% 1/4 Mond zunehmend'; if (mond > 0.2) status = parseInt(mond_beleuch*100) + '% 1/2 Mond zunehmend'; if (mond > 0.3) status = parseInt(mond_beleuch*100) + '% 3/4 Mond zunehmend'; if (mond > 0.45) status = parseInt(mond_beleuch*100) + '% Vollmond'; if (mond > 0.55) status = parseInt(mond_beleuch*100) + '% 3/4 Mond abnehmend'; if (mond > 0.7) status = parseInt(mond_beleuch*100) + '% 1/2 Mond abnehmend'; if (mond > 0.8) status = parseInt(mond_beleuch*100) + '% 1/4 Mond abnehmend'; if (mond > 0.95) status = parseInt(mond_beleuch*100) + '% Neumond'; return status; } // Erster Start des Skripts und anlegen der Datenpunkte function update_astro_zeiten_erster_start() { log("Astro: Erster Start des Skriptes!") // Datenpunkte werden erstellt datenpunkte_erstellen(); } // Erster Start und Initialisierung update_astro_zeiten_erster_start(); // Alle 60 Minunten das Hauptskript ausführen schedule('*/30 * * * *', update_astro_zeiten);Sieht in Vis dann so aus:

Und die Zeiten dann halt ausrechnen.
-
@bahnuhr es geht zumindest für mich darum, wie lange heute die Sonne insgesamt zu sehen ist und nicht von Wolken verdeckt. Für mich ist die Differenz zwischen Sonnenauf- und Untergang uninteressant.
Ro75.
Alles klar.
Dann kauf dir einen HM Sonnensensor und loggen die Zeiten die über x sind.
Das von heute:

-
Alles klar.
Dann kauf dir einen HM Sonnensensor und loggen die Zeiten die über x sind.
Das von heute:

-
Alles klar.
Dann kauf dir einen HM Sonnensensor und loggen die Zeiten die über x sind.
Das von heute:

@bahnuhr sagte in Quelle für Anzahl der Sonnenstunden?:
loggen die Zeiten die über x sind.
daa kann man in der Wetterstation sogar konfigurieren und wird dann in eine SysVar geschrieben.
Nachteil ist aber dass das nicht als Prognose geht ;-) .
-
@bahnuhr naja, ich möchte früh wissen, was ich erwarten kann und nicht erst abends sehen was war. Bei daswetter.com lief das sehr sehr gut - nur eben Geschichte.
Ro75.
@ro75
Naja, das war der 2. Versuch.
Jetzt fällt mir nix mehr ein.Prognose mag ich nicht.
Stimmt sowieso nicht. -
@ro75
Naja, das war der 2. Versuch.
Jetzt fällt mir nix mehr ein.Prognose mag ich nicht.
Stimmt sowieso nicht. -
die dwd api scheint diese informationen enthalten

https://dwd.api.bund.dev/
https://dwd.api.proxy.bund.dev/v30/stationOverviewExtended?stationIds=10865,G005dieeinzelwerte sind nicht so gut dokumentiert.
hier steht ein wenig dazu
https://github.com/bundesAPI/dwd-api@oliverio sagte in Quelle für Anzahl der Sonnenstunden?:
die dwd api scheint diese informationen enthalten

https://dwd.api.bund.dev/
https://dwd.api.proxy.bund.dev/v30/stationOverviewExtended?stationIds=10865,G005dieeinzelwerte sind nicht so gut dokumentiert.
hier steht ein wenig dazu
https://github.com/bundesAPI/dwd-apiKönnte klappen:

Das weist du woher das
G005kommt bzw. wofür das steht?
Für eine Station ID, Berlin-Marzahn ..Laut dieser Seite wäre Achim bei Bremen 8373:
https://www.dwd.de/DE/leistungen/klimadatendeutschland/statliste/statlex_html.html?view=nasPublication&nn=16102Ich hadere gerade wie denn die URL aussehen muss
-
Ok, Berlin-Marzan, vermutlich: Da kommt nur eine Zahl an die URL, man kann mehrere angeben.
https://dwd.api.proxy.bund.dev/v30/stationOverviewExtended?stationIds=G005
Jetzt muss ich nur eine in der Nähe finden
-
Ok, viele Station sind wohl nicht abrufbar wegen nicht mehr da etc., in der letzten Spalte steht ein Datum, alles was länger her ist funktioniert nicht. Alles mit einem aktuellen Datum auch nicht immer.
Ich habe jetzt eine in Bremen gefunden:

https://dwd.api.proxy.bund.dev/v30/stationOverviewExtended?stationIds=10224Demnach hatten wir heute 1590 * 0,1 min = 159 Minuten Sonnenschein? 2,5h
Meine Solaranlage brummte so richtig von 11:30 bis ca. 15:00, also 3,5h,
Naja, kommt in etwa hin und es sind ja 20km weiter -
Lösung: Dieser Adapter hier: https://forum.iobroker.net/topic/81967/betatest-bright-sky-v0-6-x
Original Post:
Ich musste am Wochenende meine Integration per
daswetterAdapter beenden.
Ich habe nun auf denOpenWeatherMap-Adapter umgestellt und das klappt sehr gut,
die Mondphasen haben ich gerade per Skript wieder hinzugefügt ( https://forum.iobroker.net/topic/80342/skript-für-mondphase-mondauf-und-untergang )Jetzt würden mir noch
21 Wertefehlendieden ich bisher über DasWetter bekommen hatte:Uhrzeit des Sonnenhöchststand- Anzahl der Sonnenstunden (die Prognose, nicht einfach errechnet)
Hätte da jemand eine Idee?
Den Höchststand habe ich gerade dann doch im
FollowTheSunAdapter gefunden:followthesun.0.short term.today.solarnoon_time@bananajoe said in Quelle für Anzahl der Sonnenstunden?:
Anzahl der Sonnenstunden (die Prognose, nicht einfach errechnet)
Wie wäre es mit den Daten von https://forecast.solar/
Liefert die Daten als JSON{ "result": { "watts": { "2019-06-22 05:15:00": 17, "2019-06-22 05:30:00": 22, "2019-06-22 05:45:00": 27, ... "2019-06-29 20:15:00": 14, "2019-06-29 20:30:00": 11, "2019-06-29 20:45:00": 7 }, "watt_hours": { "2019-06-22 05:15:00": 0, "2019-06-22 05:30:00": 6, "2019-06-22 05:45:00": 12, ... "2019-06-29 20:15:00": 2545, "2019-06-29 20:30:00": 2548, "2019-06-29 20:45:00": 2550 }, "watt_hours_day": { "2019-06-22": 2626, "2019-06-23": 2918, "2019-06-24": 2526, "2019-06-25": 2866, "2019-06-26": 2892, "2019-06-27": 1900, "2019-06-28": 2199, "2019-06-29": 2550 } }, "message": { "type": "success", "code": 0, "text": "" } }Erhältlich in verschiedenen Zugangsmodellen, darunter "Free for Life"
This works without API key for free, no subscription needed. (You will not receive an API key for a donation.) Solar production forecast data Forecast horizon: This and the next day Data resolution: 1 hour Best for users without loggers to get a quick idea about coming solar production. -
@ro75
Ich weiß ja nicht ob du es überlesen hast oder das falsch ist - im brightsky gibts das hier:

-
@ro75
Ich weiß ja nicht ob du es überlesen hast oder das falsch ist - im brightsky gibts das hier:

@ticaki sagte in Quelle für Anzahl der Sonnenstunden?:
brightsky
Der Adapter ist ja cool, kann ja sogar auch noch Solarprognose.
Er hat auch tatsächlich die Station in Bremen mit ausgewählt die ich auch schon gefunden hatte.Dickes Danke!
-
@ticaki sagte in Quelle für Anzahl der Sonnenstunden?:
brightsky
Der Adapter ist ja cool, kann ja sogar auch noch Solarprognose.
Er hat auch tatsächlich die Station in Bremen mit ausgewählt die ich auch schon gefunden hatte.Dickes Danke!
Für das solar kannste dich bei @Homoran und @klassisch bedanken, die haben da soviel analysiert ,das ich sie mit den Adapterfunktionen unterstützen wollte :)
-
@ticaki sagte in Quelle für Anzahl der Sonnenstunden?:
brightsky
Der Adapter ist ja cool, kann ja sogar auch noch Solarprognose.
Er hat auch tatsächlich die Station in Bremen mit ausgewählt die ich auch schon gefunden hatte.Dickes Danke!
@bananajoe sagte in Quelle für Anzahl der Sonnenstunden?:
kann ja sogar auch noch Solarprognose.
leider ist die Treffequote nicht sooo toll.
Zumindest jetzt in der ttüben Zeit nicht.
Achtung Wimmelbild ;-) :
Die stündliche Vorhersage (estimate real, grau) ist im Prinzip gar nicht für ein entsprechendes Nutzungsprofil zu gebrauchen

Da scheint der DWD die zu erwartende Sonnenscheindauer einfach auf den Tag gemäß des Sonnenverlaufs zu verteilen.

Für beides kann der arme @ticaki nichts!
Die Rohdaten geben es leider nicht her