Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. [Experimentell] JS-Controller compact mode

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

[Experimentell] JS-Controller compact mode

Scheduled Pinned Locked Moved Entwicklung
47 Posts 14 Posters 10.6k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    SchuetzeSchulz
    wrote on last edited by
    #17

    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.

    1 Reply Last reply
    0
    • blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      wrote on last edited by
      #18

      … er geschrieben dann überlegt :oops:

      Entwickler vom: - Viessman Adapter
      - Alarm Adapter

      1 Reply Last reply
      0
      • B Offline
        B Offline
        BasGo
        wrote on last edited by
        #19

        @SchuetzeSchulz:

        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-)

        1 Reply Last reply
        0
        • S Offline
          S Offline
          SchuetzeSchulz
          wrote on last edited by
          #20

          @BasGo:

          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!

          1 Reply Last reply
          0
          • S Offline
            S Offline
            SchuetzeSchulz
            wrote on last edited by
            #21

            Danke BasGo :)

            Funktioniert prima. Habe die anderen jetzt ach angepasst.

            Geht doch einfacher als es aussieht :)

            Einer noch :)

            1 Reply Last reply
            0
            • T Offline
              T Offline
              tobsi85
              wrote on last edited by
              #22

              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?

              1 Reply Last reply
              0
              • S Offline
                S Offline
                SchuetzeSchulz
                wrote on last edited by
                #23

                Kann ich so leider nicht nachvollziehen.

                Habe bei mir extra den eNet-Adapter komplett deinstalliert, aus dem Github neu installiert und er läuft.

                1 Reply Last reply
                0
                • apollon77A Offline
                  apollon77A Offline
                  apollon77
                  wrote on last edited by
                  #24

                  @tobsi85:

                  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 starten

                  Gesendet vom Handy …

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Reply Last reply
                  0
                  • T Offline
                    T Offline
                    tobsi85
                    wrote on last edited by
                    #25

                    Super für die schnelle Antwort… Danke euch.

                    Läuft wieder!

                    Hab es auch direkt aus dem GitHub installiert...

                    1 Reply Last reply
                    0
                    • frankjokeF Offline
                      frankjokeF Offline
                      frankjoke
                      wrote on last edited by
                      #26

                      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!

                      Frank,

                      NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                      Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

                      1 Reply Last reply
                      0
                      • apollon77A Offline
                        apollon77A Offline
                        apollon77
                        wrote on last edited by
                        #27

                        @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.

                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                        1 Reply Last reply
                        0
                        • frankjokeF Offline
                          frankjokeF Offline
                          frankjoke
                          wrote on last edited by
                          #28

                          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.

                          Frank,

                          NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                          Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

                          1 Reply Last reply
                          0
                          • apollon77A Offline
                            apollon77A Offline
                            apollon77
                            wrote on last edited by
                            #29

                            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

                            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                            1 Reply Last reply
                            0
                            • frankjokeF Offline
                              frankjokeF Offline
                              frankjoke
                              wrote on last edited by
                              #30

                              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!

                              Frank,

                              NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                              Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

                              1 Reply Last reply
                              0
                              • apollon77A Offline
                                apollon77A Offline
                                apollon77
                                wrote on last edited by
                                #31

                                Komisch. Der sucht im falschen Pfad!!

                                Wie sieht denn in /opt/iobroker das iobroker executable aus?

                                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                1 Reply Last reply
                                0
                                • frankjokeF Offline
                                  frankjokeF Offline
                                  frankjoke
                                  wrote on last edited by
                                  #32

                                  Bitte wenn ihr den neuen Modus testet folgendes Berücksichtigen:

                                  // If started as allInOne/compact mode => return function to create instance
                                  if (module && module.parent) {
                                      module.exports = startAdapter;
                                  } else {
                                      // or start the instance directly
                                      startAdapter();
                                  } 
                                  

                                  darf nicht immer am Ende stehen, es muss vor der ersten Benutzung der Variablen adapter eingefügt werden

                                  Ich selbst verwende ein Modul das mir 90% der Adapterarbeit abnimmt. Mein code lautete vorher:

                                  const adapter = utils.Adapter('radar'),
                                  	assert = require('assert'),
                                  	MA = require('./myAdapter'),
                                      	A = MA.MyAdapter;
                                  

                                  und weiter unten nach anderen Deklarationen oder Klassendefinitionen:

                                  A.init(adapter, main);
                                  

                                  Ich muss also den obigen code vor dem A.init(… setzten und nicht ans Ende!

                                  pricess.exit hat ein Argument mit dem man den return code setzt, kann adapter.terminate das auch?

                                  Ich verwende bei aktivem Stop durch Probleme erzeugt werden welche den Adapter nicht zum Laufen bringen zum Beispeil return code 5:

                                  setTimeout(ret => adapter.terminate ? adapter.terminate(ret) : process.exit(ret), 1000, 5)
                                  

                                  p.s.:Ich wundere mich warum js-controller Adapter welche fatal exit codes liefern immer wieder re-startet! Wenn ein Adapter nicht laufen kann weil er schrott in der Konfig hat muss er das irgendwie sagen können, auch mit adapter.terminate!

                                  Leider schaffe ich es nicht den 1.6.0-dev zu installieren ohne dass iobroker unbrauchbar wird und kann daher meinen code nicht testen!

                                  Ich glaub der Fehler liegt daran was um den 23.1. geändert wurde damit iobroker stop/start wieder funktioniert.

                                  Frank,

                                  NUC's, VM's und Raspi's unter Raspian, Ubuntu und Debian zum Testen.
                                  Adapter die ich selbst beigesteuert habe: BMW, broadlink2, radar2, systeminfo, km200, xs1 und einige im Anmarsch!

                                  1 Reply Last reply
                                  0
                                  • apollon77A Offline
                                    apollon77A Offline
                                    apollon77
                                    wrote on last edited by
                                    #33

                                    Hast du deinen commit den du verdächtigst?

                                    Gesendet vom Handy …

                                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                    1 Reply Last reply
                                    0
                                    • M Offline
                                      M Offline
                                      Marty56
                                      wrote on last edited by
                                      #34

                                      Super Update! Das hatte ich mir schon lange gewünscht. Freue mich schon drauf

                                      HW:NUC (16 GB Ram)
                                      OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                                      1 Reply Last reply
                                      0
                                      • MeistertrM Offline
                                        MeistertrM Offline
                                        Meistertr
                                        Developer
                                        wrote on last edited by
                                        #35

                                        So, ich habe nun nach einigen anläufen eine vm aufgesetzt wo der neue js-controller drauf ist und den cm eingeschaltet in der config. ist es richtig, dass der einzige hinweis auf den mode der logeintrag ist, dass der adapter im compact mode läuft? weil unter instanzen steht zum beispiel beim javascript adapter mit und ohne comact mode 100 MB Ram..

                                        1 Reply Last reply
                                        0
                                        • MeistertrM Offline
                                          MeistertrM Offline
                                          Meistertr
                                          Developer
                                          wrote on last edited by
                                          #36

                                          so habe proxmox adapter nun mal versucht umzustellen. sah auch auf dem ersten Blick ganz gut aus. aber wenn ich den adapter stoppe, schmiert der js-controller ab. log:

                                          host.cmbroker	2019-02-16 20:22:05.953	info	iobroker.js-controller version 2.0.0 js-controller starting
                                          admin.0	2019-02-16 20:22:05.415	error	at _combinedTickCallback (internal/process/next_tick.js:139:11)
                                          admin.0	2019-02-16 20:22:05.415	error	at emitErrorNT (internal/streams/destroy.js:66:8)
                                          admin.0	2019-02-16 20:22:05.415	error	at Socket.emit (events.js:211:7)
                                          admin.0	2019-02-16 20:22:05.415	error	at emitOne (events.js:116:13)
                                          admin.0	2019-02-16 20:22:05.415	error	at WebSocket.finalize (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:182:41)
                                          admin.0	2019-02-16 20:22:05.415	error	at WebSocket.emit (events.js:211:7)
                                          admin.0	2019-02-16 20:22:05.415	error	at emitOne (events.js:116:13)
                                          admin.0	2019-02-16 20:22:05.415	error	at WebSocket.onError (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/EventTarget.js:109:16)
                                          admin.0	2019-02-16 20:22:05.415	error	at WebSocket.ws.onerror (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transports/websocket.js:150:10)
                                          admin.0	2019-02-16 20:22:05.415	error	at WS.Transport.onError (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:64:13)
                                          admin.0	2019-02-16 20:22:05.415	error	Error: websocket error
                                          admin.0	2019-02-16 20:22:05.414	error	websocket error
                                          proxmox.0	2019-02-16 20:22:05.406	error	uncaught exception: Cannot read property 'pushLog' of null
                                          javascript.0	2019-02-16 20:22:05.405	error	uncaught exception: Cannot read property 'pushLog' of null
                                          host.cmbroker	2019-02-16 20:22:05.392	info	instance system.adapter.proxmox.0 terminated with code undefined ()
                                          2019-02-16 20:22:05.391	info	erminating
                                          host.cmbroker	2019-02-16 20:22:05.390	info	stopInstance system.adapter.proxmox.0 killing pid undefined
                                          host.cmbroker	2019-02-16 20:22:05.390	info	stopInstance system.adapter.proxmox.0
                                          proxmox.0	2019-02-16 20:22:05.390	info	cleaned everything up...
                                          host.cmbroker	2019-02-16 20:22:05.389	info	object change system.adapter.proxmox.0
                                          

                                          hier der code:

                                          Proxmox Compactmode

                                          liegts an mir oder am js-controller?

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          743

                                          Online

                                          32.5k

                                          Users

                                          81.7k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe