NEWS
[Gelöst] Adapter via Script ein- und ausschalten??
-
Liebe Leute,
wie kann man einen Adapter (in meinem Fall den Ping-Adapter) in einem Script ein- und/oder ausschalten?
Ich hab es mit setState ("system.adapter.ping.0.alive", false); versucht ihn abzudrehen, aber er startet dann gleich wieder automatisch….
auch wenn ich ihm gleichzeitig den ".....connected" auf false drehe, startet er wieder von selbst :?:
Möchte je nach Anwesenheit ein Ping alle 30 oder alle 120 Sekunden abfeuern und brauch dazu aber pro Gerät jeweils zwei Ping-Adapter, von denen ich einen abdrehen möchte....
...oder kann ich das Setting, also die 120000 oder 30000 Milisekunden via Script wo rein schreiben??
Grüße
Tom
-
@etv:…oder kann ich das Setting, also die 120000 oder 30000 Milisekunden via Script wo rein schreiben?? `
Versuche malvar obj = getObject("system.adapter.ping.0"); obj.native.interval = 120000; setObject("system.adapter.ping.0", obj);
-
Versuche mal
var obj = getObject("system.adapter.ping.0"); obj.native.interval = 120000; setObject("system.adapter.ping.0", obj); ```` `
…sensationell - das funkt!!! Leute ihr seid echt ein Wahnsinn!
Danke dir paul53
-
@etv:wie kann man einen Adapter (in meinem Fall den Ping-Adapter) in einem Script ein- und/oder ausschalten? `
var obj = getObject("system.adapter.ping.0"); obj.common.enabled = false; // Adapter ausschalten setObject("system.adapter.ping.0", obj);
-
Versuche mal
var obj = getObject("system.adapter.ping.0"); obj.native.interval = 120000; setObject("system.adapter.ping.0", obj); ```` `
…einmal muss ich noch lästig sein - wie kann ich den aktuell gesetzten Wert in so einem Objekt auslesen? Mit getState schaffe ich es leider nicht und mit getObject auch nicht wirklich? Da der Ping Adapter nach jeder Änderung einen restart macht, möchte ich im Script vorher prüfen, ob der Wert nicht eh schon richtig ist um einen neuerlichen restart zu verhindern....
Danke
Tom
-
@etv:wie kann ich den aktuell gesetzten Wert in so einem Objekt auslesen? `
var interval = getObject("system.adapter.ping.0").native.interval;
-
@etv:wie kann ich den aktuell gesetzten Wert in so einem Objekt auslesen? `
var interval = getObject("system.adapter.ping.0").native.interval; ```` `
…danhinter anhängen...ok, auf das wäre ich nicht gekommen...
Tausend Dank - so steht der Migration von CuxD-Ping auf den Ping-Adapter von ioBroker nichts mehr im Wege und sobald alle Scripte die SysExec beinhalten auch auf ioBroker laufen, kann ich CuxD abdrehen und der CCU wieder eine Last ersparen die ist bei mir bald wirklich nur mehr ein reines Funkinterface....
Grüße
Tom
-
Hallo,
gibt es einen Befehl um eine Instanz per Skript neu zu starten?
Schöne Grüße
ThomasDr
-
Hallo,
gibt es einen Befehl um eine Instanz per Skript neu zu starten?
Schöne Grüße
ThomasDr `
Servus ThomasD,ja gibt es - hier findest du die Infos dazu:
https://r.tapatalk.com/shareLink?url=ht … are_type=t
Adapter via Script ein- und ausschalten??
Liebe Grüße
tom
Gesendet von meinem MHA-L29 mit Tapatalk
-
Hallo,
im Prinzip hat dieser Thread meine Hauptfrage schon beantwortet, aber eine zusätzliche hätte ich noch:
Ist es normal, dass ein Adapter deutlich länger zum Starten benötigt, wenn er per Script gestartet wird?
Wenn ich den Adapter (milight) per Hand starte, ist dieser nahezu ohne Verzögerung online (Lebenszeichen) und nach ca. 10 Sekunden verbunden.
Wird der Adapter per Script gestartet, vergehen schon 30 Sekunden, bis das Lebenszeichen vorhanden ist und dann die 10 Sekunden, bis er verbunden ist. Der gesamte Start dauert also 40 Sekunden.
Im Log erhalte ich einen Eintrag, dass eine Instanz bereits läuft:
2018-12-31 13:53:23.060 - info: javascript.0 script.js.milight.test: registered 0 subscriptions and 1 schedule 2018-12-31 13:54:00.060 - info: javascript.0 script.js.milight.test: test starte adapter 2018-12-31 13:54:00.062 - warn: host.srv-iobroker1 instance "system.adapter.milight.0" enabled 2018-12-31 13:54:00.063 - info: host.srv-iobroker1 object change system.adapter.milight.0 2018-12-31 13:54:00.063 - info: host.srv-iobroker1 "system.adapter.milight.0" enabled 2018-12-31 13:54:00.071 - info: host.srv-iobroker1 instance system.adapter.milight.0 started with pid 13964 2018-12-31 13:54:00.251 - error: host.srv-iobroker1 instance system.adapter.milight.0 terminated with code 7 (Adapter already running) 2018-12-31 13:54:00.251 - info: host.srv-iobroker1 Restart adapter system.adapter.milight.0 because enabled 2018-12-31 13:54:30.260 - info: host.srv-iobroker1 instance system.adapter.milight.0 started with pid 13982
Für diesen Test sieht mein Script so aus:
schedule("* * * * *", function () { console.log('test starte adapter'); setState("system.adapter.milight.0.alive"/*milight.0.alive*/, true); });
Kann sich das jemand erklären?