[gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Fragen zum Skripten mit ioBroker.javascript
tempestas
guru
Beiträge: 1058
Registriert: 17.03.2017, 19:34
Wohnort: ~100km vom Holy Ground

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von tempestas » 11.06.2018, 20:45

schalte mal bitte im Skript debug auf true und dann poste die logs
ioBroker | 19 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Sonos | Instar Cam | Fire HDX 7 | 3x Echo dot | Neato Botvac D5

GeorgS
starter
Beiträge: 77
Registriert: 10.05.2018, 19:16

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von GeorgS » 12.06.2018, 12:43

tempestas hat geschrieben:
11.06.2018, 20:45
schalte mal bitte im Skript debug auf true und dann poste die logs
Spoiler: Show hidden text
13:42:21.562 [info] javascript.0 Start javascript script.js.common.Allgemein.Muellabfuhr
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Übermorgen 04:00-05:00 Leerung Hausmuelltonne In einer Woche 04:00-05:00 Leerung Papiertonne 28.06.2018 04:00-05:00 Leerung Hausmuelltonne 29.06.2018 04:00-05:00 Leerung Gelbe Tonne
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Suchergebnis ist: -1
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Müll heute?: undefined
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: pos ist: 31
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Datum ist: 5:00 Leerung
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: pos1: 0
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: pos2: 0
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Mülldate ist: undefined, Invalid Date
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Mülltag ist: 5:00 Leerun , 5:00 Leerun , 5:00 Leerung
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Tue Jun 12 2018 11:42:21 GMT+0000 (UTC)
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Datum heute ist: Dienstag, 1262018
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Tage aktueller Monat: 30
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Tage bis zum nächsten Müll: -7
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Suchergebnis ist: -1
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Müll heute?: undefined
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: pos ist: 81
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Datum ist: 5:00 Leerung
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: pos1: 0
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: pos2: 0
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Mülldate ist: undefined, Invalid Date
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Mülltag ist: 5:00 Leerun , 5:00 Leerun , 5:00 Leerung
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Tue Jun 12 2018 11:42:21 GMT+0000 (UTC)
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Datum heute ist: Dienstag, 1262018
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Tage aktueller Monat: 30
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Tage bis zum nächsten Müll: -7
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Suchergebnis ist: -1
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Müll heute?: undefined
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: pos ist: 170
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Datum ist: 5:00 Leerung
13:42:21.562 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: pos1: 0
13:42:21.563 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: pos2: 0
13:42:21.563 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Mülldate ist: undefined, Invalid Date
13:42:21.563 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Mülltag ist: 5:00 Leerun , 5:00 Leerun , 5:00 Leerung
13:42:21.563 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Tue Jun 12 2018 11:42:21 GMT+0000 (UTC)
13:42:21.563 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Datum heute ist: Dienstag, 1262018
13:42:21.563 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Tage aktueller Monat: 30
13:42:21.563 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Tage bis zum nächsten Müll: -7
13:42:21.563 [warn] javascript.0 script.js.common.Allgemein.Muellabfuhr: setForeignState(id=javascript.0.muell.json, state="[{\"Tag\":\"undefined\",\"Datum\":\"5:00 Leerun.5:00 Leerun.5:00 Leerung\",\"Ereignis\":\" Hausmuelltonne\",\"Tage\":\"-7\"},{\"Tag\":\"undefined\",\"Datum\":\"5:00 Leerun.5:00 Leerun.5:00 Leerung\",\"Ereignis\":\" Papiertonne\",\"Tage\":\"-7\"},{\"Tag\":\"undefined\",\"Datum\":\"5:00 Leerun.5:00 Leerun.5:00 Leerung\",\"Ereignis\":\" Gelbe Tonne\",\"Tage\":\"-7\"}]") - was not executed, while debug mode is active
13:42:21.563 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: Müllkalender aktualisiert!
13:42:21.563 [info] javascript.0 script.js.common.Allgemein.Muellabfuhr: registered 0 subscriptions and 1 schedule
hoffe das ist das richtige :D

tempestas
guru
Beiträge: 1058
Registriert: 17.03.2017, 19:34
Wohnort: ~100km vom Holy Ground

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von tempestas » 12.06.2018, 21:06

Das Problem ist, dass das Skript hiernach sucht:

http://www.codetable.net/decimal/8594

Das ist der Pfeil für ein ganztäggies Event. Du hast aber keine ganztägigen Events in deinem Kalender. Also findet er nichts.

Du kannst es mal mit meiner Version des Skript versuchen. Bitte bei var obj deine Bezecihnungen einsetzen im Ganzen ("Leerung Hausmuelltonne")
Spoiler: Show hidden text

Code: Alles auswählen

// 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.
// Ursprung: tempestas
// Erweiterung: PicNic


// http://forum.iobroker.net/viewtopic.php?f=21&t=3351&p=92282#p92282

//debug in Log ausgeben
debug = true;

// Anlegen JS State für VIS 

createState('javascript.0.muell.json', 0);

// Array für Suchvariablen und Farbe des Müll-Icons

var obj = { "Restabfall": "black", "Papiertonne": "darkblue", "Bioabfall": "brown", "Gelber Sack": "yellow"};

function muell(){  

// Kalender auslesen (HTML Format)

    // **************************************************************************************            
    // Termine auswerten aus html. Bereinigung der HTML Tags und Konvertierung in Plain Text
    // **************************************************************************************
    
        var inhalt = getState("ical.2.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(/<br>/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(/&nbsp;/gi," ");
        inhaltStringReplace=inhaltStringReplace.replace(/&amp;/gi,"&");
        inhaltStringReplace=inhaltStringReplace.replace(/&quot;/gi,'"');
        inhaltStringReplace=inhaltStringReplace.replace(/&lt;/gi,'<');
        inhaltStringReplace=inhaltStringReplace.replace(/&gt;/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();
}

// Wochentage auf deutsch
var wochentag = ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag' ];        
        
// json starten

var muellJason = "[";

// Schleife zur abarbeitung des Arrays

Object.keys(obj).forEach (function (val, key) {
   
// "," zur Trennung der Daten im json. Sollte nur eine Müllart angegeben sein, dann die nächsten drei Zewilen auskommentieren

if (key > 0) {
   muellJason += ",";  
}

// Zuweisung der Farbe für das MüllIcon

var iconColor = obj[val];

var muellIcon = "<svg class='icon dustbin "+iconColor+"' data-txt='dustbin@"+iconColor+"' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:cc='http://creativecommons.org/ns#' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' version='1.0' width='35' height='35' viewBox='0 0 468 468' id='svg2996'>   <defs id='defs3012'></defs>   <metadata id='metadata2998'> Created by potrace 1.8, written by Peter Selinger 2001-2007 <rdf:rdf>   <cc:work rdf:about=''>     <dc:format>image/svg+xml</dc:format>     <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'></dc:type>     <dc:title></dc:title>   </cc:work> </rdf:rdf> </metadata>   <g id='g4034'>     <path d='m 164.4375,33.5 -0.65625,0.5 c -11.90412,10.555196 -23.8852,21.057535 -35.5625,31.84375 l -42.96875,0 0,45.03125 32.53125,0 c 13.22891,144.12046 25.89883,288.31731 39.46875,432.40625 9.69723,-1.98889 14.32028,1.0964 11.875,11.25 -0.0426,5.85383 15.04324,3.26475 18.03125,1.90625 -1.00901,-8.73036 -0.93648,-16.37136 10,-13.15625 l 160.59375,0 c 11.75,21.80169 42.56231,29.31009 62.96875,15.375 21.08406,-12.69988 27.25053,-43.85545 12.3125,-63.5625 -4.86724,-6.92593 -11.82906,-12.31065 -19.625,-15.53125 C 424.62583,361.71176 435.86015,243.85237 447.0625,126 c 17.64215,-13.78222 35.02804,-27.886275 52.53125,-41.84375 2.89271,-4.893749 0.4348,-15.122493 1.25,-22.09375 C 499.08199,57.205782 490.09686,53.870651 485.5,49.25 477.99288,43.982667 470.74179,37.617596 462.6875,33.5 l -298.25,0 z m 4.875,9.84375 291.71875,0 29.25,21.71875 c 0.0119,0.927631 0.0533,1.871122 0.0937,2.8125 0.97639,2.449641 0.85027,5.167262 -0.0625,7.65625 -0.008,0.02111 -0.0234,0.04143 -0.0312,0.0625 -0.51888,3.777511 -2.14687,7.029761 -6.8125,8.8125 l -35.125,28.03125 c 1.46565,-4.97558 -1.85222,-15.895744 6.6875,-12.4375 5.5213,1.58262 12.19009,-2.324505 10.0625,-8.84375 l 0,-25.3125 -322.0625,0 c 8.86915,-7.223116 16.87852,-16.668979 26.28125,-22.5 z m -74.21875,32.34375 360.125,0 c 0.0306,7.712935 2.54733,17.927536 -8.75,14.3125 -94.29274,0.208114 -188.73115,-0.555861 -282.9375,0.40625 -10.1217,4.75269 -19.48313,13.27115 -31.6875,10.625 l -36.75,0 0,-25.34375 z m 76.21875,23.90625 c 89.41386,0.54853 178.87681,0.09252 268.3125,0.25 l -35.90625,377.0625 c -25.33113,-4.95041 -51.26051,16.10244 -51.8125,41.84375 -0.25348,4.95829 0.29336,9.94215 1.65625,14.6875 l -187.4375,0 C 153.39299,392.565 140.43379,251.46157 127.84375,110.71875 c 9.78849,0.51047 20.51309,1.63486 28.59375,-5.03125 4.67542,-2.69526 9.40925,-5.82151 14.875,-6.09375 z m 225.46875,394.1875 c 18.62221,-0.69263 32.74554,20.5547 24.875,37.5625 -6.27158,16.68124 -30.29909,21.99414 -43.03125,9.46875 -14.14991,-11.79435 -10.47964,-37.066 6.34375,-44.3125 3.56947,-1.79753 7.71804,-2.66409 11.8125,-2.71875 z m 0.90625,4.09375 c -0.57219,-0.006 -1.13342,-0.007 -1.71875,0.0312 -16.41246,0.0663 -27.63561,20.14594 -19.1875,34.15625 7.29551,15.03871 30.88174,16.07631 39.53125,1.78125 10.30823,-14.81695 -0.88704,-35.79663 -18.625,-35.96875 z' transform='scale(0.8,0.8)' id='rect3852' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:"+iconColor+";fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'></path>     <path d='m 187.04414,86.30422 c 0,9.25 0,18.5 0,27.75 8.8657,2.63653 8.20074,-4.2576 7.6875,-11 -0.88762,-6.981373 -0.63624,-12.823742 8,-10.28125 20.07292,0 40.14583,0 60.21875,0 0,7.09375 0,14.1875 0,21.28125 8.85532,2.63657 8.1552,-4.2823 7.65625,-11 0,-6.25 0,-12.5 0,-18.75 -27.85417,0 -55.70833,0 -83.5625,0 l 0,1 0,1 z' id='rect3774' style='fill:"+iconColor+";stroke:none'></path>     <path d='m 246.10957,299.44346 c -1.20162,-1.79184 -13.13138,-21.89781 -13.13138,-22.13113 0,-0.35582 13.19507,-22.47629 13.40732,-22.47629 0.0834,0 0.15176,1.8904 0.15176,4.20087 0,3.3822 0.0542,4.24584 0.27806,4.43164 0.20925,0.17367 3.98995,0.2127 15.27853,0.15776 16.67177,-0.0812 16.14352,-0.0414 19.20743,-1.44518 0.8007,-0.36686 1.48668,-0.63616 1.52438,-0.59845 0.0377,0.0376 -3.37966,6.0737 -7.59414,13.41331 -8.38933,14.61019 -8.4627,14.71679 -10.76008,15.63297 -1.10265,0.43974 -1.35427,0.45449 -9.48432,0.55557 l -8.35161,0.10384 -0.0983,4.32318 c -0.0938,4.12593 -0.11328,4.30077 -0.4277,3.83191 z M 199.67,291.00079 c -4.86935,-0.56611 -9.27834,-4.18932 -10.83763,-8.90616 -0.44559,-1.34793 -0.53544,-1.97083 -0.54455,-3.77582 -0.0116,-2.29823 0.2835,-3.7894 1.19284,-6.02732 0.46366,-1.14109 3.87189,-7.36721 4.63457,-8.46641 l 0.37581,-0.54163 14.87125,0.0503 14.87127,0.0505 0,13.85387 0,13.85384 -11.69225,0.023 c -6.43074,0.0126 -12.22283,-0.0387 -12.87131,-0.11407 z m -23.07415,-26.65794 c -4.26057,-7.32993 -7.85812,-13.68348 -7.99458,-14.11897 -0.13644,-0.43549 -0.26416,-0.65918 -0.28383,-0.49707 -0.0196,0.16213 -0.10891,-0.059 -0.19835,-0.49126 -0.15929,-0.76999 -0.0105,-3.00897 0.16506,-2.48491 0.049,0.14642 0.2357,-0.16309 0.41472,-0.68778 0.17905,-0.52469 2.07284,-4.01176 4.20845,-7.74905 2.16788,-3.79378 3.8342,-6.91841 3.77264,-7.07431 -0.0607,-0.15358 -1.69732,-1.16352 -3.63704,-2.24431 -1.93972,-1.08081 -3.52906,-2.01786 -3.53187,-2.08233 -0.006,-0.14378 6.57047,-0.32902 17.79578,-0.50119 l 8.46674,-0.12987 6.34867,11.43236 c 3.49178,6.28779 6.29992,11.48113 6.24029,11.54073 -0.0595,0.0596 -1.75689,-0.84191 -3.77175,-2.0034 -3.60051,-2.07556 -3.66963,-2.10532 -4.02824,-1.73419 -0.55658,0.576 -13.94131,23.77568 -14.57267,25.25872 -0.72354,1.69955 -1.30968,3.87178 -1.49707,5.54808 l -0.15045,1.34592 -7.7465,-13.32717 z m 89.07588,-4.62263 c -0.0943,-0.14587 -3.45377,-5.92489 -7.46554,-12.84227 -5.41735,-9.34093 -7.23758,-12.63501 -7.07431,-12.80239 0.32833,-0.33656 23.31915,-13.43198 23.58171,-13.43198 0.12427,0 2.80048,4.44354 5.94713,9.87454 6.55474,11.31331 6.28956,10.82629 6.84861,12.57752 0.23306,0.73009 0.47242,1.27876 0.53191,1.21928 0.0595,-0.0595 0.17091,0.47802 0.24763,1.19443 0.15098,1.40997 -0.0334,3.68719 -0.28604,3.53111 -0.0857,-0.0529 -0.21682,0.23461 -0.29152,0.63896 -0.20892,1.13073 -1.51188,3.74177 -2.5523,5.11465 -1.72548,2.27683 -4.04472,3.812 -6.95568,4.60419 -1.30162,0.35423 -2.22633,0.42067 -6.9311,0.49796 -4.41554,0.0725 -5.4611,0.0397 -5.6005,-0.176 z m -65.31395,-41.16649 c -6.43074,-3.73488 -11.79495,-6.89275 -11.92048,-7.01749 -0.17303,-0.17195 1.23227,-2.74644 5.80886,-10.64177 5.70419,-9.84062 6.1237,-10.50386 7.60749,-12.02734 1.69965,-1.74509 3.33189,-2.69357 5.66885,-3.29412 1.5163,-0.38964 4.92245,-0.38707 6.59088,0.005 2.75547,0.6475 5.41411,2.44797 7.33993,4.97072 1.44033,1.88674 5.4911,8.82551 5.38626,9.22639 -0.0949,0.3629 -14.05668,24.59974 -14.5365,25.23452 -0.22908,0.30307 -1.35989,-0.30809 -11.94529,-6.45591 z m 42.05556,0.69155 c -5.0242,-0.0857 -9.39897,-0.18194 -9.7217,-0.2139 -0.50316,-0.0498 -0.0694,-0.35226 3.04313,-2.12147 3.19994,-1.81891 3.62944,-2.12152 3.62568,-2.55461 -0.004,-0.48586 -12.4336,-22.33433 -14.25345,-25.05483 -1.51468,-2.26428 -4.79833,-5.20178 -5.82449,-5.21048 -0.19508,-0.002 -0.48732,-0.0888 -0.64944,-0.1935 -0.35402,-0.22879 30.37826,-0.23669 32.03088,-0.008 0.59443,0.0822 0.94816,0.16475 0.78603,0.18349 -0.16212,0.0187 0.16507,0.19299 0.72711,0.38718 1.41989,0.49063 2.52157,1.30409 3.21461,2.37365 0.32406,0.5001 2.2456,3.7269 4.27007,7.17065 2.02447,3.44374 3.81896,6.34847 3.98778,6.45495 0.23503,0.14827 1.10892,-0.2796 3.73171,-1.82705 1.88363,-1.11135 3.50616,-2.06607 3.60559,-2.1216 0.34795,-0.19432 -0.14612,0.72795 -6.3232,11.80315 l -6.21981,11.15185 -3.4478,-0.0317 c -1.8963,-0.0174 -7.55851,-0.10189 -12.5827,-0.18752 z' id='path3042-4-0' style='fill:"+iconColor+"'></path>     <path d='m 379.767,65.367302 c -2.27366,-0.78034 -4.41606,-2.93783 -4.76517,-4.79874 -0.71345,-3.803 0.7568,-7.29316 3.71819,-8.82643 3.16358,-1.63796 7.60799,-0.409 9.60852,2.65692 1.81887,2.78753 1.47864,5.94628 -0.93596,8.68941 -2.3772,2.70063 -4.52579,3.34272 -7.62558,2.27884 z' id='path4011' style='fill:"+iconColor+";fill-opacity:1;stroke:none'></path>   </g> </svg>";

// Position bestimmen

var pos = inhaltStringReplace.indexOf( val, 1);                    
if(debug) log("pos ist: "+pos);

var inhaltStringText = inhaltStringReplace.substring((pos-13),pos-3); 
if(debug) log("Datum ist: "+inhaltStringText);


nthIndex(inhaltStringText, ".", 1);
var t_m = inhaltStringText.slice(0, i_search);
var pos1 = i_search+1;
if(debug) log("pos1: " +pos1 );

nthIndex(inhaltStringText, ".", 2);
var m_m = inhaltStringText.slice(pos1, i_search);
var pos2 = i_search+1;
if(debug) log("pos2: " +pos2 );


var j_m = inhaltStringText.slice(pos2, inhaltStringText.len );

// Datum des Abholtages setzen um den Wochentag zu ermitteln
var muelldate = new Date(j_m,m_m-1,t_m);

// Hier kommt der Wochentag :-)

var d = muelldate.getDay();

if(debug) log("Mülldate ist: "+wochentag[d]+", "+muelldate );
if(debug) log("Mülltag ist: "+t_m +" , " +m_m +" , " +j_m);




// Datum heute ermitteln

var today = new Date();
if(debug) log(today);

    //Tag ermitteln
        var t = today.getDate();
        
    // Wochentag ermitteln zum testen
        var dd = today.getDay();

    //Monat ermitteln

        var m = today.getMonth()+1;

    //Jahr ermitteln
        var j = today.getFullYear();
        
        if(debug) log("Datum heute ist: "+wochentag[dd]+", "+t+m+j);
        
        
        
// Berechnung Tagesdifferenzen

var diff = 0;
var tage = "";
var dim = DaysInMonth(m, j);  // Tage des aktuellen Monats
if(debug) 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);
          
        if(!isNaN(diff)){ 
                tage = diff }
            else {
                tage = "Heute";
            }
          
muellJason += "{\"Müllart\":\" "+val+"\",\"Tage\":\""+tage+"\"}";                 //  PASS DIR AN WIE DU WILLST:   \"Ereignis\":\""+muellIcon+"\", \"Tag\":\""+wochentag[d]+"\",\"Datum\":\""+inhaltStringText+"\",
 
 });                // Ende forEach

// json schließen

muellJason += "]";

// und hier nun die Werte eintragen

setState('javascript.0.muell.json', muellJason);    

log("Müllkalender aktualisiert!");

}

schedule('30 5 * * *', function(){              // morgens um 5.30h wird aktualisiert
       
        muell();
    
});           

// bei Start

muell();

In Zeile 102 bei diesem Abschnitt:

var inhaltStringText = inhaltStringReplace.substring((pos-13),pos-3);

wirst du ggf anpassen müssen, ich habs kurz überflogen, mach mal aus pos-13 bitte pos-22 zum testen und poste dnan hier die Logs
ioBroker | 19 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Sonos | Instar Cam | Fire HDX 7 | 3x Echo dot | Neato Botvac D5

GeorgS
starter
Beiträge: 77
Registriert: 10.05.2018, 19:16

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von GeorgS » 13.06.2018, 16:03

Hallo ich hoffe es ist der richtige Log =)
Spoiler: Show hidden text
17:06:52.172 [info] javascript.0 Stop script script.js.common.Allgemein.Muell
17:06:52.211 [info] javascript.0 Start javascript script.js.common.Allgemein.Muell
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Morgen 04:00-05:00 Leerung Hausmuelltonne In 6 Tagen 04:00-05:00 Leerung Papiertonne 28.06.2018 04:00-05:00 Leerung Hausmuelltonne 29.06.2018 04:00-05:00 Leerung Gelbe Tonne
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: pos ist: 27
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Datum ist: n 04:00-05:00 Leeru
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: pos1: 0
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: pos2: 0
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Mülldate ist: undefined, Invalid Date
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Mülltag ist: n 04:00-05:00 Leer , n 04:00-05:00 Leer , n 04:00-05:00 Leeru
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Wed Jun 13 2018 15:06:52 GMT+0000 (UTC)
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Datum heute ist: Mittwoch, 1362018
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Tage aktueller Monat: 30
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Tage bis zum nächsten Müll: NaN
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: pos ist: 73
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Datum ist: n 04:00-05:00 Leeru
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: pos1: 0
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: pos2: 0
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Mülldate ist: undefined, Invalid Date
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Mülltag ist: n 04:00-05:00 Leer , n 04:00-05:00 Leer , n 04:00-05:00 Leeru
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Wed Jun 13 2018 15:06:52 GMT+0000 (UTC)
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Datum heute ist: Mittwoch, 1362018
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Tage aktueller Monat: 30
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Tage bis zum nächsten Müll: NaN
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: pos ist: 162
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Datum ist: 8 04:00-05:00 Leeru
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: pos1: 0
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: pos2: 0
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Mülldate ist: undefined, Invalid Date
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Mülltag ist: 8 04:00-05:00 Leer , 8 04:00-05:00 Leer , 8 04:00-05:00 Leeru
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Wed Jun 13 2018 15:06:52 GMT+0000 (UTC)
17:06:52.211 [info] javascript.0 script.js.common.Allgemein.Muell: Datum heute ist: Mittwoch, 1362018
17:06:52.212 [info] javascript.0 script.js.common.Allgemein.Muell: Tage aktueller Monat: 30
17:06:52.212 [info] javascript.0 script.js.common.Allgemein.Muell: Tage bis zum nächsten Müll: -5
17:06:52.212 [warn] javascript.0 script.js.common.Allgemein.Muell: setForeignState(id=javascript.0.muell.json, state="[{\"Müllart\":\" Hausmuelltonne\",\"Tage\":\"Heute\"},{\"Müllart\":\" Papiertonne\",\"Tage\":\"Heute\"},{\"Müllart\":\" Gelbe Tonne\",\"Tage\":\"-5\"}]") - was not executed, while debug mode is active
17:06:52.212 [info] javascript.0 script.js.common.Allgemein.Muell: Müllkalender aktualisiert!
17:06:52.212 [info] javascript.0 script.js.common.Allgemein.Muell: registered 0 subscriptions and 1 schedule
17:06:53.297 [info] javascript.0 Stop script script.js.common.Allgemein.Muell
17:06:54.388 [info] javascript.0 Start javascript script.js.common.Allgemein.Muell
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Morgen 04:00-05:00 Leerung Hausmuelltonne In 6 Tagen 04:00-05:00 Leerung Papiertonne 28.06.2018 04:00-05:00 Leerung Hausmuelltonne 29.06.2018 04:00-05:00 Leerung Gelbe Tonne
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: pos ist: 27
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Datum ist: n 04:00-05:00 Leeru
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: pos1: 0
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: pos2: 0
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Mülldate ist: undefined, Invalid Date
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Mülltag ist: n 04:00-05:00 Leer , n 04:00-05:00 Leer , n 04:00-05:00 Leeru
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Wed Jun 13 2018 15:06:54 GMT+0000 (UTC)
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Datum heute ist: Mittwoch, 1362018
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Tage aktueller Monat: 30
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Tage bis zum nächsten Müll: NaN
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: pos ist: 73
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Datum ist: n 04:00-05:00 Leeru
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: pos1: 0
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: pos2: 0
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Mülldate ist: undefined, Invalid Date
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Mülltag ist: n 04:00-05:00 Leer , n 04:00-05:00 Leer , n 04:00-05:00 Leeru
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Wed Jun 13 2018 15:06:54 GMT+0000 (UTC)
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Datum heute ist: Mittwoch, 1362018
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Tage aktueller Monat: 30
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Tage bis zum nächsten Müll: NaN
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: pos ist: 162
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Datum ist: 8 04:00-05:00 Leeru
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: pos1: 0
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: pos2: 0
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Mülldate ist: undefined, Invalid Date
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Mülltag ist: 8 04:00-05:00 Leer , 8 04:00-05:00 Leer , 8 04:00-05:00 Leeru
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Wed Jun 13 2018 15:06:54 GMT+0000 (UTC)
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Datum heute ist: Mittwoch, 1362018
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Tage aktueller Monat: 30
17:06:54.388 [info] javascript.0 script.js.common.Allgemein.Muell: Tage bis zum nächsten Müll: -5
17:06:54.389 [warn] javascript.0 script.js.common.Allgemein.Muell: setForeignState(id=javascript.0.muell.json, state="[{\"Müllart\":\" Hausmuelltonne\",\"Tage\":\"Heute\"},{\"Müllart\":\" Papiertonne\",\"Tage\":\"Heute\"},{\"Müllart\":\" Gelbe Tonne\",\"Tage\":\"-5\"}]") - was not executed, while debug mode is active
17:06:54.389 [info] javascript.0 script.js.common.Allgemein.Muell: Müllkalender aktualisiert!
17:06:54.389 [info] javascript.0 script.js.common.Allgemein.Muell: registered 0 subscriptions and 1 schedule

tempestas
guru
Beiträge: 1058
Registriert: 17.03.2017, 19:34
Wohnort: ~100km vom Holy Ground

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von tempestas » 13.06.2018, 19:30

Ist mir erst jetzt aufgefallen : du hast ja "Ersetze Datum mit Worten " im ical angeschaltet. Dann kann das sowieso nicht funktionieren.

Das Skript ermittelt die Tage zwischen zwei Daten. Ein Wort wie Übermorgen ist aber kein Datum.
Also bitte im ical diese Option mal abschalten.
ioBroker | 19 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Sonos | Instar Cam | Fire HDX 7 | 3x Echo dot | Neato Botvac D5

GeorgS
starter
Beiträge: 77
Registriert: 10.05.2018, 19:16

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von GeorgS » 14.06.2018, 18:23

tempestas hat geschrieben:
13.06.2018, 19:30
Ist mir erst jetzt aufgefallen : du hast ja "Ersetze Datum mit Worten " im ical angeschaltet. Dann kann das sowieso nicht funktionieren.

Das Skript ermittelt die Tage zwischen zwei Daten. Ein Wort wie Übermorgen ist aber kein Datum.
Also bitte im ical diese Option mal abschalten.
Hat leider nix verändert :/

Hier mal der Log
Spoiler: Show hidden text
19:33:24.563 [info] javascript.0 Stop script script.js.common.Allgemein.Muell
19:33:24.583 [info] javascript.0 Start javascript script.js.common.Allgemein.Muell
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: 19.06.2018 06:00-07:00 Leerung Papiertonne 28.06.2018 06:00-07:00 Leerung Hausmuelltonne 29.06.2018 06:00-07:00 Leerung Gelbe Tonne
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: pos ist: 74
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: Datum ist: 8 06:00-07:00 Leeru
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: pos1: 0
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: pos2: 0
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: Mülldate ist: undefined, Invalid Date
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: Mülltag ist: 8 06:00-07:00 Leer , 8 06:00-07:00 Leer , 8 06:00-07:00 Leeru
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: Thu Jun 14 2018 19:33:24 GMT+0200 (CEST)
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: Datum heute ist: Donnerstag, 1462018
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: Tage aktueller Monat: 30
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: Tage bis zum nächsten Müll: -6
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: pos ist: 31
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: Datum ist: 8 06:00-07:00 Leeru
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: pos1: 0
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: pos2: 0
19:33:24.583 [info] javascript.0 script.js.common.Allgemein.Muell: Mülldate ist: undefined, Invalid Date
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Mülltag ist: 8 06:00-07:00 Leer , 8 06:00-07:00 Leer , 8 06:00-07:00 Leeru
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Thu Jun 14 2018 19:33:24 GMT+0200 (CEST)
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Datum heute ist: Donnerstag, 1462018
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Tage aktueller Monat: 30
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Tage bis zum nächsten Müll: -6
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: pos ist: 120
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Datum ist: 8 06:00-07:00 Leeru
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: pos1: 0
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: pos2: 0
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Mülldate ist: undefined, Invalid Date
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Mülltag ist: 8 06:00-07:00 Leer , 8 06:00-07:00 Leer , 8 06:00-07:00 Leeru
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Thu Jun 14 2018 19:33:24 GMT+0200 (CEST)
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Datum heute ist: Donnerstag, 1462018
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Tage aktueller Monat: 30
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Tage bis zum nächsten Müll: -6
19:33:24.584 [warn] javascript.0 script.js.common.Allgemein.Muell: setForeignState(id=javascript.0.muell.json, state="[{\"Müllart\":\" Hausmuelltonne\",\"Tage\":\"-6\"},{\"Müllart\":\" Papiertonne\",\"Tage\":\"-6\"},{\"Müllart\":\" Gelbe\",\"Tage\":\"-6\"}]") - was not executed, while debug mode is active
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: Müllkalender aktualisiert!
19:33:24.584 [info] javascript.0 script.js.common.Allgemein.Muell: registered 0 subscriptions and 1 schedule

tempestas
guru
Beiträge: 1058
Registriert: 17.03.2017, 19:34
Wohnort: ~100km vom Holy Ground

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von tempestas » 16.06.2018, 08:39

Hallo,

das Problem sind die Uhrzeiten. Gibt es einen Grund, dass die so drin sind?
Liefert dir dein Abfallbetrieb den Kalender so, oder stellst du das ein ?
ioBroker | 19 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Sonos | Instar Cam | Fire HDX 7 | 3x Echo dot | Neato Botvac D5

GeorgS
starter
Beiträge: 77
Registriert: 10.05.2018, 19:16

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von GeorgS » 17.06.2018, 12:24

tempestas hat geschrieben:
16.06.2018, 08:39
Hallo,

das Problem sind die Uhrzeiten. Gibt es einen Grund, dass die so drin sind?
Liefert dir dein Abfallbetrieb den Kalender so, oder stellst du das ein ?
Leider liefert mir die Abfallbetrie das so...

bumbumb
starter
Beiträge: 25
Registriert: 08.09.2018, 17:42

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von bumbumb » 12.09.2018, 20:51

Hallo,
ich verwende dieses Scipt.

Code: Alles auswählen

// 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.
// Ursprung: tempestas
// Erweiterung: PicNic


// http://forum.iobroker.net/viewtopic.php?f=21&t=3351&p=92282#p92282

//debug in Log ausgeben
debug = true;

// Anlegen JS State für VIS 

//createState('javascript.0.muell.json', 0);
createState('javascript.0.muell.BioTonne', 0);   //. gelb, blau usw entsprechend erstellen
createState('javascript.0.muell.WertstoffTonne', 0);   
createState('javascript.0.muell.RestMuellTonne', 0); 
createState('javascript.0.muell.PapierTonne', 0); 

// Array für Suchvariablen und Farbe des Müll-Icons

var obj = { "Papiertonne": "darkblue","PapierTonne": "lightblue", "Wertstofftonne": "yellow","Restmuell 2-wchtl": "black"};
//var obj = { "Hausmuell": "orange", "Altpapier": "lightblue", "Wertstofftonne": "yellow"};


function muell(){  

// 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(/<br>/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(/&nbsp;/gi," ");
        inhaltStringReplace=inhaltStringReplace.replace(/&amp;/gi,"&");
        inhaltStringReplace=inhaltStringReplace.replace(/&quot;/gi,'"');
        inhaltStringReplace=inhaltStringReplace.replace(/&lt;/gi,'<');
        inhaltStringReplace=inhaltStringReplace.replace(/&gt;/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();
}

// Wochentage auf deutsch
var wochentag = ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag' ];        
        
// json starten

var muellJason = "[";

// Schleife zur abarbeitung des Arrays

Object.keys(obj).forEach (function (val, key) {
   
// "," zur Trennung der Daten im json. Sollte nur eine Müllart angegeben sein, dann die nächsten drei Zewilen auskommentieren

if (key > 0) {
   muellJason += ",";  
}

// Zuweisung der Farbe für das MüllIcon

var iconColor = obj[val];

var muellIcon = "<svg class='icon dustbin "+iconColor+"' data-txt='dustbin@"+iconColor+"' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:cc='http://creativecommons.org/ns#' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' version='1.0' width='35' height='35' viewBox='0 0 468 468' id='svg2996'>   <defs id='defs3012'></defs>   <metadata id='metadata2998'> Created by potrace 1.8, written by Peter Selinger 2001-2007 <rdf:rdf>   <cc:work rdf:about=''>     <dc:format>image/svg+xml</dc:format>     <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'></dc:type>     <dc:title></dc:title>   </cc:work> </rdf:rdf> </metadata>   <g id='g4034'>     <path d='m 164.4375,33.5 -0.65625,0.5 c -11.90412,10.555196 -23.8852,21.057535 -35.5625,31.84375 l -42.96875,0 0,45.03125 32.53125,0 c 13.22891,144.12046 25.89883,288.31731 39.46875,432.40625 9.69723,-1.98889 14.32028,1.0964 11.875,11.25 -0.0426,5.85383 15.04324,3.26475 18.03125,1.90625 -1.00901,-8.73036 -0.93648,-16.37136 10,-13.15625 l 160.59375,0 c 11.75,21.80169 42.56231,29.31009 62.96875,15.375 21.08406,-12.69988 27.25053,-43.85545 12.3125,-63.5625 -4.86724,-6.92593 -11.82906,-12.31065 -19.625,-15.53125 C 424.62583,361.71176 435.86015,243.85237 447.0625,126 c 17.64215,-13.78222 35.02804,-27.886275 52.53125,-41.84375 2.89271,-4.893749 0.4348,-15.122493 1.25,-22.09375 C 499.08199,57.205782 490.09686,53.870651 485.5,49.25 477.99288,43.982667 470.74179,37.617596 462.6875,33.5 l -298.25,0 z m 4.875,9.84375 291.71875,0 29.25,21.71875 c 0.0119,0.927631 0.0533,1.871122 0.0937,2.8125 0.97639,2.449641 0.85027,5.167262 -0.0625,7.65625 -0.008,0.02111 -0.0234,0.04143 -0.0312,0.0625 -0.51888,3.777511 -2.14687,7.029761 -6.8125,8.8125 l -35.125,28.03125 c 1.46565,-4.97558 -1.85222,-15.895744 6.6875,-12.4375 5.5213,1.58262 12.19009,-2.324505 10.0625,-8.84375 l 0,-25.3125 -322.0625,0 c 8.86915,-7.223116 16.87852,-16.668979 26.28125,-22.5 z m -74.21875,32.34375 360.125,0 c 0.0306,7.712935 2.54733,17.927536 -8.75,14.3125 -94.29274,0.208114 -188.73115,-0.555861 -282.9375,0.40625 -10.1217,4.75269 -19.48313,13.27115 -31.6875,10.625 l -36.75,0 0,-25.34375 z m 76.21875,23.90625 c 89.41386,0.54853 178.87681,0.09252 268.3125,0.25 l -35.90625,377.0625 c -25.33113,-4.95041 -51.26051,16.10244 -51.8125,41.84375 -0.25348,4.95829 0.29336,9.94215 1.65625,14.6875 l -187.4375,0 C 153.39299,392.565 140.43379,251.46157 127.84375,110.71875 c 9.78849,0.51047 20.51309,1.63486 28.59375,-5.03125 4.67542,-2.69526 9.40925,-5.82151 14.875,-6.09375 z m 225.46875,394.1875 c 18.62221,-0.69263 32.74554,20.5547 24.875,37.5625 -6.27158,16.68124 -30.29909,21.99414 -43.03125,9.46875 -14.14991,-11.79435 -10.47964,-37.066 6.34375,-44.3125 3.56947,-1.79753 7.71804,-2.66409 11.8125,-2.71875 z m 0.90625,4.09375 c -0.57219,-0.006 -1.13342,-0.007 -1.71875,0.0312 -16.41246,0.0663 -27.63561,20.14594 -19.1875,34.15625 7.29551,15.03871 30.88174,16.07631 39.53125,1.78125 10.30823,-14.81695 -0.88704,-35.79663 -18.625,-35.96875 z' transform='scale(0.8,0.8)' id='rect3852' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:"+iconColor+";fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'></path>     <path d='m 187.04414,86.30422 c 0,9.25 0,18.5 0,27.75 8.8657,2.63653 8.20074,-4.2576 7.6875,-11 -0.88762,-6.981373 -0.63624,-12.823742 8,-10.28125 20.07292,0 40.14583,0 60.21875,0 0,7.09375 0,14.1875 0,21.28125 8.85532,2.63657 8.1552,-4.2823 7.65625,-11 0,-6.25 0,-12.5 0,-18.75 -27.85417,0 -55.70833,0 -83.5625,0 l 0,1 0,1 z' id='rect3774' style='fill:"+iconColor+";stroke:none'></path>     <path d='m 246.10957,299.44346 c -1.20162,-1.79184 -13.13138,-21.89781 -13.13138,-22.13113 0,-0.35582 13.19507,-22.47629 13.40732,-22.47629 0.0834,0 0.15176,1.8904 0.15176,4.20087 0,3.3822 0.0542,4.24584 0.27806,4.43164 0.20925,0.17367 3.98995,0.2127 15.27853,0.15776 16.67177,-0.0812 16.14352,-0.0414 19.20743,-1.44518 0.8007,-0.36686 1.48668,-0.63616 1.52438,-0.59845 0.0377,0.0376 -3.37966,6.0737 -7.59414,13.41331 -8.38933,14.61019 -8.4627,14.71679 -10.76008,15.63297 -1.10265,0.43974 -1.35427,0.45449 -9.48432,0.55557 l -8.35161,0.10384 -0.0983,4.32318 c -0.0938,4.12593 -0.11328,4.30077 -0.4277,3.83191 z M 199.67,291.00079 c -4.86935,-0.56611 -9.27834,-4.18932 -10.83763,-8.90616 -0.44559,-1.34793 -0.53544,-1.97083 -0.54455,-3.77582 -0.0116,-2.29823 0.2835,-3.7894 1.19284,-6.02732 0.46366,-1.14109 3.87189,-7.36721 4.63457,-8.46641 l 0.37581,-0.54163 14.87125,0.0503 14.87127,0.0505 0,13.85387 0,13.85384 -11.69225,0.023 c -6.43074,0.0126 -12.22283,-0.0387 -12.87131,-0.11407 z m -23.07415,-26.65794 c -4.26057,-7.32993 -7.85812,-13.68348 -7.99458,-14.11897 -0.13644,-0.43549 -0.26416,-0.65918 -0.28383,-0.49707 -0.0196,0.16213 -0.10891,-0.059 -0.19835,-0.49126 -0.15929,-0.76999 -0.0105,-3.00897 0.16506,-2.48491 0.049,0.14642 0.2357,-0.16309 0.41472,-0.68778 0.17905,-0.52469 2.07284,-4.01176 4.20845,-7.74905 2.16788,-3.79378 3.8342,-6.91841 3.77264,-7.07431 -0.0607,-0.15358 -1.69732,-1.16352 -3.63704,-2.24431 -1.93972,-1.08081 -3.52906,-2.01786 -3.53187,-2.08233 -0.006,-0.14378 6.57047,-0.32902 17.79578,-0.50119 l 8.46674,-0.12987 6.34867,11.43236 c 3.49178,6.28779 6.29992,11.48113 6.24029,11.54073 -0.0595,0.0596 -1.75689,-0.84191 -3.77175,-2.0034 -3.60051,-2.07556 -3.66963,-2.10532 -4.02824,-1.73419 -0.55658,0.576 -13.94131,23.77568 -14.57267,25.25872 -0.72354,1.69955 -1.30968,3.87178 -1.49707,5.54808 l -0.15045,1.34592 -7.7465,-13.32717 z m 89.07588,-4.62263 c -0.0943,-0.14587 -3.45377,-5.92489 -7.46554,-12.84227 -5.41735,-9.34093 -7.23758,-12.63501 -7.07431,-12.80239 0.32833,-0.33656 23.31915,-13.43198 23.58171,-13.43198 0.12427,0 2.80048,4.44354 5.94713,9.87454 6.55474,11.31331 6.28956,10.82629 6.84861,12.57752 0.23306,0.73009 0.47242,1.27876 0.53191,1.21928 0.0595,-0.0595 0.17091,0.47802 0.24763,1.19443 0.15098,1.40997 -0.0334,3.68719 -0.28604,3.53111 -0.0857,-0.0529 -0.21682,0.23461 -0.29152,0.63896 -0.20892,1.13073 -1.51188,3.74177 -2.5523,5.11465 -1.72548,2.27683 -4.04472,3.812 -6.95568,4.60419 -1.30162,0.35423 -2.22633,0.42067 -6.9311,0.49796 -4.41554,0.0725 -5.4611,0.0397 -5.6005,-0.176 z m -65.31395,-41.16649 c -6.43074,-3.73488 -11.79495,-6.89275 -11.92048,-7.01749 -0.17303,-0.17195 1.23227,-2.74644 5.80886,-10.64177 5.70419,-9.84062 6.1237,-10.50386 7.60749,-12.02734 1.69965,-1.74509 3.33189,-2.69357 5.66885,-3.29412 1.5163,-0.38964 4.92245,-0.38707 6.59088,0.005 2.75547,0.6475 5.41411,2.44797 7.33993,4.97072 1.44033,1.88674 5.4911,8.82551 5.38626,9.22639 -0.0949,0.3629 -14.05668,24.59974 -14.5365,25.23452 -0.22908,0.30307 -1.35989,-0.30809 -11.94529,-6.45591 z m 42.05556,0.69155 c -5.0242,-0.0857 -9.39897,-0.18194 -9.7217,-0.2139 -0.50316,-0.0498 -0.0694,-0.35226 3.04313,-2.12147 3.19994,-1.81891 3.62944,-2.12152 3.62568,-2.55461 -0.004,-0.48586 -12.4336,-22.33433 -14.25345,-25.05483 -1.51468,-2.26428 -4.79833,-5.20178 -5.82449,-5.21048 -0.19508,-0.002 -0.48732,-0.0888 -0.64944,-0.1935 -0.35402,-0.22879 30.37826,-0.23669 32.03088,-0.008 0.59443,0.0822 0.94816,0.16475 0.78603,0.18349 -0.16212,0.0187 0.16507,0.19299 0.72711,0.38718 1.41989,0.49063 2.52157,1.30409 3.21461,2.37365 0.32406,0.5001 2.2456,3.7269 4.27007,7.17065 2.02447,3.44374 3.81896,6.34847 3.98778,6.45495 0.23503,0.14827 1.10892,-0.2796 3.73171,-1.82705 1.88363,-1.11135 3.50616,-2.06607 3.60559,-2.1216 0.34795,-0.19432 -0.14612,0.72795 -6.3232,11.80315 l -6.21981,11.15185 -3.4478,-0.0317 c -1.8963,-0.0174 -7.55851,-0.10189 -12.5827,-0.18752 z' id='path3042-4-0' style='fill:"+iconColor+"'></path>     <path d='m 379.767,65.367302 c -2.27366,-0.78034 -4.41606,-2.93783 -4.76517,-4.79874 -0.71345,-3.803 0.7568,-7.29316 3.71819,-8.82643 3.16358,-1.63796 7.60799,-0.409 9.60852,2.65692 1.81887,2.78753 1.47864,5.94628 -0.93596,8.68941 -2.3772,2.70063 -4.52579,3.34272 -7.62558,2.27884 z' id='path4011' style='fill:"+iconColor+";fill-opacity:1;stroke:none'></path>   </g> </svg>";

// Position bestimmen

var pos = inhaltStringReplace.indexOf( val, 1);                    
if(debug) log("pos ist: "+pos);

var inhaltStringText = inhaltStringReplace.substring((pos-13),pos-3); 
if(debug) log("Datum ist: "+inhaltStringText);


nthIndex(inhaltStringText, ".", 1);
var t_m = inhaltStringText.slice(0, i_search);
var pos1 = i_search+1;
if(debug) log("pos1: " +pos1 );

nthIndex(inhaltStringText, ".", 2);
var m_m = inhaltStringText.slice(pos1, i_search);
var pos2 = i_search+1;
if(debug) log("pos2: " +pos2 );


var j_m = inhaltStringText.slice(pos2, inhaltStringText.len );

// Datum des Abholtages setzen um den Wochentag zu ermitteln
var muelldate = new Date(j_m,m_m-1,t_m);

// Hier kommt der Wochentag :-)

var d = muelldate.getDay();

if(debug) log("Mülldate ist: "+wochentag[d]+", "+muelldate );
if(debug) log("Mülltag ist: "+t_m +" , " +m_m +" , " +j_m);




// Datum heute ermitteln

var today = new Date();
if(debug) log(today);

    //Tag ermitteln
        var t = today.getDate();
        
    // Wochentag ermitteln zum testen
        var dd = today.getDay();

    //Monat ermitteln

        var m = today.getMonth()+1;

    //Jahr ermitteln
        var j = today.getFullYear();
        
        if(debug) log("Datum heute ist: "+wochentag[dd]+", "+t+m+j);
        
        
        
// Berechnung Tagesdifferenzen

var diff = 0;
var tage = "";
var dim = DaysInMonth(m, j);  // Tage des aktuellen Monats
if(debug) 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);
          
        if(!isNaN(diff)){ 
                tage = diff }
            else {
                tage = "Heute";
            }
          
muellJason += "{\"Müllart\":\" "+val+"\",\"Tage\":\""+tage+"\"}";                 //  PASS DIR AN WIE DU WILLST:   \"Ereignis\":\""+muellIcon+"\", \"Tag\":\""+wochentag[d]+"\",\"Datum\":\""+inhaltStringText+"\",
 
 });                // Ende forEach

// json schließen

muellJason += "]";

// und hier nun die Werte eintragen

setState('javascript.0.muell.json', muellJason);    

log("Müllkalender aktualisiert!");

}

schedule('30 5 * * *', function(){              // morgens um 5.30h wird aktualisiert
       
        muell();
    
});           

// bei Start

muell();
Der Kalender zeigt mir auch diese Werte als HTML an:
Heute Wertstoffhof geöffnet
Heute Biotonne
Morgen Wertstoffhof geöffnet
Übermorgen Papiertonne
In 5 Tagen Wertstoffhof geöffnet
In einer Woche Wertstofftonne
In einer Woche Wertstoffhoff geöffnet


aber wie bekomme ich jetzt die Einzelnen Tage bis zur abholung daraus.
Dateianhänge
kalender.PNG

bumbumb
starter
Beiträge: 25
Registriert: 08.09.2018, 17:42

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von bumbumb » 12.09.2018, 21:17

wer kann mir helfen. Vielen Dank

Benutzeravatar
sigi234
professional
Beiträge: 682
Registriert: 12.06.2017, 21:22

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von sigi234 » 12.09.2018, 22:30

Hallo so:
Daten sieht du in Vis noch nicht musst dann die Runtime starten........

Screenshot (660)_LI.jpg

ODER SO:
Screenshot (664)_LI.jpg
MfG
Sigi

bumbumb
starter
Beiträge: 25
Registriert: 08.09.2018, 17:42

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von bumbumb » 13.09.2018, 06:48

Hallo,
danke für die Nachricht. Ich möchte aber die Tage bis zur Abholung an meine CCU2 senden. Das Datum nützt mir leider nichts. Wie kann ich es denn machen, das ich die Tage als zahl in den Objekten erhalte. In Fhem hat das Super mit den Readings funktioniert. Wäre schön wenn ihr mir helfen könnt. Gruss
bumbumb

Berchemer
starter
Beiträge: 35
Registriert: 05.11.2017, 12:07

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von Berchemer » 01.10.2018, 13:42

tempestas hat geschrieben:
12.06.2018, 21:06
Das Problem ist, dass das Skript hiernach sucht:

http://www.codetable.net/decimal/8594

Das ist der Pfeil für ein ganztäggies Event. Du hast aber keine ganztägigen Events in deinem Kalender. Also findet er nichts.

Du kannst es mal mit meiner Version des Skript versuchen. Bitte bei var obj deine Bezecihnungen einsetzen im Ganzen ("Leerung Hausmuelltonne")
Spoiler: Show hidden text

Code: Alles auswählen

// 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.
// Ursprung: tempestas
// Erweiterung: PicNic


// http://forum.iobroker.net/viewtopic.php?f=21&t=3351&p=92282#p92282

//debug in Log ausgeben
debug = true;

// Anlegen JS State für VIS 

createState('javascript.0.muell.json', 0);

// Array für Suchvariablen und Farbe des Müll-Icons

var obj = { "Restabfall": "black", "Papiertonne": "darkblue", "Bioabfall": "brown", "Gelber Sack": "yellow"};

function muell(){  

// Kalender auslesen (HTML Format)

    // **************************************************************************************            
    // Termine auswerten aus html. Bereinigung der HTML Tags und Konvertierung in Plain Text
    // **************************************************************************************
    
        var inhalt = getState("ical.2.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(/<br>/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(/&nbsp;/gi," ");
        inhaltStringReplace=inhaltStringReplace.replace(/&amp;/gi,"&");
        inhaltStringReplace=inhaltStringReplace.replace(/&quot;/gi,'"');
        inhaltStringReplace=inhaltStringReplace.replace(/&lt;/gi,'<');
        inhaltStringReplace=inhaltStringReplace.replace(/&gt;/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();
}

// Wochentage auf deutsch
var wochentag = ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag' ];        
        
// json starten

var muellJason = "[";

// Schleife zur abarbeitung des Arrays

Object.keys(obj).forEach (function (val, key) {
   
// "," zur Trennung der Daten im json. Sollte nur eine Müllart angegeben sein, dann die nächsten drei Zewilen auskommentieren

if (key > 0) {
   muellJason += ",";  
}

// Zuweisung der Farbe für das MüllIcon

var iconColor = obj[val];

var muellIcon = "<svg class='icon dustbin "+iconColor+"' data-txt='dustbin@"+iconColor+"' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:cc='http://creativecommons.org/ns#' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' version='1.0' width='35' height='35' viewBox='0 0 468 468' id='svg2996'>   <defs id='defs3012'></defs>   <metadata id='metadata2998'> Created by potrace 1.8, written by Peter Selinger 2001-2007 <rdf:rdf>   <cc:work rdf:about=''>     <dc:format>image/svg+xml</dc:format>     <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'></dc:type>     <dc:title></dc:title>   </cc:work> </rdf:rdf> </metadata>   <g id='g4034'>     <path d='m 164.4375,33.5 -0.65625,0.5 c -11.90412,10.555196 -23.8852,21.057535 -35.5625,31.84375 l -42.96875,0 0,45.03125 32.53125,0 c 13.22891,144.12046 25.89883,288.31731 39.46875,432.40625 9.69723,-1.98889 14.32028,1.0964 11.875,11.25 -0.0426,5.85383 15.04324,3.26475 18.03125,1.90625 -1.00901,-8.73036 -0.93648,-16.37136 10,-13.15625 l 160.59375,0 c 11.75,21.80169 42.56231,29.31009 62.96875,15.375 21.08406,-12.69988 27.25053,-43.85545 12.3125,-63.5625 -4.86724,-6.92593 -11.82906,-12.31065 -19.625,-15.53125 C 424.62583,361.71176 435.86015,243.85237 447.0625,126 c 17.64215,-13.78222 35.02804,-27.886275 52.53125,-41.84375 2.89271,-4.893749 0.4348,-15.122493 1.25,-22.09375 C 499.08199,57.205782 490.09686,53.870651 485.5,49.25 477.99288,43.982667 470.74179,37.617596 462.6875,33.5 l -298.25,0 z m 4.875,9.84375 291.71875,0 29.25,21.71875 c 0.0119,0.927631 0.0533,1.871122 0.0937,2.8125 0.97639,2.449641 0.85027,5.167262 -0.0625,7.65625 -0.008,0.02111 -0.0234,0.04143 -0.0312,0.0625 -0.51888,3.777511 -2.14687,7.029761 -6.8125,8.8125 l -35.125,28.03125 c 1.46565,-4.97558 -1.85222,-15.895744 6.6875,-12.4375 5.5213,1.58262 12.19009,-2.324505 10.0625,-8.84375 l 0,-25.3125 -322.0625,0 c 8.86915,-7.223116 16.87852,-16.668979 26.28125,-22.5 z m -74.21875,32.34375 360.125,0 c 0.0306,7.712935 2.54733,17.927536 -8.75,14.3125 -94.29274,0.208114 -188.73115,-0.555861 -282.9375,0.40625 -10.1217,4.75269 -19.48313,13.27115 -31.6875,10.625 l -36.75,0 0,-25.34375 z m 76.21875,23.90625 c 89.41386,0.54853 178.87681,0.09252 268.3125,0.25 l -35.90625,377.0625 c -25.33113,-4.95041 -51.26051,16.10244 -51.8125,41.84375 -0.25348,4.95829 0.29336,9.94215 1.65625,14.6875 l -187.4375,0 C 153.39299,392.565 140.43379,251.46157 127.84375,110.71875 c 9.78849,0.51047 20.51309,1.63486 28.59375,-5.03125 4.67542,-2.69526 9.40925,-5.82151 14.875,-6.09375 z m 225.46875,394.1875 c 18.62221,-0.69263 32.74554,20.5547 24.875,37.5625 -6.27158,16.68124 -30.29909,21.99414 -43.03125,9.46875 -14.14991,-11.79435 -10.47964,-37.066 6.34375,-44.3125 3.56947,-1.79753 7.71804,-2.66409 11.8125,-2.71875 z m 0.90625,4.09375 c -0.57219,-0.006 -1.13342,-0.007 -1.71875,0.0312 -16.41246,0.0663 -27.63561,20.14594 -19.1875,34.15625 7.29551,15.03871 30.88174,16.07631 39.53125,1.78125 10.30823,-14.81695 -0.88704,-35.79663 -18.625,-35.96875 z' transform='scale(0.8,0.8)' id='rect3852' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:"+iconColor+";fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'></path>     <path d='m 187.04414,86.30422 c 0,9.25 0,18.5 0,27.75 8.8657,2.63653 8.20074,-4.2576 7.6875,-11 -0.88762,-6.981373 -0.63624,-12.823742 8,-10.28125 20.07292,0 40.14583,0 60.21875,0 0,7.09375 0,14.1875 0,21.28125 8.85532,2.63657 8.1552,-4.2823 7.65625,-11 0,-6.25 0,-12.5 0,-18.75 -27.85417,0 -55.70833,0 -83.5625,0 l 0,1 0,1 z' id='rect3774' style='fill:"+iconColor+";stroke:none'></path>     <path d='m 246.10957,299.44346 c -1.20162,-1.79184 -13.13138,-21.89781 -13.13138,-22.13113 0,-0.35582 13.19507,-22.47629 13.40732,-22.47629 0.0834,0 0.15176,1.8904 0.15176,4.20087 0,3.3822 0.0542,4.24584 0.27806,4.43164 0.20925,0.17367 3.98995,0.2127 15.27853,0.15776 16.67177,-0.0812 16.14352,-0.0414 19.20743,-1.44518 0.8007,-0.36686 1.48668,-0.63616 1.52438,-0.59845 0.0377,0.0376 -3.37966,6.0737 -7.59414,13.41331 -8.38933,14.61019 -8.4627,14.71679 -10.76008,15.63297 -1.10265,0.43974 -1.35427,0.45449 -9.48432,0.55557 l -8.35161,0.10384 -0.0983,4.32318 c -0.0938,4.12593 -0.11328,4.30077 -0.4277,3.83191 z M 199.67,291.00079 c -4.86935,-0.56611 -9.27834,-4.18932 -10.83763,-8.90616 -0.44559,-1.34793 -0.53544,-1.97083 -0.54455,-3.77582 -0.0116,-2.29823 0.2835,-3.7894 1.19284,-6.02732 0.46366,-1.14109 3.87189,-7.36721 4.63457,-8.46641 l 0.37581,-0.54163 14.87125,0.0503 14.87127,0.0505 0,13.85387 0,13.85384 -11.69225,0.023 c -6.43074,0.0126 -12.22283,-0.0387 -12.87131,-0.11407 z m -23.07415,-26.65794 c -4.26057,-7.32993 -7.85812,-13.68348 -7.99458,-14.11897 -0.13644,-0.43549 -0.26416,-0.65918 -0.28383,-0.49707 -0.0196,0.16213 -0.10891,-0.059 -0.19835,-0.49126 -0.15929,-0.76999 -0.0105,-3.00897 0.16506,-2.48491 0.049,0.14642 0.2357,-0.16309 0.41472,-0.68778 0.17905,-0.52469 2.07284,-4.01176 4.20845,-7.74905 2.16788,-3.79378 3.8342,-6.91841 3.77264,-7.07431 -0.0607,-0.15358 -1.69732,-1.16352 -3.63704,-2.24431 -1.93972,-1.08081 -3.52906,-2.01786 -3.53187,-2.08233 -0.006,-0.14378 6.57047,-0.32902 17.79578,-0.50119 l 8.46674,-0.12987 6.34867,11.43236 c 3.49178,6.28779 6.29992,11.48113 6.24029,11.54073 -0.0595,0.0596 -1.75689,-0.84191 -3.77175,-2.0034 -3.60051,-2.07556 -3.66963,-2.10532 -4.02824,-1.73419 -0.55658,0.576 -13.94131,23.77568 -14.57267,25.25872 -0.72354,1.69955 -1.30968,3.87178 -1.49707,5.54808 l -0.15045,1.34592 -7.7465,-13.32717 z m 89.07588,-4.62263 c -0.0943,-0.14587 -3.45377,-5.92489 -7.46554,-12.84227 -5.41735,-9.34093 -7.23758,-12.63501 -7.07431,-12.80239 0.32833,-0.33656 23.31915,-13.43198 23.58171,-13.43198 0.12427,0 2.80048,4.44354 5.94713,9.87454 6.55474,11.31331 6.28956,10.82629 6.84861,12.57752 0.23306,0.73009 0.47242,1.27876 0.53191,1.21928 0.0595,-0.0595 0.17091,0.47802 0.24763,1.19443 0.15098,1.40997 -0.0334,3.68719 -0.28604,3.53111 -0.0857,-0.0529 -0.21682,0.23461 -0.29152,0.63896 -0.20892,1.13073 -1.51188,3.74177 -2.5523,5.11465 -1.72548,2.27683 -4.04472,3.812 -6.95568,4.60419 -1.30162,0.35423 -2.22633,0.42067 -6.9311,0.49796 -4.41554,0.0725 -5.4611,0.0397 -5.6005,-0.176 z m -65.31395,-41.16649 c -6.43074,-3.73488 -11.79495,-6.89275 -11.92048,-7.01749 -0.17303,-0.17195 1.23227,-2.74644 5.80886,-10.64177 5.70419,-9.84062 6.1237,-10.50386 7.60749,-12.02734 1.69965,-1.74509 3.33189,-2.69357 5.66885,-3.29412 1.5163,-0.38964 4.92245,-0.38707 6.59088,0.005 2.75547,0.6475 5.41411,2.44797 7.33993,4.97072 1.44033,1.88674 5.4911,8.82551 5.38626,9.22639 -0.0949,0.3629 -14.05668,24.59974 -14.5365,25.23452 -0.22908,0.30307 -1.35989,-0.30809 -11.94529,-6.45591 z m 42.05556,0.69155 c -5.0242,-0.0857 -9.39897,-0.18194 -9.7217,-0.2139 -0.50316,-0.0498 -0.0694,-0.35226 3.04313,-2.12147 3.19994,-1.81891 3.62944,-2.12152 3.62568,-2.55461 -0.004,-0.48586 -12.4336,-22.33433 -14.25345,-25.05483 -1.51468,-2.26428 -4.79833,-5.20178 -5.82449,-5.21048 -0.19508,-0.002 -0.48732,-0.0888 -0.64944,-0.1935 -0.35402,-0.22879 30.37826,-0.23669 32.03088,-0.008 0.59443,0.0822 0.94816,0.16475 0.78603,0.18349 -0.16212,0.0187 0.16507,0.19299 0.72711,0.38718 1.41989,0.49063 2.52157,1.30409 3.21461,2.37365 0.32406,0.5001 2.2456,3.7269 4.27007,7.17065 2.02447,3.44374 3.81896,6.34847 3.98778,6.45495 0.23503,0.14827 1.10892,-0.2796 3.73171,-1.82705 1.88363,-1.11135 3.50616,-2.06607 3.60559,-2.1216 0.34795,-0.19432 -0.14612,0.72795 -6.3232,11.80315 l -6.21981,11.15185 -3.4478,-0.0317 c -1.8963,-0.0174 -7.55851,-0.10189 -12.5827,-0.18752 z' id='path3042-4-0' style='fill:"+iconColor+"'></path>     <path d='m 379.767,65.367302 c -2.27366,-0.78034 -4.41606,-2.93783 -4.76517,-4.79874 -0.71345,-3.803 0.7568,-7.29316 3.71819,-8.82643 3.16358,-1.63796 7.60799,-0.409 9.60852,2.65692 1.81887,2.78753 1.47864,5.94628 -0.93596,8.68941 -2.3772,2.70063 -4.52579,3.34272 -7.62558,2.27884 z' id='path4011' style='fill:"+iconColor+";fill-opacity:1;stroke:none'></path>   </g> </svg>";

// Position bestimmen

var pos = inhaltStringReplace.indexOf( val, 1);                    
if(debug) log("pos ist: "+pos);

var inhaltStringText = inhaltStringReplace.substring((pos-13),pos-3); 
if(debug) log("Datum ist: "+inhaltStringText);


nthIndex(inhaltStringText, ".", 1);
var t_m = inhaltStringText.slice(0, i_search);
var pos1 = i_search+1;
if(debug) log("pos1: " +pos1 );

nthIndex(inhaltStringText, ".", 2);
var m_m = inhaltStringText.slice(pos1, i_search);
var pos2 = i_search+1;
if(debug) log("pos2: " +pos2 );


var j_m = inhaltStringText.slice(pos2, inhaltStringText.len );

// Datum des Abholtages setzen um den Wochentag zu ermitteln
var muelldate = new Date(j_m,m_m-1,t_m);

// Hier kommt der Wochentag :-)

var d = muelldate.getDay();

if(debug) log("Mülldate ist: "+wochentag[d]+", "+muelldate );
if(debug) log("Mülltag ist: "+t_m +" , " +m_m +" , " +j_m);




// Datum heute ermitteln

var today = new Date();
if(debug) log(today);

    //Tag ermitteln
        var t = today.getDate();
        
    // Wochentag ermitteln zum testen
        var dd = today.getDay();

    //Monat ermitteln

        var m = today.getMonth()+1;

    //Jahr ermitteln
        var j = today.getFullYear();
        
        if(debug) log("Datum heute ist: "+wochentag[dd]+", "+t+m+j);
        
        
        
// Berechnung Tagesdifferenzen

var diff = 0;
var tage = "";
var dim = DaysInMonth(m, j);  // Tage des aktuellen Monats
if(debug) 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);
          
        if(!isNaN(diff)){ 
                tage = diff }
            else {
                tage = "Heute";
            }
          
muellJason += "{\"Müllart\":\" "+val+"\",\"Tage\":\""+tage+"\"}";                 //  PASS DIR AN WIE DU WILLST:   \"Ereignis\":\""+muellIcon+"\", \"Tag\":\""+wochentag[d]+"\",\"Datum\":\""+inhaltStringText+"\",
 
 });                // Ende forEach

// json schließen

muellJason += "]";

// und hier nun die Werte eintragen

setState('javascript.0.muell.json', muellJason);    

log("Müllkalender aktualisiert!");

}

schedule('30 5 * * *', function(){              // morgens um 5.30h wird aktualisiert
       
        muell();
    
});           

// bei Start

muell();

In Zeile 102 bei diesem Abschnitt:

var inhaltStringText = inhaltStringReplace.substring((pos-13),pos-3);

wirst du ggf anpassen müssen, ich habs kurz überflogen, mach mal aus pos-13 bitte pos-22 zum testen und poste dnan hier die Logs
Hier eine kleine Ergänzung, weil auch ich Anpassungsprobleme mit dem Skript hatte.
Wir haben als Müllabfuhrunternehmen die Firma Schönmackers. Diese exportiert auf Wunsch mit ihrer APP "MüllALARM" die Abholtermine auch in einen Google-Kalender.
Hier besteht jedoch das Problem, dass hinter dem Datum noch die Uhrzeit "00:00" übertragen wird.

Daher muss im o.a. Skript in der Zeile, in welcher der Code

Code: Alles auswählen

var inhaltStringText = inhaltStringReplace.substring((pos-13),pos-3);
steht durch den Code

Code: Alles auswählen

var inhaltStringText = inhaltStringReplace.substring((pos-17), pos-7);
Auch in den anderen hier aufgeführten Varianten kann durch das Austauschen der 13 in eine 17 und der in der gleichen Zeile befindlichen 1 oder 3

Code: Alles auswählen

var inhaltStringText = inhaltStringReplace.substring((pos-13),pos-3);
in eine 7 das Schönmackers-Problem aufgelöst werden.

tempestas
guru
Beiträge: 1058
Registriert: 17.03.2017, 19:34
Wohnort: ~100km vom Holy Ground

Re: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

Beitrag von tempestas » 06.10.2018, 07:23

bumbumb hat geschrieben:
12.09.2018, 20:51
Hallo,
ich verwende dieses Scipt.

Der Kalender zeigt mir auch diese Werte als HTML an:
Heute Wertstoffhof geöffnet
Heute Biotonne
Morgen Wertstoffhof geöffnet
Übermorgen Papiertonne
In 5 Tagen Wertstoffhof geöffnet
In einer Woche Wertstofftonne
In einer Woche Wertstoffhoff geöffnet


aber wie bekomme ich jetzt die Einzelnen Tage bis zur abholung daraus.
Du musst den Kalender natürlich so umstellen in der ical Instanz, dass die Daten angezeigt werden. Nicht "Klartext"
ioBroker | 19 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Sonos | Instar Cam | Fire HDX 7 | 3x Echo dot | Neato Botvac D5

Antworten