Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Listener/Events/ext. Subscriptions stoppen, wie?

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

[gelöst] Listener/Events/ext. Subscriptions stoppen, wie?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
22 Beiträge 5 Kommentatoren 4.5k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #1

    MOD-Edit by eric2905; 15.05.2017 / 19:25; Betreff geändert

    Ein kleines Problem, bei dem meine Javascript-Kenntnisse nicht reichen, um zu verstehen, was ich da tue/tun muss.

    Das Skript hier funktioniert soweit. Es werden über einen CO2-USB-Messgerät die Daten Temperatur und CO2 ausgelesen.

    Leider erhält der Javascript-Adapter die Antworten vom CO2-Messgerät weiterhin, auch wenn das Skript beendet wird.

    ! ````
    log("-------- -------- -------- CO2-Monitor Skript gestartet -------- -------- --------");
    ! var logOn = true; // Ausgabe der Messwerte im Log
    var forcecration = false; // Variablen anlegen erzwingen (überschreiben)
    ! var pfad = "javascript." + instance + ".co2-monitor.arbeitszimmer" + ".";
    ! // -----------------------------------------------------------------------------
    ! idCo2 = pfad + "co2";
    idTemperatur = pfad + "temperatur";
    ! createState(idCo2, null , forcecration, {
    name: 'Luftgüte co2 in ppm',
    desc: 'Luftgüte co2 in ppm',
    type: 'number',
    unit: 'ppm',
    role: 'value'
    });
    ! createState(idTemperatur, null , forcecration, {
    name: 'Temperatur in Grad Celsius',
    desc: 'Temperatur in Grad Celsius',
    type: 'number',
    unit: '°C',
    role: 'value'
    });
    ! //const Co2Monitor = require('./co2monitor');
    const Co2Monitor = require('./co2-monitor');
    ! //let co2Monitor = new Co2Monitor();
    var co2Monitor = new Co2Monitor();

    co2Monitor.on('connected', (device) => {
    co2Monitor.startTransfer();
    log("-------- -------- -------- CO2-Monitor connect erfolgreich gestartet -------- -------- --------");
    //log("Device: " + JSON.stringify(device));
    });

    co2Monitor.on('error', (error) => {
    log(error,"warn");
    });

    co2Monitor.on('co2', (co2) => {
    setState(idCo2,parseInt(co2));
    if(logOn) log('co2: ' + co2);
    });

    co2Monitor.on('temp', (temp) => {
    setState(idTemperatur,parseFloat(temp));
    if(logOn) log('temp: ' + temp);
    });

    co2Monitor.on('data', (data) => {
    if(logOn) log('data: ' + data);
    });

    ! /*
    co2Monitor.on('rawData', (rawData) => {
    log("rawData:" + rawData);
    });
    */
    ! onStop(function skriptStop () {
    stopAllListeners();
    log("---------------------- **** Skript wurde gestoppt **** ----------------------");
    }, 100 /ms/);
    ! function stopAllListeners() {
    co2Monitor.removeListener('co2', Co2Monitor);
    co2Monitor.removeAllListeners('connected');
    co2Monitor.removeListener('connected',Co2Monitor);
    }
    ! //stopAllListeners();
    ! function main() {
    co2Monitor.connect();
    }
    ! setTimeout(main, 2000);
    ! ````

    Ich hatte schon einmal so ein Thema, mit Noble. Da konnte mir Bluefox helfen:

    http://forum.iobroker.net/viewtopic.php … ers#p22127

    Für diese Doku reicht mein Wissen nicht:

    https://nodejs.org/api/events.html#even … e_listener

    Ein verzweifelter Versuch, um die Events zu stoppen, ohne zu wissen, was ich da tue:

    function stopAllListeners() {
        co2Monitor.removeListener('co2', Co2Monitor);
        co2Monitor.removeAllListeners('connected');
        co2Monitor.removeListener('connected',Co2Monitor);
    }
    

    So verhält sich das Skript:````
    Log

    23:05:37.596 [info] javascript.1 Start javascript script.js.Entwicklung.co2-monitor
    23:05:37.596 [info] javascript.1 script.js.Entwicklung.co2-monitor: -------- -------- -------- CO2-Monitor Skript gestartet -------- -------- --------
    23:05:37.596 [info] javascript.1 script.js.Entwicklung.co2-monitor: registered 0 subscriptions and 0 schedules
    23:05:39.664 [info] javascript.1 script.js.Entwicklung.co2-monitor: -------- -------- -------- CO2-Monitor connect erfolgreich gestartet -------- -------- --------
    23:05:41.315 [info] javascript.1 script.js.Entwicklung.co2-monitor: co2: 529
    23:05:43.964 [info] javascript.1 script.js.Entwicklung.co2-monitor: temp: 24.100
    23:05:43.964 [info] javascript.1 script.js.Entwicklung.co2-monitor: data: {"co2":529,"temperature":"24.100"}
    23:05:46.332 [info] javascript.1 script.js.Entwicklung.co2-monitor: co2: 529
    23:05:46.332 [info] javascript.1 script.js.Entwicklung.co2-monitor: data: {"co2":529,"temperature":"24.100"}
    23:05:46.806 [info] javascript.1 Stop script script.js.Entwicklung.co2-monitor
    23:05:46.806 [info] javascript.1 script.js.Entwicklung.co2-monitor: ---------------------- **** Skript wurde gestoppt **** ----------------------
    23:05:48.981 [info] javascript.1 script.js.Entwicklung.co2-monitor: temp: 24.100
    23:05:48.981 [info] javascript.1 script.js.Entwicklung.co2-monitor: data: {"co2":529,"temperature":"24.100"}
    23:05:51.355 [info] javascript.1 script.js.Entwicklung.co2-monitor: co2: 528
    23:05:51.355 [info] javascript.1 script.js.Entwicklung.co2-monitor: data: {"co2":528,"temperature":"24.100"}

    
    Man sieht, dass nach dem Stop des Skripts, die Messwerte weiter ermittelt werden.
    
    help :?: :|

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Antwort Letzte Antwort
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      schrieb am zuletzt editiert von
      #2

      Du solltest diese Funktion benutzen:

      https://github.com/ioBroker/ioBroker.ja … nsubscribe

      Die Funktionen, die du benutzt sind node.js Funktionen und haben mit ioBroker Skripte wenig zu tun.

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #3

        @Bluefox:

        Die Funktionen, die du benutzt sind node.js Funktionen und haben mit ioBroker Skripte wenig zu tun. `

        Verstehe ich leider nicht :-(

        Die Events kommen doch von dem npm module 'co2-monitor'.

        // ...
        const Co2Monitor = require('./co2-monitor');
        var co2Monitor = new Co2Monitor();
        
        co2Monitor.on('connected', (device) => {
            co2Monitor.startTransfer();
            log("-------- -------- -------- CO2-Monitor connect erfolgreich gestartet -------- -------- --------");
        });
        
        co2Monitor.on('co2', (co2) => {
            setState(idCo2,parseInt(co2));
            log('co2: ' + co2);
        });
        // ...
        

        Wie setzte ich denn den Part oben als "ioBroker Skript um, wenn nicht so?

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #4

          Habe ich übersehen.

          Da hast du recht.

          Hast du Quellen für co2-monitor? Vielleicht werden da non-standard events verwendet?

          1 Antwort Letzte Antwort
          0
          • ruhr70R Offline
            ruhr70R Offline
            ruhr70
            schrieb am zuletzt editiert von
            #5

            @Bluefox:

            Hast du Quellen für co2-monitor? Vielleicht werden da non-standard events verwendet? `

            Die Quelle vom co2-monitor:

            https://github.com/maddindeiss/co2-moni … monitor.js

            Klassen und Events sind noch ein Buch mit sieben Siegeln für mich.

            Ich würde aber sagen, dass es "Standard" ist:

            https://nodejs.org/api/events.html#even … entemitter

            Adapter: Fritzbox, Unify Circuit
            Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

            1 Antwort Letzte Antwort
            0
            • AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von
              #6

              probiers mal mit

              co2Monitor.disconnect( [callback-Funktion] );
              

              https://github.com/maddindeiss/co2-moni … tor.js#L93

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Antwort Letzte Antwort
              0
              • ruhr70R Offline
                ruhr70R Offline
                ruhr70
                schrieb am zuletzt editiert von
                #7

                @AlCalzone:

                probiers mal mit

                co2Monitor.disconnect( [callback-Funktion] );
                

                https://github.com/maddindeiss/co2-moni … tor.js#L93 `

                Danke für das Feedback! Und ich denke, dass ist der Punkt, auf dem es ankommt.

                Ein herber Rückschlag fürs Selbstvertrauen :shock: :oops:

                Da merke ich leider, dass ich nur an den Grundlagen kratze. Ich habe versucht, das sinnvoll einzubauen. Leider fehlen mir die Grundlagen zu Objekte, Methoden, usw. :-( Das nächste Thema, an dem ich dringend arbeiten muss.

                Keine Ahnung, wie ich das einbaue (…die Callback-Funktion).

                Alle Versuche sind auf einen Fehler gelaufen. Rein Try and Error und den Blick in den module Quellcode.

                Vielleicht hast Du noch einen Anstoß für mich, in welche Richtung ich denken muss und wie die Callback-Funktion aussehen muss. :roll:

                Was wir hier von mir erwartet?

                	disconnect(cb) {
                		try {
                			this.co2Endpoint.stopPoll();
                			this.co2Interface.release(true, (error) => {
                				if(error) {
                					this.emit('error', error);
                				}
                				else {
                					this.co2Device.close();
                					cb(true);
                				}
                			});
                		}
                		catch(error) {
                			throw new Error(error);
                		}
                	}
                

                Adapter: Fritzbox, Unify Circuit
                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                1 Antwort Letzte Antwort
                0
                • AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #8

                  Ich glaube, du denkst gerade zu kompliziert. Dort, wo du alle Verbindungen trennst (beim Skript-beenden), machst du folgendes anstatt den Befehlen, die nicht so richtig tun was du willst:

                  co2Monitor.disconnect(function() {
                  	// weitere Aktionen, die nach dem Disconnect ausgeführt werden sollen.
                  	// wenn keine, dann leer lassen.
                  });
                  

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  1 Antwort Letzte Antwort
                  0
                  • ruhr70R Offline
                    ruhr70R Offline
                    ruhr70
                    schrieb am zuletzt editiert von
                    #9

                    Danke für Deine Geduld!

                    Ich habe jetzt folgendes übernommen und beim Stop des Skripts eingebaut:

                    onStop(function skriptStop () {
                        log("---------------------- **** Skript wurde gestoppt **** ----------------------");
                        co2Monitor.disconnect(function() {
                            log("----- CO2 Monitor DISCONNECTED -----");
                            // weitere Aktionen, die nach dem Disconnect ausgeführt werden sollen.
                            // wenn keine, dann leer lassen.
                        });
                    }, 100 /*ms*/);
                    
                    

                    Wenn ich das Skript dann stoppe, bekomme ich folgende Fehlermeldungen:

                    host.nuc-g7-i7	2017-05-15 22:40:40.004	info	Restart adapter system.adapter.javascript.1 because enabled
                    host.nuc-g7-i7	2017-05-15 22:40:40.003	error	instance system.adapter.javascript.1 terminated with code 0 (OK)
                    javascript.1	2017-05-15 22:40:39.986	error	
                    javascript.1	2017-05-15 22:40:39.986	error	at Device. (C:\ioBroker\node_modules\iobroker.javascript\node_modules\co2-monitor\node_modules\usb\usb.js:200:7)
                    javascript.1	2017-05-15 22:40:39.986	error	at Interface.co2Interface.release (C:\ioBroker\node_modules\iobroker.javascript\node_modules\co2-monitor\co2-monitor.js:101:21)
                    javascript.1	2017-05-15 22:40:39.986	error	at Device.usb.Device.close (C:\ioBroker\node_modules\iobroker.javascript\node_modules\co2-monitor\node_modules\usb\usb.js:43:7)
                    javascript.1	2017-05-15 22:40:39.986	error	at Error (native)
                    javascript.1	2017-05-15 22:40:39.986	error	Error: Can't close device with a pending request
                    javascript.1	2017-05-15 22:40:39.986	error	uncaught exception: Can't close device with a pending request
                    javascript.1	2017-05-15 22:40:39.980	info	script.js.Entwicklung.co2-monitor: ---------------------- **** Skript wurde gestoppt **** ----------------------
                    javascript.1	2017-05-15 22:40:39.977	info	Stop script script.js.Entwicklung.co2-monitor
                    javascript.1	2017-05-15 22:40:37.654	info	script.js.Entwicklung.co2-monitor: data: {"co2":811,"temperature":"25.038"}
                    javascript.1	2017-05-15 22:40:37.654	info	script.js.Entwicklung.co2-monitor: co2: 811
                    javascript.1	2017-05-15 22:40:35.278	info	script.js.Entwicklung.co2-monitor: data: {"co2":811,"temperature":"25.038"}
                    javascript.1	2017-05-15 22:40:35.278	info	script.js.Entwicklung.co2-monitor: temp: 25.038
                    javascript.1	2017-05-15 22:40:32.639	info	script.js.Entwicklung.co2-monitor: data: {"co2":811,"temperature":"25.038"}
                    javascript.1	2017-05-15 22:40:32.639	info	script.js.Entwicklung.co2-monitor: co2: 811
                    javascript.1	2017-05-15 22:40:30.263	info	script.js.Entwicklung.co2-monitor: temp: 25.038
                    javascript.1	2017-05-15 22:40:28.368	info	script.js.Entwicklung.co2-monitor: -------- -------- -------- CO2-Monitor connect erfolgreich gestartet -------- -------- --------
                    javascript.1	2017-05-15 22:40:26.295	info	script.js.Entwicklung.co2-monitor: registered 0 subscriptions and 0 schedules
                    javascript.1	2017-05-15 22:40:26.150	info	script.js.Entwicklung.co2-monitor: -------- -------- -------- CO2-Monitor Skript gestartet -------- -------- --------
                    

                    Adapter: Fritzbox, Unify Circuit
                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                    1 Antwort Letzte Antwort
                    0
                    • AlCalzoneA Offline
                      AlCalzoneA Offline
                      AlCalzone
                      Developer
                      schrieb am zuletzt editiert von
                      #10

                      @ruhr70:

                      javascript.1	2017-05-15 22:40:39.986	error	Error: Can't close device with a pending request
                      javascript.1	2017-05-15 22:40:39.986	error	uncaught exception: Can't close device with a pending request
                      ```` `  
                      

                      Aus dem Quellcode aus Github wird mir nicht klar, wie man das verhindern kann. Eventuell mal beim Programmierer nachhaken (=> Issue auf Github). Da scheint in dessen Skript nicht sauber aufgeräumt zu werden.

                      Die einfachste Lösung wäre ein try-catch-Block, um einen Absturz des JS-Adapters zu verhindern:

                      try {
                      	co2Monitor.disconnect(function() {
                      		log("----- CO2 Monitor DISCONNECTED -----");
                      		// weitere Aktionen, die nach dem Disconnect ausgeführt werden sollen.
                      		// wenn keine, dann leer lassen.
                      	});
                      } catch (e) {
                      	// hat nicht geklappt
                      }
                      

                      Eventuell könnte man das in einer Schleife bei Fehler wiederholen mit Zeitverzögerung, um mehrere Versuche vorzunehmen, die Verbindung zu kappen.

                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                      1 Antwort Letzte Antwort
                      0
                      • ruhr70R Offline
                        ruhr70R Offline
                        ruhr70
                        schrieb am zuletzt editiert von
                        #11

                        Habe try/catch eingebaut. Der Fehler wird nicht abgefangen und bleibt.

                        Nun gut. Ich nehme das mal zum Anlass, mich tiefer mit der Materie zu beschäftigen :-)

                        Danke noch einmal für Deine Geduld und Mühe!

                        Adapter: Fritzbox, Unify Circuit
                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                        1 Antwort Letzte Antwort
                        0
                        • blauholstenB Offline
                          blauholstenB Offline
                          blauholsten
                          Developer
                          schrieb am zuletzt editiert von
                          #12

                          Hi,

                          Bin zwar auch planlos :roll: , aber callbacks bzw. Asynchrone Funktionen können meines Kenntnisstandes nicht in try/catch abgearbeitet werden. Try catch ist beim Aufruf des Callbacks schon längst abgearbeitet.

                          Um das bei dir abzufangen, musste die try/catch in die callback Funktion.

                          co2Monitor.disconnect(function() {
                                try{
                                        log("----- CO2 Monitor DISCONNECTED -----");
                                 } catch (e) {
                                      log(e);
                             // hat nicht geklappt
                          }
                          });
                          
                          

                          Es ist aber auch möglich das das kompletter Quatsch ist.

                          Entwickler vom: - Viessman Adapter
                          - Alarm Adapter

                          1 Antwort Letzte Antwort
                          0
                          • ruhr70R Offline
                            ruhr70R Offline
                            ruhr70
                            schrieb am zuletzt editiert von
                            #13

                            Klingt logisch.

                            Hab es einfach mal schnell probiert… das Ergebnis ist trotz Logik gleich.

                            host.nuc-g7-i7	2017-05-17 07:03:20.211	info	Restart adapter system.adapter.javascript.1 because enabled
                            host.nuc-g7-i7	2017-05-17 07:03:20.209	error	instance system.adapter.javascript.1 terminated with code 0 (OK)
                            javascript.1	2017-05-17 07:03:20.190	error	
                            javascript.1	2017-05-17 07:03:20.190	error	at Device. (C:\ioBroker\node_modules\iobroker.javascript\node_modules\co2-monitor\node_modules\usb\usb.js:200:7)
                            javascript.1	2017-05-17 07:03:20.190	error	at Interface.co2Interface.release (C:\ioBroker\node_modules\iobroker.javascript\node_modules\co2-monitor\co2-monitor.js:101:21)
                            javascript.1	2017-05-17 07:03:20.190	error	at Device.usb.Device.close (C:\ioBroker\node_modules\iobroker.javascript\node_modules\co2-monitor\node_modules\usb\usb.js:43:7)
                            javascript.1	2017-05-17 07:03:20.190	error	at Error (native)
                            javascript.1	2017-05-17 07:03:20.190	error	Error: Can't close device with a pending request
                            javascript.1	2017-05-17 07:03:20.190	error	uncaught exception: Can't close device with a pending request
                            javascript.1	2017-05-17 07:03:20.185	info	script.js.Entwicklung.co2-monitor: ---------------------- **** Skript wurde gestoppt **** ----------------------
                            javascript.1	2017-05-17 07:03:20.185	info	Stop script script.js.Entwicklung.co2-monitor
                            javascript.1	2017-05-17 07:03:19.137	info	script.js.Entwicklung.co2-monitor: data: {"co2":604,"temperature":"25.663"}
                            javascript.1	2017-05-17 07:03:19.137	info	script.js.Entwicklung.co2-monitor: temp: 25.663
                            javascript.1	2017-05-17 07:03:16.491	info	script.js.Entwicklung.co2-monitor: data: {"co2":604,"temperature":"25.600"}
                            javascript.1	2017-05-17 07:03:16.491	info	script.js.Entwicklung.co2-monitor: co2: 604
                            javascript.1	2017-05-17 07:03:14.124	info	script.js.Entwicklung.co2-monitor: data: {"co2":604,"temperature":"25.600"}
                            javascript.1	2017-05-17 07:03:14.124	info	script.js.Entwicklung.co2-monitor: temp: 25.600
                            javascript.1	2017-05-17 07:03:11.473	info	script.js.Entwicklung.co2-monitor: data: {"co2":604,"temperature":"25.600"}
                            javascript.1	2017-05-17 07:03:11.473	info	script.js.Entwicklung.co2-monitor: co2: 604
                            javascript.1	2017-05-17 07:03:09.105	info	script.js.Entwicklung.co2-monitor: data: {"co2":603,"temperature":"25.600"}
                            javascript.1	2017-05-17 07:03:09.105	info	script.js.Entwicklung.co2-monitor: temp: 25.600
                            javascript.1	2017-05-17 07:03:06.458	info	script.js.Entwicklung.co2-monitor: co2: 603
                            javascript.1	2017-05-17 07:03:03.616	info	script.js.Entwicklung.co2-monitor: -------- -------- -------- CO2-Monitor connect erfolgreich gestartet -------- -------- --------
                            javascript.1	2017-05-17 07:03:01.548	info	script.js.Entwicklung.co2-monitor: registered 0 subscriptions and 0 schedules
                            javascript.1	2017-05-17 07:03:00.547	info	script.js.Entwicklung.co2-monitor: -------- -------- -------- CO2-Monitor Skript gestartet -------- -------- --------
                            javascript.1	2017-05-17 07:03:00.540	info	Start javascript script.js.Entwicklung.co2-monitor
                            

                            Adapter: Fritzbox, Unify Circuit
                            Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                            1 Antwort Letzte Antwort
                            0
                            • AlCalzoneA Offline
                              AlCalzoneA Offline
                              AlCalzone
                              Developer
                              schrieb am zuletzt editiert von
                              #14

                              @blauholsten:

                              Asynchrone Funktionen können meines Kenntnisstandes nicht in try/catch abgearbeitet werden. Try catch ist beim Aufruf des Callbacks schon längst abgearbeitet. `
                              Jein. Wenn der Fehler in der Asynchronen Funktion auftritt, bevor sie die Kontrolle an den Aufrufer zurückgibt, sollte es per try-catch abfangbar sein. try-catch im Callback fängt nur Fehler in der eigenen Callback-Funktion ab.

                              In diesem Fall scheint der Fehler zwischendrin aufzutreten:

                              ruhr's code -> 
                              * disconnect -> 
                                |  ruhr's code (nach Aufruf von disconnect)
                                |
                                |__ disconnect arbeitet noch, bzw hat selbst asynchron was aufgerufen
                                    |
                                    | -> fehler
                                    |
                              **    |__ hier käme der Callback
                              

                              Fehler in * und ** lassen sich mit try-catch um disconnect (*) bzw. im callback (**) abfangen.

                              Fehler in internen asynchronen Aktionen der disconnect-Methode nicht.

                              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                              1 Antwort Letzte Antwort
                              0
                              • blauholstenB Offline
                                blauholstenB Offline
                                blauholsten
                                Developer
                                schrieb am zuletzt editiert von
                                #15

                                Was passiert wenn man sowas schreibt…..?

                                co2Monitor.disconnect(function() {
                                   // weitere Aktionen, die nach dem Disconnect ausgeführt werden sollen.
                                   // wenn keine, dann leer lassen.
                                }).on ('error', function  (e) { console.error (e);});
                                

                                Entwickler vom: - Viessman Adapter
                                - Alarm Adapter

                                1 Antwort Letzte Antwort
                                0
                                • ruhr70R Offline
                                  ruhr70R Offline
                                  ruhr70
                                  schrieb am zuletzt editiert von
                                  #16

                                  interessante Erklärungen!

                                  ich probiere den Vorschlag nachher aus

                                  Gesendet von iPhone mit Tapatalk

                                  Adapter: Fritzbox, Unify Circuit
                                  Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                  1 Antwort Letzte Antwort
                                  0
                                  • ruhr70R Offline
                                    ruhr70R Offline
                                    ruhr70
                                    schrieb am zuletzt editiert von
                                    #17
                                    host.nuc-g7-i7	2017-05-17 16:49:29.792	error	instance system.adapter.javascript.1 terminated with code 0 (OK)
                                    javascript.1	2017-05-17 16:49:29.770	error	error in onStop callback: TypeError: Cannot read property 'on' of undefined
                                    javascript.1	2017-05-17 16:49:29.770	info	script.js.Entwicklung.co2-monitor: ---------------------- **** Skript wurde gestoppt **** ----------------------
                                    

                                    Adapter: Fritzbox, Unify Circuit
                                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                    1 Antwort Letzte Antwort
                                    0
                                    • AlCalzoneA Offline
                                      AlCalzoneA Offline
                                      AlCalzone
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #18

                                      Eine möglichkeit wäre noch (z.b. am Ende des Skripts):

                                      process.on('uncaughtException', function (err) {
                                        // sicherstellen, dass es wirklich der Fehler aus co2Monitor ist, den wir abfangen wollen. Diesen dann ignorieren oder darauf irgendwie reagieren
                                        // Ansonsten Fehler weitergeben per throw err
                                      });
                                      
                                      

                                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                      1 Antwort Letzte Antwort
                                      0
                                      • ruhr70R Offline
                                        ruhr70R Offline
                                        ruhr70
                                        schrieb am zuletzt editiert von
                                        #19
                                        javascript.1	2017-05-18 20:40:16.857	error	script.js.Entwicklung.co2-monitor: ReferenceError: process is not defined
                                        

                                        Adapter: Fritzbox, Unify Circuit
                                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                        1 Antwort Letzte Antwort
                                        0
                                        • AlCalzoneA Offline
                                          AlCalzoneA Offline
                                          AlCalzone
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #20

                                          Oh… dann funktioniert das nur in Adaptern. Fürchte, es muss in dem Modul nachgebessert werden.

                                          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          859

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe