Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] Azimut und Elevation vom Wiffi spinnen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    893

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[gelöst] Azimut und Elevation vom Wiffi spinnen

Geplant Angeheftet Gesperrt Verschoben JavaScript
12 Beiträge 2 Kommentatoren 355 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von Homoran
    #1

    Seit einigen Tagen habe ich mehrmals täglich Aussetzer in der Berechnung der Solarposition über den Wiffi:
    wiffi_solarposition.png

    Die anderen Werte kommen aber in der selben Zeit weiter, so dass ich eine fehlerhafte Abfrage ausschließen kann.
    Auch auf der CCU setzen zeitgleich die Werte der Solarposition aus dem wiffi aus.

    Ein Reboot des Wiffi brachte nur von gestern abend bis zu dem im Graphen gezeigten Aussetzer Besserung.

    Das parallel noch immer auf der CCU laufende Script von @funkleuchtturm liefert weiterhin die richtigen Werte.

    Das parallel auf ioBroker laufende Uralt-Skript von 2015, jedoch nicht.

    /* 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.1.Sonnenstand.Elevation";
    var Azimut = "javascript.1.Sonnenstand.Azimut";
    var zenit = formatDate(getAstroDate('solarNoon'), 'hh:mm') + ' Uhr'; 
    var nadir = formatDate(getAstroDate('nadir'), 'hh:mm') + ' Uhr';
     
    var suncalc = require('suncalc'),
        result = getObject("system.adapter.javascript.0"),
        lat = result.native.latitude,
        long = result.native.longitude;
     
    createState(Elevation, 0) ; // , {unit: '°'});
    createState(Azimut, 0) ; // , {unit: '°'});
    createState('Sonnenstand.Zenit', '12:00', {type: "string"});
    createState('Sonnenstand.Nadir', '00:00', {type: "string"});
      
     function Sonnenstand_berechnen () {
         var now = new Date();
      
         var sunpos = suncalc.getPosition(now, lat, long);
         console.log(sunpos);
      
         var h = sunpos.altitude * 180 / Math.PI,
             a = sunpos.azimuth * 180 / Math.PI + 180;
      
          setState("Sonnenstand.Elevation", Math.round(10 * h) / 10,true);
          setState("Sonnenstand.Azimut", Math.round(a),true);
          setState("Sonnenstand.Zenit", zenit, true);
          setState("Sonnenstand.Nadir", nadir, true);
      
     }
      
     schedule("*/5 * * * *", Sonnenstand_berechnen); // alle 5 Minuten zur vollen Minute
     Sonnenstand_berechnen(); // bei Scriptstart
    

    Hier habe ich diverse Variablen über console.log ausgeben lassen und bin bei der sunpos auf unplausible Werte gestoßen:
    11:00:00.083 info javascript.1 (21904) script.js.Wetter_und_Klima.Sonnenstand: {'azimuth':-1.5663300872338395,'altitude':1.0120699553297068}

    Kann mir bitte jemand sagen, wo ich dran schrauben muss?

    EDIT:
    ich glaube es liegt hier dran:

        result = getObject("system.adapter.javascript.1"),
        lat = result.native.latitude,
        long = result.native.longitude;
    

    ich kann diese Objekte nicht finden

    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 -

    paul53P 1 Antwort Letzte Antwort
    0
    • HomoranH Homoran

      Seit einigen Tagen habe ich mehrmals täglich Aussetzer in der Berechnung der Solarposition über den Wiffi:
      wiffi_solarposition.png

      Die anderen Werte kommen aber in der selben Zeit weiter, so dass ich eine fehlerhafte Abfrage ausschließen kann.
      Auch auf der CCU setzen zeitgleich die Werte der Solarposition aus dem wiffi aus.

      Ein Reboot des Wiffi brachte nur von gestern abend bis zu dem im Graphen gezeigten Aussetzer Besserung.

      Das parallel noch immer auf der CCU laufende Script von @funkleuchtturm liefert weiterhin die richtigen Werte.

      Das parallel auf ioBroker laufende Uralt-Skript von 2015, jedoch nicht.

      /* 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.1.Sonnenstand.Elevation";
      var Azimut = "javascript.1.Sonnenstand.Azimut";
      var zenit = formatDate(getAstroDate('solarNoon'), 'hh:mm') + ' Uhr'; 
      var nadir = formatDate(getAstroDate('nadir'), 'hh:mm') + ' Uhr';
       
      var suncalc = require('suncalc'),
          result = getObject("system.adapter.javascript.0"),
          lat = result.native.latitude,
          long = result.native.longitude;
       
      createState(Elevation, 0) ; // , {unit: '°'});
      createState(Azimut, 0) ; // , {unit: '°'});
      createState('Sonnenstand.Zenit', '12:00', {type: "string"});
      createState('Sonnenstand.Nadir', '00:00', {type: "string"});
        
       function Sonnenstand_berechnen () {
           var now = new Date();
        
           var sunpos = suncalc.getPosition(now, lat, long);
           console.log(sunpos);
        
           var h = sunpos.altitude * 180 / Math.PI,
               a = sunpos.azimuth * 180 / Math.PI + 180;
        
            setState("Sonnenstand.Elevation", Math.round(10 * h) / 10,true);
            setState("Sonnenstand.Azimut", Math.round(a),true);
            setState("Sonnenstand.Zenit", zenit, true);
            setState("Sonnenstand.Nadir", nadir, true);
        
       }
        
       schedule("*/5 * * * *", Sonnenstand_berechnen); // alle 5 Minuten zur vollen Minute
       Sonnenstand_berechnen(); // bei Scriptstart
      

      Hier habe ich diverse Variablen über console.log ausgeben lassen und bin bei der sunpos auf unplausible Werte gestoßen:
      11:00:00.083 info javascript.1 (21904) script.js.Wetter_und_Klima.Sonnenstand: {'azimuth':-1.5663300872338395,'altitude':1.0120699553297068}

      Kann mir bitte jemand sagen, wo ich dran schrauben muss?

      EDIT:
      ich glaube es liegt hier dran:

          result = getObject("system.adapter.javascript.1"),
          lat = result.native.latitude,
          long = result.native.longitude;
      

      ich kann diese Objekte nicht finden

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @homoran sagte: ich kann diese Objekte nicht finden

      Hast Du die Koordinaten in der Konfiguration der Javascript-Instanz 1 eingetragen?

      var zenit = formatDate(getAstroDate('solarNoon'), 'hh:mm') + ' Uhr'; 
      var nadir = formatDate(getAstroDate('nadir'), 'hh:mm') + ' Uhr';
      

      Diese Berechnung darf nicht nur bei Skript-Start erfolgen, sondern mind. einmal pro Tag.

      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

      HomoranH 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @homoran sagte: ich kann diese Objekte nicht finden

        Hast Du die Koordinaten in der Konfiguration der Javascript-Instanz 1 eingetragen?

        var zenit = formatDate(getAstroDate('solarNoon'), 'hh:mm') + ' Uhr'; 
        var nadir = formatDate(getAstroDate('nadir'), 'hh:mm') + ' Uhr';
        

        Diese Berechnung darf nicht nur bei Skript-Start erfolgen, sondern mind. einmal pro Tag.

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #3

        @paul53 sagte in Azimut und Elevation vom Wiffi spinnen:

        Hast Du die Koordinaten in der Konfiguration der Javascript-Instanz 1 eingetragen?

        ja!
        deswegen hatte ich auch mal javascript.1 probiert, im ersten Versuch stand da aus alten Tagen noch .0, wo nur use system config angehakt war

        @paul53 sagte in Azimut und Elevation vom Wiffi spinnen:

        Diese Berechnung darf nicht nur bei Skript-Start erfolgen, sondern mind. einmal pro Tag.

        Das wäre dann finetuning - Danke!

        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 -

        paul53P 1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @paul53 sagte in Azimut und Elevation vom Wiffi spinnen:

          Hast Du die Koordinaten in der Konfiguration der Javascript-Instanz 1 eingetragen?

          ja!
          deswegen hatte ich auch mal javascript.1 probiert, im ersten Versuch stand da aus alten Tagen noch .0, wo nur use system config angehakt war

          @paul53 sagte in Azimut und Elevation vom Wiffi spinnen:

          Diese Berechnung darf nicht nur bei Skript-Start erfolgen, sondern mind. einmal pro Tag.

          Das wäre dann finetuning - Danke!

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @homoran sagte: ja! deswegen hatte ich auch mal javascript.1 probiert

          Dann müssten die Koordinaten im Tab "NATIV" von "system.adapter.javascript.1" oben zu sehen sein.

          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

          HomoranH 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @homoran sagte: ja! deswegen hatte ich auch mal javascript.1 probiert

            Dann müssten die Koordinaten im Tab "NATIV" von "system.adapter.javascript.1" oben zu sehen sein.

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #5

            @paul53 sagte97):

            Dann müssten die Koordinaten im Tab "NATIV" von "system.adapter.javascript.1" oben zu sehen sein.

            Ja!
            Da sind sie

            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 -

            paul53P 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @paul53 sagte97):

              Dann müssten die Koordinaten im Tab "NATIV" von "system.adapter.javascript.1" oben zu sehen sein.

              Ja!
              Da sind sie

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #6

              @homoran sagte: Da sind sie

              Dann müssen sie auch im Skript eingelesen werden. Ergänze mal in Zeile 16:

              log('Latitude: ' + lat + ' °, Longitude: ' + 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

              HomoranH 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @homoran sagte: Da sind sie

                Dann müssen sie auch im Skript eingelesen werden. Ergänze mal in Zeile 16:

                log('Latitude: ' + lat + ' °, Longitude: ' + long + ' °');
                
                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von Homoran
                #7

                @paul53 sagte:

                @homoran sagte: Da sind sie
                Damm müssen sie auch im Skript eingelesen werden. Ergänze mal in Zeile 16:
                log('Latitude: ' + lat + ' °, Longitude: ' + long + ' °');

                werde ich machen, hatte gerade in RAW nachgesehen:

                "native": {
                    "latitude": "50.xxxxx",
                    "longitude": "6.yyyyy",
                    "libraries": "dewpoint",
                    "libraryTypings": "",
                    "mirrorPath": "",
                    "sunriseEvent": "nightEnd",
                    "sunriseOffset": "",
                    "sunriseLimitStart": "06:00",
                    "sunriseLimitEnd": "12:00",
                    "sunsetEvent": "dusk",
                    "sunsetOffset": "",
                    "sunsetLimitStart": "18:00",
                    "sunsetLimitEnd": "23:00",
                    "mirrorInstance": 0,
                    "enableSetObject": true,
                    "enableSendToHost": false,
                    "enableExec": true,
                    "subscribe": false,
                    "useSystemGPS": false,
                    "allowSelfSignedCerts": false
                  },
                

                und noch mal eine Frage zu:

                @paul53 sagte in Azimut und Elevation vom Wiffi spinnen:

                Diese Berechnung darf nicht nur bei Skript-Start erfolgen, sondern mind. einmal pro Tag.

                wenn ich es richtig sehe, ist das doch Bestandteil der Funktion Sonnenstand_berechnen, die doch auch im schedule aufgerufen wird

                schedule("*/5 * * * *", Sonnenstand_berechnen);

                EDIT:
                Das log gibt die korrekte Geoposition aus

                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 -

                paul53P 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @paul53 sagte:

                  @homoran sagte: Da sind sie
                  Damm müssen sie auch im Skript eingelesen werden. Ergänze mal in Zeile 16:
                  log('Latitude: ' + lat + ' °, Longitude: ' + long + ' °');

                  werde ich machen, hatte gerade in RAW nachgesehen:

                  "native": {
                      "latitude": "50.xxxxx",
                      "longitude": "6.yyyyy",
                      "libraries": "dewpoint",
                      "libraryTypings": "",
                      "mirrorPath": "",
                      "sunriseEvent": "nightEnd",
                      "sunriseOffset": "",
                      "sunriseLimitStart": "06:00",
                      "sunriseLimitEnd": "12:00",
                      "sunsetEvent": "dusk",
                      "sunsetOffset": "",
                      "sunsetLimitStart": "18:00",
                      "sunsetLimitEnd": "23:00",
                      "mirrorInstance": 0,
                      "enableSetObject": true,
                      "enableSendToHost": false,
                      "enableExec": true,
                      "subscribe": false,
                      "useSystemGPS": false,
                      "allowSelfSignedCerts": false
                    },
                  

                  und noch mal eine Frage zu:

                  @paul53 sagte in Azimut und Elevation vom Wiffi spinnen:

                  Diese Berechnung darf nicht nur bei Skript-Start erfolgen, sondern mind. einmal pro Tag.

                  wenn ich es richtig sehe, ist das doch Bestandteil der Funktion Sonnenstand_berechnen, die doch auch im schedule aufgerufen wird

                  schedule("*/5 * * * *", Sonnenstand_berechnen);

                  EDIT:
                  Das log gibt die korrekte Geoposition aus

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @homoran sagte: ist das doch Bestandteil der Funktion Sonnenstand_berechnen

                  Eben nicht. Die Ermittlung der Werte erfolgt außerhalb.

                  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

                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @homoran sagte: ist das doch Bestandteil der Funktion Sonnenstand_berechnen

                    Eben nicht. Die Ermittlung der Werte erfolgt außerhalb.

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #9

                    @paul53 sagte:

                    Eben nicht. Die Ermittlung der Werte erfolgt außerhalb.

                    Danke! - dann habe ich an der falschen Stelle gesucht.

                    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 Antwort Letzte Antwort
                    0
                    • HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #10

                      ich glaube ich habe den Fehler gefunden:

                      Nachdem ich die setState() Befehle angepasst habe, indem ich

                            setState(Elevation, Math.round(10 * h) / 10,true);
                            setState(Azimut, Math.round(a),true);
                            setState("javascript.1.Sonnenstand.Zenit", zenit, true);
                            setState("javascript.1.Sonnenstand.Nadir", nadir, true);
                      

                      die Pfade angepasst habe, läuft es jetzt anscheinend.

                      Habe den Fall mal auf gelöst gesetzt.

                      PS warum der Wiffi auf einmal spinnt weiß ich allerdings immer noch nicht

                      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 -

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • HomoranH Homoran

                        ich glaube ich habe den Fehler gefunden:

                        Nachdem ich die setState() Befehle angepasst habe, indem ich

                              setState(Elevation, Math.round(10 * h) / 10,true);
                              setState(Azimut, Math.round(a),true);
                              setState("javascript.1.Sonnenstand.Zenit", zenit, true);
                              setState("javascript.1.Sonnenstand.Nadir", nadir, true);
                        

                        die Pfade angepasst habe, läuft es jetzt anscheinend.

                        Habe den Fall mal auf gelöst gesetzt.

                        PS warum der Wiffi auf einmal spinnt weiß ich allerdings immer noch nicht

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #11

                        @homoran sagte: die Pfade angepasst habe, läuft es jetzt anscheinend.

                        Läuft das Skript in Instanz 0?

                        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

                        HomoranH 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @homoran sagte: die Pfade angepasst habe, läuft es jetzt anscheinend.

                          Läuft das Skript in Instanz 0?

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #12

                          @paul53 sagte in [gelöst] Azimut und Elevation vom Wiffi spinnen:

                          Läuft das Skript in Instanz 0?

                          nein, in Instanz .1
                          trotzdem wird einiges in .0 angelegt - und auf dem Testrechner lief es früher in .0

                          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 Antwort Letzte Antwort
                          0
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          522

                          Online

                          32.6k

                          Benutzer

                          82.1k

                          Themen

                          1.3m

                          Beiträge
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                          ioBroker Community 2014-2025
                          logo
                          • Anmelden

                          • Du hast noch kein Konto? Registrieren

                          • Anmelden oder registrieren, um zu suchen
                          • Erster Beitrag
                            Letzter Beitrag
                          0
                          • Home
                          • Aktuell
                          • Tags
                          • Ungelesen 0
                          • Kategorien
                          • Unreplied
                          • Beliebt
                          • GitHub
                          • Docu
                          • Hilfe