NEWS
Sonnenwinkel berechnen
-
Mit diesem Skript ändert sich Azimuth innerhalb 3h von -47° bis 221° 11:30 bis 14:30Uhr
const suncalc = require('suncalc2'); const result = getObject("system.adapter.javascript.0"); const lat = result.native.latitude; const long = result.native.longitude; const idEle = 'Sonnenstand.Elevation'; const idAzi = 'Sonnenstand.Azimuth'; createState(idEle, 0, {type: 'number', unit: '°'}); createState(idAzi, 0, {type: 'number', unit: '°'}); function Sonnenstand_berechnen () { var now = new Date(); var sunpos = suncalc.getPosition(now, lat, long); var h = sunpos.altitude * 180 / Math.PI; var a = sunpos.azimuth * 180 / Math.PI + 100; setState(idEle, Math.round(10 * h) / 10, true); setState(idAzi, Math.round(a), true); } schedule("* * * * *", Sonnenstand_berechnen);
Was ist falsch an dem Skrpt?
-
@pistus sagte: Was ist falsch an dem Skrpt?
Zeile 15:
var a = sunpos.azimuth * 180 / Math.PI + 180;
Stimmen die Werte von
lat
undlong
? -
-
@pistus
Alternative aus der System-Konfiguration:const suncalc = require('suncalc'); const result = getObject('system.config'); const lat = result.common.latitude; const long = result.common.longitude;
-
@paul53 ich habe die Daten der Systemconfiguration genommen
Jetzt ist Azimuth139° und
Elevation 37° um 15:40
Wenn man sich das Bild betrachtet ist Azimuth immer noch danebenWas ist falsch an Zeile 15?
-
@pistus
Zeile 15 und 17 ist falsch
Mein Script hast du offensichtlich nicht verglichen. -
@pistus sagte: Was ist falsch an Zeile 15?
Es müssen 180 (nicht 100) addiert werden (Nord = 0°, Ost = 90°).
@pistus sagte in Sonnenwinkel berechnen:
Jetzt ist Azimuth139°
Das sind 80° zu wenig.
-
@bahnuhr Ich finde Dein Skript mit der Visualisierung top.
Aber ich bin nicht so fit im Skripten, ich muss verstehen und klein anfangen.
In Deiner Visualisierung habe ich für März nicht die -XX° für Azimuth verstanden.
Siehe mein Sonnenwinkelbild mit Etwawerten.
Was ist falsch in Zeile 17. -
@bahnuhr
@paul53
So sieht das Skript jetzt aus. Bitte noch einmal um Überprüfung.const suncalc = require('suncalc2'); const result = getObject('system.config'); const lat = result.common.latitude; const long = result.common.longitude; //const result = getObject("system.adapter.javascript.0"); //const lat = result.native.latitude; //const long = result.native.longitude; const idEle = 'Sonnenstand.Elevation'; const idAzi = 'Sonnenstand.Azimuth'; createState(idEle, 0, {type: 'number', unit: '°'}); createState(idAzi, 0, {type: 'number', unit: '°'}); function Sonnenstand_berechnen () { var now = new Date(); var sunpos = suncalc.getPosition(now, lat, long); var h = sunpos.altitude * 180 / Math.PI; var a = sunpos.azimuth * 180 / Math.PI + 180; setState(idEle, Math.round(10 * h) / 10, true); //setState(idAzi, Math.round(a), true); setState(idAzi, Math.round(Math.round(10 * a) / 10), true); } schedule("* * * * *", Sonnenstand_berechnen);
-
geb doch mal was ein und vergleichen die Werte mit dem Internet.
Dann siehst du doch gleich ob die Werte passen. -
@bahnuhr
Für Mülheim an der Ruhr um 16:00 Uhr beträgt das Azimut etwa 220 Grad.
Elevation: Dies ist der vertikale Winkel, der den Winkel über dem Horizont angibt. Um 16:00 Uhr in Mülheim an der Ruhr beträgt die Elevation etwa 30 Grad.
Jetzt um 16:50
-
@pistus
Also ein bisschen schwerfällig bist du schon.
Warum gibts du deine Daten nicht im Internet ein.
Dann siehst du doch genau, dass diese fast stimmen !
-
@bahnuhr Danke, passt doch super.
Mit 82 ist man halt nicht mehr so drahtig. Könntest Du bitte mir den Link Link von Deinem Beispiel, Berechnung Sonnenverlauf, weitergeben. -
@pistus
gleich der 1. Treffer in google
für Mond gibts auch sowas.
-
@bahnuhr Danke.
Der nächste Schritt, ich würde gerne den Sonnenverlauf mittels Sonnenbild im Halbkreis darstellen . Im Hintergrund mein Solardach in Ost- West Ausrichtung, zwei Stränge.
Die Sonne soll sich stündlich weiter bewegen und dabei soll die abgeführte Leistung vom Solardach angezeigt werden. Jeder Strang.
Dach hinten ist Osten.
So ungfähr -
@pistus
Da muss jemand anders helfen. -
@bahnuhr Die Leistung je Strang bekomme ich schon jetzt mittels Modbus vom Wechselrichter und kann in den Objekten abgeholt werden.
Wie bekommt man die Daten von Azimuth in VIS und kann diese dann im Halbkreis darstellen.