Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. blaubaer78

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    B
    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 4
    • Best 0
    • Groups 1

    blaubaer78

    @blaubaer78

    0
    Reputation
    10
    Profile views
    4
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    blaubaer78 Follow
    Starter

    Latest posts made by blaubaer78

    • RE: ERR_REQUIRE_ESM digest-fetch Fehler

      @max789 Ich nutze das Script auch seit längerem und habe aktuell das gleiche Problem.
      Leider funktionieren bei mir alle Lösungsansetze nicht.
      Könntest du deine Lösung evtl. etwas detaillierter beschreiben?

      posted in JavaScript
      B
      blaubaer78
    • RE: Kaufempfehlung IP Kamera

      Guten Morgen,

      ich würde das Thema nochmal hoch holen, da ich gerade vor derselben Entscheidung stehe.

      Vielleicht hat ja jemand einen Tip 😄 ?!

      Vielen Dank!

      posted in Hardware
      B
      blaubaer78
    • RE: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

      Super, genau das war es 😄 !

      Vielen Dank!

      posted in Skripten / Logik
      B
      blaubaer78
    • RE: [gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden

      Hallo,

      ich bin noch relativ neu im Thema iobroker und habe nun auch mal versucht einen Müllkalender in VIS einzubinden.

      Dazu habe ich folgendes Skript verwendet (Vielen Dank dafür!!):

      // 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.
      // Ursprung: tempestas
      // Erweiterung: PicNic
      
      //debug in Log ausgeben
      debug = true;
      
      // "Heute" und "Morgen" statt wochentag ausgeben
      todaytomorrow = 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 = { "Restmüll": "black", "Altpapier": "lightblue", "GelberSack": "yellow", "BioTonne": "brown"};
      
      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(/
      /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,'>');
      
              //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();/wochentage/auf/deutsch/var/wochentag="['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'" ];/json/starten/muelljason="[" ;/schleife/zur/abarbeitung/des/arrays/object.keys(obj).foreach/(function/(val,/key)/","/trennung/der/daten/json./sollte/nur/eine/müllart/angegeben/sein,/dann/die/nächsten/drei/zewilen/auskommentieren/today="new" date();/(key="">0) {
      	muellJason += ",";  
      }
      
      var result = inhaltStringReplace.search (/→/gi);
      if(debug) log("Suchergebnis ist: "+result);
      
      var inhaltStringReplaceNeu
      if (result >= 0) {
      	inhaltStringReplaceNeu=inhaltStringReplace.replace(/→/gi,''); 
      	var muelltoday = 1;
      }
      else inhaltStringReplaceNeu=inhaltStringReplace;
      
      if(debug) log("Müll heute?: "+muelltoday);
      
      // Zuweisung der Farbe für das MüllIcon
      
      var iconColor = obj[val];
      
      var muellIcon = " <svg class="icon dustbin &quot;+iconColor+&quot;" data-txt="dustbin@&quot;+iconColor+&quot;" 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="25" height="25" viewBox="0 0 468 468" id="svg2996"><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>             </cc:work> </rdf:rdf> </metadata></svg> ";
      
      // Position bestimmen
      
      var pos = inhaltStringReplaceNeu.indexOf( val, 1);                    
      if(debug) log("pos ist: "+pos);
      
      var inhaltStringText = inhaltStringReplaceNeu.substring((pos-13),pos-1); 
      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 );
      
      if ((muelltoday == 1) && (pos < 25)) {
          t_m = t_m-1;
      }
      
      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();
      var muelldaydate = t_m +"." +m_m +"." +j_m;
      
      if(debug) log("Mülldate ist: "+wochentag[d]+", "+muelldate );
      if(debug) log("Mülltag ist: "+t_m +" , " +m_m +" , " +j_m);
      
      // Datum heute ermitteln
      
      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);
      
      var muelltagout = wochentag[d];
      
      if (todaytomorrow) {
          if (t==t_m) {
              muelltagout = "Heute";
          }
          if (t==t_m-1) {
              muelltagout = "Morgen";
          }
      }
      
      // Berechnung Tagesdifferenzen
      
      var diff = 0;
      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);
      
      muellJason += "{\"Tag\":\""+muelltagout+"\",\"Datum\":\""+muelldaydate+"\",\"Ereignis\":\""+muellIcon+" "+val+"\",\"Tage\":\""+diff+"\"}";          
      
       });
      
      // json schließen
      
      muellJason += "]";
      
      // und hier nun die Werte eintragen
      
      setState('javascript.0.muell.json', muellJason); 
      
      log("Müllkalender aktualisiert!");
      
      }
      
      schedule("5 0 * * *", function(){ muell()});
      
      // bei Start
      
      muell();</l){></br\></br\s\></style.*></script.*> 
      

      Allerdings wird die Tabelle im VIS so wie auf dem Bild zu sehen dargestellt.

      Kann mir evtl. jemand sagen, wie ich das optisch vernünftig ausgerichtet bekomme?

      Vielen Dank!!
      9138_unbenannt.png

      posted in Skripten / Logik
      B
      blaubaer78
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo