Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. assigning a string / which expects a number

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    assigning a string / which expects a number

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      daruse last edited by

      Hallo zusammen,

      ich bin noch recht neu auf dem Gebiet ioBroker (JavaScript). Aber durch das Forum hier habe ich schon viel lernen können und bisher auch immer eine Antwort gefunden. Diesmal komme ich aber leider nicht weiter...

      Ich habe mir folgendes Script, welches mir den Sonnenstand errechnet, eingebunden.

      /* 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');
      const config = getObject('system.config');
      const lat = config.common.latitude;
      const long = config.common.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
      

      Nur zur Vollständigkeit, die Zeilen 11, 12 und 13 habe ich angepasst, sonst ist es die original Übernahme.

      Nun bekomme ich aber zyklisch folgende Fehlermeldung:

      You are assigning a string to the state "javascript.0.Steuerungsflags.Elevation" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
      

      Kann mir Bitte jemand sagen wo ein String definiert wird bzw. wie ich den "Fehler" beheben kann?
      Die Anzeige in Grafana funktioniert soweit mit dem Script.

      Besten Dank im Voraus,
      Stefan

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @daruse last edited by

        @daruse sagte: wo ein String definiert wird bzw. wie ich den "Fehler" beheben kann?

        Zeilen 23, 24: .toFixed() wandelt eine Zahl in einen String. Richtig:

             setState(Elevation, Math.round(h * 10) / 10); /*sonne_elevation*/
             setState(Azimut, Math.round(a));  /*sonne_azimut*/
        
        D 1 Reply Last reply Reply Quote 0
        • D
          daruse @paul53 last edited by

          @paul53 WOW Danke, so schnell hätte ich nicht mit einer Antwort gerechnet.
          Funktioniert, besten Dank!

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          705
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          356
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo