NEWS
assigning a string / which expects a number
-
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 ScriptstartNur 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 -
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 ScriptstartNur 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@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*/ -
@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*/
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden