Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    8
    1
    500

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    14
    1
    2.7k

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    2.9k

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
5 Beiträge 2 Kommentatoren 463 Aufrufe 2 Beobachtet
  • Ä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

            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

            Registrieren Anmelden
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            609

            Online

            33.0k

            Benutzer

            83.3k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2026
            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