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. Scriptanfänger braucht nochmal Hilfe

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Scriptanfänger braucht nochmal Hilfe

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
18 Beiträge 2 Kommentatoren 774 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.
  • T Offline
    T Offline
    Torsten_MG
    schrieb am zuletzt editiert von
    #1

    Hallo, ich versuche mich gerade mal wieder daran mir ein Script zu basteln, komme aber im moment nicht weiter.

    Ich suche mir immer alles aus vorhandenen Scripten raus, daher bitte nicht zu sehr schimpfen wenn da unnötige Sachen mit drin sind ;)

    Mein Plan ist mir die nächsten 2 Termine als json anzeigen zu lassen, nur mit Event und Startzeit.

    Leider schaffe ich es nicht und brauche eure Hilfe!

    Es wird mir im Date das Datum und die Sart- und Endzeit angezeigt, da möchte ich nur die Startzeit stehen haben.

    Hier mein Script

    `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(idCalHTMLtable, " ");
    
    function iCalToHTMLTable() {
        var json     = "[";
        var calTable = getState(idCalTable);
        var inst     = getObject("system.adapter."+idCal);
        var instopt  = inst.native;
        var calendar = {};
    
        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;
                    }
                }
            }    
    		json +="{\"Event\":\""+entry.event+"\","
    		json +="\"Date\":\""+entry.date+"\"},"
    
        }  
    	json=json.substr( 0, json.length-1 ) + ']';
        setState(idCalHTMLtable, json);    
    //dump( html );
    }
    
    on({id: idCalTable, change: "ne"}, function (obj) {
        iCalToHTMLTable();
    });
    
    schedule("5,35 * * * *", function () { iCalToHTMLTable(); });
    iCalToHTMLTable();`
    
    Das Ergebnis sieht so aus:
    
    `~~[code]~~[{"Event":"Spätschicht","Date":"28.01.2019 13:30-22:00"},{"Event":"Tanja Arbeiten","Date":"28.01.2019 14:00-20:00"}][/code]`[/i]
    
    1 Antwort Letzte Antwort
    0
    • D Offline
      D Offline
      danw
      schrieb am zuletzt editiert von
      #2

      Aus

      json +="\"Date\":\""+entry.date+"\"},"
      
      
      json +="\"Date\":\""+entry.date.split("-")[0]+"\"},"
      
      

      machen

      It's not a Bug, it's a Feature

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        Torsten_MG
        schrieb am zuletzt editiert von
        #3

        @danw:

        Aus

        json +="\"Date\":\""+entry.date+"\"},"
        
        
        json +="\"Date\":\""+entry.date.split("-")[0]+"\"},"
        
        

        machen `

        Danke, damit bin ich 1 Schritt weiter, die Endzeit ist weg, aber wie bekomme ich das Datum vorne noch weg?

        [{"Event":"Spätschicht","Date":"28.01.2019 13:30"},{"Event":"Tanja Arbeiten","Date":"28.01.2019 14:00"}]
        
        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          danw
          schrieb am zuletzt editiert von
          #4

          @Torsten_MG:

          @danw:

          Aus

          json +="\"Date\":\""+entry.date+"\"},"
          
          
          json +="\"Date\":\""+entry.date.split("-")[0]+"\"},"
          
          

          machen `

          Danke, damit bin ich 1 Schritt weiter, die Endzeit ist weg, aber wie bekomme ich das Datum vorne noch weg?

          [{"Event":"Spätschicht","Date":"28.01.2019 13:30"},{"Event":"Tanja Arbeiten","Date":"28.01.2019 14:00"}]
          ```` `  
          

          Bitte doch ein wenig mitdenken :) Ist nun wirklich nicht mehr schwer.

          var date = entry.date.split("-")[0];
          date = date.split(" ")[1];
          json +="\"Date\":\""+date+"\"},"
          
          

          It's not a Bug, it's a Feature

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            Torsten_MG
            schrieb am zuletzt editiert von
            #5

            Vielen Dank!!! Hatte irgendwie ein Brett vorm Kopf!

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              Torsten_MG
              schrieb am zuletzt editiert von
              #6

              Habe nochmal alles umgeschmissen und möchte die Daten jetzt als einzelne Datenpunkte und nicht mehr in einer json ablegen. Aber aus einem Grund den ich nicht nachvollziehen kann, klappt irgendwas beim splitten nicht richtig

              Hier der ausschnitt aus dem Script

              ...
                  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]
              ...
                  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); 
              ...
              

              Die setState sind nur zur Fehleranalyse!

              Mein Problem ist folgendes:
              9214_schicht.jpg

              Warum wird bei event2 Spätschicht angezeigt und nicht Tanja Arbeiten? Bei date klappt es ja!

              1 Antwort Letzte Antwort
              0
              • D Offline
                D Offline
                danw
                schrieb am zuletzt editiert von
                #7

                Sieht auch erstmal korrekt aus. Außer, dass eine Menge ";" am Ende fehlen.

                Mal folgendes probieren, dann schauen wir erstmal, was drinsteht.

                Da du den Code gekürzt hast weiss ich ja nicht, ob noch was anderes dazwischen steht, was dann zu Problemen führt.

                    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];
                
                    console.log(event);
                    console.log(event1);
                    console.log(event2);
                    console.log(date);
                    console.log(date1);
                    console.log(date2);
                
                

                It's not a Bug, it's a Feature

                1 Antwort Letzte Antwort
                0
                • T Offline
                  T Offline
                  Torsten_MG
                  schrieb am zuletzt editiert von
                  #8

                  Im log sieht es gut aus
                  9214_schicht1.jpg

                  Aber in den Objekten unverändert

                  1 Antwort Letzte Antwort
                  0
                  • D Offline
                    D Offline
                    danw
                    schrieb am zuletzt editiert von
                    #9

                    Dann ist irgendwas dazwischen, was es noch ändert.

                    It's not a Bug, it's a Feature

                    1 Antwort Letzte Antwort
                    0
                    • T Offline
                      T Offline
                      Torsten_MG
                      schrieb am zuletzt editiert von
                      #10

                      Hier mal das gesamte Script mit dem ganzen "Müll", vielleicht siehst du da was ich übersehe

                      `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', " ");
                      
                      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];
                      
                          console.log(event);
                          console.log(event1);
                          console.log(event2);
                          console.log(date);
                          console.log(date1);
                          console.log(date2);
                      
                          if (event1 = "Tanja Arbeiten") {
                              TanjaArbeiten = date1
                          }
                          if (event1 = "Spätschicht") {
                              TorstenArbeiten = date1
                          }
                          if (event2 = "Tanja Arbeiten") {
                              TanjaArbeiten = date2
                          }
                          if (event2 = "Spätschicht") {
                              TorstenArbeiten = date2
                          }
                          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);    
                      }
                      
                      on({id: idCalTable, change: "ne"}, function (obj) {
                          iCalToHTMLTable();
                      });
                      
                      schedule("5,35 * * * *", function () { iCalToHTMLTable(); });
                      iCalToHTMLTable();`[/i]
                      
                      1 Antwort Letzte Antwort
                      0
                      • D Offline
                        D Offline
                        danw
                        schrieb am zuletzt editiert von
                        #11

                        Sicher, dass du in das richtige Objekt guckst?

                        Schau mal unter javascript.0, steht da nochmal Test.event2?

                        //edit: Es fehlen immernoch ein Haufen ";" am Ende. Jede Zeile muss mit einem ";" enden.

                        It's not a Bug, it's a Feature

                        1 Antwort Letzte Antwort
                        0
                        • T Offline
                          T Offline
                          Torsten_MG
                          schrieb am zuletzt editiert von
                          #12

                          sieht so aus
                          9214_schicht2.jpg

                          1 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            danw
                            schrieb am zuletzt editiert von
                            #13

                            Dann schau doch mal da rein..

                            It's not a Bug, it's a Feature

                            1 Antwort Letzte Antwort
                            0
                            • T Offline
                              T Offline
                              Torsten_MG
                              schrieb am zuletzt editiert von
                              #14

                              Das ist ja der Ordner, wo ich reinschaue, siehe Post => viewtopic.php?f=21&t=21447&p=225846#p225831

                              1 Antwort Letzte Antwort
                              0
                              • T Offline
                                T Offline
                                Torsten_MG
                                schrieb am zuletzt editiert von
                                #15

                                @Torsten_MG:

                                Das ist ja der Ordner, wo ich reinschaue, siehe Post => viewtopic.php?f=21&t=21447&p=225846#p225831 `

                                EDIT: habe jetzt in allen Zeilen, ausser wo ein { ist, ein ; gesetzt. Bleibt aber bei dem Problem :(

                                1 Antwort Letzte Antwort
                                0
                                • D Offline
                                  D Offline
                                  danw
                                  schrieb am zuletzt editiert von
                                  #16

                                  Habs.

                                  Mach mal aus dem "=" ein "=="..

                                      if (event1 == "Tanja Arbeiten") {
                                          TanjaArbeiten = date1
                                      }
                                      if (event1 == "Spätschicht") {
                                          TorstenArbeiten = date1
                                      }
                                      if (event2 == "Tanja Arbeiten") {
                                          TanjaArbeiten = date2
                                      }
                                      if (event2 == "Spätschicht") {
                                          TorstenArbeiten = date2
                                      }
                                  
                                  

                                  It's not a Bug, it's a Feature

                                  1 Antwort Letzte Antwort
                                  0
                                  • T Offline
                                    T Offline
                                    Torsten_MG
                                    schrieb am zuletzt editiert von
                                    #17

                                    @danw:

                                    Habs.

                                    Mach mal aus dem "=" ein "==".. `

                                    Ja, hatte gerade auch herausgefunden, dass es an diesen Zeilen liegt, aber nicht warum! Danke für die Hilfe!!

                                    1 Antwort Letzte Antwort
                                    0
                                    • D Offline
                                      D Offline
                                      danw
                                      schrieb am zuletzt editiert von
                                      #18

                                      Ein "=" ist eine Zuweisung. z.B. var Variable = Wert;

                                      Ein "==" ist ein Vergleichsoperator.

                                      It's not a Bug, it's a Feature

                                      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

                                      800

                                      Online

                                      32.6k

                                      Benutzer

                                      82.1k

                                      Themen

                                      1.3m

                                      Beiträge
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Anmelden

                                      • Du hast noch kein Konto? Registrieren

                                      • Anmelden oder registrieren, um zu suchen
                                      • Erster Beitrag
                                        Letzter Beitrag
                                      0
                                      • Home
                                      • Aktuell
                                      • Tags
                                      • Ungelesen 0
                                      • Kategorien
                                      • Unreplied
                                      • Beliebt
                                      • GitHub
                                      • Docu
                                      • Hilfe