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. ioBroker Allgemein
  4. Javascript startet nicht (unsinnige Fehlermeldung)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Javascript startet nicht (unsinnige Fehlermeldung)

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
16 Beiträge 8 Kommentatoren 469 Aufrufe 6 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.
  • W WolfgangFB

    @sigi234 sagte in Javascript startet nicht (unsinnige Fehlermeldung):

    @wolfgangfb sagte in Javascript startet nicht (unsinnige Fehlermeldung):

    @sigi234

    Das Skript habe ich mehrmals gestoppt und wieder gestartet, das Ergebnis bleibt gleich. Was meinst Du mit "stell das ganze mal ein"?

    Das komplette Skript

    Gerne, aber da die sinnlose Zeile "bla" überhaupt nicht beachtet wird gehe ich davon aus, dass irgendwas nicht aktualisiert wird. "Natürlich" startet das Skript auch dann nicht, wenn ich die Zeile "bla" auskommentiere.

    console.log('Skript start');
    bla  
    var fs = require('fs');  
    var VerzeichnisDaten = '/opt/iobroker/Wolfgang/Verbrauch/Heizung/';
    const LastValFn = VerzeichnisDaten + 'lastval.txt';
    const DatenpunktEnergie = 'alias.0.Raum.Technik.Energy.0.state';
    const DatenpunktVerbrauchHeute = 'javascript.0.Verbrauch.Heizung.Heute';
    const DatenpunktVerbrauchGestern = 'javascript.0.Verbrauch.Heizung.Gestern';
    const DatenpunktZaehlerstandOffiziell = 'javascript.0.Verbrauch.Heizung.ZaehlerstandOffiziell';
    const DatenpunktZaehlerstandZwischenzaehler = 'javascript.0.Verbrauch.Heizung.ZaehlerstandZwischenzaehler';
    const CrLf = String.fromCharCode(13) + String.fromCharCode(10);
    const ZaehlerDifferenz = 23976.15 - 89.24;
    //fs.writeFileSync(LastValFn, '0'); 
    var ZaehlerstandOffiziellkWh; 
    var FileInhalt = fs.readFileSync(LastValFn);
    //var gg = toString(5);
    ZaehlerstandOffiziellkWh = toFloat(FileInhalt);
    
    var test = ZaehlerstandOffiziellkWh + 5; 
    console.log('test: ' + test);
    
    console.log('***' + ZaehlerstandOffiziellkWh);
    fs.exists(LastValFn, function(exists){
        console.log('Datei existiert');   
    
    console.log(LastValFn); 
    if (fs.existsSync(LastValFn)){console.log('not exist')} else {console.log('exist')}; 
    //fs.appendFileSync(Fn, 'Waermepumpe' + CrLf);  
    console.log('fff');
    
    function precisionRound(number, precision) {
      var factor = Math.pow(10, precision);
      return Math.round(number * factor) / factor;
    }
    
    var TagesverbrauchkWh = getState(DatenpunktVerbrauchHeute).val; // kWh
    var AnfangswertESPVerbrauchWh = getState(DatenpunktEnergie).val; // Wh
    var AktuelleZeit = (new Date().getTime()); 
    var SkriptStartTagText = formatDate(AktuelleZeit, 'DD');
    var SkriptStartStundeText = formatDate(AktuelleZeit, 'hh'); 
    
    on({id: DatenpunktEnergie, change: 'any'}, function (obj) {
        var AktuelleZeit = (new Date().getTime()); 
        var AktuelleZeitText = formatDate(AktuelleZeit, 'DD.MM hh.mm.ss');
        var AktuellerTagText = formatDate(AktuelleZeit, 'DD');
        var AktuelleStundeText = formatDate(AktuelleZeit, 'hh');
        var AktuellesDatum = formatDate(AktuelleZeit, 'DD.MM.YYYY');
    
        var VerbrauchWH = obj.state.val;
        var ZuwachsWh = VerbrauchWH - AnfangswertESPVerbrauchWh;
        var ZuwachskWh = ZuwachsWh / 1000; 
    
        AnfangswertESPVerbrauchWh = VerbrauchWH;
        TagesverbrauchkWh = TagesverbrauchkWh + ZuwachskWh;
        ZaehlerstandOffiziellkWh = ZaehlerstandOffiziellkWh + ZuwachskWh;
        var ZaehlerstandZwischenzaehlerkWh = ZaehlerstandOffiziellkWh - + ZaehlerDifferenz;
        console.log('ZS ' + ZaehlerstandOffiziellkWh);
        fs.writeFileSync(LastValFn, ZaehlerstandOffiziellkWh);
        setState(DatenpunktVerbrauchHeute, TagesverbrauchkWh);
        setState(DatenpunktZaehlerstandOffiziell, ZaehlerstandOffiziellkWh);
        setState(DatenpunktZaehlerstandZwischenzaehler, ZaehlerstandZwischenzaehlerkWh);
    
        if (AktuellerTagText != SkriptStartTagText){ // neuer Tag beginnt
            var TagesDatei = VerzeichnisDaten + AktuellesDatum + '.txt';
            fs.writeFileSync(TagesDatei, ZaehlerstandOffiziellkWh); 
        
            setState(DatenpunktVerbrauchGestern, TagesverbrauchkWh);
            TagesverbrauchkWh = 0;
            setState(DatenpunktVerbrauchHeute, TagesverbrauchkWh);
            SkriptStartTagText = AktuellerTagText;
            }
        
        });
    

    Fehler bleibt bei:

    13:04:00.541	error	javascript.0 (17388) script.js.Verbrauch.Heizung compile failed: at script.js.Verbrauch.Heizung:77
    
    sigi234S Online
    sigi234S Online
    sigi234
    Forum Testing Most Active
    schrieb am zuletzt editiert von sigi234
    #6

    @wolfgangfb

    Vielleicht kann sich das mal @paul53 ansehen, er ist der Profi.

    Verate uns noch mehr von deinen System! JS Version usw...

    Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
    Immer Daten sichern!

    1 Antwort Letzte Antwort
    0
    • W WolfgangFB

      @sigi234 sagte in Javascript startet nicht (unsinnige Fehlermeldung):

      @wolfgangfb sagte in Javascript startet nicht (unsinnige Fehlermeldung):

      @sigi234

      Das Skript habe ich mehrmals gestoppt und wieder gestartet, das Ergebnis bleibt gleich. Was meinst Du mit "stell das ganze mal ein"?

      Das komplette Skript

      Gerne, aber da die sinnlose Zeile "bla" überhaupt nicht beachtet wird gehe ich davon aus, dass irgendwas nicht aktualisiert wird. "Natürlich" startet das Skript auch dann nicht, wenn ich die Zeile "bla" auskommentiere.

      console.log('Skript start');
      bla  
      var fs = require('fs');  
      var VerzeichnisDaten = '/opt/iobroker/Wolfgang/Verbrauch/Heizung/';
      const LastValFn = VerzeichnisDaten + 'lastval.txt';
      const DatenpunktEnergie = 'alias.0.Raum.Technik.Energy.0.state';
      const DatenpunktVerbrauchHeute = 'javascript.0.Verbrauch.Heizung.Heute';
      const DatenpunktVerbrauchGestern = 'javascript.0.Verbrauch.Heizung.Gestern';
      const DatenpunktZaehlerstandOffiziell = 'javascript.0.Verbrauch.Heizung.ZaehlerstandOffiziell';
      const DatenpunktZaehlerstandZwischenzaehler = 'javascript.0.Verbrauch.Heizung.ZaehlerstandZwischenzaehler';
      const CrLf = String.fromCharCode(13) + String.fromCharCode(10);
      const ZaehlerDifferenz = 23976.15 - 89.24;
      //fs.writeFileSync(LastValFn, '0'); 
      var ZaehlerstandOffiziellkWh; 
      var FileInhalt = fs.readFileSync(LastValFn);
      //var gg = toString(5);
      ZaehlerstandOffiziellkWh = toFloat(FileInhalt);
      
      var test = ZaehlerstandOffiziellkWh + 5; 
      console.log('test: ' + test);
      
      console.log('***' + ZaehlerstandOffiziellkWh);
      fs.exists(LastValFn, function(exists){
          console.log('Datei existiert');   
      
      console.log(LastValFn); 
      if (fs.existsSync(LastValFn)){console.log('not exist')} else {console.log('exist')}; 
      //fs.appendFileSync(Fn, 'Waermepumpe' + CrLf);  
      console.log('fff');
      
      function precisionRound(number, precision) {
        var factor = Math.pow(10, precision);
        return Math.round(number * factor) / factor;
      }
      
      var TagesverbrauchkWh = getState(DatenpunktVerbrauchHeute).val; // kWh
      var AnfangswertESPVerbrauchWh = getState(DatenpunktEnergie).val; // Wh
      var AktuelleZeit = (new Date().getTime()); 
      var SkriptStartTagText = formatDate(AktuelleZeit, 'DD');
      var SkriptStartStundeText = formatDate(AktuelleZeit, 'hh'); 
      
      on({id: DatenpunktEnergie, change: 'any'}, function (obj) {
          var AktuelleZeit = (new Date().getTime()); 
          var AktuelleZeitText = formatDate(AktuelleZeit, 'DD.MM hh.mm.ss');
          var AktuellerTagText = formatDate(AktuelleZeit, 'DD');
          var AktuelleStundeText = formatDate(AktuelleZeit, 'hh');
          var AktuellesDatum = formatDate(AktuelleZeit, 'DD.MM.YYYY');
      
          var VerbrauchWH = obj.state.val;
          var ZuwachsWh = VerbrauchWH - AnfangswertESPVerbrauchWh;
          var ZuwachskWh = ZuwachsWh / 1000; 
      
          AnfangswertESPVerbrauchWh = VerbrauchWH;
          TagesverbrauchkWh = TagesverbrauchkWh + ZuwachskWh;
          ZaehlerstandOffiziellkWh = ZaehlerstandOffiziellkWh + ZuwachskWh;
          var ZaehlerstandZwischenzaehlerkWh = ZaehlerstandOffiziellkWh - + ZaehlerDifferenz;
          console.log('ZS ' + ZaehlerstandOffiziellkWh);
          fs.writeFileSync(LastValFn, ZaehlerstandOffiziellkWh);
          setState(DatenpunktVerbrauchHeute, TagesverbrauchkWh);
          setState(DatenpunktZaehlerstandOffiziell, ZaehlerstandOffiziellkWh);
          setState(DatenpunktZaehlerstandZwischenzaehler, ZaehlerstandZwischenzaehlerkWh);
      
          if (AktuellerTagText != SkriptStartTagText){ // neuer Tag beginnt
              var TagesDatei = VerzeichnisDaten + AktuellesDatum + '.txt';
              fs.writeFileSync(TagesDatei, ZaehlerstandOffiziellkWh); 
          
              setState(DatenpunktVerbrauchGestern, TagesverbrauchkWh);
              TagesverbrauchkWh = 0;
              setState(DatenpunktVerbrauchHeute, TagesverbrauchkWh);
              SkriptStartTagText = AktuellerTagText;
              }
          
          });
      

      Fehler bleibt bei:

      13:04:00.541	error	javascript.0 (17388) script.js.Verbrauch.Heizung compile failed: at script.js.Verbrauch.Heizung:77
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #7

      @wolfgangfb sagte: Fehler bleibt bei:

      Welche Version des JS-Adapters? Sind globale Skripte aktiv?
      Außer der falschen Zeile 2 kann ich nichts entdecken. Sind im Tab "Protokolle" weitere Informationen vorhanden?

      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

      1 Antwort Letzte Antwort
      0
      • W WolfgangFB

        Ich habe ein Javascript das sich nicht mehr starten lässt. Es kommt die Meldung:

        12:47:11.492	error	javascript.0 (17388) script.js.Verbrauch.Heizung compile failed: at script.js.Verbrauch.Heizung:77
        

        Das Script hat aber nur 73 Zeilen. Dann habe ich testweise mal in Zeile 2

        console.log('Skript start');
        bla  
        var fs = require('fs'); 
        

        ein sinnloses "bla" eingefügt, die Fehlermeldung bleibt aber gleich (Zeile 77), Der Javascript Adapter wurde mehrmals neu gestartet, das Ergebnis bleibt gleich.
        Die js Dateien werden als Mirror in einem Verzeichnis gespeichert. Wenn ich die Datei da mit Ultraedit oder was auch immer ansehe ist auch kein Zeichen mehr hinter dem letzten Semikolon.
        Wie bringe ich Javascript dazu, wieder "normal" zu laufen.

        dslraserD Offline
        dslraserD Offline
        dslraser
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #8

        @wolfgangfb

        hier gibt es sowas Ähnliches und eine Vermutung ...(hast Du auch diese JS-Adapter Version ?)

        https://forum.iobroker.net/topic/53655/warn-mit-javascript-5-5-0

        1 Antwort Letzte Antwort
        0
        • F Offline
          F Offline
          fastfoot
          schrieb am zuletzt editiert von
          #9

          in der letzten Zeile(74) fehlt })

          iobroker läuft unter Docker auf QNAP TS-451+
          SkriptRecovery: https://forum.iobroker.net/post/930558

          1 Antwort Letzte Antwort
          0
          • W Offline
            W Offline
            WolfgangFB
            schrieb am zuletzt editiert von
            #10

            @fastfoot

            Ich habe mal alles bis auf die erste Zeile gelöscht und siehe da, das Skript läuft. Dann Zeile für Zeile das Skript wieder gefüllt und siehe da, an dieser Stelle scheint es zu hängen:

            fs.exists(LastValFn, function(exists){
                console.log('Datei existiert');   
            
            

            Es kommt wieder die Fehlermeldung, dass in 4 Zeilen hinter dem Ende etwas nicht stimmt und das Wort "exists" ist im Editor durchgestrichen (was auch immer das bedeuten mag).

            heizung.jpg

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

              Also wenn ich obiges Skript ausführe steht im ioBroker Log (nicht dem unter dem Skript-Editor) folgendes:

              2022-03-23 14:04:23.754 - error: javascript.0 (2080) script.js.Skript_1 compile failed:
              at script.js.Skript_1:152
              2022-03-23 14:04:23.754 - error: javascript.0 (2080) SyntaxError: Unexpected end of input
              2022-03-23 14:04:23.754 - error: javascript.0 (2080) at new Script (node:vm:100:7)
              2022-03-23 14:04:23.754 - error: javascript.0 (2080) at Object.createScript (node:vm:257:10)
              2022-03-23 14:04:23.754 - error: javascript.0 (2080) at createVM (C:\iobroker\node_modules\iobroker.javascript\main.js:1598:28)
              2022-03-23 14:04:23.754 - error: javascript.0 (2080) at prepareScript (C:\iobroker\node_modules\iobroker.javascript\main.js:1849:37)
              2022-03-23 14:04:23.754 - error: javascript.0 (2080) at C:\iobroker\node_modules\iobroker.javascript\main.js:1950:17
              2022-03-23 14:04:23.755 - error: javascript.0 (2080) at Immediate._onImmediate (C:\iobroker\node_modules\iobroker.javascript\main.js:1423:17)
              2022-03-23 14:04:23.755 - error: javascript.0 (2080) at processImmediate (node:internal/timers:466:21)
              

              Unexpected end of input

              Klingt für mich als wäre fastfoot auf dem richtigen Weg. Das sieht man auch schön wenn man mal ordentlich formatiert, dass das Skript "eingezogen" endet:
              a0773c99-022b-46b4-b8c2-b9b880b17cd6-grafik.png
              4bc58b8f-9d62-4b9e-b49d-24aead4daec8-grafik.png

              Füge ich am Ende }); ein, kommt eine andere (erwartete) Fehlermeldung:

              script.js.Skript_1: ReferenceError: bla is not defined

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

              1 Antwort Letzte Antwort
              0
              • arteckA Offline
                arteckA Offline
                arteck
                Developer Most Active
                schrieb am zuletzt editiert von
                #12

                @wolfgangfb hast du globale Scripte.. dann ist da dein Fehler.. deshalb der Fehler in zeile 77... die glbalen scripte werden zuerst in jedes Script gehangen.. und deshalb kommt der nicht zu deinem bla hin

                zigbee hab ich, zwave auch, nuc's genauso und HA auch

                1 Antwort Letzte Antwort
                0
                • W Offline
                  W Offline
                  WolfgangFB
                  schrieb am zuletzt editiert von
                  #13

                  @arteck

                  Nein, ich hatte (bisher) keine globalen Skripte, wusste ehrlich gesagt gar nicht, dass es die gibt, habe aber schon länger nach so etwas gesucht :-)
                  Ich habe jetzt mal danach gegoogelt und gelesen, dass es eigentlich immer die Ordner "common" und "global" geben sollte. Bei mir existieren die aber nicht. Mit "Neu" tauschen aber "common" und "global" auf. Bisher sind all meine Skripte entweder im Root Verzeichnis oder in darin angelegten Unterordnern.
                  Ist es sinnvoll, die Skripte alle in Common oder global zu haben?

                  HomoranH W 2 Antworten Letzte Antwort
                  0
                  • W WolfgangFB

                    @arteck

                    Nein, ich hatte (bisher) keine globalen Skripte, wusste ehrlich gesagt gar nicht, dass es die gibt, habe aber schon länger nach so etwas gesucht :-)
                    Ich habe jetzt mal danach gegoogelt und gelesen, dass es eigentlich immer die Ordner "common" und "global" geben sollte. Bei mir existieren die aber nicht. Mit "Neu" tauschen aber "common" und "global" auf. Bisher sind all meine Skripte entweder im Root Verzeichnis oder in darin angelegten Unterordnern.
                    Ist es sinnvoll, die Skripte alle in Common oder global zu haben?

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #14

                    @wolfgangfb sagte in Javascript startet nicht (unsinnige Fehlermeldung):

                    Ist es sinnvoll, die Skripte alle in Common oder global zu haben?

                    nein!
                    nur nicht in global, außer du weißt ganz genau was du tust.
                    Deswegen ist der Ordner auch nur im Expertenmodus zu sehen

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    0
                    • W WolfgangFB

                      @arteck

                      Nein, ich hatte (bisher) keine globalen Skripte, wusste ehrlich gesagt gar nicht, dass es die gibt, habe aber schon länger nach so etwas gesucht :-)
                      Ich habe jetzt mal danach gegoogelt und gelesen, dass es eigentlich immer die Ordner "common" und "global" geben sollte. Bei mir existieren die aber nicht. Mit "Neu" tauschen aber "common" und "global" auf. Bisher sind all meine Skripte entweder im Root Verzeichnis oder in darin angelegten Unterordnern.
                      Ist es sinnvoll, die Skripte alle in Common oder global zu haben?

                      W Offline
                      W Offline
                      WolfgangFB
                      schrieb am zuletzt editiert von
                      #15

                      @wolfgangfb

                      Ich habe mir gedacht, dass ich in "global" Funktionen haben könnte, die ich eigentlich fast immer brauche und deshalb in fast jedem Skript händisch vorne angelegt habe (z.B. Logfunktionen, Stringfunktionen etc.)
                      Werden die globalen Skripte dann wirklich jedem anderen Skript vorangestellt oder nur dann wenn die Funktion auch aufgerufen wird?

                      HomoranH 1 Antwort Letzte Antwort
                      0
                      • W WolfgangFB

                        @wolfgangfb

                        Ich habe mir gedacht, dass ich in "global" Funktionen haben könnte, die ich eigentlich fast immer brauche und deshalb in fast jedem Skript händisch vorne angelegt habe (z.B. Logfunktionen, Stringfunktionen etc.)
                        Werden die globalen Skripte dann wirklich jedem anderen Skript vorangestellt oder nur dann wenn die Funktion auch aufgerufen wird?

                        HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von
                        #16

                        @wolfgangfb sagte in Javascript startet nicht (unsinnige Fehlermeldung):

                        wirklich jedem anderen Skript vorangestellt

                        ja

                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        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
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        584

                        Online

                        32.6k

                        Benutzer

                        82.1k

                        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