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. JavaScript
  5. Handler wenn Skript gestoppt wird

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    517

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    618

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Handler wenn Skript gestoppt wird

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 3 Kommentatoren 390 Aufrufe 1 Watching
  • Ä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.
  • D Offline
    D Offline
    deeznutz
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    gibt es die Möglichkeit Code auszuführen wenn ein Skript gestoppt wird oder durch Fehler beendet oder neu gestartet wird? Es geht darum, dass ich das serialport-Modul nutze und den geöffneten seriellen Port wieder schließen muss wenn das Skript beendet wird.

    Hier das Skript:

    const SerialPort = require('serialport')
    const Readline = require('@serialport/parser-readline')
    
    const port = new SerialPort('/dev/ttyUSB0', { baudRate: 2400 }, function (err) {
      if (err) {
        return console.log('Error opening serial port ', err.message)
      }
    })
    
    const parser = new Readline({ delimiter: '\r\n' })
    port.pipe(parser)
    
    parser.on('data', line => {
        rx_str = new String(line.substring(1, 16));
        //console.log(rx_str);
    
        const values = rx_str.split(';');
        
        const Upv = parseInt(values[0]);
        const Pac = parseInt(values[1]) * 10;
        const Etd = parseInt(values[2]) * 10;
    
        if(!isNaN(Upv))
        { 
            setState('knx.0.Zentral.Daten.PV_Upv', Upv);
        }
        if(!isNaN(Pac))
        {
            setState('knx.0.Zentral.Daten.PV_Pac', Pac); /*PV Pac*/
        }
        if(!isNaN(Etd))
        {
            setState('knx.0.Zentral.Daten.PV_Etd', Etd);
        }
        //console.log(Upv);
        //console.log(Pac);
        //console.log(Etd);
    });
    

    Besten Dank!

    Gruß
    Nils

    DutchmanD paul53P 2 Antworten Letzte Antwort
    0
    • D deeznutz

      Hallo zusammen,

      gibt es die Möglichkeit Code auszuführen wenn ein Skript gestoppt wird oder durch Fehler beendet oder neu gestartet wird? Es geht darum, dass ich das serialport-Modul nutze und den geöffneten seriellen Port wieder schließen muss wenn das Skript beendet wird.

      Hier das Skript:

      const SerialPort = require('serialport')
      const Readline = require('@serialport/parser-readline')
      
      const port = new SerialPort('/dev/ttyUSB0', { baudRate: 2400 }, function (err) {
        if (err) {
          return console.log('Error opening serial port ', err.message)
        }
      })
      
      const parser = new Readline({ delimiter: '\r\n' })
      port.pipe(parser)
      
      parser.on('data', line => {
          rx_str = new String(line.substring(1, 16));
          //console.log(rx_str);
      
          const values = rx_str.split(';');
          
          const Upv = parseInt(values[0]);
          const Pac = parseInt(values[1]) * 10;
          const Etd = parseInt(values[2]) * 10;
      
          if(!isNaN(Upv))
          { 
              setState('knx.0.Zentral.Daten.PV_Upv', Upv);
          }
          if(!isNaN(Pac))
          {
              setState('knx.0.Zentral.Daten.PV_Pac', Pac); /*PV Pac*/
          }
          if(!isNaN(Etd))
          {
              setState('knx.0.Zentral.Daten.PV_Etd', Etd);
          }
          //console.log(Upv);
          //console.log(Pac);
          //console.log(Etd);
      });
      

      Besten Dank!

      Gruß
      Nils

      DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #2

      @deeznutz

      hmm, schwierig den der process laeuft in dem javascript code wen du den anhaellst ist die Steuerung des processes weck.
      Darf ich einen anderen loesungs Ansatz vorschlagen ?

      • Lasse das script an
      • Erstellen einen datenbunkt, z.b. script running
      • Dan machst du einen event trigger auf den datenpunkt
      • Du machst eine function "starte serial port und listening" mit dem code den du jetzt hast
      • Du machst einen function "close port" womit du den serial port schließt

      Ergo script bleibt actief, und ueber den Datenpunkt steuerst du javascript Funktionen die den Serail port öffnen/schliessen

      1 Antwort Letzte Antwort
      0
      • D deeznutz

        Hallo zusammen,

        gibt es die Möglichkeit Code auszuführen wenn ein Skript gestoppt wird oder durch Fehler beendet oder neu gestartet wird? Es geht darum, dass ich das serialport-Modul nutze und den geöffneten seriellen Port wieder schließen muss wenn das Skript beendet wird.

        Hier das Skript:

        const SerialPort = require('serialport')
        const Readline = require('@serialport/parser-readline')
        
        const port = new SerialPort('/dev/ttyUSB0', { baudRate: 2400 }, function (err) {
          if (err) {
            return console.log('Error opening serial port ', err.message)
          }
        })
        
        const parser = new Readline({ delimiter: '\r\n' })
        port.pipe(parser)
        
        parser.on('data', line => {
            rx_str = new String(line.substring(1, 16));
            //console.log(rx_str);
        
            const values = rx_str.split(';');
            
            const Upv = parseInt(values[0]);
            const Pac = parseInt(values[1]) * 10;
            const Etd = parseInt(values[2]) * 10;
        
            if(!isNaN(Upv))
            { 
                setState('knx.0.Zentral.Daten.PV_Upv', Upv);
            }
            if(!isNaN(Pac))
            {
                setState('knx.0.Zentral.Daten.PV_Pac', Pac); /*PV Pac*/
            }
            if(!isNaN(Etd))
            {
                setState('knx.0.Zentral.Daten.PV_Etd', Etd);
            }
            //console.log(Upv);
            //console.log(Pac);
            //console.log(Etd);
        });
        

        Besten Dank!

        Gruß
        Nils

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        @deeznutz sagte:

        Möglichkeit Code auszuführen wenn ein Skript gestoppt wird

        Siehe onStop().

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        DutchmanD 1 Antwort Letzte Antwort
        2
        • paul53P paul53

          @deeznutz sagte:

          Möglichkeit Code auszuführen wenn ein Skript gestoppt wird

          Siehe onStop().

          DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          schrieb am zuletzt editiert von
          #4

          @paul53 sagte in Handler wenn Skript gestoppt wird:

          Siehe onStop().

          danke ! vergessen den gibts ja auch noch, Schande über mein Haupt.....

          1 Antwort Letzte Antwort
          0
          • D Offline
            D Offline
            deeznutz
            schrieb am zuletzt editiert von
            #5

            Hi,

            danke! onStop() funktioniert wie erwartet.

            
            // close connection if script stopped
            onStop(function (callback) {
                if (connected) {
                    console.log('Closing Port');
                    port.close();
                }
                callback();
            }, 2000 /*ms*/);
            
            
            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

            704

            Online

            32.6k

            Benutzer

            81.9k

            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