NEWS
[Experimentell] JS-Controller compact mode
-
Uups auch nicht Absicht. Sage es bluefox.
Gesendet vom Handy …
-
Alles klar und danke für die Info.
-
For All: Ich habe eine Zeile oben im Initialen Post gefixt:
> typeof module !== undefined muss entweder typeof module !== "undefined" oder module != undefined oder einfach nur module sein.
-
Koordiniering der Implementierung in alle Adapter: https://docs.google.com/spreadsheets/d/ … sp=sharing
-
Update compact Mode: aktuellste GitHub Version 1.6.0 sollte stoppen von compact-adatern und auch prozess-umbenennen gefixt haben
-
Hallo zusammen,
ich würde auch gern meine Adapter (lgtv, lgtv11, hp-ilo, enet) ändern.
Allerdings habe ich den zu ändern Code
const adapter = new utils.Adapter({ name: ..., stateChange: function () {...}, ... });
So in keinen meiner Adapter drin. Alle meine Adapter sind vom Aufbau im Prinzip gleich. Kann da mal jemand schauen und mir sagen was ich wo ändern muss? Den Eintrag in der JSON sehe ich nicht als Problem.
-
… er geschrieben dann überlegt :oops:
-
Hallo zusammen,
ich würde auch gern meine Adapter (lgtv, lgtv11, hp-ilo, enet) ändern.
Allerdings habe ich den zu ändern Code
const adapter = new utils.Adapter({ name: ..., stateChange: function () {...}, ... });
So in keinen meiner Adapter drin. Alle meine Adapter sind vom Aufbau im Prinzip gleich. Kann da mal jemand schauen und mir sagen was ich wo ändern muss? Den Eintrag in der JSON sehe ich nicht als Problem. `
Kann dir gerne im Laufe des Tages mal deinen ioBroker.lgtv anpassen und dir einen PR schicken?
Dort hast du z.B. in Zeile 161 sowas wie ..
adapter.on('stateChange', function (id, state) { ... }
.. und das müsste u.a. halt ersetzt werden. 8-)
-
Kann dir gerne im Laufe des Tages mal deinen ioBroker.lgtv anpassen und dir einen PR schicken? `
Das wäre super. Dann würde ich das für die anderen Adapter übernehmen wollen.
Vielen Dank schon mal im Voraus!
-
Danke BasGo
Funktioniert prima. Habe die anderen jetzt ach angepasst.
Geht doch einfacher als es aussieht
Einer noch
-
Bei mir leider nicht mehr! nach dem Update vom Adapter Enet, stellt er keine Verbindung mehr her.
Im Log steht: instance system.adapter.enet.0 terminated with code 10 (Cannot find start file of adapter)
Warum?
-
Kann ich so leider nicht nachvollziehen.
Habe bei mir extra den eNet-Adapter komplett deinstalliert, aus dem Github neu installiert und er läuft.
-
Bei mir leider nicht mehr! nach dem Update vom Adapter Enet, stellt er keine Verbindung mehr her.
Im Log steht: instance system.adapter.enet.0 terminated with code 10 (Cannot find start file of adapter)
Warum? `
Versuch mal „iobroker upload enet“ und dann neu startenGesendet vom Handy …
-
Super für die schnelle Antwort… Danke euch.
Läuft wieder!
Hab es auch direkt aus dem GitHub installiert...
-
Ich möchte meine Adapter langsam umbauen aber diese auch vorher testen bevor ich auf git publishe.
Wie kann ich auf einem Test-Raspi den beta-cs-controller installieren und kann man dann bei jeder Instanz entscheiden ob sie compact sein soll oder nicht?
Ich will nicht dass mein Adapter den controller killt wenn irgendwelche Fehler auftreten. Momentan ist's wurscht da er normal wieder gestartet wird, jetzt wäre es eher ein fataler Fehler (ist ja schon beim Javascript-Adapter so dass man mit manchen scripten den ganzen Adapter abschießen kann).
Deshalb der Test, und bei einigen Adaptern muss ich auch noch die Verbindungs-Logik ändern, jetzt wird nur verbunden (mit einem externen device) wenn der Adapter gestartet wird. Ist die Verbing nich möglich startet der Adapter neu.
Kann im compact mode der adapter auch neu gestartet werden (= neue compact-instanz die alte Referenzen wie .on-Befehle oder timeouts automatisch löscht)? Bis jetz musste man sich darum nicht kümmern wenn der Adapter heruntergefahren wurde da die komplette Instant weg war.
Deshalb ist der einstieg/umstieg nicht nur einige Zeilen code zum einfügen!
-
@fsjoke:Wie kann ich auf einem Test-Raspi den beta-cs-controller installieren und kann man dann bei jeder Instanz entscheiden ob sie compact sein soll oder nicht? `
im ioBroker Verzeichnis ein
npm install ioBroker/ioBroker.js.controller#1.6.0-dev
Dann wie oben beschrieben aktivieren (eigentlich steht alles oben im ersten Post räusper
Pro instanz wählen geht noch nicht, dazu gibtes ein Admin Issue um das bis zum release zu machen. Es wird alles was compact kann als compact ausgeführt wenn man es aktiviert.
@fsjoke:Ich will nicht dass mein Adapter den controller killt wenn irgendwelche Fehler auftreten. Momentan ist's wurscht da er normal wieder gestartet wird, jetzt wäre es eher ein fataler Fehler (ist ja schon beim Javascript-Adapter so dass man mit manchen scripten den ganzen Adapter abschießen kann).
Deshalb der Test, und bei einigen Adaptern muss ich auch noch die Verbindungs-Logik ändern, jetzt wird nur verbunden (mit einem externen device) wenn der Adapter gestartet wird. Ist die Verbing nich möglich startet der Adapter neu. `
Das sollte generell tun. Du must nur wie oben beschrieben adapter.terminate() nutzen anstelle process.exit!
Und Ja Adapter sollten ein robustes Fehlerhandling haben.
@fsjoke:Kann im compact mode der adapter auch neu gestartet werden (= neue compact-instanz die alte Referenzen wie .on-Befehle oder timeouts automatisch löscht)? Bis jetz musste man sich darum nicht kümmern wenn der Adapter heruntergefahren wurde da die komplette Instant weg war. `
Sollte tun … teste es und falls es Probleme gibt mach Issues auf.
-
Ok, wollte heute den ersten Adapter auf compact mode testen und hab auf meinen Testraspi iobroker neu installiert da ich das iobroker start/stop unbedingt brauch.
Das hat auch funktioniert, und ich hab auch meine V2 development Version des Raspi's laden.
Nun hab ich ausprobiert den js-controller wie von dir beschrieben auf 1.6.0-dev upzudaten:
npm install ioBroker/ioBroker.js.controller#1.6.0-dev
Das funktionierte gar nicht
npm ERR! code EINVALIDTAGNAME npm ERR! Invalid tag name "ioBroker.js.controller#1.6.0-dev": Tags may not have any characters that encodeURIComponent encodes.
Dann hab ich's mit
npm install https://github.com/ioBroker/ioBroker.js-controller/tarball/1.6.0-dev
versucht, NPM installierte und ich hab dann natürlich iobroker start aufgerufen und folgendes bekommen:
pi@raspi4:/opt/iobroker $ iobroker start module.js:550 throw err; ^ Error: Cannot find module '/opt/iobroker/lib/setup.js' at Function.Module._resolveFilename (module.js:548:15) at Function.Module._load (module.js:475:25) at Module.require (module.js:597:17) at require (internal/module.js:11:18) at Object. <anonymous>(/opt/iobroker/iobroker:2:1) at Module._compile (module.js:653:30) at Object.Module._extensions..js (module.js:664:10) at Module.load (module.js:566:32) at tryModuleLoad (module.js:506:12) at Function.Module._load (module.js:498:3)</anonymous>
Alse der 1.6dev dürfte nicht mit dem neuen Start zusammenarbeiten!
Bitte melde dich wenn man eine frische Installation mit 1.6dev testen kann.
-
Hm … also npm install ioBroker/ioBroker.js.controller#1.6.0-dev ist falsch ... nimm mal
npm install ioBroker/ioBroker.js-controller#1.6.0-dev
-
NPM akzeptiert es aber die Installation ist trotzdem tot dann:
iobroker start module.js:550 throw err; ^ Error: Cannot find module './lib/setup.js' at Function.Module._resolveFilename (module.js:548:15) at Function.Module._load (module.js:475:25) at Module.require (module.js:597:17) at require (internal/module.js:11:18) at Object. <anonymous>(/opt/iobroker/iobroker:2:1) at Module._compile (module.js:653:30) at Object.Module._extensions..js (module.js:664:10) at Module.load (module.js:566:32) at tryModuleLoad (module.js:506:12) at Function.Module._load (module.js:498:3)</anonymous>
Also kann ich iobroker nicht mehr starten sobald ich die V1.6dev installiere!
-
Komisch. Der sucht im falschen Pfad!!
Wie sieht denn in /opt/iobroker das iobroker executable aus?