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. assigning a string / which expects a number

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

assigning a string / which expects a number

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 444 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.
  • D Offline
    D Offline
    daruse
    schrieb am zuletzt editiert von
    #1

    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

    paul53P 1 Antwort Letzte Antwort
    0
    • D daruse

      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

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

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

      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

      D 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @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 Offline
        D Offline
        daruse
        schrieb am zuletzt editiert von
        #3

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

        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

        514

        Online

        32.5k

        Benutzer

        81.7k

        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