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. Müllkalender

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Müllkalender

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
38 Beiträge 10 Kommentatoren 6.9k Aufrufe 6 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
    tempestas
    schrieb am zuletzt editiert von
    #11

    kannst du mal das echte javascript exportieren? mir fällt es schwer, das Blockly zu lesen (ich weiß nicht, ob die Systematik richtig ist, oder nicht)

    edit: gibts bei blockly noch ne andere such Version?

    <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

    1 Antwort Letzte Antwort
    0
    • rasiegfrR Offline
      rasiegfrR Offline
      rasiegfr
      schrieb am zuletzt editiert von
      #12

      morgen tempestas,

      ich habe jetzt für mich erst mal eine lösung gefunden aber trotzdem möchte ich dieses thema weiter verfolgen und dann auf eine perfekte lösung umstellen.

      ich habe jetzt die ".ics" datei genommen und mit dem notepad++ bearbeitet und jeweils den mülltermin um einen tag nach vorne gestellt. dann kann man ja im adapter "ical" events einstellen und nach dem ensprechenden begriff suchen. für ein jahr sind das 65 termine die geändert werden müssen - 5 minuten arbeit, einmal im jahr, wäre o.k..

      ist jetzt natürlich eine krücke und deswegen möchte ich an einer anderen lösung arbeiten, sprich mit dem feld terminerinnerung da die problematik wieder kommen wird, in einem weiteren projekt.

      hier das blockly als skript:

       <xml xmlns="http://www.w3.org/1999/xhtml"><block type="schedule_create" id="H{M4I-reR%Na^s`=}XOs" x="13" y="13"><field name="NAME">schedule</field>
          <value name="SCHEDULE"><shadow type="field_cron" id="!Yf4j)q3,zK)A2s_Nxvn"><field name="CRON">*/15 * * * * *</field></shadow></value> 
          <statement name="STATEMENT"><block type="comment" id="Cw#qu4x%oAXGm9.aZG7f"><field name="COMMENT">Altpapier</field>
              <next><block type="controls_if" id="7J}VJOGcZK(*0V_e`K@~"><value name="IF0"><block type="logic_compare" id="]R}XwtuB]02GZAMm#4I?"><field name="OP">EQ</field>
                      <value name="A"><block type="get_value" id="3hX5L`S(.gz)`-95Tx)I"><field name="ATTR">val</field>
                          <field name="OID">ical.0.data.html</field></block></value> 
                      <value name="B"><block type="text_indexOf" id="eAmf|gxuo0J^n4aENSnE"><field name="END">FIRST</field>
                          <value name="VALUE"><block type="variables_get" id="(_hfd~9%QFnB`e:}a[c!"><field name="VAR">Text</field></block></value> 
                          <value name="FIND"><shadow type="text" id="{pJ_KpfUm)xu0Jk|].YM"><field name="TEXT">Altpapier</field></shadow></value></block></value></block></value> 
                  <statement name="DO0"><block type="update" id="koy.]L1m:0*[NH@)!7pW"><mutation delay_input="false"></mutation>
                      <field name="OID">Müllabfuhr.0.Müllstatus</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE"><block type="text" id="tRS{)z4eza2~3hZ7oRsO"><field name="TEXT">2</field></block></value></block></statement></block></next></block></statement></block> 
        <block type="text" id="4g8p?{htNmx,*~t@X=v#" x="412" y="1463"><field name="TEXT"><span style="font-weight: bold; color: orange"><span class="icalPreWarn iCal-Müllkalender">Morgen   </span></span><span style="font-weight: normal; color: orange"><span class='icalPreWarn2 iCal-Müllkalender2'> Grünabfall</span></span></field></block></xml> 
      

      lg

      ralph

      1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        Adnim
        schrieb am zuletzt editiert von
        #13

        huhu rasiegfr,

        meine meinung dazu ist (jeder kann ja wie er will machen), soll auch nur eine Hilfe sein…wenn du jetzt irgendwas versuchst du gleich versuchst im richtigen JavaScript klar zu kommen,für blocky ist ja die Basis auch javascript und das Grundsätzliche System ist gleich nur mit drag&drop...

        eine Ical datei dann nochmal von Hand bearbeiten geht ja irgendwie am Thema Automatisieren vorbei!?

        in dem Script musst du 4 felder anpassen und es durchsucht jeden Kalendar, also wenn du etwas andres aus dem kalender suchen willst kopierste das script veränderst das suchwort und fertig!?

        habe die felder nochmal rausgesucht und im script extra kommentiert...

        createState('javascript.0.muell.altpapier', 0); //hier das objekt zum speichern analog dem suchwort eintragen,das gleiche wie beim letzten Eintrag

        var such1= "altpapier"; // HIER DAS SUCHWORT VERGEBEN, Case Sensitiv

        setState('javascript.0.muell.altpapier', diff); //Schreibe Ergebnis in am anfang erstelles Objekt

        var inhalt = getState("ical.0.data.html"/HTML iCal table/); //hier deinen Kalender eintragen

        // TESTSKRIPT FÜR NOXX
        
        // Annahme ist, dass jede Müllart mindestens einmal im Monat abgeholt wird. Nicht getestet und eventuell problematisch ist es, wenn Müll seltener abgeholt wird.
        
        debug = true;
        
        // Anlegen JS State für VIS 
        
        createState('javascript.0.muell.altpapier', 0);   //hier das objekt zum speichern analog dem suchwort eintragen
        
        // Suchvariablen
        
        var such1= "altpapier";   // HIER DAS SUCHWORT VERGEBEN
        
        // Kalender auslesen (HTML Format)
        
            // **************************************************************************************            
            // Termine auswerten aus html. Bereinigung der HTML Tags und Konvertierung in Plain Text
            // **************************************************************************************
        
                var inhalt = getState("ical.0.data.html"/*HTML iCal table*/);           // an deinen eigenen Kalender anpassen
                var inhaltString = inhalt.val.toString();
                var inhaltStringReplace = inhaltString;
                var inhaltStringText;
                var i_search;
        
                // remove all inside SCRIPT and STYLE tags
                inhaltStringReplace=inhaltStringReplace.replace(/<script.*>[\w\W]{1,}(.*?)[\w\W]{1,}<\/script>/gi, "");
                inhaltStringReplace=inhaltStringReplace.replace(/<style.*>[\w\W]{1,}(.*?)[\w\W]{1,}<\/style>/gi, "");
        
                // remove BR tags
                inhaltStringReplace=inhaltStringReplace.replace(/
        /gi, "");
                inhaltStringReplace=inhaltStringReplace.replace(/<br\s\>/gi, "");
                inhaltStringReplace=inhaltStringReplace.replace(/<br\>/gi, "");
        
                // remove all else
                inhaltStringReplace=inhaltStringReplace.replace(/<(?:.|\s)*?>/g, "");
        
                // get rid of html-encoded characters:
                inhaltStringReplace=inhaltStringReplace.replace(/ /gi," ");
                inhaltStringReplace=inhaltStringReplace.replace(/&/gi,"&");
                inhaltStringReplace=inhaltStringReplace.replace(/"/gi,'"');
                inhaltStringReplace=inhaltStringReplace.replace(//gi,'>');    
        
                if(debug) log(inhaltStringReplace);
        
        // n-ten Treffer finden
        
                function nthIndex(str, pat, n){
                var L= str.length, i= -1;
                while(n-- && i++ <l){ i="str.indexOf(pat," i);/if/(i/</0)/break;/}/i_search="i;" funktion/zum/tage/im/monat/zählen/function/daysinmonth(month,/year)/{/return/new/date(year,/month,/0).getdate();/position/bestimmen/var/pos="inhaltStringReplace.indexOf(" such1,/1);/if(debug)/log("pos/ist:/"+pos);/inhaltstringtext="inhaltStringReplace.substring((pos-13),pos-1);" log("datum/"+inhaltstringtext);/nthindex(inhaltstringtext,/".",/t_m="inhaltStringText.slice(0," i_search);/pos1="i_search+1;" log("pos1:/"/+pos1/);/2);/m_m="inhaltStringText.slice(pos1," pos2="i_search+1;" log("pos2:/+pos2/j_m="inhaltStringText.slice(pos2," inhaltstringtext.len/log(t_m/+"/,/+m_m/+j_m);/datum/heute/ermitteln/today="new" date();/log(today);/tag/t="today.getDate();" m="today.getMonth()+1;" jahr/j="today.getFullYear();" "+t+m+j);/berechnung/tagesdifferenzen/diff="0;" dim="DaysInMonth(m," j);/des/aktuellen/monats/log("tage/aktueller/monat:/"+dim);/if(j_m="">j || m_m > m) {            // Prüfung: Jahr_Müll größer als aktuelles Jahr? Relevant bei Jahreswechsel ODEr Monat Müll größer aktueller Monat?
        
                    diff = parseInt(dim) - parseInt(t) + parseInt(t_m);
        
                }
                else diff = parseInt(t_m) - parseInt(t);
        
                  if(debug) log("Tage bis zum nächsten Müll: "+diff);
        
         setState('javascript.0.muell.altpapier', diff);    //Schreibe Ergebnis in am anfang erstelles Objekt</l){></br\></br\s\></style.*></script.*> 
        
        1 Antwort Letzte Antwort
        0
        • rasiegfrR Offline
          rasiegfrR Offline
          rasiegfr
          schrieb am zuletzt editiert von
          #14

          hi adnim,

          werde mich damit mal am wochenede befassen. da brauche ich ruhe und zeit. das meine jetzige lösung eine "krücke" und mich nicht zufrieden stellt habe ich ja geschrieben.

          mich ärgert nur (und das ist nur mein problem) dass ich dein skript nicht verstehe. ich werde mich da mal ranwagen, weil ich möchte eigentlich nicht mit meiner lösung leben, wie du schon geschrieben hast mit der automatisierung ….

          ich danke euch allen für die zeit die ihr euch nehmt !

          lg

          ralph

          1 Antwort Letzte Antwort
          0
          • ChaotC Offline
            ChaotC Offline
            Chaot
            schrieb am zuletzt editiert von
            #15

            Hast du mal im Scripteditor bei deinem Blockly auf den Button "zeige Code" geklickt?

            Dann wird dir dein Blockly in JS angezeigt.

            Vielleicht hilft es dir dann etwas besser JS zu verstehen.

            Du kannst dir ja auch ein leeres Script zum Testen anlegen und dir einen einzelnen Block reinziehen. Dann schaust du dir an wie der als JS Code aussieht.

            ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              tempestas
              schrieb am zuletzt editiert von
              #16

              @rasiegfr:

              hi adnim,

              werde mich damit mal am wochenede befassen. da brauche ich ruhe und zeit. das meine jetzige lösung eine "krücke" und mich nicht zufrieden stellt habe ich ja geschrieben.

              mich ärgert nur (und das ist nur mein problem) dass ich dein skript nicht verstehe. ich werde mich da mal ranwagen, weil ich möchte eigentlich nicht mit meiner lösung leben, wie du schon geschrieben hast mit der automatisierung ….

              ich danke euch allen für die zeit die ihr euch nehmt !

              lg

              ralph `

              Hallo Ralph,

              schau mal, in diesem Posting habe ich das von adnim gepostet Skript damals erstmalig für den User noxx erstellt:

              viewtopic.php?f=21&t=3351&hilit=guten+m … 120#p79458

              Hier:

              viewtopic.php?f=21&t=3351&p=86026&hilit ... dra#p86026

              da habe ich einem anderen User das Skript erklärt und Schritt für Schritt durchgeführt.

              und zu guter letzt hier:

              viewtopic.php?f=21&t=3351&p=86026&hilit ... dra#p91698

              hat dann user PicNic mein Skript genommen und so erweitert, dass man gleich alle Müllarten auf einmal suchen kann. Das wäre aus meinem ersten Posting oben dann das Beispiel 1.

              Wenn du dir das durchliest, wirst du lesen, was das Skript tut und welche Probleme es geben kann. Es ist inhaltlich nicht schwer zu verstehen. Wenn Fragen sind, können wir die gerne hier klären.

              viel Erfolg

              <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

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

                Hallo Ralph,

                ich habe nochmal in meiner Ablage geschaut und dieses Skript gefunden ,dass ich mal geschrieben hatte. Es ist durchgehend kommentiert, vllt. hilft es dir. Das Skript sucht einfach nach "Morgen" und gibt dann alles aus, was morgen ansteht. D.h. du brauchst keinen Suchbegriff festlegen, im Gegenzug würde aber, wenn du einen gemischten Kalender hast (z.B. auch Geburtstage enthalten) alles was morgen ansteht mitgeteilt.

                ! ````
                ! // Skript schaut täglich um 18h, ob im Müllkalender das Wort "Morgen" vorkommt. Wenn ja, wird ein Telegram geschickt mit der betreffenden Müllsorte
                // muss "ersetze Datum mit Worten" aktiviert haben
                //v1.0 tempestas
                ! // Skripteinstellungen
                ! var debug = false;
                ! // Suchfunktion für Termin-Cutoff

                function nthIndex(str, pat, n){
                var L= str.length, i= -1;
                while(n-- && i++ <l){ i="str.indexOf(pat," i);/if/(i/</0)/break;/}/i_search="i;" müll-funktion/function/muellwarnung()/{/var/inhalt="getState("ical.0.data.html").val.toString();" hier/deine/müll-kalender/instanz/eingeben/if(debug)/log(inhalt);/count="inhalt.split("Morgen").length" -1;/wie/häufig/wird/"morgen"/gefunden?/log("count/ist/"+count);/posstart="inhalt.indexOf(" 'morgen',/0);/sucht/das/erste/mal/log("posstart/"+posstart);/if(posstart/!="-1){" falls/gefunden/wurde/gehts/weiter/stringshort="inhalt.substring(posStart," inhalt.length);/abschneiden/von/allem,/was/links/vom/ersten/treffer/steht/log("gekürzt/:"/+stringshort);/nthindex(stringshort,/'</span="">', count); // hier wird nun geschaut, wo es rechts abgeschnitten werden muss
                log('i_search ist '+i_search );
                stringCut = stringShort.slice(0,i_search); // hier wird alles rechts abgeschnitten und so der finale String extrahiert

                if(debug) log("Fast Final: "+stringCut);
                

                ! // aufbereiten für telegram, entfernen von HTML Tags
                ! stringCut = stringCut.replace('
                ',"\n"); // Zeilenumbruch html durch telegram umbruch ersetzen
                ! // remove all inside SCRIPT and STYLE tags
                stringCut=stringCut.replace(/<script.>[\w\W]{1,}(.?)[\w\W]{1,}</script>/gi, "");
                stringCut=stringCut.replace(/<style.>[\w\W]{1,}(.?)[\w\W]{1,}</style>/gi, "");

                    // remove BR tags. Werden durch sinnlose Zeichenkette ersetzt, nach der später gesucht wird
                    stringCut=stringCut.replace(/
                

                /gi, "");
                stringCut=stringCut.replace(/<br\s>/gi, "");
                stringCut=stringCut.replace(/<br>/gi, "");

                    // remove all else
                    stringCut=stringCut.replace(/<(?:.|\s)*?>/g, "");
                
                    // get rid of html-encoded characters:
                    stringCut=stringCut.replace(/ /gi," ");
                    stringCut=stringCut.replace(/&/gi,"&");
                    stringCut=stringCut.replace(/"/gi,'"');
                    stringCut=stringCut.replace(/</gi,'<');
                    stringCut=stringCut.replace(/>/gi,'>');
                

                !
                sendTo('telegram', stringCut);

                }
                }

                ! // Trigger Schedule
                ! schedule('0 18 * * ', function(){ // Täglich um 18h
                ! muellWarnung();
                });
                ! // Bei Start
                ! muellWarnung();</br></br\s></style.
                ></script.*></l){>

                <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                1 Antwort Letzte Antwort
                0
                • rasiegfrR Offline
                  rasiegfrR Offline
                  rasiegfr
                  schrieb am zuletzt editiert von
                  #18

                  hallo zusammen,

                  ihr seit echt göttlich dass ihr mir helfen wollt. ich werde mich am wochenende wie gesagt mal ransetzen, das geht für mich nicht so zwischendurch. möchte es ja halbwegs verstehen was ich da tue.

                  @ tempestas: deinen letztes skript wird für mich nicht in frage kommen. ich habe zwar einen extra kalender dafür, möchte aber unterscheiden können. da ich das ganze im wohnzimmer grafisch darstelle in vis bringt mich dann eine textausgabe leider nicht weiter.

                  ich danke euch allen für eure hilfe und melde mich montag wie es ausgegangen ist :-)

                  lg

                  ralph
                  9191_vis_2018.jpg

                  1 Antwort Letzte Antwort
                  0
                  • haselchenH Offline
                    haselchenH Offline
                    haselchen
                    Most Active
                    schrieb am zuletzt editiert von
                    #19

                    Wenn ihr euren Kalender auf dem Google Home ansagen lasst, welche Stimme nehmt ihr?

                    Die ganzen sayit Stimmen sind so blechern und hören sich derbe nach Computer an.

                    Gibt es ne Möglichkeit wie bei Alexa die Original Google Stimme sprechen zu lassen?

                    Die Google Home Stimme aus dem sayit Adapter klingt bei weitem nicht wie das Original.

                    Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                    1 Antwort Letzte Antwort
                    0
                    • haselchenH Offline
                      haselchenH Offline
                      haselchen
                      Most Active
                      schrieb am zuletzt editiert von
                      #20

                      Hab es anders gelöst. Mit Blockly und der Hilfe von der soundoftext.com Seite.

                      Unter Soundoftext.com kann man beliebige Wörter, Sätze eingeben und in Deutsch ausgeben lassen.

                      Das File kann man sofort als mp3 speichern.

                      Die Stimme ist jetzt nicht mega menschlich, aber irgendwie klarer und deutlicher als die im Adapter gespeicherten.

                      Das mp3 File dann in den sayit.0 Adapter und dann kann man es im Blockly zu allem verwenden.

                      Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                      1 Antwort Letzte Antwort
                      0
                      • rasiegfrR Offline
                        rasiegfrR Offline
                        rasiegfr
                        schrieb am zuletzt editiert von
                        #21

                        hallo zusammen,

                        bin leider am wochenende nicht dazu gekommen eure vorschläge zu testen. der grund: hier läuft gar nichts mehr. habe den java adapter auf 4.x upgedate und seither geht leider nix mehr.

                        wollte nur kurz eine info geben damit ihr euch nicht verarscht vorkommt ….

                        lg

                        ralph

                        viewtopic.php?p=199401#p199401

                        1 Antwort Letzte Antwort
                        0
                        • rasiegfrR Offline
                          rasiegfrR Offline
                          rasiegfr
                          schrieb am zuletzt editiert von
                          #22

                          hi zusammen,

                          mein iobroker läuft wieder :-) . gestern gab es ein update für den icalender adapter welches glaube ich für viele eine problemlösung sein wird. wenn ich das richtig verstanden habe werden jetzt die kalender ereignisse nach 0,1,2,3,4 und 5 tagen unterteilt.

                          bin gerade noch am testen aber der gewünschte "müllkalender" dürfte dann so kein problem mehr sein (war es ja sowieso nicht für euch, die sich mit java auskennen).

                          lg

                          ralph

                          NACHTRAG: unter objekte hat man jetzt die anzahl datenpunkte je nach dem wie viele tage der kalender abgeholt wird.
                          9191_kalender_neu.jpg

                          1 Antwort Letzte Antwort
                          0
                          • E Offline
                            E Offline
                            Elektroman
                            schrieb am zuletzt editiert von
                            #23

                            Hi,

                            für mich war das jetzt der Durchbruch [emoji4]

                            Sofort erst mal Alexa beigebracht mich bei der Heimkehr daran zu erinnern [emoji23]

                            1 Antwort Letzte Antwort
                            0
                            • T Offline
                              T Offline
                              TonyDom
                              schrieb am zuletzt editiert von
                              #24

                              Welche Version ist das Update? Ich bekam nichts!

                              1 Antwort Letzte Antwort
                              0
                              • E Offline
                                E Offline
                                Elektroman
                                schrieb am zuletzt editiert von
                                #25

                                1.7

                                1 Antwort Letzte Antwort
                                0
                                • T Offline
                                  T Offline
                                  TonyDom
                                  schrieb am zuletzt editiert von
                                  #26

                                  habe eben die 1.7 installiert.

                                  Genial, einfach nur genial!

                                  1 Antwort Letzte Antwort
                                  0
                                  • NegaleinN Offline
                                    NegaleinN Offline
                                    Negalein
                                    Global Moderator
                                    schrieb am zuletzt editiert von
                                    #27

                                    @Adnim:

                                    habe die felder nochmal rausgesucht und im script extra kommentiert…

                                    createState('javascript.0.muell.altpapier', 0); //hier das objekt zum speichern analog dem suchwort eintragen,das gleiche wie beim letzten Eintrag

                                    var such1= "altpapier"; // HIER DAS SUCHWORT VERGEBEN, Case Sensitiv

                                    setState('javascript.0.muell.altpapier', diff); //Schreibe Ergebnis in am anfang erstelles Objekt

                                    var inhalt = getState("ical.0.data.html"/HTML iCal table/); //hier deinen Kalender eintragen `

                                    Hallo Adnim!

                                    Danke für dein/euer Script.

                                    Hab es sofort an mich angepasst, bekomme es leider nicht zum laufen.

                                    // TESTSKRIPT FÜR NOXX
                                    
                                    // Annahme ist, dass jede Müllart mindestens einmal im Monat abgeholt wird. Nicht getestet und eventuell problematisch ist es, wenn Müll seltener abgeholt wird.
                                    
                                    debug = true;
                                    
                                    // Anlegen JS State für VIS 
                                    
                                    createState('javascript.0.muell.papier', 0);   //hier das objekt zum speichern analog dem suchwort eintragen
                                    
                                    // Suchvariablen
                                    
                                    var such1= "Papier";   // HIER DAS SUCHWORT VERGEBEN
                                    
                                    // Kalender auslesen (HTML Format)
                                    
                                        // **************************************************************************************            
                                        // Termine auswerten aus html. Bereinigung der HTML Tags und Konvertierung in Plain Text
                                        // **************************************************************************************
                                    
                                            var inhalt = getState("ical.1.data.html"/*HTML iCal table*/);           // an deinen eigenen Kalender anpassen
                                            var inhaltString = inhalt.val.toString();
                                            var inhaltStringReplace = inhaltString;
                                            var inhaltStringText;
                                            var i_search;
                                    
                                            // remove all inside SCRIPT and STYLE tags
                                            inhaltStringReplace=inhaltStringReplace.replace(/<script.*>[\w\W]{1,}(.*?)[\w\W]{1,}<\/script>/gi, "");
                                            inhaltStringReplace=inhaltStringReplace.replace(/<style.*>[\w\W]{1,}(.*?)[\w\W]{1,}<\/style>/gi, "");
                                    
                                            // remove BR tags
                                            inhaltStringReplace=inhaltStringReplace.replace(/
                                    /gi, "");
                                            inhaltStringReplace=inhaltStringReplace.replace(/<br\s\>/gi, "");
                                            inhaltStringReplace=inhaltStringReplace.replace(/<br\>/gi, "");
                                    
                                            // remove all else
                                            inhaltStringReplace=inhaltStringReplace.replace(/<(?:.|\s)*?>/g, "");
                                    
                                            // get rid of html-encoded characters:
                                            inhaltStringReplace=inhaltStringReplace.replace(/ /gi," ");
                                            inhaltStringReplace=inhaltStringReplace.replace(/&/gi,"&");
                                            inhaltStringReplace=inhaltStringReplace.replace(/"/gi,'"');
                                            inhaltStringReplace=inhaltStringReplace.replace(//gi,'>');    
                                    
                                            if(debug) log(inhaltStringReplace);
                                    
                                    // n-ten Treffer finden
                                    
                                            function nthIndex(str, pat, n){
                                            var L= str.length, i= -1;
                                            while(n-- && i++ <l){ i="str.indexOf(pat," i);/if/(i/</0)/break;/}/i_search="i;" funktion/zum/tage/im/monat/zählen/function/daysinmonth(month,/year)/{/return/new/date(year,/month,/0).getdate();/position/bestimmen/var/pos="inhaltStringReplace.indexOf(" such1,/1);/if(debug)/log("pos/ist:/"+pos);/inhaltstringtext="inhaltStringReplace.substring((pos-13),pos-1);" log("datum/"+inhaltstringtext);/nthindex(inhaltstringtext,/".",/t_m="inhaltStringText.slice(0," i_search);/pos1="i_search+1;" log("pos1:/"/+pos1/);/2);/m_m="inhaltStringText.slice(pos1," pos2="i_search+1;" log("pos2:/+pos2/j_m="inhaltStringText.slice(pos2," inhaltstringtext.len/log(t_m/+"/,/+m_m/+j_m);/datum/heute/ermitteln/today="new" date();/log(today);/tag/t="today.getDate();" m="today.getMonth()+1;" jahr/j="today.getFullYear();" "+t+m+j);/berechnung/tagesdifferenzen/diff="0;" dim="DaysInMonth(m," j);/des/aktuellen/monats/log("tage/aktueller/monat:/"+dim);/if(j_m="">j || m_m > m) {            // Prüfung: Jahr_Müll größer als aktuelles Jahr? Relevant bei Jahreswechsel ODEr Monat Müll größer aktueller Monat?
                                    
                                                diff = parseInt(dim) - parseInt(t) + parseInt(t_m);
                                    
                                            }
                                            else diff = parseInt(t_m) - parseInt(t);
                                    
                                              if(debug) log("Tage bis zum nächsten Müll: "+diff);
                                    
                                     setState('javascript.0.muell.papier', diff);    //Schreibe Ergebnis in am anfang erstelles Objekt</l){></br\></br\s\></style.*></script.*> 
                                    

                                    Beim start des Scripts bekomm ich immer folgende Fehlermeldung:

                                    19:01:39.824	info	javascript.0 Stop script script.js.common.Müllkalender
                                    19:01:39.847	info	javascript.0 Start javascript script.js.common.Müllkalender
                                    19:01:39.848	error	javascript.0 script.js.common.Müllkalender: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.
                                    19:01:39.848	error	javascript.0 script.js.common.Müllkalender: Please disable that setting or use "getState" with a callback, e.g.: getState("ical.1.data.html", (err, state) => { ... });
                                    19:01:39.848	error	javascript.0 script.js.common.Müllkalender: script.js.common.Müllka
                                    

                                    Ical.1 ist so konfiguriert:
                                    9441_instances_-iobroker__5.png 9441_instances_-iobroker__7.png 9441_instances_-iobroker__8.png

                                    In Objekte - ical.1.events.1 wird Papier als true angezeigt!
                                    9441_objects_-iobroker__7.png

                                    In Objekte - javascript.0.muell wird papier (javascript.0.muell.papier) mit Wert 0 angezeigt!
                                    9441_objects_-iobroker__8.png

                                    Morgen wäre im Kalender der Termin für Papier! Wird mir aber nicht angezeigt!
                                    9441_google_kalender_-_januar_2019.png

                                    Wäre toll, wenn ich es mit eurer Hilfe schaffen könnte!

                                    Danke!!

                                    ° Node.js: 20.17.0 NPM: 10.8.2
                                    ° Proxmox, Ubuntu 22.04.3 LTS
                                    ° Fixer ---> iob fix

                                    1 Antwort Letzte Antwort
                                    0
                                    • T Offline
                                      T Offline
                                      tempestas
                                      schrieb am zuletzt editiert von
                                      #28

                                      Schau Mal hier

                                      Das letzte Skript ist am einfachsten.

                                      viewtopic.php?p=207653#p207653

                                      <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                                      1 Antwort Letzte Antwort
                                      0
                                      • NegaleinN Offline
                                        NegaleinN Offline
                                        Negalein
                                        Global Moderator
                                        schrieb am zuletzt editiert von
                                        #29

                                        @tempestas:

                                        Schau Mal hier

                                        Das letzte Skript ist am einfachsten. `

                                        Danke, damit hats sofort funktioniert!

                                        ° Node.js: 20.17.0 NPM: 10.8.2
                                        ° Proxmox, Ubuntu 22.04.3 LTS
                                        ° Fixer ---> iob fix

                                        1 Antwort Letzte Antwort
                                        0
                                        • NegaleinN Offline
                                          NegaleinN Offline
                                          Negalein
                                          Global Moderator
                                          schrieb am zuletzt editiert von
                                          #30

                                          @tempestas:

                                          Schau Mal hier

                                          Das letzte Skript ist am einfachsten. `

                                          Eine Frage/Bitte hätt ich noch!

                                          Das Script verursacht ein paar Fehler.

                                          JS ist komplettes Neuland für mich!

                                          Könntest du dir das anschaun?

                                          javascript.0	2019-01-19 17:08:26.907	error	Error in callback: TypeError: Cannot read property 'val' of undefined
                                          javascript.0	2019-01-19 17:08:26.907	error	script.js.common.Muell: Please disable that setting or use "getState" with a callback, e.g.: getState("ical.2.events.0.today.Restabfall", (err, state) => { ... });
                                          javascript.0	2019-01-19 17:08:26.906	error	script.js.common.Muell: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.
                                          

                                          Danke

                                          ° Node.js: 20.17.0 NPM: 10.8.2
                                          ° Proxmox, Ubuntu 22.04.3 LTS
                                          ° Fixer ---> iob fix

                                          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

                                          786

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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