NEWS
Adapter per Skript stoppen/starten löscht Einstellungen
-
Hi,
ich habe immer mit folgendem Code Adapter neugestartet/gestoppt und gestartet:
var object_name = "system.adapter.hmip." + i; var obj = getObject(object_name); // restart obj.common.restartAdapter = true; setObject(object_name, obj); // enable obj.common.enabled = true; setObject(object_name, obj); // disable obj.common.enabled = false; setObject(object_name, obj);
Wenn ich das jetzt mache bei meinem hmip-Adapter, dann werden die ganzen Einstellungen (Authentication token, PIN, ...) in der Instanz entfernt.
GIbt es andere Wege um Adapter neuzutarten/stoppen/starten oder ist es irgendwo (im Adapter? iobroker?) ein Bug?
-
@cedric Logisch, weil Du die protected Attribute nicht lesen kannst und diese somit auch nicht schreibst = weg. Nicht mit setObject arbeiten.
Du kannst
startInstanceAsync('hmip.0');
nutzen. bzw.stopInstanceAsync('hmip.0');
Erfordert den JavaScript-Adapter v8.7.0 oder neuer
-
@haus-automatisierung sagte: protected Attribute nicht lesen kannst und diese somit auch nicht schreibst = weg
Ist das der Grund für die Einführung der Funktionen startInstanceAsync() und stopInstanceAsync()?
In der Funktionsdoku fehlen die Funktionen noch.
Mit extendObject() sollte es weiterhin funktionieren? -
@cedric sagte: // restart
Hat der HMIP-Adapter wirklich ein Attribut common.restartAdapter?
-
@paul53 sagte in Adapter per Skript stoppen/starten löscht Einstellungen:
Mit extendObject() sollte es weiterhin funktionieren?
Ja, intern nutzten die neuen Funktionen auch extendObject. Hab ich nur eingebaut, damit es einfacher wird und man sich nicht mit den Objekten unter
system.*
auskennen muss.@paul53 sagte in Adapter per Skript stoppen/starten löscht Einstellungen:
In der Funktionsdoku fehlen die Funktionen noch.
Steht noch auf ToDo
-
@paul53 said in Adapter per Skript stoppen/starten löscht Einstellungen:
@cedric sagte: // restart
Hat der HMIP-Adapter wirklich ein Attribut common.restartAdapter?
Wo steht das?
Lt. io-package schema gibts das Attribute nicht (oder ich habs übersehen)Frage zurückgezogen. Hab schon gesehen dass das im Script steht. Das Attribut existiert lt. Schema nicht. (https://github.com/ioBroker/ioBroker.js-controller/blob/master/schemas/io-package.json)
-
@paul53 sagte in Adapter per Skript stoppen/starten löscht Einstellungen:
Hat der HMIP-Adapter wirklich ein Attribut common.restartAdapter?
Hat er wahrscheinlich nicht. Aber die Instanz startet neu, wenn das Instanz-Objekt bearbeitet / geändert wird. Das ist ja bei jeder Instanz so.
Und da kann man halt auch ausgedachte Attribute setzen (was man natürlich nicht tun sollte) um einen Neustart zu erzwingen.
Kein schöner Weg.
-
@haus-automatisierung sagte: Aber die Instanz startet neu, wenn das Instanz-Objekt bearbeitet / geändert wird.
Deshalb übergibst du an extendObject() (js-controller) bei Restart ein leeres Objekt.
-
@paul53 sagte in Adapter per Skript stoppen/starten löscht Einstellungen:
Deshalb übergibst du an extendObject() (js-controller) bei Restart ein leeres Objekt.
-
Tausend Dank Leute für die Hilfe!
Läuft jetzt allesSchönes WE!