Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Ical Setzen eines Events

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Ical Setzen eines Events

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

      ich habe eine Möglichkeit gepostet, wie man ohne spezifische Suchbegriffe auskommen kann um darzustellen, dass es hier im Forum viele Möglichkeiten gibt.

      Ich habe nicht gesagt, dass das die Ultima Ratio ist. Deine latent sarkastischen Hinweise sind also gerne geschenkt.

      Dein Skript (übrigens meine Basis) , funktioniert anders. Dort ist die Vorgehensweise eben nach dezidierten Suchbegriffen und man erhält die Tage. Geht auch. Dann könnte ich natürlich schauen, ob Tage = 1 ist und dann ne Warnung raussenden. Ist doch kein Thema.

      Aber das hilft dem TE auch alles nicht weiter.

      @ cotolina: was genau tust du mit den Homematic Variablen? Sind die wirklich notwendig oder können wir dein Anliegen direkt via ioBroker erreichen?

      1 Reply Last reply Reply Quote 0
      • C
        cotonila last edited by

        Nein glaub eher nicht. Bzw, würde schon gehen, würde mir aber wieder viel Umbauarbeit bedeuten.

        Mit den HM Variablen füttere ich Mediola Neo, welches ich zur Visualisierung auf verschiedenen. Div. nutze.

        Dort werden mir Statusgrafiken angezeigt, für die verschiedenen Tonnenarten und dann separiert nach heute und morgen.

        Außerdem sende ich mir pushMails wenn die Tonnen "heute" raus müssen. Aber wie gesagt, das geht ja über die iCal Eventeinträge relativ einfach zu realisieren.

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

          fehlersuche:

          ich würde mal die homatic auslassen - also 2 scripts anlegen für 2 verschiedene tonnen und dann die objekte checken (natürlich kann man auch nur ein script verwenden) - läuft das, ist es ein homatic-einbindungsproblem - so wird der fehler eingekreist.

          welches script man anschliessend verwendet ist danach eine individuelle entscheidung

          1 Reply Last reply Reply Quote 0
          • C
            cotonila last edited by

            Nochmal, ich hab für jede Tonne ein Script und die laufen auch zuverlässig. Nur dann nicht, wenn 2 Events in der iCal table stehen…

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

              du meinst aber schon zwei unterschiedliche tonnenarten als event ?

              1 Reply Last reply Reply Quote 0
              • M
                mikiline last edited by

                @cotonila:

                Gut und schön, nur dass ich die VIS nicht nutze. Schreib mir, wie vorhin kurz erwähnt die Werte nur in Homematic Variablen… `

                Dann verwende das Skript oben. Dann werden die Anzahl Tage bis zur nächsten Abholung in einzelne Variablen geschrieben.

                Steht eine 0 dann ist es "Heute", steht eine 1 dann ist "Morgen und bei einer 14 ist es ne Woche..

                Ps: kannst es ja gleichzeitig laufen lassen und prüfen ob alles klappt und später die 4 oder 5 anderen löschen 😉

                1 Reply Last reply Reply Quote 0
                • M
                  mikiline last edited by

                  @tempestas:

                  ich habe eine Möglichkeit gepostet, wie man ohne spezifische Suchbegriffe auskommen kann um darzustellen, dass es hier im Forum viele Möglichkeiten gibt. `

                  Spezifisch ist nur wiederum das man Datum mit Worten ersetzen muss, sonst wird auch kein "Morgen" gefunden.

                  Hab ich 3 Skripte mit blaue, gelb und Restmüll, brauch ich wieder 3 Skripte mit 3 Instanzen ical.

                  Mein Kommentar: Es geht alles in einem, das war alles 😉

                  Und gerade weil es viele Möglichkeiten gibt, sollte man doch eigentlich versuchen, nicht 100 Skripte am laufen zu haben und den Überblick verlieren.

                  Deshalb mein "Wink mit dem Zaunpfahl" was Du als latent sarkastisch bezeichnest 😉

                  Mit Deinem "Basisskript" (vielen Dank dafür), ist also alles möglich…....Nicht nur die Suche nach dem Müll.

                  1 Reply Last reply Reply Quote 0
                  • C
                    cotonila last edited by

                    @liv-in-sky:

                    du meinst aber schon zwei unterschiedliche tonnenarten als event ? `

                    Ja genau. Das kommt zwar nur 1x im Monat vor, ist aber trotzdem nicht schön…

                    1 Reply Last reply Reply Quote 0
                    • T
                      tempestas last edited by

                      @mikiline:

                      @tempestas:

                      ich habe eine Möglichkeit gepostet, wie man ohne spezifische Suchbegriffe auskommen kann um darzustellen, dass es hier im Forum viele Möglichkeiten gibt. `

                      Spezifisch ist nur wiederum das man Datum mit Worten ersetzen muss, sonst wird auch kein "Morgen" gefunden.

                      Hab ich 3 Skripte mit blaue, gelb und Restmüll, brauch ich wieder 3 Skripte mit 3 Instanzen ical.

                      Mein Kommentar: Es geht alles in einem, das war alles 😉

                      Und gerade weil es viele Möglichkeiten gibt, sollte man doch eigentlich versuchen, nicht 100 Skripte am laufen zu haben und den Überblick verlieren.

                      Deshalb mein "Wink mit dem Zaunpfahl" was Du als latent sarkastisch bezeichnest 😉

                      Mit Deinem "Basisskript" (vielen Dank dafür), ist also alles möglich…....Nicht nur die Suche nach dem Müll. `

                      Das hast du falsch verstanden.

                      Das oben alternative Skript kann ALLE Müllsorten aus EINEM Kalender raussuchen, da es eben "Morgen" sucht. Statt dezidiert "Biotonne" sucht es dezidiert "Morgen" und sucht dann die passende Bezeichnung des Mülls raus. Und zwar unabhängig davon, ob morgen eine Müllsorte, zwei oder vier Sorten dran sind.

                      Der Unterschied ist: Suche ich nach der Müllart, oder suche ich nach dem Wann?

                      Wenn aber im iCal andere Termine mit drin sind, z.B. "Oma Trude besuchen", und der Termin auch "Morgen" ansteht, dann sucht das Skript eben raus "Morgen Oma Trude besuchen" und "Morgen Biomüll".

                      Daher eine dezidierte Ical Instanz für den Müll notwendig,aber nicht pro Müllart.

                      Dieser Satz
                      > Spezifisch ist nur wiederum das man Datum mit Worten ersetzen muss, sonst wird auch kein "Morgen" gefunden.
                      lässt sich auch umdrehen; denn viele haben nunmal "Ersetze Datum mit Worten" am laufen. Dann funkioniert dein Skript nicht. Ich verstehe ja, dass du dein Skript toll findest, ist ja auch schön umgesetzt von dir mit den vier Varianten (ich selber nutze das Skript ja auch, mit den Ergänzungen von PicNic, und nicht meine obige Alternative), aber deswegen sind andere Herangehensweisen noch lange nicht inferior.

                      1 Reply Last reply Reply Quote 0
                      • D
                        dalmabrain last edited by

                        @mikiline:

                        @cotonila:

                        Gut und schön, nur dass ich die VIS nicht nutze. Schreib mir, wie vorhin kurz erwähnt die Werte nur in Homematic Variablen… `

                        Dann verwende das Skript oben. Dann werden die Anzahl Tage bis zur nächsten Abholung in einzelne Variablen geschrieben.

                        Steht eine 0 dann ist es "Heute", steht eine 1 dann ist "Morgen und bei einer 14 ist es ne Woche..

                        Ps: kannst es ja gleichzeitig laufen lassen und prüfen ob alles klappt und später die 4 oder 5 anderen löschen 😉 `

                        Hi Mikiline,

                        Ich habe dein Script verwendet und mit meinem Ical-Datenobjekt angepasst (–> ical.0). leider zeigt es bei den erstellen States immer NULL an. Was mache ich falsch?

                        Hier ein Auszug aus dem Log:

                        16:49:48.806	[info]	javascript.0 Start javascript script.js._test.Muelltermine
                        16:49:48.807	[info]	javascript.0 script.js._test.Muelltermine: Heute Gelber Sack Übermorgen GelberSack In 6 Tagen Biotonne
                        16:49:48.807	[info]	javascript.0 script.js._test.Muelltermine: pos ist: -1
                        16:49:48.808	[info]	javascript.0 script.js._test.Muelltermine: Datum ist:
                        16:49:48.808	[info]	javascript.0 script.js._test.Muelltermine: pos1: 0
                        16:49:48.808	[info]	javascript.0 script.js._test.Muelltermine: pos2: 0
                        16:49:48.809	[info]	javascript.0 script.js._test.Muelltermine: , ,
                        16:49:48.809	[info]	javascript.0 script.js._test.Muelltermine: Sat Mar 10 2018 16:49:48 GMT+0100 (CET)
                        16:49:48.809	[info]	javascript.0 script.js._test.Muelltermine: Datum heute ist: 1032018
                        16:49:48.809	[info]	javascript.0 script.js._test.Muelltermine: Tage aktueller Monat: 31
                        16:49:48.810	[info]	javascript.0 script.js._test.Muelltermine: Tage bis zum nächsten Müll: NaN
                        16:49:48.810	[info]	javascript.0 script.js._test.Muelltermine: pos ist: 8
                        16:49:48.810	[info]	javascript.0 script.js._test.Muelltermine: Datum ist: Heute
                        16:49:48.810	[info]	javascript.0 script.js._test.Muelltermine: pos1: 0
                        16:49:48.810	[info]	javascript.0 script.js._test.Muelltermine: pos2: 0
                        16:49:48.811	[info]	javascript.0 script.js._test.Muelltermine: Heute , Heute , Heute
                        16:49:48.811	[info]	javascript.0 script.js._test.Muelltermine: Sat Mar 10 2018 16:49:48 GMT+0100 (CET)
                        16:49:48.811	[info]	javascript.0 script.js._test.Muelltermine: Datum heute ist: 1032018
                        16:49:48.811	[info]	javascript.0 script.js._test.Muelltermine: Tage aktueller Monat: 31
                        16:49:48.811	[info]	javascript.0 script.js._test.Muelltermine: Tage bis zum nächsten Müll: NaN
                        16:49:48.811	[info]	javascript.0 script.js._test.Muelltermine: pos ist: -1
                        16:49:48.812	[info]	javascript.0 script.js._test.Muelltermine: Datum ist:
                        16:49:48.812	[info]	javascript.0 script.js._test.Muelltermine: pos1: 0
                        16:49:48.812	[info]	javascript.0 script.js._test.Muelltermine: pos2: 0
                        16:49:48.812	[info]	javascript.0 script.js._test.Muelltermine: , ,
                        16:49:48.812	[info]	javascript.0 script.js._test.Muelltermine: Sat Mar 10 2018 16:49:48 GMT+0100 (CET)
                        16:49:48.813	[info]	javascript.0 script.js._test.Muelltermine: Datum heute ist: 1032018
                        16:49:48.813	[info]	javascript.0 script.js._test.Muelltermine: Tage aktueller Monat: 31
                        16:49:48.813	[info]	javascript.0 script.js._test.Muelltermine: Tage bis zum nächsten Müll: NaN
                        16:49:48.813	[info]	javascript.0 script.js._test.Muelltermine: pos ist: 57
                        16:49:48.813	[info]	javascript.0 script.js._test.Muelltermine: Datum ist: In 6 Tagen
                        16:49:48.813	[info]	javascript.0 script.js._test.Muelltermine: pos1: 0
                        16:49:48.814	[info]	javascript.0 script.js._test.Muelltermine: pos2: 0
                        16:49:48.814	[info]	javascript.0 script.js._test.Muelltermine: In 6 Tagen , In 6 Tagen , In 6 Tagen
                        16:49:48.814	[info]	javascript.0 script.js._test.Muelltermine: Sat Mar 10 2018 16:49:48 GMT+0100 (CET)
                        16:49:48.814	[info]	javascript.0 script.js._test.Muelltermine: Datum heute ist: 1032018
                        16:49:48.814	[info]	javascript.0 script.js._test.Muelltermine: Tage aktueller Monat: 31
                        16:49:48.814	[info]	javascript.0 script.js._test.Muelltermine: Tage bis zum nächsten Müll: NaN
                        16:49:48.815	[info]	javascript.0 script.js._test.Muelltermine: registered 0 subscriptions and 0 schedules
                        

                        GELÖST

                        Ich hatte noch die relative Datumsangabe eingeschaltet 🙂
                        2783_2018-03-10_16-56-32.gif

                        1 Reply Last reply Reply Quote 0
                        • T
                          tempestas last edited by

                          Edit 2: sehe gerade, er hats schon gelöst. :idea:

                          1 Reply Last reply Reply Quote 0
                          • D
                            Dirk18 last edited by

                            Hallo,

                            habe das Müllscript erfolgreich im Einsatz.

                            Im Log bekomme ich aber immer diese Warnung.

                            javascript.0 2018-03-22 14:44:28.663 warn at Object. (script.js.Kalender.Status_Restmüll:5:5)

                            javascript.0 2018-03-22 14:44:28.659 warn Wrong type of mqtt.0.example1.led1: "boolean". Please fix, while deprecated and will not work in next versions.

                            Was muss geändert werden damit der Fehler nicht mehr auftritt?

                            Danke

                            Dirk

                            1 Reply Last reply Reply Quote 0
                            • T
                              tempestas last edited by

                              Also das hier````
                              mqtt.0.example1.led1

                              1 Reply Last reply Reply Quote 0
                              • D
                                Dirk18 last edited by

                                Da bin ich wohl mit den scripten durcheinander gekommen, das kommt nicht von Müllscript sondern von dem hier, (wurde mit Blockly erzeugt)

                                on({id: "javascript.0.Muellwarnung.Rest Müll"/*Rest Müll wird morgen abgeholt*/, change: "ne"}, function (obj) {
                                  var value = obj.state.val;
                                  var oldValue = obj.oldState.val;
                                  if (getState("javascript.0.Muellwarnung.Rest Müll").val == true) {
                                    setState("mqtt.0.example1.led1"/*example1/led1*/, false);
                                  } else if (getState("javascript.0.Muellwarnung.Rest Müll").val == false) {
                                    setState("mqtt.0.example1.led1"/*example1/led1*/, true);
                                  }
                                });
                                

                                der schaut nach dem Status in Müllwarnung und schaltet dann Led´s ein je nachdem welche Tonne abgeholt wird.

                                Weiß jemand was man dort ändern sollte.

                                1 Reply Last reply Reply Quote 0
                                • wendy2702
                                  wendy2702 last edited by

                                  Hat nichts mit dem eigentlichen Thema zu tun.

                                  Mach besser ein neues auf und schreibe in den Betreff auch "Blockly" mit rein.

                                  Screenshot von dem Blockly auch posten.

                                  1 Reply Last reply Reply Quote 0
                                  • T
                                    tempestas last edited by

                                    Vergleiche mal mit === nicht ==

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      mikiline last edited by

                                      jedenfalls mal KEINE Leerzeichen und KEINE Umlaute (ä,ö,ü)

                                      if (getState("javascript.0.Muellwarnung.Rest Müll")

                                      Die solltest rausnehmen, kann immer Probleme machen (muss nicht aber kann)

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        Dirk18 last edited by

                                        Danke für eure Tipps, werd ich probieren.

                                        1 Reply Last reply Reply Quote 0
                                        • wendy2702
                                          wendy2702 last edited by

                                          Hi,

                                          ich hoffe das passt hier noch hin aber ich nutze z.B, dieses Script zur Ansage Abfuhrtermine Müll.

                                          ! ```
                                          /* Kalenderevent in der Zukunft suchen ! sucht im iCal Adapter nach events, die noch kommen http://forum.iobroker.net/viewtopic.php?f=21&t=3761&sid=4319378b32a0ce096bbbbfc0ebd859ce#p34975 ! 20.09.2016 erstellt von pix 13.11.2016 angepasst für Sven */ ! // Definition var idSayIt = "sayit.0.tts.text"; var lautstaerke = 60; ! // User Anpassungen var suchstring = 'Gelbe Säcke'; // Suchbegriff var stichtag = 1; // 0 heute; 1 morgen; 2 übermorgen; 3 In 3 Tagen var idTabelle = 'ical.2.data.table'; // Instanz eintragen var logging = true; // debug Log ein/ausschalten // Ende User Anpassungen ! createState('Muellwarnung.' + suchstring, false, { type: 'boolean', name: suchstring + ' wird morgen abgeholt', desc: suchstring + ' wird morgen abgeholt (Boolean)', def: false }); var idEventState = 'Muellwarnung.' + suchstring; setState(idEventState, false); ! var tage = ['Heute','Morgen','Übermorgen','In 3 Tagen']; // dafür relative Datumsangabe in iCal-Adapter einschalten und ggf. übersetzen ! function datum(x) { var jetzt = new Date(); if (logging) log('Jetztzeit: ' + jetzt); //var zeit = new Date(jetzt.getTime() + x * 24 * 60 * 60 * 1000); // es werden genau x Tage, als x * 24 Stunden zugezählt --> nicht gut var zeit = new Date (jetzt.getFullYear(), jetzt.getMonth(), jetzt.getDate() + x); // in drei Tagen um Mitternacht if (logging) log('Zielzeit: ' + zeit); var jahr = zeit.getFullYear(); var monat = (zeit.getMonth()+1 < 10) ? '0' + (zeit.getMonth()+1) : zeit.getMonth()+1; var tag = (zeit.getDate() < 10) ? '0' + zeit.getDate() : zeit.getDate(); return (tag + '.' + monat + '.' + jahr); } ! function pruefeKalender() { var kalender = getState(idTabelle).val; var tag = datum(parseInt(stichtag,10)); if (logging) log(tag); try{ var ereignisse = JSON.stringify(kalender, null, 2); // Ausgabe als String if (logging) log(ereignisse); for(var i = 0; i <kalender.length; 19/i++)/{/alle/events/durchgehen/if/(/(kalender[i].date.indexof(tag)/!="-1)" ||/(kalender[i].date.indexof(tage[stichtag])/)/string/datum/oder/relatives/(nicht/nicht)/gefunden,/also/gefunden/var/termin="kalender[i].event;" (termin.indexof(suchstring)/log('treffer:/'/+/tage[stichtag]/suchstring);/hier/wird/später/vielleicht/stichtag_array/verwendet/setstate(ideventstate,/true);/}/else/false);/catch/(fehler_try)/log('fehler/beim/kalenderevents/einlesen/fehler_try,/'error');/schedule("08/*/*",/function(){/bei/mehreren/müllskripts/den/ersten/wert/verändern/(minuten)/event="getState(idEventState).val;" (event)/ansage="suchstring" mülltonne/morgen/abgeholt./bitte/stell/die/tonne/an/straße!';/kann/sayit/push/gesetzt/werden/setstate("sayit.0.tts.text"/*text/to/speech*/,/ansage);/setstate(idsayit,/lautstaerke/";"/});/aktualisierung/on/({id:/idtabelle,/change:/'any'},/function(data)/pruefekalender();/8min/nach/mitternacht/schedule("5/pruefekalender);/skriptstart/<e=""></kalender.length;>
                                          ! Jetzt sieh mein iCal Eintrag für heute so aus:
                                          ! 999_ical_m_ll.jpg
                                          ! Jetzt habe ich heute eine Ansage:
                                          ! ~~[code]~~2018-04-12 19:08:00.235 - info: sayit.0 saying: Gelbe Säcke Mülltonne wird morgen abgeholt. Bitte stell die Tonne an die Straße! [/code]
                                          ! Obwohl morgen nichts abgeholt wird.
                                          ! Was muss/kann ich denn am Script ändern damit das richtig ausgegeben wird?
                                          ! Danke und Gruß
                                          ! Mirko[/i][/i][/i]

                                          1 Reply Last reply Reply Quote 0
                                          • T
                                            tempestas last edited by

                                            Sehe keinen Fehler / Grund.

                                            Du solltest aber um 19:05h ein Log haben, was sagt das denn?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            618
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            32
                                            159
                                            24111
                                            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