Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Gesucht: Script: Sonnenwinkel berechnen?

NEWS

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

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

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

Gesucht: Script: Sonnenwinkel berechnen?

Scheduled Pinned Locked Moved Skripten / Logik
101 Posts 27 Posters 27.4k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • bahnuhrB bahnuhr

    Anbei mein Script für Sonne und Mond (ursprünglich mal von pix).

    https://forum.iobroker.net/topic/21947/azimut-und-elevation-für-den-mond/5

    Beachte:
    Bei suncalc stimmt die Elevation beim Mond nicht.

    mfg

    lobomauL Offline
    lobomauL Offline
    lobomau
    wrote on last edited by lobomau
    #70

    Sagt mal, Azimut geht doch von 0 bis 360 und entspricht Grad wie auf dem Kompass, oder? Bei mir geht Wert hoch aber auch wieder runter. Und Sonne steht am höchsten um 14 Uhr anstatt 13 Uhr. Screenshot_20190626-224535__01.jpg

    Host: NUC8i3 mit Proxmox:

    • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
    • Slave: Pi4
    paul53P 1 Reply Last reply
    0
    • lobomauL lobomau

      Sagt mal, Azimut geht doch von 0 bis 360 und entspricht Grad wie auf dem Kompass, oder? Bei mir geht Wert hoch aber auch wieder runter. Und Sonne steht am höchsten um 14 Uhr anstatt 13 Uhr. Screenshot_20190626-224535__01.jpg

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #71

      @lobomau sagte:

      Sonne steht am höchsten um 14 Uhr anstatt 13 Uhr.

      Der passende Zeitpunkt für Duisburg wäre ca. 13:35 Uhr. Die Azimut-Kurve sieht jedoch sehr eigenartig aus. Sie müsste um ca. 1:35 Uhr von 360 ° auf 0° springen und dann kontinuierlich ansteigen.
      Stimmen die in der Konfiguration der Javascript-Instanz eingegebenen Koordinaten ?

      JS-Instanz_nativ.JPG

      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

      lobomauL 1 Reply Last reply
      0
      • paul53P paul53

        @lobomau sagte:

        Sonne steht am höchsten um 14 Uhr anstatt 13 Uhr.

        Der passende Zeitpunkt für Duisburg wäre ca. 13:35 Uhr. Die Azimut-Kurve sieht jedoch sehr eigenartig aus. Sie müsste um ca. 1:35 Uhr von 360 ° auf 0° springen und dann kontinuierlich ansteigen.
        Stimmen die in der Konfiguration der Javascript-Instanz eingegebenen Koordinaten ?

        JS-Instanz_nativ.JPG

        lobomauL Offline
        lobomauL Offline
        lobomau
        wrote on last edited by
        #72

        @paul53 Danke. Manuelles eintragen der Koo. bringt jetzt vernünftige Werte. Ich habe einfach nur die Koo. von den Systemeinstellungen da reinkopiert. Die sollte er sich ja eigentlich selbst reinziehen. Also ein Fehler im javascript-Adapter.

        Host: NUC8i3 mit Proxmox:

        • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
        • Slave: Pi4
        paul53P 1 Reply Last reply
        0
        • lobomauL lobomau

          @paul53 Danke. Manuelles eintragen der Koo. bringt jetzt vernünftige Werte. Ich habe einfach nur die Koo. von den Systemeinstellungen da reinkopiert. Die sollte er sich ja eigentlich selbst reinziehen. Also ein Fehler im javascript-Adapter.

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #73

          @lobomau
          Alternativ kann man im Skript auch die Daten aus der Systemkonfiguration verwenden.

          const config = getObject('system.config');
          const lat = config.common.latitude;
          const long = config.common.longitude;
          

          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 Reply Last reply
          0
          • lobomauL Offline
            lobomauL Offline
            lobomau
            wrote on last edited by
            #74

            Ok. Südrichtung passt exakt mit der Uhrzeit zusammen 🙂

            Host: NUC8i3 mit Proxmox:

            • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
            • Slave: Pi4
            1 Reply Last reply
            0
            • C Offline
              C Offline
              cainam
              wrote on last edited by
              #75

              Hallo zusammen

              Also ich habe das Script 1:1 kopiert... doch kommen bei mir komplett falsche Zahlen an (im vergleich zu https://www.sonnenverlauf.de/)

              Die Koordinaten stimmen und das Skript läuft ohne Fehler und die Daten ändern... aber sind einfach falsch

              Danke und Gruess

              Raphi

              Daten aus sonnenverlauf:
              db45c13a-d15d-4c21-b8e4-ae5a633287ac-image.png
              Daten die Ankommen:

              5d7c0bbf-ffe3-47a8-a3fb-8980840130fb-image.png

              Skript:

               /* System Sonnenstand
              {1}
              Sonne Azimut und Elevation in Variablen schreiben
              {1}
              erstellt: 06.07.2015 nach ioBroker Forum http://forum.iobroker.net/viewtopic.php?f=21&t=975&sid=6f0ba055de5f82eed6809424f49ca93b#p7635
              */
              var Elevation = "javascript.0.Steuerungsflags.Elevation";
              var Azimut = "javascript.0.Steuerungsflags.Azimut";
               
              var suncalc = require('suncalc'),
                  result = getObject("system.adapter.javascript.0"),
                  lat = result.native.latitude,
                  long = result.native.longitude;
              
              createState(Elevation, 0, {type: 'number', unit: '°'});
              createState(Azimut, 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,
                    a = sunpos.azimuth * 180 / Math.PI + 180;
                   setState(Elevation,h.toFixed(1)); /*sonne_elevation*/
                   setState(Azimut,a.toFixed());  /*sonne_azimut*/
              }
               
              
              
              
              schedule("*/5 * * * *", Sonnenstand_berechnen); // alle 5 Minuten zur vollen Minute
              Sonnenstand_berechnen(); // bei Scriptstart
               
              
              HomoranH paul53P 2 Replies Last reply
              0
              • C cainam

                Hallo zusammen

                Also ich habe das Script 1:1 kopiert... doch kommen bei mir komplett falsche Zahlen an (im vergleich zu https://www.sonnenverlauf.de/)

                Die Koordinaten stimmen und das Skript läuft ohne Fehler und die Daten ändern... aber sind einfach falsch

                Danke und Gruess

                Raphi

                Daten aus sonnenverlauf:
                db45c13a-d15d-4c21-b8e4-ae5a633287ac-image.png
                Daten die Ankommen:

                5d7c0bbf-ffe3-47a8-a3fb-8980840130fb-image.png

                Skript:

                 /* System Sonnenstand
                {1}
                Sonne Azimut und Elevation in Variablen schreiben
                {1}
                erstellt: 06.07.2015 nach ioBroker Forum http://forum.iobroker.net/viewtopic.php?f=21&t=975&sid=6f0ba055de5f82eed6809424f49ca93b#p7635
                */
                var Elevation = "javascript.0.Steuerungsflags.Elevation";
                var Azimut = "javascript.0.Steuerungsflags.Azimut";
                 
                var suncalc = require('suncalc'),
                    result = getObject("system.adapter.javascript.0"),
                    lat = result.native.latitude,
                    long = result.native.longitude;
                
                createState(Elevation, 0, {type: 'number', unit: '°'});
                createState(Azimut, 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,
                      a = sunpos.azimuth * 180 / Math.PI + 180;
                     setState(Elevation,h.toFixed(1)); /*sonne_elevation*/
                     setState(Azimut,a.toFixed());  /*sonne_azimut*/
                }
                 
                
                
                
                schedule("*/5 * * * *", Sonnenstand_berechnen); // alle 5 Minuten zur vollen Minute
                Sonnenstand_berechnen(); // bei Scriptstart
                 
                
                HomoranH Offline
                HomoranH Offline
                Homoran
                Global Moderator Administrators
                wrote on last edited by
                #76

                @cainam geoposition in der javascript Instanz korrekt?
                Systemzeit korrekt?

                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 -

                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  cainam
                  wrote on last edited by
                  #77

                  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):

                  7e7b8ae5-ad76-4c01-86ae-fbd38a39e75c-image.png

                  HomoranH ice987I 2 Replies Last reply
                  0
                  • C cainam

                    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):

                    7e7b8ae5-ad76-4c01-86ae-fbd38a39e75c-image.png

                    HomoranH Offline
                    HomoranH Offline
                    Homoran
                    Global Moderator Administrators
                    wrote on last edited by
                    #78

                    @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

                    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 -

                    1 Reply Last reply
                    0
                    • C cainam

                      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):

                      7e7b8ae5-ad76-4c01-86ae-fbd38a39e75c-image.png

                      ice987I Offline
                      ice987I Offline
                      ice987
                      wrote on last edited by ice987
                      #79

                      @cainam

                      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

                      husqvarna-automower, meteoblue, wiserbyfeller, spritmonitor

                      C 1 Reply Last reply
                      0
                      • C Offline
                        C Offline
                        cainam
                        wrote on last edited by
                        #80

                        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

                        1 Reply Last reply
                        0
                        • ice987I ice987

                          @cainam

                          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

                          C Offline
                          C Offline
                          cainam
                          wrote on last edited by
                          #81

                          @ice987 said in Gesucht: Script: Sonnenwinkel berechnen?:

                          @cainam

                          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

                          1 Reply Last reply
                          0
                          • C cainam

                            Hallo zusammen

                            Also ich habe das Script 1:1 kopiert... doch kommen bei mir komplett falsche Zahlen an (im vergleich zu https://www.sonnenverlauf.de/)

                            Die Koordinaten stimmen und das Skript läuft ohne Fehler und die Daten ändern... aber sind einfach falsch

                            Danke und Gruess

                            Raphi

                            Daten aus sonnenverlauf:
                            db45c13a-d15d-4c21-b8e4-ae5a633287ac-image.png
                            Daten die Ankommen:

                            5d7c0bbf-ffe3-47a8-a3fb-8980840130fb-image.png

                            Skript:

                             /* System Sonnenstand
                            {1}
                            Sonne Azimut und Elevation in Variablen schreiben
                            {1}
                            erstellt: 06.07.2015 nach ioBroker Forum http://forum.iobroker.net/viewtopic.php?f=21&t=975&sid=6f0ba055de5f82eed6809424f49ca93b#p7635
                            */
                            var Elevation = "javascript.0.Steuerungsflags.Elevation";
                            var Azimut = "javascript.0.Steuerungsflags.Azimut";
                             
                            var suncalc = require('suncalc'),
                                result = getObject("system.adapter.javascript.0"),
                                lat = result.native.latitude,
                                long = result.native.longitude;
                            
                            createState(Elevation, 0, {type: 'number', unit: '°'});
                            createState(Azimut, 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,
                                  a = sunpos.azimuth * 180 / Math.PI + 180;
                                 setState(Elevation,h.toFixed(1)); /*sonne_elevation*/
                                 setState(Azimut,a.toFixed());  /*sonne_azimut*/
                            }
                             
                            
                            
                            
                            schedule("*/5 * * * *", Sonnenstand_berechnen); // alle 5 Minuten zur vollen Minute
                            Sonnenstand_berechnen(); // bei Scriptstart
                             
                            
                            paul53P Offline
                            paul53P Offline
                            paul53
                            wrote on last edited by
                            #82

                            @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*/
                            

                            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

                            S 1 Reply Last reply
                            0
                            • paul53P paul53

                              @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*/
                              
                              S Do not disturb
                              S Do not disturb
                              stenmic
                              wrote on last edited by stenmic
                              #83

                              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.

                              36903FC0-EAA8-4D85-9CFA-B61601954F77.jpeg

                              ich nutze diese Kurve um Level und Kelvin meiner HUE Lampen zu steuern.

                              6871C072-1789-4D72-829D-C80F9E4A7465.jpeg

                              1 Reply Last reply
                              0
                              • derAugeD derAuge

                                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());
                                
                                    });
                                
                                

                                2.)

                                /*
                                Sonnenstand.SonneBerechnen
                                    Sonne Azimut und Elevation in Variablen schreiben
                                
                                */
                                
                                    var suncalc = require('suncalc'),
                                        result = getObject("system.adapter.javascript.0"),
                                        lat = result.native.latitude,
                                        long = result.native.longitude;
                                
                                    createState('Sonnenstand.Elevation', 0, {unit: '°'});
                                    createState('Sonnenstand.Azimut', 0, {unit: '°'});
                                
                                    function Sonnenstand_berechnen () {
                                        var now = new Date();
                                        var sunpos = suncalc.getPosition(now, lat, long);
                                        var h = sunpos.altitude * 180 / Math.PI,
                                            a = sunpos.azimuth * 180 / Math.PI + 180;
                                
                                        setState("javascript.0.Sonnenstand.Elevation",h.toFixed(1));
                                        setState("javascript.0.Sonnenstand.Azimut",a.toFixed());
                                    }
                                    schedule("*/1 * * * *", Sonnenstand_berechnen);
                                    Sonnenstand_berechnen(); // bei Scriptstart
                                
                                

                                Sie machen eigendlich beide das gleiche. Die Unterschiede (schedule) hat mich gereitzt. Auch habe ich die "verschaltelung" (Untergruppen) eingebaut
                                315_sonnenstand.png

                                Dann habe ich versucht die beiden Werte in VIS abzubilden. (angeregt vom Vorschlag von homoran)
                                315_sonnenstand_vis.png
                                zum Testen hier mal der Export

                                [{"tpl":"tplHqCircle","data":{"visibility-cond":"==","visibility-val":1,"oid":"javascript.0.Sonnenstand.Azimut","min":"0","max":"360","step":"1","displayPrevious":"true","readOnly":true,"unit":"°","caption":"Sonnenstand","hideNumber":false,"angleOffset":"180","angleArc":"360"},"style":{"left":"156px","top":"290px","width":"206px","height":"205px","z-index":"3"},"widgetSet":"hqWidgets"},{"tpl":"tplValueFloatBarVertical","data":{"oid":"javascript.0.Sonnenstand.Elevation","visibility-cond":"==","visibility-val":1,"factor":"1","color":"#f8f948","reverse":true},"style":{"left":"234px","top":"85px","z-index":"4","width":"41px","height":"240px"},"widgetSet":"basic"},{"tpl":"tplRedNumber","data":{"oid":"javascript.0.Sonnenstand.Elevation","visibility-cond":"==","visibility-val":1},"style":{"left":"214px","top":"45px","width":"73px","height":"27px","z-index":"3"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Osten"},"style":{"left":"103px","top":372,"z-index":"3"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Westen"},"style":{"left":"364px","top":371,"width":"66px","height":"20px","z-index":"3"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Norden"},"style":{"left":"228px","top":498,"width":"66px","height":"20px","z-index":"3"},"widgetSet":"basic"},{"tpl":"tplHqCircle","data":{"visibility-cond":"==","visibility-val":1,"oid":"javascript.0.Sonnenstand.Sonne:Azimut","min":"0","max":"360","step":"1","displayPrevious":"true","readOnly":true,"unit":"°","caption":"Sonnenstand","hideNumber":false,"angleOffset":"180","angleArc":"360"},"style":{"left":"641px","top":"290px","width":"206px","height":"205px","z-index":"3"},"widgetSet":"hqWidgets"},{"tpl":"tplValueFloatBarVertical","data":{"oid":"javascript.0.Sonnenstand.Sonne:Höhe","visibility-cond":"==","visibility-val":1,"factor":"1","color":"#f8f948","reverse":true},"style":{"left":"721px","top":"85px","z-index":"4","width":"41px","height":"240px"},"widgetSet":"basic"},{"tpl":"tplRedNumber","data":{"oid":"javascript.0.Sonnenstand.Sonne:Höhe","visibility-cond":"==","visibility-val":1},"style":{"left":"696px","top":"45px","width":"77px","height":"25px","z-index":"3"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Osten"},"style":{"left":594,"top":371,"z-index":"3"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Westen"},"style":{"left":"849px","top":373,"width":"66px","height":"20px","z-index":"3"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Norden"},"style":{"left":"712px","top":499,"width":"66px","height":"20px","z-index":"3"},"widgetSet":"basic"},{"tpl":"tplIFrame","data":{"visibility-cond":"==","visibility-val":1,"refreshInterval":"60000","src":"http://localhost:8082/rickshaw/index.html?range=10080&width=1000&height=700&renderer=line&axeX=lines&axeY2=outside&legend=top%3A5%3Bleft%3A5&title=Sonnenstand&title_pos=top%3A5%3Bleft%3A50&bg=1&hoverDetail=true&timeFormat=%25H%3A%25M%3A%25S%20%25e.%25m.%25y&afterComma=2&_ids=javascript.0.Sonnenstand.Azimut%3Bjavascript.0.Sonnenstand.Elevation&_names=Stand%3BHoehe%3BLine%203&_colors=%23c05020%3B%2330c020%3B%236060c0"},"style":{"left":"0px","top":"0px","width":"1024px","height":"768px","z-index":"1"},"widgetSet":"basic"}]
                                
                                

                                Wenn man nun den Grundriss seines Hauses als Hintergrung nimmt, dann ist man schon mal einen Schritt weiter. (Man weiss wann die Sonne kommt)

                                in einem 3D-Widget könnte es besser aussehen. 😉

                                Gruß

                                Jürgen

                                T. C. 0T Offline
                                T. C. 0T Offline
                                T. C. 0
                                wrote on last edited by
                                #84

                                @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

                                paul53P 1 Reply Last reply
                                0
                                • T. C. 0T T. C. 0

                                  @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

                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  wrote on last edited by
                                  #85

                                  @t-c-0
                                  Stimmen die Ortskoordinaten? Hänge mal an das Skriptende eine Log-Ausgabe dran:

                                  log('Lat: ' + lat + ' °, Long: ' + long + ' °');
                                  

                                  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

                                  T. C. 0T 1 Reply Last reply
                                  0
                                  • paul53P paul53

                                    @t-c-0
                                    Stimmen die Ortskoordinaten? Hänge mal an das Skriptende eine Log-Ausgabe dran:

                                    log('Lat: ' + lat + ' °, Long: ' + long + ' °');
                                    
                                    T. C. 0T Offline
                                    T. C. 0T Offline
                                    T. C. 0
                                    wrote on last edited by
                                    #86

                                    @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

                                    paul53P 1 Reply Last reply
                                    0
                                    • T. C. 0T T. C. 0

                                      @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

                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      wrote on last edited by paul53
                                      #87

                                      @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;
                                      

                                      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

                                      T. C. 0T 1 Reply Last reply
                                      1
                                      • paul53P paul53

                                        @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;
                                        
                                        T. C. 0T Offline
                                        T. C. 0T Offline
                                        T. C. 0
                                        wrote on last edited by
                                        #88

                                        @paul53

                                        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

                                        T. C. 0T 1 Reply Last reply
                                        0
                                        • T. C. 0T T. C. 0

                                          @paul53

                                          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

                                          T. C. 0T Offline
                                          T. C. 0T Offline
                                          T. C. 0
                                          wrote on last edited by
                                          #89

                                          @t-c-0

                                          Alles klar, beim aktualisieren hat sich die GMT verstellt. Also stimmen die Werte nun überein, danke!

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          491

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe