NEWS
( gelöst)Problem bei meinen ersten Skriptschritten
-
Hallo,
ich bin neu in Jscript. hab ca 20 Skripte erfolgreich an laufen. die Dokuhab ich ziemlich ganz nachgearbeitet.
ich will die in Raspimatic angelegten progamme nach und nach in iobroker verlagern.
aber bei dem jetzigen bin ich zu unerfahren. die Experten werden wahrscheinlich die Hände über dem Kopf zusammenschlagen !!var dienst = getState("Heizung.Dienst").val; //console.log(" Dienst " + dienst); var reise = getState("Heizung.Reise").val; //console.log("Reise " + reise); var wozistarkheizen = getState("javascript.0.Wohnzimmer.Starkheizen").val //console.log(" Wozi " + wozistarkheizen); var schlafzistarkheizen = getState("Schlafzimmer.Starkheizen").val //console.log(" schlaf " + schlafzistarkheizen); var badstarkheizen = getState("Bad.Starkheizen").val //console.log("BAD " + badstarkheizen); var normal = getState("Heizung.Normal").val //console.log("Normal " + normal); on({id:"hm-rpc.0.MEQ0671104.18.PRESS_LONG"/*Displayfb Normal heizen*/}, function () { setState(reise , false); setState(dienst , false); setState(wozistarkheizen , false); setState(schlafzistarkheizen , false); setState(badstarkheizen , false); setState(normal , true); }) on({id:'hm-rpc.0.MEQ0671104.18.PRESS_SHORT'/*Displayfb Normal heizen*/}, function () { setState(reise , false); setState(dienst , false); setState(wozistarkheizen , false); setState(schlafzistarkheizen , false); setState(badstarkheizen , false); setState(normal , true); })
Das Scriptlog bringt mir diese Fehler
22.12.2019, 15:33:14.637 [info ]: javascript.0 (8968) Start javascript script.js.Heizung.Displayfernbedienung_Heizung_normal 22.12.2019, 15:33:14.651 [info ]: javascript.0 (8968) script.js.Heizung.Displayfernbedienung_Heizung_normal: registered 2 subscriptions and 0 schedules 22.12.2019, 15:33:22.023 [warn ]: javascript.0 (8968) at Object.<anonymous> (script.js.Heizung.Displayfernbedienung_Heizung_normal:20:5) 22.12.2019, 15:33:22.033 [warn ]: javascript.0 (8968) at Object.<anonymous> (script.js.Heizung.Displayfernbedienung_Heizung_normal:21:5) 22.12.2019, 15:33:22.041 [warn ]: javascript.0 (8968) at Object.<anonymous> (script.js.Heizung.Displayfernbedienung_Heizung_normal:22:5) 22.12.2019, 15:33:22.048 [warn ]: javascript.0 (8968) at Object.<anonymous> (script.js.Heizung.Displayfernbedienung_Heizung_normal:23:5) 22.12.2019, 15:33:22.056 [warn ]: javascript.0 (8968) at Object.<anonymous> (script.js.Heizung.Displayfernbedienung_Heizung_normal:24:5) 22.12.2019, 15:33:22.063 [warn ]: javascript.0 (8968) at Object.<anonymous> (script.js.Heizung.Displayfernbedienung_Heizung_normal:25:5)
Das iobroker log
20191222iobrokerlog.txtdie variablen werden oben richtig eingelesen(dafür hab ich die console log meist für die Tests mit eingebaut)
setState( reise , false) hab ich in dieser Syntax in anderen Scripten korrekt am laufen. igendwo in dem on aufruf muß wohl mein fehler liegen. bin für jeden Tip dankbar.
allen schon mal schöne Festtage! -
-
Hallo Paul53;
in reise ist true oder false gespeichert.
hab das console.log mal aktiviert.
22.12.2019, 15:59:37.677 [info ]: javascript.0 (8968) Start javascript script.js.Heizung.Displayfb_Heizung_normal 22.12.2019, 15:59:37.685 [info ]: javascript.0 (8968) script.js.Heizung.Displayfb_Heizung_normal: Reise false 22.12.2019, 15:59:37.686 [info ]: javascript.0 (8968) script.js.Heizung.Displayfb_Heizung_normal: registered 2 subscriptions and 0 schedules
In folgendem script das in vis vom tablet gestartet wird geht es.
//löschen der Reisevariable und Dienstvariablen und Starkeizvariablen createState('Heizung.Normal'); var reise = "Heizung.Reise" var dienst = "Heizung.Dienst" var normal = "Heizung.Normal" var badstarkheizen = "Bad.Starkheizen" var wozistarkheizen = "Wohnzimmer.Starkheizen" var schlafzistarkheizen = "Schlafzimmer.Starkheizen" on({id: "hm-rega.0.28022", ack: true}, function(dp) { // Reisevariable aus Diesntvariable aus //console.log("ausgelöst"); setState(reise , false); setState(dienst , false); setState(normal , true); setState(badstarkheizen , false); setState(wozistarkheizen , false); setState(schlafzistarkheizen , false); });
-
@aba320 sagte:
In folgendem script das in vis vom tablet gestartet wird geht es.
In diesem Skript ist reise eine ID. Der Befehl lautet setState(id, val).
-
@paul53
Danke jetzt ist der Groschen bei mir gefallen.
habs jetzt so geändert:var dienst = "Heizung.Dienst"; //console.log(" Dienst " + dienst); var reise = "Heizung.Reise"; //console.log("Reise " + reise);
und für alle anderen.
wie kann ich den titel mit gelöst erweitern?
Danke für deinen Hinweis und frohe Weihnachtstage!
Gruß aus HH -
@aba320 sagte:
wie kann ich den titel mit gelöst erweitern?
Die Überschrift editieren.
@aba320 sagte in Problem bei meinen ersten Skriptschritten:
//console.log(" Dienst " + dienst);
Falls der Log mal aktiviert werden soll, dann ändere die Zeile(n) in
//console.log(" Dienst " + getState(dienst).val);
-
@paul53
ich meinte den Forumstag. hab ich aber über edit hingekriegt. und vielen Dank für den console .log hinweis.
Gruß aus HH