NEWS
wrong type of...
-
Danke an alle!
Habe jetzt erst einmal alle States mit "nach Zahl" konvertiert. Läuftjetzt ohne Fehlermeldung.
Issue beim Luftdaten-Adapter ist erstellt.
@SBorg sagte in wrong type of...:
Wahrscheinlich 12,5, nicht 12.5 ...

Zumindest nicht sichtbar
-
Danke an alle!
Habe jetzt erst einmal alle States mit "nach Zahl" konvertiert. Läuftjetzt ohne Fehlermeldung.
Issue beim Luftdaten-Adapter ist erstellt.
@SBorg sagte in wrong type of...:
Wahrscheinlich 12,5, nicht 12.5 ...

Zumindest nicht sichtbar
-
@Homoran sagte:
alle States mit "nach Zahl" konvertiert.
Du meinst alle Werte aus "luftdaten.0" ? Das wäre ausreichend.
@paul53 sagte in wrong type of...:
Das wäre ausreichend.
Danke!
Da war ich mir eben nicht sicher, ob die States, in denen er das Ergebnis aus einer "Text-Addition" eingetragen hatte nicht auch den falschen Typ haben.
Mit diesen Werten rechnet er ja nachher weiter. -
@paul53 sagte in wrong type of...:
Das wäre ausreichend.
Danke!
Da war ich mir eben nicht sicher, ob die States, in denen er das Ergebnis aus einer "Text-Addition" eingetragen hatte nicht auch den falschen Typ haben.
Mit diesen Werten rechnet er ja nachher weiter. -
@Homoran sagte:
States, in denen er das Ergebnis aus einer "Text-Addition" eingetragen hatte nicht auch den falschen Typ haben.
Ja, das muss einmalig korrigiert werden.
@paul53
Dann setze ich alles auf 0 und beginne von vorn.
Da stimmt sowie so etwas nicht ;-)
Die potentiellen Tagesmittelwerte sind unplausibel. -
@paul53
Dann setze ich alles auf 0 und beginne von vorn.
Da stimmt sowie so etwas nicht ;-)
Die potentiellen Tagesmittelwerte sind unplausibel. -
@Homoran sagte:
Die potentiellen Tagesmittelwerte sind unplausibel.
Wenn bisher eine String-Verkettung anstelle einer Addition erfolgte, können die Werte nicht stimmen.
@paul53
Das habe ich mir auch gedacht -
@Homoran sagte:
Die potentiellen Tagesmittelwerte sind unplausibel.
Wenn bisher eine String-Verkettung anstelle einer Addition erfolgte, können die Werte nicht stimmen.
@paul53 sagte in wrong type of...:
@Homoran sagte:
Die potentiellen Tagesmittelwerte sind unplausibel.
Wenn bisher eine String-Verkettung anstelle einer Addition erfolgte, können die Werte nicht stimmen.
Das war wohl schon immer String:
self.setState(path + 'SDS_' + obj.value_type, {val: obj.value, ack: true});Ich finde aber nix was obj.value prüft oder als Zahl konvertiert. Mein JS ist "so naja", aber was ich dabei nicht verstehe, die Funktion ist für 2.5 + 10, warum meckert er nur die 2.5 an (10 ist, wie es die Funktion ja auch vorgibt, ebenfalls String)?
-
@paul53 sagte in wrong type of...:
@Homoran sagte:
Die potentiellen Tagesmittelwerte sind unplausibel.
Wenn bisher eine String-Verkettung anstelle einer Addition erfolgte, können die Werte nicht stimmen.
Das war wohl schon immer String:
self.setState(path + 'SDS_' + obj.value_type, {val: obj.value, ack: true});Ich finde aber nix was obj.value prüft oder als Zahl konvertiert. Mein JS ist "so naja", aber was ich dabei nicht verstehe, die Funktion ist für 2.5 + 10, warum meckert er nur die 2.5 an (10 ist, wie es die Funktion ja auch vorgibt, ebenfalls String)?
@SBorg
er hatte beides angemeckert.
Ich hatte nur das eine als Beispiel genommen -
@Homoran Ok, danke, dann raff ich das auch ^^
Muss Matthias fixen... :) -
@paul53 sagte in wrong type of...:
@Homoran sagte:
Die potentiellen Tagesmittelwerte sind unplausibel.
Wenn bisher eine String-Verkettung anstelle einer Addition erfolgte, können die Werte nicht stimmen.
Das war wohl schon immer String:
self.setState(path + 'SDS_' + obj.value_type, {val: obj.value, ack: true});Ich finde aber nix was obj.value prüft oder als Zahl konvertiert. Mein JS ist "so naja", aber was ich dabei nicht verstehe, die Funktion ist für 2.5 + 10, warum meckert er nur die 2.5 an (10 ist, wie es die Funktion ja auch vorgibt, ebenfalls String)?
@SBorg sagte:
Das war wohl schon immer String:
Ist der Code aus dem Adapter ?
Wenn es eine Zahl sein soll, wie es common.type = 'number' vorgibt, muss gewandelt werden.self.setState(path + 'SDS_' + obj.value_type, {val: parseFloat(obj.value), ack: true}); -
@SBorg sagte:
Das war wohl schon immer String:
Ist der Code aus dem Adapter ?
Wenn es eine Zahl sein soll, wie es common.type = 'number' vorgibt, muss gewandelt werden.self.setState(path + 'SDS_' + obj.value_type, {val: parseFloat(obj.value), ack: true});@paul53 sagte in wrong type of...:
Wenn es eine Zahl sein soll, wie es common.type = 'number' vorgibt, muss gewandelt werden.
self.setState(path + 'SDS_' + obj.value_type, {val: parseFloat(obj.value), ack: true});Ja, und genau so sieht meine Änderung auch aus (war mir nicht zu 100% sicher) :)
Resultat:16:30:46.076 info javascript.0 (31077) script.js.Skript_1: number 16:30:46.077 info javascript.0 (31077) script.js.Skript_1: registered 0 subscriptions and 0 schedules -
Jetzt hat es mich auch erwischt.
ich habe
javascript.0 2019-12-26 13:42:02.610 warn (1053) at processImmediate (timers.js:658:5) javascript.0 2019-12-26 13:42:02.610 warn (1053) at tryOnImmediate (timers.js:676:5) javascript.0 2019-12-26 13:42:02.610 warn (1053) at runCallback (timers.js:705:18) javascript.0 2019-12-26 13:42:02.610 warn (1053) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:226:41) javascript.0 2019-12-26 13:42:02.610 warn (1053) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4745:37) javascript.0 2019-12-26 13:42:02.609 warn (1053) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25) javascript.0 2019-12-26 13:42:02.609 warn (1053) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:963:38) javascript.0 2019-12-26 13:42:02.609 warn (1053) at Object.<anonymous> (script.js.Luftdaten_kumulieren:7:3) javascript.0 2019-12-26 13:42:02.608 warn (1053) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20) javascript.0 2019-12-26 13:42:02.607 warn (1053) Wrong type of 0_userdata.0.Umwelt.PM2_5_Summe: "string". Please fix, while deprecated and will not work in next versions.Aber ich habe alles kontrolliert und alles ist "number":
{ "_id": "0_userdata.0.Umwelt.PM2_5_Summe", "type": "state", "common": { "name": "PM2_5_Summe", "role": "value", "type": "number", "desc": "Manuell erzeugt", "read": true, "write": true, "def": false }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1577356159237, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 } }und im Script steht:
on({id: 'luftdaten.0.34499.SDS_P1', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("0_userdata.0.Umwelt.PM10_Anzahl"/*PM10_Anzahl*/, (getState("0_userdata.0.Umwelt.PM10_Anzahl").val + 1), true); setState("0_userdata.0.Umwelt.PM10_Summe"/*PM10_Summe*/, (getState("0_userdata.0.Umwelt.PM10_Summe").val + getState("luftdaten.0.34499.SDS_P1").val), true); setState("0_userdata.0.Umwelt.PM2_5_Anzahl"/*PM2_5_Anzahl*/, (getState("0_userdata.0.Umwelt.PM2_5_Anzahl").val + 1), true); setState("0_userdata.0.Umwelt.PM2_5_Summe"/*PM2_5_Summe*/, (getState("luftdaten.0.34499.SDS_P2").val + 1), true); }); schedule("59 23 * * *", function () { setState("0_userdata.0.Umwelt.PM10_Tagesmittel"/*PM10_Tagesmittel*/, (getState("0_userdata.0.Umwelt.PM10_Summe").val / getState("0_userdata.0.Umwelt.PM10_Anzahl").val), true); setState("0_userdata.0.Umwelt.PM2_5_Tagesmittel"/*PM2_5_Tagesmittel*/, (getState("0_userdata.0.Umwelt.PM2_5_Summe").val / getState("0_userdata.0.Umwelt.PM2_5_Anzahl").val), true); });Alle diese States sind vom typ number.
{ "type": "state", "common": { "name": "PM2.5", "type": "number", "role": "value.ppm", "unit": "µg/m³", "read": true, "write": false, "custom": { "history.0": { "enabled": true, "changesOnly": true, "debounce": "1000", "maxLength": "20", "retention": 0, "changesRelogInterval": "1800", "changesMinDelta": 0, "aliasId": "" } } }, "native": {}, "from": "system.adapter.luftdaten.0", "user": "system.user.admin", "ts": 1577284209810, "_id": "luftdaten.0.34499.SDS_P2", "acl": { "object": 1638, "state": 1638 } }muss ich trotzdem eine Konvertierung zu Zahl durchführen?
@Homoran in diesem Thread wurde schonmal ein sehr hilfreiches Skript gebaut um Probleme rund um "wrong type of" zu finden: https://forum.iobroker.net/topic/25796/objekte-aufräumen/
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