NEWS
Zeitstempel entfernen
-
@paul53
Kaum macht Man(n) es richtig, dann klappt es auch. Die 38 % stehen über dem Tank in der Vis.
Und ich habe es stundenlang mit trim, ltrim, replace usw. versucht.
Vielen Dank nochmal
mp24 -
@paul53
Ich erhalte Warnungen:
javascript.0 (16643) at script.js.common.von_IOBroker_nach_Homematic.Zisterne_Hoehenstand_ohne_Zeit:10:1
Bzw. 21:3
Was könnte das bedeuten ?Vielen Dank
mp24 -
@mp24 sagte: javascript.0 (16643) at script.js.common.von_IOBroker_nach_Homematic.Zisterne_Hoehenstand_ohne_Zeit:10:1
Mehr nicht? Schau mal in den Tab "Protokolle", ob es dort nicht mehr Informationen gibt.
-
@paul53
Die Fehlermeldungen:
You are assigning a number to the state "hm-rega.0.1740" which expects a string. Please fix your code to use a string or change the state type to number. This warning might become an error in future versionsat setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1437:20)
Der Wert der vom Broker übermittelt wird ist vom Typ string. In der Homematic Zahl.
Muss erst noch gewandelt werden ? -
@mp24 sagte: You are assigning a number to the state "hm-rega.0.1740"
Ändere den Typ des Datenpunktes in "Zahl".
-
@paul53
Der Datenpunkt in der Homematic ist Zahl. Aber von MQTT kommt String an -
@mp24 sagte in Zeitstempel entfernen:
Der Datenpunkt in der Homematic ist Zahl. Aber von MQTT kommt String an
das log sagt aber was anderes
und das Skript von @paul53 schreibt eine Zahl -
@mp24 sagte: Der Datenpunkt in der Homematic ist Zahl.
Das hat die Instanz "hm-rega.0" aber noch nicht mitbekommen.
-
@paul53
Genau. Der Rega Adapter stand noch auf String. Rega Adapter neu gestartet - steht nuun auf Zahl. Aber neue Fehler:at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1082:38) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5909:56)
-
@paul53
Noch mehr Fehlermeldungen:
javascript.0
2022-03-18 18:32:05.739 info State value to set for "hm-rega.0.1740" has to be type "number" but received type "string"
javascript.0
2022-03-18 18:32:05.713 warn at processImmediate (internal/timers.js:464:21)
javascript.0
2022-03-18 18:32:05.713 warn at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5909:56)
javascript.0
2022-03-18 18:32:05.713 warn at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:530:29)
javascript.0
2022-03-18 18:32:05.713 warn at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1082:38)
javascript.0
2022-03-18 18:32:05.713 warn at Object.<anonymous> (script.js.common.von_IOBroker_nach_Homematic.Zisterne_Hoehenstand_ohne_Zeit:17:4)
javascript.0
2022-03-18 18:32:05.712 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1437:20)
javascript.0
2022-03-18 18:32:05.393 warn You are assigning a string to the state "hm-rega.0.1740" 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. -
@mp24 sagte: warn You are assigning a string to the state "hm-rega.0.1740" which expects a number.
parseFloat() macht eine Zahl aus dem String-Teil hinter dem Leerzeichen. Hast Du was am Skript geändert?
const idAdapter = 'mqtt.0.Zisterne.Hoehenstand'; const idSysvar = 'hm-rega.0.1740'; // Skriptstart setState(idSysvar, parseFloat(getState(idAdapter).val.split(' ')[1])); // Aktualisierung bei Wertänderung on(idAdapter, function(dp) { setState(idSysvar, parseFloat(dp.state.val.split(' ')[1])); });
-
@paul53
So sieht das Script aus:var idAdapter = 'mqtt.0.Zisterne.Hoehenstand'/*Quelle*/ var idSysvar = 'hm-rega.0.1740'/*Ziel*/ // Skriptstart // setState(idSysvar, getState(idAdapter).val); setState(idSysvar, parseFloat(getState(idAdapter).val.split(' ')[1])); // Aktualisierung bei Wertänderung on(idAdapter, function(dp) { setState(idSysvar, dp.state.val); });
-
@paul53
Und so die hmrega 1740:"_id": "hm-rega.0.1740", "type": "state", "common": { "name": "SV_Zisterne-Hoehenstand", "type": "number", "read": true, "write": true, "role": "state", "min": 0, "max": 100, "unit": "%",
-
@mp24 sagte: So sieht das Script aus:
Zeile 17:
setState(idSysvar, parseFloat(dp.state.val.split(' ')[1]));
-
@paul53 said in Zeitstempel entfernen:
setState(idSysvar, parseFloat(dp.state.val.split(' ')[1]));
Aus dem Hinweis gestern Zeile 9:
habe ich geschlossen. das nur der Befehl in Zeike 9 gehört.
Das es zweimal gesetzt werden muss habe ich falsch verstanden.Ich senke demütig mein Haupt und bitte um Entschuldigung
mp24