Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Ical mehrere Instanzen -> nur bestimmte Termine

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Ical mehrere Instanzen -> nur bestimmte Termine

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Hausbaer last edited by

      Servus,

      ich such jetzt schon ne ganze Weile, finde aber nicht wirklich was brauchbares.

      Ich habe insgesamt 5 Instanzen des Ical-Adapters installiert (0 - 4), in jeder Instanz sind zwischen 1 und 5 Kalender synchronisiert.
      Das funktioniert soweit ganz gut.

      Für die Startseite meiner Visualisierung möchte ich aber nur Termine, die heute (und vielleicht morgen) anliegen, anzeigen lassen.
      Dafür verwende ich auf meiner Starseite das basic-string (unescaped), wo mir aber alle Termine angezeigt werden.
      Wie kann ich das lösen?

      Homoran liv-in-sky 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Hausbaer last edited by

        @Hausbaer sagte in Ical mehrere Instanzen -> nur bestimmte Termine:

        Wie kann ich das lösen?

        in den ical Instanzen nur die nächsten zwei Tage konfigurieren

        H 1 Reply Last reply Reply Quote 0
        • Karel Puhli
          Karel Puhli last edited by

          N'abend!
          Ich klicke mich hier mal mit einer weiteren Frage ein.
          Ich würde gerne nur den nächsten Termin (egal wann er ist) anzeigen lassen. Gibt es dazu eine Lösung?
          Grüße Karel

          Karel Puhli 1 Reply Last reply Reply Quote 0
          • H
            Hausbaer @Homoran last edited by

            @Homoran Dann muss ich alle Instanzen doppelt anlegen, es gibt in der VIS auch einen vollständigen Kalender. Wie gesagt, es soll nur eine Startseite sein

            liv-in-sky 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @Hausbaer last edited by liv-in-sky

              @Hausbaer möchtest du von allen 5 kalendern nur die nächsten termine bis 2 tage in einer übersicht ?

              1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @Hausbaer last edited by

                @Hausbaer

                habe dieses script - es werden alle kalender zusammengefügt und man kann die tage (wieviele angezeigt werden sollen) einstellen

                https://forum.iobroker.net/post/530687

                ist eine html tabelle.

                Image 1.png

                1 Reply Last reply Reply Quote 0
                • H
                  Hausbaer last edited by

                  Ja, das kommt in die Richtung. Muss da noch ein bisschen dran rumspielen, sieht aber gut aus.

                  Danke!

                  1 Reply Last reply Reply Quote 0
                  • Karel Puhli
                    Karel Puhli @Karel Puhli last edited by

                    @Karel-Puhli said in Ical mehrere Instanzen -> nur bestimmte Termine:

                    N'abend!
                    Ich klicke mich hier mal mit einer weiteren Frage ein.
                    Ich würde gerne nur den nächsten Termin (egal wann er ist) anzeigen lassen. Gibt es dazu eine Lösung?
                    Grüße Karel

                    Keiner ne Idee?

                    liv-in-sky 2 Replies Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @Karel Puhli last edited by liv-in-sky

                      @Karel-Puhli

                      mit einem kleinen script kann man das schon auslesen und in einen datenpunkt schreiben

                      dazu muss man aber wissen, was man sehen will. z.b auch ganz tages termine, den momentan laufenden oder schon den nächsten

                      1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @Karel Puhli last edited by

                        @Karel-Puhli

                        ich habe das mit dem nächsten termin als datenpunkt in diesem script integriert - oder , falls du das script nicht willst, kann ich dir gerne den teil als einzel-script- vorbereiten

                        https://forum.iobroker.net/topic/40691/html-tabelle-für-ical-adapter-mehrere-instanzen

                        Karel Puhli 1 Reply Last reply Reply Quote 0
                        • Karel Puhli
                          Karel Puhli @liv-in-sky last edited by

                          @liv-in-sky said in Ical mehrere Instanzen -> nur bestimmte Termine:

                          @Karel-Puhli

                          ich habe das mit dem nächsten termin als datenpunkt in diesem script integriert - oder , falls du das script nicht willst, kann ich dir gerne den teil als einzel-script- vorbereiten

                          Das wäre sehr nett, wenn du das so vorbereiten könntest. 🙂

                          liv-in-sky 1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @Karel Puhli last edited by

                            @karel-puhli

                            ich schau mal morgen - sollte nicht so aufwendig werden

                            Karel Puhli 1 Reply Last reply Reply Quote 0
                            • Karel Puhli
                              Karel Puhli @liv-in-sky last edited by

                              @liv-in-sky Danke Dir schon mal!!! 👍

                              liv-in-sky 1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @Karel Puhli last edited by liv-in-sky

                                @karel-puhli

                                hier ist ein script , das 3 datenpunkte schreibt:

                                nächster termin
                                nächster ganz-tags termin
                                erster, im moment laufender termin

                                du musst :

                                • im script die instanzen angeben, die du checken willst (können ja mehrere sein)
                                • die datenpunkte , die im script angegeben werden mußt du anlegen bzw. lege dir irgendwelche dp vom typ zeichenkette an und gleiche das script daran an
                                • über die ausgabe in den dp können wir ja noch diskutieren - wie die aussehen sollen, wann was drin stehen soll

                                da ich nicht weiß, wie viel du über iobroker und scripte weißt, einfach fragen, wenn etwas unklar ist

                                javascript zum import:

                                
                                
                                let dpTSJson=["ical.0.data.table","ical.1.data.table","ical.2.data.table"];                      // bei nur einer instanz: ["ical.0.data.table"]
                                let dpTerminNext="0_userdata.0.Tabellen.IcalTerminNext";                     // WICHTIG   - datenpunkt anlegen: zeichenkette
                                let dpTerminRunning="0_userdata.0.Tabellen.IcalTerminRunning";               // WICHTIG  - datenpunkt anlegen: zeichenkette 
                                let dpTerminNextGanzerTag="0_userdata.0.Tabellen.IcalTerminNextGanzerTag";   // WICHTIG   - datenpunkt anlegen: zeichenkette
                                
                                
                                
                                let helperTerminNext;
                                let helperTerminRunning;
                                
                                
                                let mySchedule3="  0,30  * * * * ";                       //jede stunde um 0 minuten und 30 minuten
                                
                                
                                let myData=[];
                                let inDpNext=""
                                let inDpRunning=[];
                                let inDpRunning2="";
                                let inDpGanzTag=""
                                
                                
                                 schedule(mySchedule3,  function () {
                                 myData=[];
                                 inDpNext=""
                                 inDpRunning=[];
                                 inDpRunning2="";
                                 inDpGanzTag=""
                                 helperTerminNext="" 
                                 helperTerminRunning=""   
                                
                                for (let i=0;i<dpTSJson.length;i++) {
                                   let myDpInput=(getState(dpTSJson[i]).val);
                                   myData=myData.concat(myDpInput)          //myData=myData.concat(getState(dpTSJson[i]).val)
                                }
                                // log(JSON.stringify(myData))
                                
                                // SORTIEREN
                                myData.sort(function(a, b){
                                                               return new Date(a._date).getTime() - new Date(b._date).getTime();      // return parseInt(new Date(b.date).getTime()) - parseInt(a.date);
                                                              });
                                
                                // NEXT TERMIN
                                   for (let x=0;x<myData.length;x++ ) {
                                           if (!myData[x].date.includes("&#8594;") && myData[x].date.includes(":")&& !myData[x].date.includes("01:00-00:00"))
                                               {   helperTerminNext=myData[x].date
                                                   helperTerminNext=helperTerminNext.replace(/(.+?\..*?\.).* (\d\d\:\d\d)-\d\d\:\d\d/,"$1 $2: ");  
                                                             
                                                if(   formatDate(getDateObject(myData[x]._date), "DD.MM") == formatDate(getDateObject((new Date().getTime())), "DD.MM") ) {helperTerminNext=helperTerminNext.replace(/.+? (\d\d\:\d\d)/,"Heute $1: ")} // : helperTerminNext=helperTerminNext.replace(/(.+?\..*?\.).* (\d\d\:\d\d)-\d\d\:\d\d/,"$1 $2")   
                                             
                                           //  log(  formatDate(getDateObject((new Date().getTime())+(1000 * 60 * 60 * 24 * 1)), "DD.MM") +"  "+formatDate(getDateObject((new Date().getTime())), "DD.MM"))
                                               if (  formatDate(getDateObject((new Date().getTime())+(1000 * 60 * 60 * 24 * 1)), "DD.MM") == formatDate(getDateObject(myData[x]._date), "DD.MM") ) {
                                                     helperTerminNext=helperTerminNext.replace(/.+? (\d\d\:\d\d)/,"Morgen $1: "); }
                                      
                                                   inDpNext=helperTerminNext+" "+myData[x].event;
                                                                     
                                                break;}
                                   }
                                //NEXT GANZER TAG
                                
                                   for (let x=0;x<myData.length;x++ ) {
                                           if ((!myData[x].date.includes("&#8594;") && !myData[x].date.includes(":") &&  formatDate(getDateObject(myData[x]._date), "DD.MM") != formatDate(getDateObject((new Date().getTime())), "DD.MM")) || 
                                                   (!myData[x].date.includes("&#8594;") && myData[x].date.includes("01:00") &&  formatDate(getDateObject(myData[x]._date), "DD.MM") != formatDate(getDateObject((new Date().getTime())), "DD.MM")) )
                                              { helperTerminNext=myData[x].date
                                               // log(helperTerminNext)
                                                let morgen =  formatDate(getDateObject((new Date().getTime())+(1000 * 60 * 60 * 24 * 1)), "DD.MM"); //log(morgen)
                                                
                                                if (  formatDate(getDateObject((new Date().getTime())+(1000 * 60 * 60 * 24 * 1)), "DD.MM") == formatDate(getDateObject(myData[x]._date), "DD.MM") ) {
                                                      helperTerminNext="Morgen: " ;
                                                   //   log("-"+helperTerminNext)
                                                      }
                                               
                                                                  
                                           inDpGanzTag=helperTerminNext+" "+myData[x].event ; 
                                                   
                                           break;}
                                   }
                                // LÄUFT GERADE
                                
                                   for (let x=0;x<myData.length;x++ ) {
                                           if (myData[x].date.includes("&#8594;")   && myData[x].date.includes(":") && !myData[x].date.includes("00:00") )
                                
                                               {   helperTerminNext=myData[x].date.replace("&#8594;","")
                                               helperTerminNext=helperTerminNext.replace(/.+? (.?)/,"bis: $1")
                                               inDpRunning.push(helperTerminNext+" "+myData[x].event)
                                               
                                                } }
                                     inDpRunning.length>0 ? inDpRunning2=inDpRunning[inDpRunning.length-1]  :  inDpRunning2=""
                                   
                                
                                
                                    setState(dpTerminRunning,inDpRunning2)
                                    setState(dpTerminNext,inDpNext)
                                    setState(dpTerminNextGanzerTag,inDpGanzTag)
                                
                                 });
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                 
                                
                                

                                die ausgabe sieht so aus - ist unformatiert - einfach die datenpunkte untereinander ausgegeben

                                Image 7.png

                                Karel Puhli 1 Reply Last reply Reply Quote 2
                                • Karel Puhli
                                  Karel Puhli @liv-in-sky last edited by

                                  @liv-in-sky

                                  Sehr cool, vielen Dank dafür! 👍 👍 👍

                                  Naja, sagen wir es mal so. Ich bin in den ersten Zügen JS. Das Script kann ich gut lesen, bis zur ersten for Schleife, danach wirds schwierig für mich... 😉

                                  Ich habe alles wie von dir beschrieben gemacht. Ich habe 4 Instanzen angegeben (0 bis 3) und die 3 Datenpunkte angelegt. Im Vis wird auch schon etwas angezeigt. Allerdings gibt es in Instanz 3 einen TerminNext der früher ist als ein TerminNext der Instanz 1. Trotzdem zeigt er den Termin der Instanz 1 unter TerminNext an...

                                  Vielen Dank für deine Mühen!!!

                                  Gruß Karel

                                  liv-in-sky 1 Reply Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @Karel Puhli last edited by

                                    @karel-puhli ja - da habe ich etwas vergessen, wird später nachgeliefert

                                    passt das format der ausgabe oder soll ich das anders inden datenpunkt schreiben ?

                                    Karel Puhli 1 Reply Last reply Reply Quote 0
                                    • Karel Puhli
                                      Karel Puhli @liv-in-sky last edited by

                                      @liv-in-sky Also ich denke, das Format passt ertmal so. Ich halte diesbezüglich meine Vis eher schlicht, was Termine angeht.

                                      liv-in-sky 1 Reply Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @Karel Puhli last edited by

                                        @karel-puhli

                                        habe das script weiter oben ausgetauscht - bitte mal testen, ob jetzt die daten richtig angezeigt werden

                                        du musst dann die 4 variablen - oben - wieder anpassen

                                        Karel Puhli 1 Reply Last reply Reply Quote 1
                                        • Karel Puhli
                                          Karel Puhli @liv-in-sky last edited by Karel Puhli

                                          @liv-in-sky das kommt jetzt im log

                                          javascript.0	2021-01-14 09:59:53.624	error	(1734) at process._tickCallback (internal/process/next_tick.js:68:7)
                                          javascript.0	2021-01-14 09:59:53.624	error	(1734) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
                                          javascript.0	2021-01-14 09:59:53.624	error	(1734) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                                          javascript.0	2021-01-14 09:59:53.623	error	(1734) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:608:33)
                                          javascript.0	2021-01-14 09:59:53.623	error	(1734) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:1219:17)
                                          javascript.0	2021-01-14 09:59:53.623	error	(1734) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1681:17)
                                          javascript.0	2021-01-14 09:59:53.622	error	(1734) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1587:37)
                                          javascript.0	2021-01-14 09:59:53.622	error	(1734) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1364:28)
                                          javascript.0	2021-01-14 09:59:53.622	error	(1734) at Object.createScript (vm.js:277:10)
                                          javascript.0	2021-01-14 09:59:53.622	error	(1734) at new Script (vm.js:83:7)
                                          javascript.0	2021-01-14 09:59:53.621	error	(1734) SyntaxError: Unexpected end of input
                                          javascript.0	2021-01-14 09:59:53.621	error	(1734)
                                          javascript.0	2021-01-14 09:59:53.621	error	(1734) log('registered ' + __engine.__subscriptions + ' subscription' + (__engine.__subscriptions === 1 ? '' : 's' ) + ' and ' + __engine.__schedules + ' schedule' + (__engine.__schedules === 1 ? ''
                                          javascript.0	2021-01-14 09:59:53.620	error	at script.js.Test.JavaScript.icalTabellen:71
                                          javascript.0	2021-01-14 09:59:53.620	error	(1734) script.js.Test.JavaScript.icalTabellen compile failed:
                                          

                                          edit: ganz unten die letzte Klammer: "}" wurde erwartet

                                          liv-in-sky 1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky @Karel Puhli last edited by liv-in-sky

                                            @karel-puhli

                                            @karel-puhli

                                            bitte die fehler und solche art von posts in code tag

                                            siehe: https://forum.iobroker.net/post/553912

                                            könnte da was beim kopieren schief gegangen sein

                                            schaut dann so aus:

                                            javascript.0 2021-01-14 09:59:53.624 error (1734) at process._tickCallback (internal/process/next_tick.js:68:7)
                                            javascript.0 2021-01-14 09:59:53.624 error (1734) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
                                            javascript.0 2021-01-14 09:59:53.624 error (1734) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                                            javascript.0 2021-01-14 09:59:53.623 error (1734) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:608:33)
                                            javascript.0 2021-01-14 09:59:53.623 error (1734) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:1219:17)
                                            javascript.0 2021-01-14 09:59:53.623 error (1734) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1681:17)
                                            javascript.0 2021-01-14 09:59:53.622 error (1734) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1587:37)
                                            javascript.0 2021-01-14 09:59:53.622 error (1734) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1364:28)
                                            javascript.0 2021-01-14 09:59:53.622 error (1734) at Object.createScript (vm.js:277:10)
                                            javascript.0 2021-01-14 09:59:53.622 error (1734) at new Script (vm.js:83:7)
                                            javascript.0 2021-01-14 09:59:53.621 error (1734) SyntaxError: Unexpected end of input
                                            javascript.0 2021-01-14 09:59:53.621 error (1734)
                                            javascript.0 2021-01-14 09:59:53.621 error (1734) log('registered ' + __engine.__subscriptions + ' subscription' + (__engine.__subscriptions === 1 ? '' : 's' ) + ' and ' + __engine.__schedules + ' schedule' + (__engine.__schedules === 1 ? ''
                                            javascript.0 2021-01-14 09:59:53.620 error at script.js.Test.JavaScript.icalTabellen:71
                                            javascript.0 2021-01-14 09:59:53.620 error (1734) script.js.Test.JavaScript.icalTabellen compile failed:
                                            
                                            Karel Puhli 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            666
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            how-to vis
                                            6
                                            84
                                            6517
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo