NEWS
Azimut und Elevation für den Mond
-
Guten Morgen,
es gibt ja hier verschiedene Scripte um den Azimut sowie die Elevation für die Sonne zu ermitteln.
Gibt es sowas auch für den Mond ?
Auf der Seite "mondverlauf.de" gibt es diese Daten. Im Seitenquelltext stehen sie aber nicht. Ich hätte mich dann mal am parser probiert.
Frage:
Habt ihr ein Scriptschnipsel für diese Daten des Mondes ?mfg
Dieter -
@bahnuhr Das bereits im JS-Adapter integrierte NPM-Modul "suncalc" liefert die Mondphasen.
-
Hallo Paul,
dein Script zeigt die Mondphasen.
Die habe ich aber schon.Ich möchte ja die Werte für Azimut und Elevation.
Oder sind die dort auch drin?
mfg
-
-
Danke Paul,
ich habe mal dein Script (hast du hier irgendwo mal gepostet) erweitert um die Mond Daten.
// Sonnenstand Script von pix // erweitert mit Moon durch bahnuhr const suncalc = require('suncalc'); const result = getObject("system.adapter.javascript.0"); const lat = result.native.latitude; const long = result.native.longitude; const idSonneEle = 'javascript.0.Status.System.Sonne_Elevation'; const idSonneAzi = 'javascript.0.Status.System.Sonne_Azimut'; const idMondEle = 'javascript.0.Status.System.Mond_Elevation'; const idMondAzi = 'javascript.0.Status.System.Mond_Azimut'; createState(idSonneEle, 0, {type: 'number', unit: '°'}); createState(idSonneAzi, 0, {type: 'number', unit: '°'}); createState(idMondEle, 0, {type: 'number', unit: '°'}); createState(idMondAzi, 0, {type: 'number', unit: '°'}); function Stand_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(idSonneEle, Math.round(10 * h) / 10, true); setState(idSonneAzi, Math.round(Math.round(10 * a) / 10), true); log ("Sonne: Azimut: " + Math.round(10 * a) / 10 + "°"); log ("Sonne: Elevation: " + Math.round(10 * h) / 10 + "°"); var moonpos = suncalc.getMoonPosition(now, lat, long); var h = moonpos.altitude * 180 / Math.PI; var a = moonpos.azimuth * 180 / Math.PI + 180; setState(idMondEle, Math.round(10 * h) / 10, true); setState(idMondAzi, Math.round(Math.round(10 * a) / 10), true); log ("Mond: Azimut: " + Math.round(10 * a) / 10 + "°"); log ("Mond: Elevation: " + Math.round(10 * h) / 10 + "°"); } schedule('23 */4 * * * *', Stand_berechnen); // jede Minute Stand_berechnen();
Die Daten passen mit den Seiten "mondverlauf.de" und "Sonnenverlauf.de" fast überein.
Lediglich die Elevation beim Mond scheint abzuweichen (Script: -13,5° und mondverlauf.de -15,1°).
Warum auch immer.Vielleicht siehst du ja den Fehler.
Nochmals Danke.
mfg
Dieter -
@bahnuhr sagte:
Vielleicht siehst du ja den Fehler.
Nein, ich kann keinen Fehler erkennen. Muss ein Fehler im NPM-Modul oder auf der Seite mondverlauf.de sein:
-
Ok, dann lass ich es jetzt so.
Danke nochmals.
-
Sorry wenn ich mal ganz blöd nachfrage - aber wo wird das Ergebniss hin geschrieben.
Ich habe das Skript aktiviert und bekomme im Log folgendes angezeigt:
javascript.0 2020-07-06 08:48:23.011 info (7376) script.js.Aktiv.Sonnenverlauf: Mond: Elevation: -19.8° javascript.0 2020-07-06 08:48:23.011 info (7376) script.js.Aktiv.Sonnenverlauf: Mond: Azimut: 259.3° javascript.0 2020-07-06 08:48:23.010 info (7376) script.js.Aktiv.Sonnenverlauf: Sonne: Elevation: 30.5° javascript.0 2020-07-06 08:48:23.010 info (7376) script.js.Aktiv.Sonnenverlauf: Sonne: Azimut: 91.8°
Ich hätte erwartet das dass Ergebnis zur Weiterverarbeitung unter den JavaSkript Objekten auftaucht. Leider ist da nix.
Könnt ihr mir auf die Sprünge helfen?
EDIT: Vergesst es - ich war BLIND - alles da - ist zu früh am Morgen