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. Zuviel fuer JS ?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Zuviel fuer JS ?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
32 Beiträge 6 Kommentatoren 2.7k 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.
  • L Offline
    L Offline
    looxer01
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich habe gerade mein System kraeftig durchgeschüttelt und ich glaube es liegt daran, dass ich JS evt überladen habe.

    Ich bastele ja gerade an einem groessren Script mit 21 subscriptions und entprechenden Unterfunktionen.

    Beim letzten Speichern dann gab es jede Menge Fehlermeldungen. (siehe unten) zunächst dachte ich, dass es daran liegt, dass ich böse Fehler eingebaut habe aber dann nach ein wenig debuggen habe ich festgestellt, dass die Fehler weggehen wenn ich subscriptions rausnehme. (und die sind seit längerem drinne ohne Fehler zu erzeugen)

    Frage nun: kann es sein, dass JS bzw der damit zusammenhängende nicht mehr klar kommt. Es scheint, dass dann mehr oder weniger nichts mehr läuft also nicht nur das eigentliche Programm sondern sämtliche JS Programme. Wenn ich aber mein Programm deaktiviere läuft wieder alles :shock:

    vG Looxer

    avascript-0	2016-02-02 16:27:36	info	Stop script script.js.Betriebsstundenzaehler_Extended
    SyntaxError:	2016-02-02 16:27:36	error	at TCP.onread (net.js:526:21)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket.Readable.push (_stream_readable.js:127:10)
    SyntaxError:	2016-02-02 16:27:36	error	at readableAddChunk (_stream_readable.js:165:9)
    SyntaxError:	2016-02-02 16:27:36	error	at emitReadable (_stream_readable.js:404:5)
    SyntaxError:	2016-02-02 16:27:36	error	at emitReadable_ (_stream_readable.js:408:10)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket.EventEmitter.emit (events.js:92:17)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket. (_stream_readable.js:746:14)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket.EventEmitter.emit (events.js:95:17)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket.realHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:800:20)
    SyntaxError:	2016-02-02 16:27:36	error	at Receiver.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:95:24)
    SyntaxError:	2016-02-02 16:27:36	error	at Receiver.expectHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:457:31)
    SyntaxError:	2016-02-02 16:27:36	error	at Receiver.opcodes.1.finish (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:482:12)
    SyntaxError:	2016-02-02 16:27:36	error	at Receiver.flush (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:340:3)
    SyntaxError:	2016-02-02 16:27:36	error	at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:466:14
    SyntaxError:	2016-02-02 16:27:36	error	at Receiver.applyExtensions (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:364:5)
    SyntaxError:	2016-02-02 16:27:36	error	at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:477:18
    SyntaxError:	2016-02-02 16:27:36	error	at Receiver.ontext (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:816:10)
    SyntaxError:	2016-02-02 16:27:36	error	at WebSocket.EventEmitter.emit (events.js:98:17)
    SyntaxError:	2016-02-02 16:27:36	error	at WebSocket.onMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:418:14)
    SyntaxError:	2016-02-02 16:27:36	error	at WebSocket.ws.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/websocket.js:132:10)
    SyntaxError:	2016-02-02 16:27:36	error	at WS.Transport.onData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js:135:8)
    SyntaxError:	2016-02-02 16:27:36	error	at WS.Transport.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js:143:8)
    SyntaxError:	2016-02-02 16:27:36	error	at WS.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/index.js:134:20)
    SyntaxError:	2016-02-02 16:27:36	error	at WS. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js:258:10)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js:441:14)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/index.js:134:20)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
    SyntaxError:	2016-02-02 16:27:36	error	at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:323:16)
    SyntaxError:	2016-02-02 16:27:36	error	at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/index.js:247:12)
    SyntaxError:	2016-02-02 16:27:36	error	at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20)
    SyntaxError:	2016-02-02 16:27:36	error	at Decoder. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
    SyntaxError:	2016-02-02 16:27:36	error	at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:333:8)
    SyntaxError:	2016-02-02 16:27:36	error	at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20)
    SyntaxError:	2016-02-02 16:27:36	error	at Manager. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:221:12)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:263:10)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20)
    SyntaxError:	2016-02-02 16:27:36	error	at Socket.StatesInMemClient.client.on.connectionTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30)
    SyntaxError:	2016-02-02 16:27:36	error	at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1963:80)
    SyntaxError:	2016-02-02 16:27:36	error	at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:192:17)
    SyntaxError:	2016-02-02 16:27:36	error	at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:452:17)
    SyntaxError:	2016-02-02 16:27:36	error	at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2316:17)
    SyntaxError:	2016-02-02 16:27:36	error	at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:456:48
    SyntaxError:	2016-02-02 16:27:36	error	at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1113:48)
    SyntaxError:	2016-02-02 16:27:36	error	at Object. (script.js.Betriebsstundenzaehler_Extended:519:81)
    SyntaxError:	2016-02-02 16:27:36	error	at GeraetUpdate (script.js.Betriebsstundenzaehler_Extended:290:19)
    
    
    1 Antwort Letzte Antwort
    0
    • T Offline
      T Offline
      tschombe
      schrieb am zuletzt editiert von
      #2

      Also ich hab z.B. auch ein Script mit 28 Subscriptions

      (14 Räume, jeweils Soll u Ist-Temperatur, Steuerung der Fussbodenheizung)

      und damit keinerlei Probleme.

      Nur so als Idee: Hast du vielleicht durch die Subscriptions sowas wie zirkuläre Referenzen erzeugt?

      (eine getriggerte Subscription verändert Werte die wiedrum zum Triggern von anderen Subscriptions führen usw…)

      1 Antwort Letzte Antwort
      0
      • L Offline
        L Offline
        looxer01
        schrieb am zuletzt editiert von
        #3

        Hi

        @tschombe:

        Nur so als Idee: Hast du vielleicht durch die Subscriptions sowas wie zirkuläre Referenzen erzeugt?

        (eine getriggerte Subscription verändert Werte die wiedrum zum Triggern von anderen Subscriptions führen usw…) `

        Also es ist so, dass die Subsriptions 1:1 in einer abgespeckten Form des Programmes laufen. Daran liegt es nicht.

        Ich war dabei das Programm zu erweitern und habe an einer bestimmten Funktion gearbeitet. Dann ging das los.

        Da half dann auch nicht mehr, die gesamte Funktion auszukommentieren. Ich musste Subsriptions rausnehmen.

        vG Looxer

        1 Antwort Letzte Antwort
        0
        • L Offline
          L Offline
          looxer01
          schrieb am zuletzt editiert von
          #4

          Also ich habe den Code mal durch verschiedene Online checker geschickt (JSHINT etc)

          Es gibt keine großen Auffälligkeiten im Code.

          Der Code ist noch nicht fertig aber syntaxfehlerfrei. Habe ihn mal eingefügt. Vielleicht fällt was auf.

          ! ````
          /*..........Betriebsstundenzaehler BSZ extended Version
          ............Datum:
          ............Autor: Looxer01
          ............Forum ioBroker
          ............http://forum.iobroker.com/posting.php?mode=post&f=21&sid=b3b2a31dae55081fedaf0ad9c8d74acd
          ............Änderungshistorie
          /
          ! /
          HIER Einstellungen vornehmen............................................................................................


          Position 1 ist die Geraete-ID bzw Objekt ID - bitte nur gültige objekte eintragen - Es funktionieren alle LEVEL und STATE Geraete und alles was mit true und false belegt werden kann
          Position 2 ist der Variablenname unter dem die Betriebszeiten in ioBroker abgelegt werden. Wichtig: keine Sonderzeichen und keine Spaces verwenden
          Position 3 ist frei zu vergebener Text (Beschreibung)
          Position 4 = Variable DAY wird angelegt und kumuliert - täglicher refresh
          Position 5 = Variable WEEK wird angelegt und kumuliert - wöchentlicher refresh
          Position 6 = Variable MONTH wird angelegt und kumuliert - monatlicher refresh
          Position 7 = Variable YEAR wird angelegt und kumuliert - Jährlicher refresh
          Position 8 = Verwendung eines Zaehlers um die Statuswechsel (anzahl Schaltungen) zu zaehlen
          Position 9 - 18 - Eingabe was gezaehlt werden soll. Jeder Eintrag erzeugt eine variable in den Objekten. Sobald ein Status des Homematic-ID gesetzt wird, wird die Zeit bzw. die Anzahl gespeichert
          -----------------------------------------------------------------------------/
          var Gruppen = [];
          // 1.Homematic ID, 2.Feldname(no spaces) 3.Freie Beschreibung 4.DAY 5.Week 6.Month 7.Year 8.Switch 9 - 18 Status to log
          Gruppen[0] = ['hm-rpc.0.JEQ003xxxx.1.STATE' , 'Licht_WZ_EsstischStehlampe' , 'Licht Wohnzimmer Esstisch Stehlampe' ,true , true , true , true ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[1] = ['hm-rpc.0.JEQ019xxxx.1.LEVEL' , 'Licht_WZ_EsstischDecke' , 'Licht Wohnzimmer Esstisch Deckenlampe' ,true , true, false, false ,true, '100' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[2] = ['hm-rpc.0.IEQ037xxxx.1.STATE' , 'Licht_WZ_Terrassentuere' , 'Licht Terrassentuere' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[3] = ['hm-rpc.0.JEQ003xxxx.1.STATE' , 'Licht_UN_Kinderbad' , 'Licht Kinderbad' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[4] = ['hm-rpc.0.JEQ029xxxx.1.STATE' , 'Filter_Pool' , 'Filter_Pool' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[5] = ['hm-rpc.0.JEQ003xxxx.1.STATE' , 'Licht_UN_Hobbyraum' , 'Licht_UN_Hobbyraum' ,true , false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[6] = ['hm-rpc.0.JEQ005xxxx.1.STATE' , 'Oekofen_Laufzeit_Manuell' , 'Oekofen Schaltsteckdose' ,true , false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[7] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[8] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[9] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[10] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[11] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[12] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[13] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[14] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[15] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[16] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[17] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[18] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[18] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[19] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          Gruppen[20] = ['' , '' , '' ,false, false, false, false ,true, 'true' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          /
          -------------------------------------------------------------------------------
          //
          Die folgende Tabelle dient zur Vergabe von Statusnamen zur besseren Lesbarkeit. Standard ist An
          Wird hier kein Feldname vergeben, dann wird Spalte 9-18 der Gruppentabelle als Feldname verwendet
          Beispiel: Zustand Lampe = An ,
          Beispiel: Status 01 = Heizung_Zuendung, 02 = Heizung_Brennen, 03= Heizung_Nachlauf etc
          ACHTUNG- keine spaces verwenden */
          var logname = [];
          logname[0] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[1] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[2] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[3] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[4] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[5] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[6] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[7] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[8] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[9] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[10] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[11] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[12] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[13] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[14] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[15] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[16] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[17] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[18] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[19] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];
          logname[20] = ['EIN' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,''];

          ! var TimeSetNull = "00:05"; // Zeitangabe HH:MM fuer die Nullsetzung der summierten Werte (taeglich,woechentlich,monatlich,jaehrlich)
          ! var logflag = false; // wenn auf true dann wird das logging in Datei /opt/iobroker/iobroker-data/BSZLog.csv eingeschaltet bei false vice versa
          var Timelogflag = false; // wenn auf true dann wird das logging in Datei /opt/iobroker/iobroker-data/BSZTimeLog.csv eingeschaltet bei false vice versa
          ! // fuer OSX und Windows MUSS der volle Pfad eingestellt werden (wenn die log flags auf true stehen)
          // Beispiel: /Users/looxer01/Documents/iobroker/iobroker-data/BSZLog.csv
          var LogPath = "/opt/iobroker/iobroker-data/BSZLog.csv"; // Pfad und Dateiname des externen Logs
          var TimeLogPath = "/opt/iobroker/iobroker-data/BSZTimeLog.csv"; // Pfad und Dateiname des externen Logs für die Zeitabschnitte täglich, wöchentlich monatlich jährlich
          ! // Ende Einstellungen .......................................................................................................
          ! // Experten-Einstellungen .......................................................................................................
          ! var sysLocation = "BSZ.System"; // Speicherort der Systemvariablen
          var countLocation = "BSZ.Counter"; // Speicherort der Counter Variablen (Klartext Betriebszeiten)
          ! /* Ende Experten-Einstellungen .......................................................................................................
          --------------------------------------------------------------------------------------------------------------------------------------/
          ! var SpaceChk = new RegExp(/\s/); // pattern um zu pruefen ob eine IDGruppe blanks enthaelt
          var fs = require('fs'); // enable write fuer externes log
          var string = " "; // Logstring
          var logtext=" " ; // Kommentar im log
          var SpaceChk = new RegExp(/\s/); // pattern um zu pruefen ob eine IDGruppe blanks enthaelt
          var FormTimeKum = "000:00:00:00"; // kumulierte Betriebsstunden im Format ddd:hh:mm:ss
          var FormTimeSingle = "000:00:00:00"; // kumulierte Betriebsstunden im Format ddd:hh:mm:ss
          var currSec = 0; // aktuelle Zeit in Millisekunden
          var GeraeteName = " "; // Bezeichnung des Geraetes
          var GeraeteStatus = " "; // Geraetestatus z.B. true / false
          var timediff = 0; // Variable Betriebszeit in MSec von letzter Einschaltzeit bis curren Ausschaltzeit
          var newkumtime = 0; // Variable neue berechnete kumulirete Zeit in MSec
          var LastMSec = 0; // Variable letzte Einschaltzeit in MSec
          var LastKumSec = 0; // Variable letzte kumulierte Zeit in MSec
          var DayKum = 0; // Rechenvariable taegliche kumulierte Werte
          var WeekKum = 0; // Rechenvariable woechentliche kumulierte Werte
          var MonthKum = 0; // Rechenvariable monatliche kumulierte Werte
          var YearKum = 0; // Rechenvariable jaehrliche kumulierte Werte
          var FormTimeDAY = "000:00:00:00"; // Rechenvariable taegliche formatierte Werte
          var FormTimeWEEK = "000:00:00:00"; // Rechenvariable woechentliche formatierte Werte
          var FormTimeMONTH = "000:00:00:00"; // Rechenvariable moantliche formatierte Werte
          var FormTimeYEAR = "000:00:00:00"; // Rechenvariable jaehrliche formatierte Werte
          var cronjob = "
          /"+TimeSetNull+" * * * *"; // Cron Schedule setzen
          ! // Anlegen der Variablen falls notwendig
          CreateStates(); // Anlegen der Variablen in ioBroker
          ! // Aufbauen der Variablentabelle zur Übergabe and die Berechnungsfunktion (Geraetupdate)
          var GrpSystem = [];
          var zaehler2 = 0; // Zaehler2 fügt eine führende Null hinzu
          for (var zaehler = 0, // Loop über das Array
          zaehler_array = Gruppen.length; // entsprechend der Anzahl der Eintragungen
          zaehler < zaehler_array;
          zaehler++) { // addiere eins für jeden Druchgang
          zaehler2 = addZero(zaehler).zero2; // fuehrende Null
          GrpSystem[zaehler] = [sysLocation + '.Grp' + zaehler2 + 'MSec', sysLocation + '.Grp' + zaehler2 + 'Kum', countLocation + "." + Gruppen[zaehler][1]]; // Erzeuge Eintragung ins Array
          log("GrpSystem " + GrpSystem[zaehler][0]+ " " + GrpSystem[zaehler][1] + " " + Gruppen[zaehler][1], "info");
          } // Ende FOR
          ! // ------------------------Aenderung des Status des Geraetes------------------------------------
          //-------------------------Beim Einschalten wird die Zeit festgehalten -------------------------
          //-------------------------Beim Ausschalten wird die Zeitdifferenz berechnet und gespeichert----
          ! on({id: Gruppen[0][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[0][0], GrpSystem[0][0], GrpSystem[0][1], GrpSystem[0][2], Gruppen[0][3], Gruppen[0][4], Gruppen[0][5], Gruppen[0][6] ); } }); // ende on id
          on({id: Gruppen[1][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[1][0], GrpSystem[1][0], GrpSystem[1][1], GrpSystem[1][2], Gruppen[1][3], Gruppen[1][4], Gruppen[1][5], Gruppen[1][6] ); } }); // ende on id
          on({id: Gruppen[2][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[2][0], GrpSystem[2][0], GrpSystem[2][1], GrpSystem[2][2], Gruppen[2][3], Gruppen[2][4], Gruppen[2][5], Gruppen[2][6] ); } }); // ende on id
          on({id: Gruppen[3][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[3][0], GrpSystem[3][0], GrpSystem[3][1], GrpSystem[3][2], Gruppen[3][3], Gruppen[3][4], Gruppen[3][5], Gruppen[3][6] ); } }); // ende on id
          on({id: Gruppen[4][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[4][0], GrpSystem[4][0], GrpSystem[4][1], GrpSystem[4][2], Gruppen[4][3], Gruppen[4][4], Gruppen[4][5], Gruppen[4][6] ); } }); // ende on id
          on({id: Gruppen[5][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[5][0], GrpSystem[5][0], GrpSystem[5][1], GrpSystem[5][2], Gruppen[5][3], Gruppen[5][4], Gruppen[5][5], Gruppen[5][6] ); } }); // ende on id
          on({id: Gruppen[6][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[6][0], GrpSystem[6][0], GrpSystem[6][1], GrpSystem[6][2], Gruppen[6][3], Gruppen[6][4], Gruppen[6][5], Gruppen[6][6] ); } }); // ende on id
          on({id: Gruppen[7][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[7][0], GrpSystem[7][0], GrpSystem[7][1], GrpSystem[7][2], Gruppen[7][3], Gruppen[7][4], Gruppen[7][5], Gruppen[7][6] ); } }); // ende on id
          on({id: Gruppen[8][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[8][0], GrpSystem[8][0], GrpSystem[8][1], GrpSystem[8][2], Gruppen[8][3], Gruppen[8][4], Gruppen[8][5], Gruppen[8][6] ); } }); // ende on id
          on({id: Gruppen[9][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[9][0], GrpSystem[9][0], GrpSystem[8][1], GrpSystem[9][2], Gruppen[9][3], Gruppen[9][4], Gruppen[9][5], Gruppen[9][6] ); } }); // ende on id
          on({id: Gruppen[10][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[10][0], GrpSystem[10][0], GrpSystem[10][1], GrpSystem[10][2], Gruppen[10][3], Gruppen[10][4], Gruppen[10][5], Gruppen[10][6] ); } }); // ende on id
          on({id: Gruppen[11][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[11][0], GrpSystem[11][0], GrpSystem[11][1], GrpSystem[11][2], Gruppen[11][3], Gruppen[11][4], Gruppen[11][5], Gruppen[11][6] ); } }); // ende on id
          on({id: Gruppen[12][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[12][0], GrpSystem[12][0], GrpSystem[12][1], GrpSystem[12][2], Gruppen[12][3], Gruppen[12][4], Gruppen[12][5], Gruppen[12][6] ); } }); // ende on id
          on({id: Gruppen[13][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[13][0], GrpSystem[13][0], GrpSystem[13][1], GrpSystem[13][2], Gruppen[13][3], Gruppen[13][4], Gruppen[13][5], Gruppen[13][6] ); } }); // ende on id
          on({id: Gruppen[14][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[14][0], GrpSystem[14][0], GrpSystem[14][1], GrpSystem[14][2], Gruppen[14][3], Gruppen[14][4], Gruppen[14][5], Gruppen[14][6] ); } }); // ende on id
          on({id: Gruppen[15][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[15][0], GrpSystem[15][0], GrpSystem[15][1], GrpSystem[15][2], Gruppen[15][3], Gruppen[15][4], Gruppen[15][5], Gruppen[15][6] ); } }); // ende on id
          on({id: Gruppen[16][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[16][0], GrpSystem[16][0], GrpSystem[16][1], GrpSystem[16][2], Gruppen[16][3], Gruppen[16][4], Gruppen[16][5], Gruppen[16][6] ); } }); // ende on id
          on({id: Gruppen[17][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[17][0], GrpSystem[17][0], GrpSystem[17][1], GrpSystem[17][2], Gruppen[17][3], Gruppen[17][4], Gruppen[17][5], Gruppen[17][6] ); } }); // ende on id
          on({id: Gruppen[18][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[18][0], GrpSystem[18][0], GrpSystem[18][1], GrpSystem[18][2], Gruppen[18][3], Gruppen[18][4], Gruppen[18][5], Gruppen[18][6] ); } }); // ende on id
          on({id: Gruppen[19][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[19][0], GrpSystem[19][0], GrpSystem[19][1], GrpSystem[19][2], Gruppen[19][3], Gruppen[19][4], Gruppen[19][5], Gruppen[19][6] ); } }); // ende on id
          on({id: Gruppen[20][0], valNe: 1000 }, function(obj) { if (obj.state.ack) { GeraetUpdate( Gruppen[20][0], GrpSystem[20][0], GrpSystem[20][1], GrpSystem[20][2], Gruppen[20][3], Gruppen[20][4], Gruppen[20][5], Gruppen[20][6] ); } }); // ende on id
          ! // ------------------------ F U N K T I O N E N -------------------------------------------------------
          ! //-----------------------------------------------------------------------------------------------------
          // Funktion zum Anlegen der Variablen im System
          //-----------------------------------------------------------------------------------------------------
          function CreateStates(){
          ! for (var zaehler = 0,
          zaehler_array = Gruppen.length;
          zaehler < zaehler_array;
          zaehler++) {
          zaehler2 = addZero(zaehler).zero2;
          if (Gruppen[zaehler][0] !== '') { // Check for blanks
          CreateStateCounter(zaehler, countLocation + '.' + Gruppen[zaehler][1], sysLocation + '.Grp' + zaehler2 ); // Anlegen aller count variablen
          } // endif space check (nur wenn keine spaces in der ID enthalten sind wird angelegt)
          } // Ende FOR var zaehler2 = 0;
          } // ende Funktion
          ! //-----------------------------------------------------------------------------------------------------
          // Funktion zum Anlegen der Variablen im System - hier Statusinformationen
          //-----------------------------------------------------------------------------------------------------
          ! function CreateStateCounter(nummer, pathcount, pathsys) {

          ! var zaehler;
          var statusname;
          for (zaehler = 8; zaehler < 18; zaehler++) { // Spalte 8 - 18 fuer die Gruppentabelle entspriche logname -8
          statusname = ''; // initialisieren Feldname fuer Status
          if (Gruppen[nummer][zaehler] !== '') { // Gibt es einen Status in der Gruppentabelle ? wenn ja merken
          statusname = Gruppen[nummer][zaehler-8];
          }
          if (logname[nummer][zaehler-8] !== ''&& statusname !== '') { // Gibt es einen Status in der logname tabelle ? wenn ja merken mit vorrang
          statusname = logname[nummer][zaehler-8];
          }

               if (statusname !== '')  {                                                                                   // gibt es einen Statuseintrag
                  createState(pathcount + '.TIME.' + statusname,   "000:00:00:00");                                            // Anlegen des Zeiteintrages anhand der Gruppentabelle nur TIME
                  createState(pathsys  + 'MSec.' + statusname ,  0);
                  createState(pathsys  + 'Kum.' + statusname,   0);
          		if (Gruppen[zaehler][7] === true) {	                                                                    // Soll auch eine Switch Variable angelegt werden
                     createState(pathcount + '.SWITCH.'+ statusname,   0);		                                                // Anlegen der Switchvariabel	    
          		}    
                  if (Gruppen[nummer][3] === true) {                                                                      // soll eine DAY kumulations Variable angelegt werden ?
                      createState(pathcount + '.TIME.' + statusname +'.DAY',   "000:00:00:00");                                // DAY fuer TIME anlegen 
                      createState(pathsys + "Kum." + statusname +'.DAY');
          		if (Gruppen[zaehler][7] === true) {	                                                                // soll auch ein Schaltungszaehler fuer Zeitabschnitt angelegt werden erden ?
                          createState(pathcount + '.SWITCH.'+ statusname + '.DAY',   0);	
                       } // endif Zeitabschnitt fuer switch
          		}      // endif Summierung soll angelegt werden
          

          ! if (Gruppen[nummer][4] === true) { // soll eine DAY kumulations Variable angelegt werden ?
          createState(pathcount + '.TIME.' + statusname +'.WEEK', "000:00:00:00"); // WEEK fuer TIME anlegen
          createState(pathsys + "Kum." + statusname +'.WEEK');
          if (Gruppen[zaehler][7] === true) { // soll auch ein Schaltungszaehler fuer Zeitabschnitt angelegt werden erden ?
          createState(pathcount + '.SWITCH.'+ statusname + '.WEEK', 0);
          } // endif Zeitabschnitt fuer switch
          } // endif Summierung sol angelegt werden
          ! if (Gruppen[nummer][5] === true) { // soll eine DAY kumulations Variable angelegt werden ?
          createState(pathcount + '.TIME.' + statusname +'.MONTH', "000:00:00:00"); // MONZH fuer TIME anlegen
          createState(pathsys + "Kum." + statusname +'.MONTH');
          if (Gruppen[zaehler][7] === true) { // soll auch ein Schaltungszaehler fuer Zeitabschnitt angelegt werden erden ?
          createState(pathcount + '.SWITCH.'+ statusname + '.MONTH', 0);
          } // endif Zeitabschnitt fuer switch
          } // endif Summierung soll angelegt werden

                  if (Gruppen[nummer][6] === true) {                                                                      // soll eine DAY kumulations Variable angelegt werden ?
                      createState(pathcount + '.TIME.' + statusname +'.YEAR',   "000:00:00:00");                                // YEAR  fuer TIME anlegen 
                      createState(pathsys + "Kum." + statusname +'.YEAR');
          		if (Gruppen[zaehler][7] === true) {	                                                                // soll auch ein Schaltungszaehler fuer Zeitabschnitt angelegt werden erden ?
                          createState(pathcount + '.SWITCH.'+ statusname + '.YEAR',   0);	
                       } // endif Zeitabschnitt fuer switch
          		}      // endif Summierung soll angelegt werden
          
              }   // endif es gibt einen Status eintrag in der Gruppen bzw logname tabelle
          

          ! } // Ende FOR
          ! } // ende Funktion

          ! //-----------------------------------------------------------------------------------------------------
          // Core Update Funktion
          //-----------------------------------------------------------------------------------------------------
          function GeraetUpdate(objGruppe,objMSec,objKum,objCount,day,week,month,year) {

          ! GeraeteName = getObject(objGruppe).common.name; // Name des Geraetes in Klartext
          GeraeteStatus = getState(objGruppe).val; // Aktueller Status des Geraetes
          LastMSec = getState(objMSec).val; // lese kumulierten Wert
          LastKumSec = getState(objKum).val; // lese kumulierten Wert
          currSec = new Date().getTime(); // Aktuelle Zeit millisekunden seit 01.01.1970
          ! if (objGruppe.match('LEVEL')) { // ist es ein LEVEL Geraet ?
          if (GeraeteStatus > 0) { // Geraet wurde eingeschaltet
          setState(objMSec,currSec); // merken millisekunden zum Zeitpunkt "Einschalten"
          } else { // Geraet wurde ausgeschaltet
          if (LastMSec > 0 ) { // der letzte Status muss auf "eingechaltet" stehen also > 0
          timediff = currSec - LastMSec; // Berechnen der Zeitdifferenz
          FormTimeSingle = TimeCalc(FormTimeSingle,timediff); // laufzeit in lesbarem Format ddd:hh:mm:ss
          newkumtime = LastKumSec + timediff; // Berechne die neue kumulierte Zeit
          FormTimeKum = TimeCalc(FormTimeKum,newkumtime); // Berechne Betriebsstunden Zeitformat von millisekunden in dd:hh:mm:ss = FormTime
          setState(objKum,newkumtime); // Schreibe Zeitformat in variable
          setState(objCount,FormTimeKum); // Schreibe Zeitformat in variable
          setState(objMSec,0); // setzen Millisekunden auf Null um Fehlschaltungen zu vermeiden
          TimeKum(day,week,month,year,objKum,objCount,timediff); // update der Zeiten in täglichen, wöchentlichen, monatlichen, jährlichen einheiten wenn so gewünscht
          } // endif LastMSec > 0
          } // Endif GeraeteStatus groesser 0
          } else { // Wenn es kein LEVEL Geraet ist, dann muss es ein true/false objekt sein (z.B. STATE oder Variable etc)
          if (GeraeteStatus === true) {
          setState(objMSec,currSec); // merken millisekunden zum Zeitpunkt "Einschalten"
          } else { // Geraet wurde ausgeschaltet
          if (LastMSec > 0 ) { // der letzte Status muss auf "eingechaltet" stehen also > 0
          timediff = currSec - LastMSec; // Berechnen der Zeitdifferenz
          FormTimeSingle = TimeCalc(FormTimeSingle,timediff); // laufzeit in lesbarem Format ddd:hh:mm:ss
          newkumtime = LastKumSec + timediff; // Berechne die neue kumulierte Zeit
          FormTimeKum = TimeCalc(FormTimeKum,newkumtime); // Berechne Betriebsstunden Zeitformat von millisekunden in dd:hh:mm:ss = FormTime
          setState(objKum,newkumtime); // Schreibe Zeitformat in variable
          setState(objCount,FormTimeKum); // Schreibe Zeitformat in variable
          setState(objMSec,0); // setzen Millisekunden auf Null um Fehlschaltungen zu vermeiden
          TimeKum(day,week,month,year,objKum,objCount,timediff); // update der Zeiten in täglichen, wöchentlichen, monatlichen, jährlichen einheiten wenn so gewünscht
          } // endif LastMSec > 0
          } // Endif GeraeteStatus auf true gesetzt
          } // ende Check on LEVEL Geraet
          ! string = GeraeteName + ";" + objMSec +";" + GeraeteStatus + " ; " + FormTimeSingle + " ; " + timediff +" ; " + FormTimeKum + " ; " + newkumtime;
          log(string, "info");
          writelog(string);

          ! } // ende Funktion
          ! //-----------------------------------------------------------------------------------------------------
          // Funktion zur Ueberpruefung ob die angegebenen Geraete exisiteren
          //-----------------------------------------------------------------------------------------------------
          function ObjectExists(objGruppe) {
          back = false;

          if (SpaceChk.test(objGruppe)) { // objIDGruppe darf kein space enthalten // ist ein Geraet ueberhaupt zugeordnet ?
          // log("Geraet hat kein assignment - Gruppe " + objGruppe, "info");
          return back;
          } // endif IDGruppe hat kein assignment

          ! if (getState(objGruppe)) { // Existiert das Geraet ?
          back = true;
          } else { log("Geraet existiert nicht - bitte in den Einstellungen ueberpruefen - Gruppe " + objGruppe, "info");
          } // endif check on Geraet exists
          ! return back;
          } // ende Funktion
          !

          ! //-----------------------------------------------------------------------------------------------------
          // Funktion zur Zeitdifferenzrechnung mit Format DDD:HH:MM:SS
          //-----------------------------------------------------------------------------------------------------
          function TimeCalc(time,diff) {
          // Millisekunden umrechnen in Tag Stunden Minuten Sekunden
          ! var tag = addZero(Math.floor(diff / (1000606024))).zero3;
          diff = diff % (1000
          606024);
          var std = addZero(Math.floor(diff / (10006060))).zero2;
          diff = diff % (10006060);
          var min = addZero(Math.floor(diff / (100060))).zero2;
          diff = diff % (1000
          60);
          var sec = addZero(Math.floor(diff / 1000)).zero2;
          time = tag + ":" + std + ":" + min + ":" + sec; // jetzt ddd:hh:mm:ss zusammensetzen
          return time;
          ! }
          ! //-----------------------------------------------------------------------------------------------------
          // Funktion schreibt einen Logeintrag in das Filesystem und auch in das interne Log-System
          //-----------------------------------------------------------------------------------------------------
          function writelog(string) {
          if (logflag === true) {
          // Zerlege Datum und Zeit in Variable
          var now = new Date(); // store current date and time
          var year = now.getFullYear();
          var month = addZero(now.getMonth()+1).zero2;
          var day = addZero(now.getDate()).zero2;
          var Thour = addZero(now.getHours()).zero2;
          var Tmin = addZero(now.getMinutes()).zero2;
          var Tsec = addZero(now.getSeconds()).zero2;
          var logdate = day + '.' + month + '.' + year;
          var logtime = Thour + ':' + Tmin + ':' + Tsec;
          ! if (fs.existsSync(LogPath)) {
          fs.appendFileSync(LogPath, logdate+" ;"+logtime+" ;"+string + "\n"); // Füge Satz in Datei ein
          } else {
          log("Logfile nicht gefunden - wird angelegt", "info");
          var headerLine= "Datum;Uhrzeit;Geraetebezeichnung;Gruppe;Status;DiffZeitFormat ;DIFFZeitMSec;KumZeitFormat;KumZeitMsec";
          fs.appendFileSync(LogPath, headerLine + "\n"); // Füge Satz in Datei ein
          fs.appendFileSync(LogPath, logdate+" ;"+logtime+" ;"+string + "\n"); // Füge Satz in Datei ein
          } // endif Filecheck
          } // Ende check on logflag
          } // Ende Funktion
          ! //-----------------------------------------------------------------------------------------------------
          // Funktion zur Erzeugung von 2 oder 3 führenden Nullen für das Datum Format
          //-----------------------------------------------------------------------------------------------------
          function addZero(i) {
          if (i < 10) {
          j = "00" + i;
          i = "0" + i;
          }
          if (i > 9 && i < 100) {
          j = "0" + i;
          }
          return {
          'zero2' : i,
          'zero3' : j
          };
          } // Ende Funktion
          !
          ! // jeden Tag werden die Betriebszaehler zurueckgesetzt
          schedule(cronjob, function() { // Planung fuer die Ruecksetzung entsprechend der Nutzervorgabe
          var month = addZero(new Date().getMonth()+1).zero2;
          var day = addZero(new Date().getDate()).zero2;
          var weekday = new Date().getDay();
          var zaehler2 = 0;
          log("EVENT Betriebsstundenzaehler werden zurueckgesetzt TAG:"+ day +" Wochentag " + weekday + "Monat " + month , "info"); // schreibe Log
          for (var zaehler = 0, // loop durch die Gruppendefinition
          zaehler_array = Gruppen.length;
          zaehler < zaehler_array;
          zaehler++) {
          zaehler2 = addZero(zaehler).zero2;
          if (Gruppen[zaehler][3] === true) { // Endif taegliche Summmierung aktiv ?
          if (ObjectExists(countLocation + "." + Gruppen[zaehler][1]+ ".DAY")) { // Ist taegliche Betriebszeitenkumulation eingeschaltet ?
          setState(countLocation + "." + Gruppen[zaehler][1]+ ".DAY",0); // taeglicher Zaehler auf
          setState(sysLocation + '.Grp' + zaehler2 + 'Kum.DAY', 0);
          } // Endif taegliche Summmierung existent ?
          } // Endif taegliche Summmierung aktiv ?

             if (Gruppen[zaehler][4] === true) {                                                                                      //  woechentliche  Summmierung aktiv ?        
                  if (ObjectExists(countLocation + "." + Gruppen[zaehler][1]+ ".WEEK") && weekday  === 1)  {                          //  Ist Element für wöchentliche  Betriebszeitenkumulation eingeschaltet ?
                    setState(countLocation + "." + Gruppen[zaehler][1]+ ".WEEK",0);                                                   // wöchentlicher Zaehler auf 0
                    setState(sysLocation + '.Grp' + zaehler2 + 'Kum.WEEK',   0); 
                  }   // Endif woechentliche  Summmierung existent ?
              }      // Endif woechentliche Summmierung aktiv ?
             if (Gruppen[zaehler][5] === true) {                                                                                      //  monatliche Summmierung aktiv ?                
                  if (ObjectExists(countLocation + "." + Gruppen[zaehler][1]+ ".MONTH") && day === "01")  {                           //  Ist monatliche  Betriebszeitenkumulation eingeschaltet ?
                    setState(countLocation + "." + Gruppen[zaehler][1]+ ".MONTH",0);                                                  // moantlicher Zaehler auf 0
                    setState(sysLocation + '.Grp' + zaehler2 + 'Kum.MONTH',   0); 
                  }       // Endif monatliche   Summmierung existent ?
              }           // Endif monatliche Summmierung aktiv ?
             if (Gruppen[zaehler][6] === true) {                                                                                      //  jährliche Summmierung aktiv ?                        
                  if (ObjectExists(countLocation + "." + Gruppen[zaehler][1]+ ".YEAR") && day === "01" && month === "01")  {          //  Ist jährliche  Betriebszeitenkumulation eingeschaltet ?
                    setState(countLocation + "." + Gruppen[zaehler][1]+ ".YEAR",0);                                                   // jährlicher Zaehler auf 0
                    setState(sysLocation + '.Grp' + zaehler2 + 'Kum.YEAR',   0); 
                  }   // Endif jaehrliche    Summmierung existent ?
              }       // Endif jaehrliche Summmierung aktiv ?
          }  // endfor
          

          }); // end of schedule

          ! //-----------------------------------------------------------------------------------------------------
          // Funktion Kumulierte Zeitabschnitte ermitteln und speichern
          //-----------------------------------------------------------------------------------------------------
          function TimeKum(day,week,month,year,objKum,objCount,timediff) {
          var formattime = " ";
          if (day) { // update der taeglichen kumulierten Betriebszeit
          DayKum = getState(objKum+'.DAY').val; // Lese kumuoerte Tagesbetriebszeit
          DayKum = DayKum + timediff; // addiere die ermittelte Betriebszeit
          setState(objKum+'.DAY',DayKum); // Schreibe die neue Betriebszeit
          formattime = TimeCalc(formattime,DayKum);
          setState(objCount+'.DAY',formattime);
          }
          if (week) {
          WeekKum = getState(objKum+'.WEEK').val;
          WeekKum = WeekKum + timediff;
          setState(objKum+'.WEEK',WeekKum);
          formattime = TimeCalc(formattime,WeekKum);
          setState(objCount+'.WEEK',formattime);

          }
          if (month){
          MonthKum = getState(objKum+'.MONTH').val;
          MonthKum = MonthKum + timediff;
          setState(objKum+'.MONTH',MonthKum);
          formattime = TimeCalc(formattime,MonthKum);
          setState(objCount+'.MONTH',formattime);
          }
          if (year) {
          YearKum = getState(objKum+'.YEAR').val;
          YearKum = YearKum + timediff;
          setState(objKum+'.YEAR',YearKum);
          formattime = TimeCalc(formattime,YearKum);
          setState(objCount+'.YEAR',formattime);
          }
          } // endif function

          ! ````

          1 Antwort Letzte Antwort
          0
          • Jey CeeJ Online
            Jey CeeJ Online
            Jey Cee
            Developer
            schrieb am zuletzt editiert von
            #5

            var SpaceChk wird zweimal definiert und wenn mich nicht alles täuscht verursacht das fehler. Sonst ist mir nix auf gefallen.

            Gesendet von meinem Jolla mit Tapatalk

            Persönlicher Support
            Spenden -> paypal.me/J3YC33

            1 Antwort Letzte Antwort
            0
            • L Offline
              L Offline
              looxer01
              schrieb am zuletzt editiert von
              #6

              danke JC, stimmt, habe ich korrigiert aber das war es nicht

              Die Reaktion von ioBroker ist schon heftig. ich glaube, dass alle Verbindungen abreissen hm.rega etc

              Das Log füllt sich ununterbrochen

              Sobald das Programm deaktiviert wird ist alles wieder normal

              ! ````
              ! 2016-02-02 18:10:42.632 - error: message system.adapter.harmony.0.uptime [object Object] Unexpected token u
              2016-02-02 18:10:42.656 - error: SyntaxError: Unexpected token u
              at Object.parse (native)
              at sandbox.getObject (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1488:33)
              at GeraetUpdate (script.js.Betriebsstundenzaehler_Extended:309:19)
              at Object. <anonymous>(script.js.Betriebsstundenzaehler_Extended:199:81)
              at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1113:48)
              at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:456:48
              at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2316:17)
              at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2335:28)
              at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2335:28)
              at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:452:17)
              at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:192:17)
              at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1963:80)
              at Socket.StatesInMemClient.client.on.connectionTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30)
              at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20)
              at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:263:10)
              at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:221:12)
              at Manager. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
              at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20)
              at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:333:8)
              at Decoder. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
              at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20)
              at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/index.js:247:12)
              at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:323:16)
              at Socket. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
              at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/index.js:134:20)
              at Socket.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js:441:14)
              at WS. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js:258:10)
              at WS.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/index.js:134:20)
              at WS.Transport.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js:143:8)
              at WS.Transport.onData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js:135:8)
              at WebSocket.ws.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/websocket.js:132:10)
              at WebSocket.onMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:418:14)
              at WebSocket.EventEmitter.emit (events.js:98:17)
              at Receiver.ontext (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:816:10)
              at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:477:18
              at Receiver.applyExtensions (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:364:5)
              at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:466:14
              at Receiver.flush (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:340:3)
              at Receiver.opcodes.1.finish (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:482:12)
              at Receiver.expectHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:457:31)
              at Receiver.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:95:24)
              at Socket.realHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:800:20)
              at Socket.EventEmitter.emit (events.js:95:17)
              at Socket. <anonymous>(stream_readable.js:746:14)
              at Socket.EventEmitter.emit (events.js:92:17)
              at emitReadable
              (_stream_readable.js:408:10)
              at emitReadable (_stream_readable.js:404:5)
              at readableAddChunk (_stream_readable.js:165:9)
              at Socket.Readable.push (_stream_readable.js:127:10)
              at TCP.onread (net.js:526:21)
              ! 2016-02-02 18:10:43.030 - error: message system.adapter.javascript.0.alive [object Object] Unexpected token u
              2016-02-02 18:10:43.068 - error: SyntaxError: Unexpected token u
              at Object.parse (native)
              at sandbox.getObject (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1488:33)
              at GeraetUpdate (script.js.Betriebsstundenzaehler_Extended:309:19)
              at Object. <anonymous>(script.js.Betriebsstundenzaehler_Extended:199:81)
              at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1113:48)
              at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:456:48
              at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2316:17)
              at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2335:28)
              at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2335:28)
              at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:452:17)
              at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:192:17)
              at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1963:80)
              at Socket.StatesInMemClient.client.on.connectionTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30)
              at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20)
              at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:263:10)
              at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:221:12)
              at Manager. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
              at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20)
              at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:333:8)
              at Decoder. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
              at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20)
              at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/index.js:247:12)
              at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:323:16)
              at Socket. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
              at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/index.js:134:20)
              at Socket.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js:441:14)
              at WS. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js:258:10)
              at WS.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/index.js:134:20)
              at WS.Transport.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js:143:8)
              at WS.Transport.onData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js:135:8)
              at WebSocket.ws.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/websocket.js:132:10)
              at WebSocket.onMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:418:14)
              at WebSocket.EventEmitter.emit (events.js:98:17)
              at Receiver.ontext (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:816:10)
              at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:477:18
              at Receiver.applyExtensions (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:364:5)
              at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:466:14
              at Receiver.flush (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:340:3)
              at Receiver.opcodes.1.finish (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:482:12)
              at Receiver.expectHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:457:31)
              at Receiver.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:95:24)
              at Socket.realHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:800:20)
              at Socket.EventEmitter.emit (events.js:95:17)
              at Socket. <anonymous>(stream_readable.js:746:14)
              at Socket.EventEmitter.emit (events.js:92:17)
              at emitReadable
              (_stream_readable.js:408:10)
              at emitReadable (_stream_readable.js:404:5)
              at readableAddChunk (_stream_readable.js:165:9)
              at Socket.Readable.push (_stream_readable.js:127:10)
              at TCP.onread (net.js:526:21)
              ! 2016-02-02 18:10:43.078 - error: message system.adapter.javascript.0.connected [object Object] Unexpected token u
              2016-02-02 18:10:43.111 - error: SyntaxError: Unexpected token u
              at Object.parse (native)
              at sandbox.getObject (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1488:33)
              at GeraetUpdate (script.js.Betriebsstundenzaehler_Extended:309:19)
              at Object. <anonymous>(script.js.Betriebsstundenzaehler_Extended:199:81)
              at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1113:48)
              at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:456:48
              at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2316:17)
              at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2335:28)
              at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2335:28)
              at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:452:17)
              at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:192:17)
              at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/a</anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous>

              1 Antwort Letzte Antwort
              0
              • Jey CeeJ Online
                Jey CeeJ Online
                Jey Cee
                Developer
                schrieb am zuletzt editiert von
                #7
                // Anlegen der Variablen falls notwendig
                CreateStates();                             // Anlegen der Variablen in ioBroker
                

                Geht das so mit CreateState? Sollte in den Klammern nicht irgendwas stehen?

                Persönlicher Support
                Spenden -> paypal.me/J3YC33

                1 Antwort Letzte Antwort
                0
                • L Offline
                  L Offline
                  looxer01
                  schrieb am zuletzt editiert von
                  #8

                  da wird die funktion CreateStates() aufgerufen.

                  die steht dann weiter unten.

                  vG Looxer

                  1 Antwort Letzte Antwort
                  0
                  • Jey CeeJ Online
                    Jey CeeJ Online
                    Jey Cee
                    Developer
                    schrieb am zuletzt editiert von
                    #9

                    Hab das s am ende übersehen.

                    Das ist ne Harte Nuss. Dein Code ist sehr aufgeräumt und Übersichtlich.

                    > Ich war dabei das Programm zu erweitern und habe an einer bestimmten Funktion gearbeitet. Dann ging das los.
                    An welcher Funktion hast du da gearbeitet?

                    Persönlicher Support
                    Spenden -> paypal.me/J3YC33

                    1 Antwort Letzte Antwort
                    0
                    • L Offline
                      L Offline
                      looxer01
                      schrieb am zuletzt editiert von
                      #10

                      das war dieser Teil:

                      
                      //-----------------------------------------------------------------------------------------------------
                      // Funktion zum Anlegen der Variablen im System
                      //-----------------------------------------------------------------------------------------------------
                      function CreateStates(){
                      
                          for (var zaehler = 0,
                                   zaehler_array = Gruppen.length;
                                   zaehler < zaehler_array;
                                   zaehler++) {
                                   zaehler2 = addZero(zaehler).zero2;
                                   if (Gruppen[zaehler][0] !== '') {                                                                  // Check for  blanks
                        				CreateStateCounter(zaehler, countLocation + '.' +  Gruppen[zaehler][1], sysLocation + '.Grp' + zaehler2 );            // Anlegen aller count variablen
                                   }  //  endif space check (nur wenn keine spaces in der ID enthalten sind wird angelegt)
                          } // Ende FOR    var zaehler2 = 0;
                      }  // ende Funktion
                      
                      //-----------------------------------------------------------------------------------------------------
                      // Funktion zum Anlegen der Variablen im System - hier Statusinformationen
                      //-----------------------------------------------------------------------------------------------------
                      
                      function CreateStateCounter(nummer, pathcount, pathsys) {
                      
                          var zaehler;
                          var statusname;
                          for	(zaehler = 8; zaehler < 18; zaehler++) {                                                                    // Spalte 8 - 18 fuer die Gruppentabelle entspriche logname -8
                               statusname = '';                                                                                           // initialisieren Feldname fuer Status
                               if (Gruppen[nummer][zaehler] !== '') {                                                                     // Gibt es einen Status in der Gruppentabelle ? wenn ja merken
                                  statusname = Gruppen[nummer][zaehler-8];
                               }
                               if (logname[nummer][zaehler-8] !== ''&& statusname !== '') {                                                // Gibt es einen Status in der logname tabelle  ? wenn ja merken mit vorrang
                                   statusname = logname[nummer][zaehler-8];
                               }
                      
                               if (statusname !== '')  {                                                                                   // gibt es einen Statuseintrag
                                  createState(pathcount + '.TIME.' + statusname,   "000:00:00:00");                                            // Anlegen des Zeiteintrages anhand der Gruppentabelle nur TIME
                                  createState(pathsys  + 'MSec.' + statusname ,  0);
                                  createState(pathsys  + 'Kum.' + statusname,   0);
                      			if (Gruppen[zaehler][7] === true) {	                                                                    // Soll auch eine Switch Variable angelegt werden
                                     createState(pathcount + '.SWITCH.'+ statusname,   0);		                                                // Anlegen der Switchvariabel	    
                      			}    
                                  if (Gruppen[nummer][3] === true) {                                                                      // soll eine DAY kumulations Variable angelegt werden ?
                                      createState(pathcount + '.TIME.' + statusname +'.DAY',   "000:00:00:00");                                // DAY fuer TIME anlegen 
                                      createState(pathsys + "Kum." + statusname +'.DAY');
                       			if (Gruppen[zaehler][7] === true) {	                                                                // soll auch ein Schaltungszaehler fuer Zeitabschnitt angelegt werden erden ?
                                          createState(pathcount + '.SWITCH.'+ statusname + '.DAY',   0);	
                                       } // endif Zeitabschnitt fuer switch
                      			}      // endif Summierung soll angelegt werden
                      
                                  if (Gruppen[nummer][4] === true) {                                                                      // soll eine DAY kumulations Variable angelegt werden ?
                                      createState(pathcount + '.TIME.' + statusname +'.WEEK',   "000:00:00:00");                          // WEEK fuer TIME anlegen 
                                      createState(pathsys + "Kum." + statusname +'.WEEK');
                           			if (Gruppen[zaehler][7] === true) {	                                                                // soll auch ein Schaltungszaehler fuer Zeitabschnitt angelegt werden erden ?
                                          createState(pathcount + '.SWITCH.'+ statusname + '.WEEK',   0);	
                                       } // endif Zeitabschnitt fuer switch
                      			}      // endif Summierung sol angelegt werden
                      
                                  if (Gruppen[nummer][5] === true) {                                                                      // soll eine DAY kumulations Variable angelegt werden ?
                                      createState(pathcount + '.TIME.' + statusname +'.MONTH',   "000:00:00:00");                                // MONZH fuer TIME anlegen 
                                      createState(pathsys + "Kum." + statusname +'.MONTH');
                           			if (Gruppen[zaehler][7] === true) {	                                                                // soll auch ein Schaltungszaehler fuer Zeitabschnitt angelegt werden erden ?
                                          createState(pathcount + '.SWITCH.'+ statusname + '.MONTH',   0);	
                                       } // endif Zeitabschnitt fuer switch
                      			}      // endif Summierung soll angelegt werden
                      
                                  if (Gruppen[nummer][6] === true) {                                                                      // soll eine DAY kumulations Variable angelegt werden ?
                                      createState(pathcount + '.TIME.' + statusname +'.YEAR',   "000:00:00:00");                                // YEAR  fuer TIME anlegen 
                                      createState(pathsys + "Kum." + statusname +'.YEAR');
                       			if (Gruppen[zaehler][7] === true) {	                                                                // soll auch ein Schaltungszaehler fuer Zeitabschnitt angelegt werden erden ?
                                          createState(pathcount + '.SWITCH.'+ statusname + '.YEAR',   0);	
                                       } // endif Zeitabschnitt fuer switch
                      			}      // endif Summierung soll angelegt werden
                      
                              }   // endif es gibt einen Status eintrag in der Gruppen bzw logname tabelle
                      
                          } // Ende FOR  
                      
                      }  // ende Funktion
                      
                      
                      1 Antwort Letzte Antwort
                      0
                      • Jey CeeJ Online
                        Jey CeeJ Online
                        Jey Cee
                        Developer
                        schrieb am zuletzt editiert von
                        #11
                            for (var zaehler = 0,
                                     zaehler_array = Gruppen.length;
                                     zaehler < zaehler_array;
                                     zaehler++) {
                                    [b] zaehler2[/b] = addZero(zaehler).zero2;
                                     if (Gruppen[zaehler][0] !== '') {                                                                  // Check for  blanks
                                      CreateStateCounter(zaehler, countLocation + '.' +  Gruppen[zaehler][1], sysLocation + '.Grp' + zaehler2 );            // Anlegen aller count variablen
                                     }  //  endif space check (nur wenn keine spaces in der ID enthalten sind wird angelegt)
                            [b]} // Ende FOR    var zaehler2 = 0;[/b]
                        

                        Könnte Zaehler2 das Problem sein?

                        Er scheint nirgendwo als variable deklariert zu sein.

                        Persönlicher Support
                        Spenden -> paypal.me/J3YC33

                        1 Antwort Letzte Antwort
                        0
                        • L Offline
                          L Offline
                          looxer01
                          schrieb am zuletzt editiert von
                          #12

                          stimmt, hab es jetzt eingefügt und das Verhalten hat sich geändert.

                          Es wird ein Teil des Programmes ausgeführt (logausgabe). das war vorher nicht so.

                          Dann scheint es immer noch einen Abstürz zu geben aber nicht im endlos loop.

                          normalerweise würde der interpreter doch einen Fehler melden. Ich verstehe es nicht ganz

                          ! ` > message 2016-02-02 19:10:14 error system.adapter.javascript.0.alive [object Object] Unexpected token u

                          SyntaxError: 2016-02-02 19:10:13 error at TCP.onread (net.js:526:21)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket.Readable.push (_stream_readable.js:127:10)

                          SyntaxError: 2016-02-02 19:10:13 error at readableAddChunk (_stream_readable.js:165:9)

                          SyntaxError: 2016-02-02 19:10:13 error at emitReadable (_stream_readable.js:404:5)

                          SyntaxError: 2016-02-02 19:10:13 error at emitReadable_ (_stream_readable.js:408:10)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket.EventEmitter.emit (events.js:92:17)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket. (_stream_readable.js:746:14)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket.EventEmitter.emit (events.js:95:17)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket.realHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:800:20)

                          SyntaxError: 2016-02-02 19:10:13 error at Receiver.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:95:24)

                          SyntaxError: 2016-02-02 19:10:13 error at Receiver.expectHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:457:31)

                          SyntaxError: 2016-02-02 19:10:13 error at Receiver.opcodes.1.finish (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:482:12)

                          SyntaxError: 2016-02-02 19:10:13 error at Receiver.flush (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:340:3)

                          SyntaxError: 2016-02-02 19:10:13 error at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:466:14

                          SyntaxError: 2016-02-02 19:10:13 error at Receiver.applyExtensions (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:364:5)

                          SyntaxError: 2016-02-02 19:10:13 error at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:477:18

                          SyntaxError: 2016-02-02 19:10:13 error at Receiver.ontext (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:816:10)

                          SyntaxError: 2016-02-02 19:10:13 error at WebSocket.EventEmitter.emit (events.js:98:17)

                          SyntaxError: 2016-02-02 19:10:13 error at WebSocket.onMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:418:14)

                          SyntaxError: 2016-02-02 19:10:13 error at WebSocket.ws.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/websocket.js:132:10)

                          SyntaxError: 2016-02-02 19:10:13 error at WS.Transport.onData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js:135:8)

                          SyntaxError: 2016-02-02 19:10:13 error at WS.Transport.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js:143:8)

                          SyntaxError: 2016-02-02 19:10:13 error at WS.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/index.js:134:20)

                          SyntaxError: 2016-02-02 19:10:13 error at WS. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js:258:10)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js:441:14)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/index.js:134:20)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)

                          SyntaxError: 2016-02-02 19:10:13 error at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:323:16)

                          SyntaxError: 2016-02-02 19:10:13 error at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/index.js:247:12)

                          SyntaxError: 2016-02-02 19:10:13 error at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20)

                          SyntaxError: 2016-02-02 19:10:13 error at Decoder. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)

                          SyntaxError: 2016-02-02 19:10:13 error at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:333:8)

                          SyntaxError: 2016-02-02 19:10:13 error at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20)

                          SyntaxError: 2016-02-02 19:10:13 error at Manager. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:221:12)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:263:10)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20)

                          SyntaxError: 2016-02-02 19:10:13 error at Socket.StatesInMemClient.client.on.connectionTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30)

                          SyntaxError: 2016-02-02 19:10:13 error at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1963:80)

                          SyntaxError: 2016-02-02 19:10:13 error at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:192:17)

                          SyntaxError: 2016-02-02 19:10:13 error at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:452:17)

                          SyntaxError: 2016-02-02 19:10:13 error at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2316:17)

                          SyntaxError: 2016-02-02 19:10:13 error at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:456:48

                          SyntaxError: 2016-02-02 19:10:13 error at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1113:48)

                          SyntaxError: 2016-02-02 19:10:13 error at Object. (script.js.Betriebsstundenzaehler_Extended:199:81)

                          SyntaxError: 2016-02-02 19:10:13 error at GeraetUpdate (script.js.Betriebsstundenzaehler_Extended:311:19)

                          SyntaxError: 2016-02-02 19:10:13 error at sandbox.getObject (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1488:33)

                          SyntaxError: 2016-02-02 19:10:13 error at Object.parse (native)

                          SyntaxError: 2016-02-02 19:10:13 error Unexpected token u

                          message 2016-02-02 19:10:13 error javascript.0.scriptEnabled.Betriebsstundenzaehler_Extended [object Object] Unexpected token u

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: registered 21 subscriptions and 1 schedule

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp20MSec BSZ.System.Grp20Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp19MSec BSZ.System.Grp19Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp18MSec BSZ.System.Grp18Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp17MSec BSZ.System.Grp17Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp16MSec BSZ.System.Grp16Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp15MSec BSZ.System.Grp15Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp14MSec BSZ.System.Grp14Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp13MSec BSZ.System.Grp13Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp12MSec BSZ.System.Grp12Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp11MSec BSZ.System.Grp11Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp10MSec BSZ.System.Grp10Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp09MSec BSZ.System.Grp09Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp08MSec BSZ.System.Grp08Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp07MSec BSZ.System.Grp07Kum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp06MSec BSZ.System.Grp06Kum Oekofen_Laufzeit_Manuell

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp05MSec BSZ.System.Grp05Kum Licht_UN_Hobbyraum

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp04MSec BSZ.System.Grp04Kum Filter_Pool

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp03MSec BSZ.System.Grp03Kum Licht_UN_Kinderbad

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp02MSec BSZ.System.Grp02Kum Licht_WZ_Terrassentuere

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp01MSec BSZ.System.Grp01Kum Licht_WZ_EsstischDecke

                          javascript-0 2016-02-02 19:10:13 info script.js.Betriebsstundenzaehler_Extended: GrpSystem BSZ.System.Grp00MSec BSZ.System.Grp00Kum Licht_WZ_EsstischStehlampe `

                          1 Antwort Letzte Antwort
                          0
                          • L Offline
                            L Offline
                            looxer01
                            schrieb am zuletzt editiert von
                            #13

                            ich habe vom JS online editor einen Hinweis bekommen

                            JavaScript error: Uncaught SyntaxError: Unexpected end of input on line 481

                            Das ist die letzte Zeile mit Leerzeile im Script. Dort habe ich einen Kommentarzeichen (//) hinzugefügt und der Fehler ist weg

                            Da muss irgendwie ein verstecktes Zeichen gewesen sein

                            vG Looxer

                            1 Antwort Letzte Antwort
                            0
                            • L Offline
                              L Offline
                              looxer01
                              schrieb am zuletzt editiert von
                              #14

                              nach ein paar Aenderungen im Programm faengt es wieder an.

                              Ich komme anscheinend da nicht weiter. :cry:

                              1 Antwort Letzte Antwort
                              0
                              • L Offline
                                L Offline
                                looxer01
                                schrieb am zuletzt editiert von
                                #15

                                da fällt mir ein, dass ich node 10.22. installiert habe.

                                JS-Controller warnt ja schon eine weile bei updates, das 10.40 erforderlich ist.

                                könnte es daran liegen ? könnte jemand mal das Programm in einer Testumgebung laufen lassen ?

                                Im Moment glaube ich, dass es mit meiner Umgebung zu tun hat. Sonst hätten auch andere schon das Problem gehabt.

                                vG Looxer

                                1 Antwort Letzte Antwort
                                0
                                • Jey CeeJ Online
                                  Jey CeeJ Online
                                  Jey Cee
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #16

                                  Ich hätte da noch eine idee. Schreibst du dein script im ioBroker Editor oder in einem Programm?

                                  Es gibt so genannte Steuerzeichen in textdateien, die sind unsichtbar. Im texteditor werden die Automatisch erzeugt, weil es sich dabei zum Beispiel um den Zeilenumbruch handelt.

                                  Damit hatte ich schon probleme bei bash scripten. Windows und Linux handhaben die Steuerzeichen unterschiedlich.

                                  Eigentlich sollte das kein Thema bei javascript sein, aber man weiss ja nie.

                                  Gesendet von meinem Jolla mit Tapatalk

                                  Persönlicher Support
                                  Spenden -> paypal.me/J3YC33

                                  1 Antwort Letzte Antwort
                                  0
                                  • L Offline
                                    L Offline
                                    looxer01
                                    schrieb am zuletzt editiert von
                                    #17

                                    ja, daran dachte ich auch schon.

                                    Ich habe heute mit note++ gearbeitet - abwechselnd mit iobroker.

                                    note++ erzeugt solche Probleme üblicherweise nicht.

                                    Zudem ist es ja auch so, dass, wenn ich die subsriptions reduziere, dann ist es ok.

                                    Ich glaube eher, dass es ein Node.JS oder ein Speicherproblem ist - was systemseitiges

                                    Ich versuche es auch mal mit konvertieren.

                                    Danke für den Hinweis. Ist echt doof. Ging viel Zeit heute drauf.

                                    vG Looxer

                                    1 Antwort Letzte Antwort
                                    0
                                    • L Offline
                                      L Offline
                                      looxer01
                                      schrieb am zuletzt editiert von
                                      #18

                                      also ich habe mittels notepad++ tabs entfernt etc. ohne Ergebnis.

                                      Wenn ich die subscriptions z.B. auf 2 reduziere funktioniert alles.

                                      (die subsrictions ändern nur variablen aber der Programmablauf ist ansonsten 100% identisch)

                                      Ist ja ein klarer Hinweis darauf, dass das Programm im Prinzip ok ist aber JS damit nicht klar kommt.

                                      warum auch immer :? (Speicher, Node-Version oder sonst was)

                                      Sieht nicht gut aus für mein Projekt

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

                                        Es sieht danach, als ob du ein Objekt (getObject) fragst, welches nicht existiert.

                                        Abstürzen darf natürlich nicht.

                                        Probier mal 1.1.10

                                        1 Antwort Letzte Antwort
                                        0
                                        • L Offline
                                          L Offline
                                          looxer01
                                          schrieb am zuletzt editiert von
                                          #20

                                          Danke BF,

                                          habe es gerade installiert und habe folgenden Error bekommen:

                                          javascript.0 2016-02-02 23:06:04 error javascript.0 http 200 https://registry.npmjs.org/nan

                                          javascript.0 2016-02-02 23:06:04 error javascript.0 npm

                                          javascript.0 2016-02-02 23:06:04 error javascript.0 http GET https://registry.npmjs.org/nan

                                          javascript.0 2016-02-02 23:06:04 error javascript.0 npm

                                          javascript-0 2016-02-02 23:06:03 error 304 https://registry.npmjs.org/vcgencmd

                                          javascript-0 2016-02-02 23:06:03 error http

                                          javascript-0 2016-02-02 23:06:03 error npm

                                          javascript-0 2016-02-02 23:06:02 error GET https://registry.npmjs.org/vcgencmd

                                          javascript-0 2016-02-02 23:06:02 error http

                                          javascript-0 2016-02-02 23:06:02 error npm

                                          vG Looxer

                                          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

                                          725

                                          Online

                                          32.6k

                                          Benutzer

                                          82.2k

                                          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