NEWS
SOLVED [gelöst] Javascript wrong type "string"
-
Hallo,
ich habe einen Wemos D1 an dem ein HC-SR04 Sensor hängt mit Tasmota geflasht um den Füllstand meiner Zisterne zu berechnen. Klappt auch, allerdings habe ich sehr viele Warnung im Log. Das Problem ist das der Wemos die gemessene Distanz nicht einem einzelenen State per mqtt überträgt sondern so:
MQT: tele/sonoff/SENSOR = {"Time":"2019-09-14T20:25:00","SR04":{"Distance":88.596}}
Darauf hin habe ich mir gedacht naja, dann zieh ich mir das raus was ich brauche mit einen kleinen blockly (was ansich funktioniert):
Es kommt aber immer diese Warnung im Log. Distance_Zisterne wurde von mir erstellt und hat den Typ number. tele/sonoff/SENSOR hat den Typ string habe ich umgestellt auf number. Fehler ist aber immer noch da...
warn: javascript.0 Wrong type of mqtt.0.tele.sonoff.Distance_Zisterne: "string". Please fix, while deprecated and will not
Warum sendet tasmota den Wert vom Sensor nicht in einem separatem State? Kann man das einstellen?
Hier der ganze log, diese Fehler kommen alle 5 min immer wenn per mqtt aktualisiert wird:
2019-09-14 22:00:10.087 - warn: javascript.0 Wrong type of mqtt.0.tele.sonoff.Distance_Zisterne: "string". Please fix, while deprecated and will not work in next versions. 2019-09-14 22:00:10.092 - warn: javascript.0 at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20) 2019-09-14 22:00:10.093 - warn: javascript.0 at Object. (script.js.funktioniert.Füllstand_Zisterne:20:3) 2019-09-14 22:00:10.093 - warn: javascript.0 at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:963:38) 2019-09-14 22:00:10.093 - warn: javascript.0 at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25) 2019-09-14 22:00:10.093 - warn: javascript.0 at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3425:37) 2019-09-14 22:00:10.093 - warn: javascript.0 at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30) 2019-09-14 22:00:10.093 - warn: javascript.0 at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20) 2019-09-14 22:00:10.093 - warn: javascript.0 at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:278:10) 2019-09-14 22:00:10.093 - warn: javascript.0 at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12) 2019-09-14 22:00:10.093 - warn: javascript.0 at Manager. (/opt/iobroker/node_modules/component-bind/index.js:21:15) 2019-09-14 22:00:10.094 - warn: javascript.0 at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20) 2019-09-14 22:00:10.094 - warn: javascript.0 at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:345:8) 2019-09-14 22:00:10.094 - warn: javascript.0 at Decoder. (/opt/iobroker/node_modules/component-bind/index.js:21:15) 2019-09-14 22:00:10.094 - warn: javascript.0 at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20) 2019-09-14 22:00:10.094 - warn: javascript.0 at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-parser/index.js:251:12) 2019-09-14 22:00:10.097 - warn: javascript.0 at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:335:16) 2019-09-14 22:00:10.097 - warn: javascript.0 at Socket. (/opt/iobroker/node_modules/component-bind/index.js:21:15) 2019-09-14 22:00:10.097 - warn: javascript.0 at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20) 2019-09-14 22:00:10.097 - warn: javascript.0 at Socket.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:456:14) 2019-09-14 22:00:10.097 - warn: javascript.0 at WS. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:273:10) 2019-09-14 22:00:10.097 - warn: javascript.0 at WS.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20) 2019-09-14 22:00:10.097 - warn: javascript.0 at WS.Transport.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:145:8) 2019-09-14 22:00:10.097 - warn: javascript.0 at WS.Transport.onData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:137:8) 2019-09-14 22:00:10.098 - warn: javascript.0 at WebSocket.ws.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transports/websocket.js:147:10) 2019-09-14 22:00:10.098 - warn: javascript.0 at WebSocket.onMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/EventTarget.js:99:16) 2019-09-14 22:00:10.098 - warn: javascript.0 at emitOne (events.js:116:13) 2019-09-14 22:00:10.098 - warn: javascript.0 at WebSocket.emit (events.js:211:7) 2019-09-14 22:00:10.098 - warn: javascript.0 at Receiver._receiver.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:141:47) 2019-09-14 22:00:10.098 - warn: javascript.0 at Receiver.dataMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:389:14) 2019-09-14 22:00:10.098 - warn: javascript.0 at Receiver.getData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:330:12) 2019-09-14 22:00:10.098 - warn: javascript.0 at Receiver.startLoop (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:165:16) 2019-09-14 22:00:10.098 - warn: javascript.0 at Receiver.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:139:10) 2019-09-14 22:00:10.099 - warn: javascript.0 at Socket._ultron.on (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:138:22) 2019-09-14 22:00:10.099 - warn: javascript.0 at emitOne (events.js:116:13) 2019-09-14 22:00:10.099 - warn: javascript.0 at Socket.emit (events.js:211:7) 2019-09-14 22:00:10.099 - warn: javascript.0 at addChunk (_stream_readable.js:263:12) 2019-09-14 22:00:10.099 - warn: javascript.0 at readableAddChunk (_stream_readable.js:250:11) 2019-09-14 22:00:10.099 - warn: javascript.0 at Socket.Readable.push (_stream_readable.js:208:10) 2019-09-14 22:00:10.099 - warn: javascript.0 at TCP.onread (net.js:601:20)
-
@saeft_2003 sagte:
Ist in meinem Fall der trigger und aktualisiere Objekt richtig bzw. der gleiche?
Nein, das "aktualisiere Objekt" muss der Datenpunkt mit dem Namen "Distance Zisterne" vom Typ "Zahl" sein. Das Attribut lautet "SR04.Distance" (kein Leerzeichen, sondern Punkt).
Wert ist übrigens eine Eigenschaft des Trigger-Datenpunktes (unter Trigger).
-
@saeft_2003
eine elegante und allgemeingültige Lösung hab ich in Blockly leider nicht gefunden.Soweit ich das sehe kommt der Fehler daher das du einen string in ein number-objekt steckst. Das solltest du mit dem
Baustein beheben können.
A.
-
@Asgothian sagte:
eine elegante und allgemeingültige Lösung hab ich in Blockly leider nicht gefunden.
-
@paul53
Fein - genau danach hatte ich gesucht. JS kann ich - Blockly nicht so -
Danke an alle ich werde es heute Abend ausprobieren und melde mich dann
-
Ich hab dein blockly nachgebaut. Leider hab ich nicht verstanden was es genau tut. Ist in meinem Fall der trigger und aktualisiere Objekt richtig bzw. der gleiche?
-
@saeft_2003 sagte:
Ist in meinem Fall der trigger und aktualisiere Objekt richtig bzw. der gleiche?
Nein, das "aktualisiere Objekt" muss der Datenpunkt mit dem Namen "Distance Zisterne" vom Typ "Zahl" sein. Das Attribut lautet "SR04.Distance" (kein Leerzeichen, sondern Punkt).
Wert ist übrigens eine Eigenschaft des Trigger-Datenpunktes (unter Trigger).
-
Ok danke ich probiers aus heute Abend...
-
@paul53 sagte in Javascript wrong type "string":
@saeft_2003 sagte:
Ist in meinem Fall der trigger und aktualisiere Objekt richtig bzw. der gleiche?
Nein, das "aktualisiere Objekt" muss der Datenpunkt mit dem Namen "Distance Zisterne" vom Typ "Zahl" sein. Das Attribut lautet "SR04.Distance" (kein Leerzeichen, sondern Punkt).
Wert ist übrigens eine Eigenschaft des Trigger-Datenpunktes (unter Trigger).
Ich habe alles geändert wie du gesagt hast und siehe da es geht
und das beste ist die extrem vielen Warnungen im Log sind auch weg.... Vielen Dank an dich!!!