Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst]Script funktioniert nicht mehr auf neuem System

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

[gelöst]Script funktioniert nicht mehr auf neuem System

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
5 Beiträge 2 Kommentatoren 410 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T Offline
    T Offline
    Torsten_MG
    schrieb am zuletzt editiert von Torsten_MG
    #1

    Hallo, ich habe jetzt ioBroker komplett neu auf einem neuem System aufgesetzt.
    Nachdem ich alle Adapter neu Installiert habe, bin ich nun dabei die Scripte zu kopieren.

    Altes System JS Script Engine: 4.0.12
    Neues System JS Script Engine 3.6.5

    Hier das Script welches nicht funktioniert:

    var idCal = "ical.0";
    var idCalTrigger   = idCal + ".data.trigger";
    var idCalTable     = idCal + ".data.table";
    var idCalHTML      = idCal + ".data.html";
    var idCalHTMLtable = idCal + "_1.json";
    
    createState('Schicht.Tanja', " ");
    createState('Schicht.Torsten', " ");
    //createState('Test.event1', " ");
    //createState('Test.event2', " ");
    //createState('Test.date1', " ");
    //createState('Test.date2', " ");
    //createState('Test.event', " ");
    //createState('Test.date', " ");
    createState('Test.zeit1', " ");
    createState('Test.zeit2', " ");
    
    function iCalToHTMLTable() {
        var TanjaArbeiten	= "";
    	var TorstenArbeiten ="";
        var calTable = getState(idCalTable);
        var inst     = getObject("system.adapter."+idCal);
        var instopt  = inst.native;
        var calendar = {};
        var event ="";
        var date = "";
    
        for (var i = 0; i < 2; i++) { 
            var entry = calTable.val[i];
            if ( entry._calName != calendar.name ) {
                calendar = {};
                for (var c = 0; c < instopt.calendars.length; c++ ) {
                    if (entry._calName == instopt.calendars[c].name ) {
                        calendar = instopt.calendars[c];
                        break;
                    }
                }
            }    
        event += entry.event + ",";
        date +=  entry.date + ",";
        }  
        var event1 = event.split(",")[0];
        var event2 = event.split(",")[1];
        var date1 = date.split(",")[0];
        var date2 = date.split(",")[1];
        var date1a;
        var date2a;
        var date3;
        var date3a;
        var date3b;
        date1 = date1.split("-")[0];
        date1 = date1.split(" ")[1];
        date1a = date1.split(':');
        date1a = parseInt(date1a[0]) + parseInt(date1a[1]) / 60;
        date2 = date2.split("-")[0];
        date2 = date2.split(" ")[1];
        date2a = date2.split(':');
        date3a = parseInt(date2a[0]);
        date3b = parseInt(date2a[1]) / 60;
        date2a = parseInt(date2a[0]) + parseInt(date2a[1]) / 60;
    
    
    //    console.log(event);
    //    console.log(event1);
    //    console.log(event2);
    //    console.log(date);
    //    console.log(date1);
    //    console.log(date2);
    
        if (event1 == event2) {
            if (event1 == "Tanja Arbeiten") {
                TanjaArbeiten = date1a
            }
            else {
                TorstenArbeiten = date1a
            }
            
        }
        else if (event1 != event2 ) {
            if (event1 == "Tanja Arbeiten") {
                TanjaArbeiten = date1a;
            }
            if (event1 == "Frühschicht" || event1 == "Spätschicht" || event1 == "Nachtschicht") {
                TorstenArbeiten = date1a;
            }
            else  {
                TorstenArbeiten = "";
            }
            if (event2 == "Tanja Arbeiten") {
                TanjaArbeiten = date2a;
            }
            if (event2 == "Frühschicht" || event2 == "Spätschicht" || event2 == "Nachtschicht") {
                TorstenArbeiten = date2a;
            }
            else {
                TorstenArbeiten = "";
            }
        }
        setState('Schicht.Tanja', TanjaArbeiten); 
        setState('Schicht.Torsten', TorstenArbeiten);
    //    setState('Test.event1', event1);
    //    setState('Test.event2', event2);
    //    setState('Test.date1', date1);
    //    setState('Test.date2', date2);
    //    setState('Test.event', event);
    //    setState('Test.date', date);
    setState('Test.zeit1', date3a);
    setState('Test.zeit2', date3b);    
    }
    
    
    on({id: idCalTable, change: "ne"}, function (obj) {
        iCalToHTMLTable();
    });
    
    schedule("5 0 * * *", function () { iCalToHTMLTable(); });
    iCalToHTMLTable();
    

    Hier die Meldungen:

    18:16:48.946	[info]	javascript.0 Stop script script.js.Schicht.Schichturzeit_start
    18:16:49.041	[info]	javascript.0 Start javascript script.js.Schicht.Schichturzeit_start
    18:16:49.058	[error]	javascript.0 script.js.Schicht.Schichturzeit_start: script.js.Schicht.Schichturzeit_start:30
    18:16:49.058	[error]	javascript.0 at iCalToHTMLTable (script.js.Schicht.Schichturzeit_start:30:20)
    18:16:49.058	[error]	javascript.0 at script.js.Schicht.Schichturzeit_start:117:1
    

    Kann mir da jemand weiterhelfen?
    Auf dem alten System läuft das Script und auf dem neuen kommen die Fehlermeldungen

    1 Antwort Letzte Antwort
    0
    • AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von
      #2

      Eine klare Vorstellung hab ich noch nicht. Was mir auffällt ist das du entry nicht auf null abprüfst bevor du entry._calName abfragst.

      A.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      T 1 Antwort Letzte Antwort
      0
      • AsgothianA Asgothian

        Eine klare Vorstellung hab ich noch nicht. Was mir auffällt ist das du entry nicht auf null abprüfst bevor du entry._calName abfragst.

        A.

        T Offline
        T Offline
        Torsten_MG
        schrieb am zuletzt editiert von
        #3

        @Asgothian sagte in Script funktioniert nicht mehr auf neuem System:

        .. Was mir auffällt ist das du entry nicht auf null abprüfst bevor du entry._calName abfragst.

        Da ich in JS noch nicht so Fitt bin, weiss ich leider nicht wie ich das machen müßte

        AsgothianA 1 Antwort Letzte Antwort
        0
        • T Torsten_MG

          @Asgothian sagte in Script funktioniert nicht mehr auf neuem System:

          .. Was mir auffällt ist das du entry nicht auf null abprüfst bevor du entry._calName abfragst.

          Da ich in JS noch nicht so Fitt bin, weiss ich leider nicht wie ich das machen müßte

          AsgothianA Offline
          AsgothianA Offline
          Asgothian
          Developer
          schrieb am zuletzt editiert von
          #4

          @Torsten_MG

          An Stelle von

              for (var i = 0; i < 2; i++) { 
                  var entry = calTable.val[i];
          
          

          dieses probieren

              for (var i = 0; i < 2; i++) { 
                  var entry = calTable.val[i];
                 if (entry === null) {
                   console.debug('no entry for index in table' + JSON.stringify(calTable));
                   continue;
                }
          

          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

          T 1 Antwort Letzte Antwort
          0
          • AsgothianA Asgothian

            @Torsten_MG

            An Stelle von

                for (var i = 0; i < 2; i++) { 
                    var entry = calTable.val[i];
            
            

            dieses probieren

                for (var i = 0; i < 2; i++) { 
                    var entry = calTable.val[i];
                   if (entry === null) {
                     console.debug('no entry for index in table' + JSON.stringify(calTable));
                     continue;
                  }
            
            T Offline
            T Offline
            Torsten_MG
            schrieb am zuletzt editiert von Torsten_MG
            #5

            OK, der Fehler liegt woanders. Habe gerade festgestellt, dass meine Objekte von iCal leer sind. Nur weiss ich nicht warum?

            Dann kann hier geschlossen werden und ich stelle mein Problem in einem anderen Teil.

            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

            645

            Online

            32.6k

            Benutzer

            82.0k

            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