Das ist schon ein Paar Tage her.
Gibt es hier eventuell ein Update wie man das Ganze updated?
NEWS
Latest posts made by Wlad
-
RE: Update-Anleitung für Windows (js-controller)
-
RE: Parmeter in der on() Funktion übergeben
@paul53
Absolute Spitze!
Vilen Dank! -
Parmeter in der on() Funktion übergeben
Hallo, ich habe eine kleine Triggerfunktion, mit der ich die Thermostate bei der Umstellung Manu-Auto synchronisiere
var BadThermostats = ['hm-rpc.1.NEQ .2.','hm-rpc.1.NEQ .4.']; on({id:BadThermostats[0]+"CONTROL_MODE",change:"ne"}, function(){ // hier array eintragen var arr = BadThermostats; // hier array eintragen var status = getState(arr[0]+"CONTROL_MODE").val; console.log('stdout: ' + status); if(status === 0) { for(var i = 0; i<arr.length; i++) setState(arr[i]+"AUTO_MODE",false); } else { var current=getState(arr[0]+"SET_TEMPERATURE"); console.log('current.val: ' + current.val); for( i = 0; i<arr.length; i++) { setState(arr[i]+"MANU_MODE",current.val); } } });
Damit klappt es soweit alles Prima.
Nun möchte ich das gleiche für ca. 10 weitere Thermostatgruppen erweitern.
Dann muss ich logischerweise dann den gleichen code 10 Mal kopieren und die arrays dementsprechen anpassen.
Das ist total unbequem, da die Funktion schon ziemlich erweitert wurde( hier ist nur die vereinfachte Version) und zwecks weiteren Codeanpassungen total unbequem.
Logisch wäre es natürliceh die Funktion auszulagern und dann ihr die Parameter mit dem entsprechenden Array der Thermostatgruppe übergeben.
Wenn ich nur die Funkton auslagerefunction checkRoom(){ // hier array eintragen var arr = BadThermostats; // hier array eintragen var status = getState(arr[0]+"CONTROL_MODE").val; console.log('stdout: ' + status); if(status === 0) { for(var i = 0; i<arr.length; i++) setState(arr[i]+"AUTO_MODE",false); } else { var current=getState(arr[0]+"SET_TEMPERATURE"); console.log('current.val: ' + current.val); for( i = 0; i<arr.length; i++) { setState(arr[i]+"MANU_MODE",current.val); } } } on({id:BadThermostats[0]+"CONTROL_MODE",change:"ne"}, checkRoom);
Funktioniert ja alles noch, aber ich möchte nun Parameter übergeben.
Dann ändere ich folgendermassen und der Compiler schimpft...
Ich komme hier nicht weiter,
kann mir bitte jemend auf die Sprünge helfen -
RE: Thermostat umstellen von manu auf auto funktioniert nicht
@Pman
Ich versuche es auch umzusetzen, bekomme aber den Code nicht bereinigt.
Es sind einige Syntaxfehler noch vorhanden und ich bekomme die nicht weg.var thermostats = ["hm-rpc.1.NEQ093xxxxx"]; for(var i = 0; i<thermostats.length; i++) subscribemode(thermostats[i]); function subscribemode(thermostatid){ on({id:thermostatid+".2.control_mode",change:"any"},(state)if(state.state.ack="==" false) {(state.state.val="==" 0){setstate(thermostatid".2.auto_mode",true);}}else{ var current=getState(thermostatid" ".2.set_temperature);".2.manu_mode",current.val);});}
-
RE: Update-Anleitung für Windows (js-controller)
Super,
das es für dich geklappt hat.
Dann warte ich noch bis die Update Funktion ordnungsgemäss funktioniert -
RE: Update-Anleitung für Windows (js-controller)
Mal eine Frage.
Kann man eigentlich alles platt machen und dann IoBroker neuaufsetzen und den neuen Ornder iobroker-data löschen und den zuvor gesicherten dahin zu kopieren?
Geht es denn überhaupt, läuft es dann alles reibungslos? -
RE: Update-Anleitung für Windows (js-controller)
@P-A-L-A-D-I-N
Danke für die Vorwarnung
werde die Füsse erst mal still halten, bis die Freigabe kommt.
Habe schon Mal Iobroker neuaufgesetzt, muss jetzt nicht noch Mal sein -
RE: Update-Anleitung für Windows (js-controller)
Hallo,
ich habe jetz vor auch ein Update durchzuziehen .
Momentan habe ich noch:
js-controller 1.5.14
Node.js: v6.14.3
NPM: 3.10.10
Windows-Installer in der Version 2.1.0.aWie gehe nun richtig vor?
- iobroker als Admin stoppen
- Ordner iobroker-data sichern
und dann muss ich Node.js erst deinstallieren wie in dem Post vom Stabilostick 1.Juni 14:40
oder sofort den Windows Installer nutzen?