NEWS
Gesucht: Script: Sonnenwinkel berechnen?
-
@cainam geoposition in der javascript Instanz korrekt?
Systemzeit korrekt? -
Systemzeit stimmt (aus LOGs) sehe ich das
Geoposition in der Javascript? in den Einstellungen habe ich dies. in der javascript instanz habe ich folgendes (wobei habe es auch schon versucht ohne hacken... kein unterschied): -
@cainam sagte in Gesucht: Script: Sonnenwinkel berechnen?:
(wobei habe es auch schon versucht ohne hacken
und dann Lat und Lon richtig eingetragen?
Bei mir läuft das Skript problemlos
-
Die Frage hatte ich auch bereits: https://github.com/ioBroker/ioBroker.javascript/issues/800
versuch mal so: https://forum.iobroker.net/topic/43018/gelöst-längen-und-breitengrade/13?_=1622041737554
-
ja...
also elavation stimmt ca.
aber azimut ist komplett flasch.. ich meine 300" das wäre ja schon Nord-Westen-Nord... da ist sie höchstens so um 21uhr -
@ice987 said in Gesucht: Script: Sonnenwinkel berechnen?:
Die Frage hatte ich auch bereits: https://github.com/ioBroker/ioBroker.javascript/issues/800
versuch mal so: https://forum.iobroker.net/topic/43018/gelöst-längen-und-breitengrade/13?_=1622041737554
genau... das wars... jetzt geht es
-
@cainam sagte:
setState(Elevation,h.toFixed(1)); /*sonne_elevation*/ setState(Azimut,a.toFixed()); /*sonne_azimut*/
toFixed() erzeugt einen String. Ändere es in
setState(Elevation, Math.round(h * 10) / 10, true; /*sonne_elevation*/ setState(Azimut, Math.round(a), true); /*sonne_azimut*/
-
ich hab auch mal ein Blockly erstellt um die Sonnenkurve (Höhe) zu berechnen.
Passt sehr gut mit meinem LUX–Sensor zusammen:)Leider sieht man damit auch gut wie schlecht das Wetter bei uns ist.
ich nutze diese Kurve um Level und Kelvin meiner HUE Lampen zu steuern.
-
@derauge said in Gesucht: Script: Sonnenwinkel berechnen?:
wollte hier mal meine Lösung des heutigen Tages zeigen:
es gibt dort zwei (etwas) unterschiedliche Scripte
1.)
/* Sonnenstand.SonneHöhe */ var suncalc = require('suncalc'); var result = getObject("system.adapter.javascript.0"); var lat = result.native.latitude; var long = result.native.longitude; createState('Sonnenstand.Sonne:Höhe', 0, {unit: '°'}); createState('Sonnenstand.Sonne:Azimut', 0, {unit: '°'}); schedule("*/1 * * * *", function () { var now = new Date(); // log("-----------------------------------------------"); // log("latitude : " + result.native.latitude,'warn'); // log("longitude: " + result.native.longitude,'warn'); var sunpos = suncalc.getPosition(now, lat, long); // log("sunpos: " + JSON.stringify(sunpos),'warn'); var h = sunpos.altitude * 180 / Math.PI; var a = sunpos.azimuth * 180 / Math.PI + 180; setState("javascript.0.Sonnenstand.Sonne:Höhe",h.toFixed(1)); setState("javascript.0.Sonnenstand.Sonne:Azimut",a.toFixed()); });
Gruß
Jürgen
Hallo, ich hab das Skript 1 bei mir verwendet. Es werden auch Variablen erstellt die ich auslesen kann. Allerdings steht bei mir bei Azimut = 28° zur jetzigen Zeit müsste es laut Sunearthtools.com aber 184° sein. Kann mir jemand sagen warum das nicht so ist ?
Gruß
Thiemo -
@t-c-0
Stimmen die Ortskoordinaten? Hänge mal an das Skriptende eine Log-Ausgabe dran:log('Lat: ' + lat + ' °, Long: ' + long + ' °');
-
@paul53 said in Gesucht: Script: Sonnenwinkel berechnen?:
log('Lat: ' + lat + ' °, Long: ' + long + ' °');
Hallo Paul, heraus kommt:
2021-07-04 14:02:13.669 - info: javascript.0 (2557) Start javascript script.js.common.Steuerung.Astroskript
2021-07-04 14:02:13.677 - info: javascript.0 (2557) script.js.common.Steuerung.Astroskript: registered 0 subscriptions and 1 schedule
2021-07-04 14:03:00.004 - info: javascript.0 (2557) script.js.common.Steuerung.Astroskript: Lat: °, Long: °Wo kann man die Koordinaten angeben ? Wenn ich in den Instanzen von javascript schaue, ist zumindest meine Adresse angezeigt.
Gruß
Thiemo -
@t-c-0 sagte: ist zumindest meine Adresse angezeigt.
Dann verwende die Daten aus der System-Konfiguration (Ersatz für Zeilen 5 bis 7):
const config = getObject('system.config'); const lat = config.common.latitude; const long = config.common.longitude;
-
Hallo! es scheint nun mehr zu stimmen, wobei mir auf der oben genannten Seite 265° angezeigt wird.
Aus IOBroker nun 254°Dennoch besser als vorher
Danke
-
Alles klar, beim aktualisieren hat sich die GMT verstellt. Also stimmen die Werte nun überein, danke!
-
@homoran sagte in Gesucht: Script: Sonnenwinkel berechnen?:
habe ich in die Skriptsammlung eingefügt:
ERROR Cannot GET /docu/
Umgezogen?
-
@klassisch sagte in Gesucht: Script: Sonnenwinkel berechnen?:
Umgezogen?
nicht wirlich! seit 2018/2020 offline und noch kein neues Zuhause
-
anbei mal ein Script von ursprünglich pix; was ich dann erweitert habe mit den Monddaten:
// 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.System.Sonne_Mond.Sonne_Elevation'; const idSonneAzi = 'javascript.0.System.Sonne_Mond.Sonne_Azimut'; const idMondEle = 'javascript.0.System.Sonne_Mond.Mond_Elevation'; const idMondAzi = 'javascript.0.System.Sonne_Mond.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); 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 ("Sonne: Azimut: " + getState(idSonneAzi).val + "° / Sonne: Elevation: " + getState(idSonneEle).val + "° / Mond: Azimut: " + getState(idMondAzi).val + "° / Mond: Elevation: " + getState(idMondEle).val + "°"); } schedule('23 */4 * * * *', Stand_berechnen); // jede 4. Minute
Für alle die es gebrauchen wollen.
-
und in vis dann so:
-
@bahnuhr cool, Vielen Dank!
-
@klassisch sagte in Gesucht: Script: Sonnenwinkel berechnen?:
@bahnuhr cool, Vielen Dank!
wenn du was brauchst, sag Bescheid.