Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Handler wenn Skript gestoppt wird

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Handler wenn Skript gestoppt wird

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      deeznutz last edited by

      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

      Dutchman paul53 2 Replies Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators @deeznutz last edited by

        @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 Reply Last reply Reply Quote 0
        • paul53
          paul53 @deeznutz last edited by

          @deeznutz sagte:

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

          Siehe onStop().

          Dutchman 1 Reply Last reply Reply Quote 2
          • Dutchman
            Dutchman Developer Most Active Administrators @paul53 last edited by

            @paul53 sagte in Handler wenn Skript gestoppt wird:

            Siehe onStop().

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

            1 Reply Last reply Reply Quote 0
            • D
              deeznutz last edited by

              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 Reply Last reply Reply Quote 0
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              700
              Online

              31.8k
              Users

              80.0k
              Topics

              1.3m
              Posts

              3
              5
              276
              Loading More Posts
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes
              Reply
              • Reply as topic
              Log in to reply
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              The ioBroker Community 2014-2023
              logo