NEWS
Javascript Fehler "javascript.0 Wrong type of…"
-
Liebe Leute,
ich hab heute alle verfügbaren Updates (rega, javascript & Co) gemacht (alles läuft bestens) und trotzdem hab ich leider noch immer diesen Fehler:
warn: javascript.0 Wrong type of javascript.0.Klima.OUT.Tau: "string". Please fix, while deprecated and will not work in next versions.
Diese Variable wird in meinem Lüftungsscript verwendet und kommt im Script genau zweimal vor - je einmal als exakt gleiche Zeile in einer "on state" Gruppe - und so sieht die Zeile aus:
setState("javascript.0.Klima.OUT.Tau", y.dp.toFixed(1));
Die Variable ist als Number angelegt und ich frag mich, wo zum Henker da ein String vorkommt :?:
Das Lüftungsscript wird für jeden Raum extra bei jeder Temperatur- oder Luftfeuchteänderung durchlaufen, d.h. das sind dann schon mal ein paar Hundert Einträge im Errorlog pro Tag.
Des weiteren hab ich seit der vorletzten javascript Version das Problem, dass folgendes Programm nicht mehr richtig läuft:
! // Waschmaschine AKTIV - V1.5
! // Funktion send Message
! on ({id: "hm-rega.0.21500", val: 3}, function () {
! var jetzt = new Date();
! var Stunde = jetzt.getHours();
! var Minute = jetzt.getMinutes();
! if (Minute === 0) {
! Minute = "00";
! }
! // –---------------------DIESE ZEILE WIRD NICHT AUSGEFÜHRT------------------------------------
! setState("hm-rega.0.21500", 4);
! // -----------------------DIESE ZEILE WIRD NICHT AUSGEFÜHRT------------------------------------
! log("------------------------------ Waschmaschine ist FERTIG! ------------------------------");
! var anwesend_Tom = getState("hm-rega.0.6457").val;
! var anwesend_Sonja = getState("hm-rega.0.6456").val;
! // Ausgabe am Tablett:
! var request = require("request");
! var Url = "http://192.168.68.30:50000/track=gong.mp3";
! request(Url);
! Url = "http://192.168.68.30:50000/tts=die Waschmaschine ist jetzt fertig";
! request(Url);
! // wenn Sonja da, dann Nachricht senden!
! if (anwesend_Sonja){
! sendTo("pushbullet", {
! message: "Die Waschmaschine ist seit " + Stunde + ":" + Minute + " fertig!",
! title: "Waschmaschine fertig",
! type: "note",
! receiver: "xxxx"
! });
! }
! // wenn Tom da, dann Nachricht senden!
! if (anwesend_Tom){
! sendTo("pushbullet", {
! message: "Die Waschmaschine ist seit " + Stunde + ":" + Minute + " fertig!",
! title: "Waschmaschine fertig",
! type: "note",
! receiver: "xxxxx"
! });
! }
! });
! // Werteliste
! // 0...ausgeschaltet
! // 1...eingeschaltet und noch nicht gelaufen
! // 2...Waschmaschine läuft
! // 3...Waschmaschine ist fertig
! // 4...Waschmaschine fertig UND Nachricht gesendet
! // Waschmaschine ist ausgeschaltet
! on ({id: "hm-rpc.0.MEQ0271152.2.CURRENT", valLe: "35", change: "ne", logic: "and"}, function () {
! var Status = getState("hm-rega.0.21500").val;
! if (Status != 2){
! clearStateDelayed("hm-rega.0.21500");
! setState("hm-rega.0.21500", 0);
! }
! });
! // Waschmaschine läuft
! on ({id: "hm-rpc.0.MEQ0271152.2.CURRENT", valGt: "1000", change: "gt", logic: "and"}, function () {
! var Status = getState("hm-rega.0.21500").val;
! if (Status != 2){
! clearStateDelayed("hm-rega.0.21500");
! setState("hm-rega.0.21500", 2);
! }
! });
! // Waschmaschine ist ein oder fertig
! on ({id: "hm-rpc.0.MEQ0271152.2.CURRENT", valLe: "42", valGe: "40", logic: "and"}, function () {
! var Status = getState("hm-rega.0.21500").val;
! if (Status === 0){
! clearStateDelayed("hm-rega.0.21500");
! setState("hm-rega.0.21500", 1);
! }
! if (Status == 2){
! setStateDelayed("hm-rega.0.21500", 3, 60000);
! }
! });
Abgesehen davon, dass beim Starten der Maschine sofort die Meldung "fertig" kommt, wird diese Meldung bis zum St. Nimmerleinstag alle paar Sekunden wiederholt und die Zeile, wo das gelöscht werden sollte nicht ausgeführt…Hat es da auch Probleme mit den falschen Variablentypen?? Im Errorlog kommt nichts dergleichen...
Grüße
etv
-
toFixed(1) erzeugt einen String. Korrigiere bitte:
setState("javascript.0.Klima.OUT.Tau", parseFloat(y.dp.toFixed(1)));
oder, wenn Dich viele Nachkommastellen nicht stören:
setState("javascript.0.Klima.OUT.Tau", y.dp);
@etv:// –---------------------DIESE ZEILE WIRD NICHT AUSGEFÜHRT------------------------------------
setState("hm-rega.0.21500", 4);
// -----------------------DIESE ZEILE WIRD NICHT AUSGEFÜHRT------------------------------------ `
Welchen Wert hat der Datenpunkt "hm-rega.0.21500" ?Was steht in common.min und common.max des Objekts ?
-
toFixed(1) erzeugt einen String. Korrigiere bitte:
setState("javascript.0.Klima.OUT.Tau", parseFloat(y.dp.toFixed(1)));
oder, wenn Dich viele Nachkommastellen nicht stören:
setState("javascript.0.Klima.OUT.Tau", y.dp);
@etv:// –---------------------DIESE ZEILE WIRD NICHT AUSGEFÜHRT------------------------------------
setState("hm-rega.0.21500", 4);
// -----------------------DIESE ZEILE WIRD NICHT AUSGEFÜHRT------------------------------------ `
Welchen Wert hat der Datenpunkt "hm-rega.0.21500" ?Was steht in common.min und common.max des Objekts ? `
oder so:setState("javascript.0.Klima.OUT.Tau", Math.round(y.dp * 10) / 10);
-
toFixed(1) erzeugt einen String. Korrigiere bitte:
setState("javascript.0.Klima.OUT.Tau", parseFloat(y.dp.toFixed(1)));
oder, wenn Dich viele Nachkommastellen nicht stören:
setState("javascript.0.Klima.OUT.Tau", y.dp);
@etv:// –---------------------DIESE ZEILE WIRD NICHT AUSGEFÜHRT------------------------------------
setState("hm-rega.0.21500", 4);
// -----------------------DIESE ZEILE WIRD NICHT AUSGEFÜHRT------------------------------------ `
Welchen Wert hat der Datenpunkt "hm-rega.0.21500" ?Was steht in common.min und common.max des Objekts ? `
oder so:setState("javascript.0.Klima.OUT.Tau", Math.round(y.dp * 10) / 10); ```` `
…danke Leute - ihr seid SPITZE!!!
Also auf die Idee, dass toFixed einen String erzeugt wäre ich nie gekommen
...aja - und der Common Max war 3
D.h. mit den neuen javascript Versionen werden also ALLE Programmfehler schnonungslos aufgedeckt....oje - na da kommt noch was auch mich zu, weil das Programmieren ist nicht ganz so mein Ding :?
Danke nochmal für eure Hilfe
schöne Grüße
tom
-
@etv:D.h. mit den neuen javascript Versionen werden also ALLE Programmfehler schnonungslos aufgedeckt… `
Bei weitem nicht alle -