Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Unifi-Vouchers via Telg. WWW-Zeit Zuweisung

    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

    Unifi-Vouchers via Telg. WWW-Zeit Zuweisung

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      saeft_2003 Most Active @liv-in-sky last edited by

      @liv-in-sky

      Moin ich hab das gemacht was du gesagt hast und die gleichen fehler kommen wieder im unifi skript. Hast du noch eine Idee?

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

        @saeft_2003 anydesk ? - ich bin gerade am testen - und es sind keine fehler bei mir

        S 1 Reply Last reply Reply Quote 1
        • S
          saeft_2003 Most Active @liv-in-sky last edited by

          liv-in-sky hat gerade bei mir das skript angepasst. Es läuft nun und ich kann es nur jedem empfehlen der sowas in der Art machen will wie ich bzw. voucher nach dem Erstellen per telegram verschicken will. Noch mal vielen dank an @liv-in-sky

          Hier das akutelle skript:

          const dpPrefix = "javascript."+ instance +".";
          const dpPrefixjava = "javascript.0.";
          const telegramInstanz="telegram.0"
          
          //javascript.2.WLANUnifi.Wifi_Vouchers-CODES.CODE01.notiz
          //createState("VoucherKinder.ArrayAlt"  ,["xxx"], { name: 'VoucherKinder',  type: 'array', read:  true,  write: true,});
          createState("VoucherKinder.ArrayAlt2"  ,"yyy", { name: 'VoucherKinder',  type: 'string', read:  true,  write: true,});
          createState("VoucherKinder.LastSend"  , { name: 'LastSend',  type: 'string', read:  true,  write: true,});
          //log("vor unterkringelt" + instance);
          
          var timeout = setTimeout(function () { 
             // setState(dpPrefix+"VoucherKinder.ArrayAlt",["xxx"]);
          var arrTrigger=[];
          //var arrTriggerAlt=getState(dpPrefix+"VoucherKinder.ArrayAlt").val;
          var arrTriggerAlt=getState(dpPrefix+"VoucherKinder.ArrayAlt").val.split(",");
          var telegramAdresse="";
          
          var mySchedule=" */30  * * * * *";
          
          schedule(mySchedule,  function () {
            arrTrigger=[];
            
           // log("starte");
           $(dpPrefixjava+'WLANUnifi.Wifi_Vouchers-CODES.*.notiz').each(function(id, i) {         
           var ddd=id.replace("notiz","erstellt")
                  var timeRechner=getState(ddd).val
          
                var ida = id.split('.');
                
               telegramAdresse=getState(id).val;// log (telegramAdresse)
                 
              
                   var val0= id.replace("notiz",ida[4].toLowerCase())                                          
                    //  log(val0)
                  
                 timeRechner=  timeRechner.replace(/(\d\d).(\d\d).(\d\d\d\d) (\d\d):(\d\d)/,"$3-$2-$1T$4:$5:00.000Z")
          
                  if (getState(id).val != "na")   {arrTrigger.push([getState(val0).val,Date.parse(timeRechner).toString(),telegramAdresse]) ;
                
                
                //   log(Date.parse("2020-01-16T14:11:00.000Z").toString())
                  // log (getState(id.replace("notiz","erstellt")).val)
                  }       
                  });
          
             arrTrigger.sort(function (alpha, beta) {
                        if (alpha[1] > beta[1])
                           return 1;
                        if (beta[1] > alpha[1])
                           return -1;
                        return 0;
                       });
          
          
          //log ("neuesArray: "+arrTrigger.toString())
          //log ("altesArray: "+arrTriggerAlt.toString())
           // log(arrTrigger.length.toString() +" -- " +arrTriggerAlt.length.toString())
                if (arrTrigger.length > arrTriggerAlt.length-1)  {
                     arrTriggerAlt=["xxx"];
                     for (var i=0;i<arrTrigger.length;i++) {
                          arrTriggerAlt.push(arrTrigger[i]);
            //              setState(dpPrefix+"VoucherKinder.ArrayAlt",arrTriggerAlt);
                          setState(dpPrefix+"VoucherKinder.ArrayAlt2",arrTriggerAlt.toString());
                          }
                  
                   // log("DER NEUE VOUCHER: "+arrTrigger[arrTrigger.length-1][0])
                         sendTo(telegramInstanz, {
                       
                       text: "Dein neues Voucher: "+arrTrigger[arrTrigger.length-1][0],
                       type: 'text'
                       });
                       setState(dpPrefix+"VoucherKinder.LastSend",arrTrigger[arrTrigger.length-1][0]+" an: "+arrTrigger[arrTrigger.length-1][2] )
          
                  } else {
                       arrTriggerAlt=["na"];
                      for (var i=0;i<arrTrigger.length;i++) {
                          arrTriggerAlt.push(arrTrigger[i])
              //            setState(dpPrefix+"VoucherKinder.ArrayAlt",arrTriggerAlt);
                          setState(dpPrefix+"VoucherKinder.ArrayAlt2",arrTriggerAlt.toString())}
          
                  }
          
           });
          }, 2000);
          
          1 Reply Last reply Reply Quote 0
          • S
            saeft_2003 Most Active last edited by

            @liv-in-sky

            ich muss dich noch etwas zu dem skript fragen. Und zwar habe ich drei Kinder, dazu habe ich drei standard vouchers angelegt mit Kind1, Kind2 und Kind3.

            Jetzt hätte ich gerne wenn ein voucher fürs Kind1 erstellt wird das dann nur dieses den Code geschickt bekommt. Mit den User habe ich gerade getestet, sobald sich "jemand" an den bot anmeldet ist er ein user und man kann diesen im skript benennen. So funkionierts...

              sendTo(telegramInstanz, {
                         user: 'Patrick',
                         text: "Dein neues Voucher: "+arrTrigger[arrTrigger.length-1][0],
                         type: 'text'
                         });
                         setState(dpPrefix+"VoucherKinder.LastSend",arrTrigger[arrTrigger.length-1][0]+" an: "+arrTrigger[arrTrigger.length-1][2] )
            
            
            liv-in-sky 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @saeft_2003 last edited by liv-in-sky

              @saeft_2003
              wie melde ich mich bei deinem bot an - zum test bzw du bei meinem

              S 1 Reply Last reply Reply Quote 0
              • S
                saeft_2003 Most Active @liv-in-sky last edited by

                @liv-in-sky

                ich muss in telegram app nach deinen bot suchen der heißt xyz_bot dann starte ich diesen und werde nach einem passwort gefragt das du in der telegram instanz hinterlegt hast... schickst du mir dein passwort?

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

                  @saeft_2003

                  habe ein neues script im ersten post und eine beschreibung wie du die notiz gestalten mußt im unifiscript

                  in der notiz steht das aktivierungswort (www - kann geändert werden) und anschliessend ein bindestrich und der username

                  bevor du das neue script startest lösche die datenpunkte unter VoucherKinder
                  viel spaß beim testen

                  S 2 Replies Last reply Reply Quote 1
                  • S
                    saeft_2003 Most Active @liv-in-sky last edited by

                    @liv-in-sky

                    Super vielen Dank werde ich heute Abend testen 😊👍

                    1 Reply Last reply Reply Quote 0
                    • S
                      saeft_2003 Most Active @liv-in-sky last edited by

                      @liv-in-sky

                      Also... die Grundfunktion geht 👍 erstmal vielen Dank hierfür 🙂

                      Aber wenn ich statt www in der voucher Notiz z.B. voucher wähle (so hatte ich erst) dann geht es nicht. Ich hatte natürlich var aktWort="www" angepasst auf var aktWort="voucher". Weißt du an was das liegen könnte?

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

                        @saeft_2003 ja - da habe ich im script etwas vergessen - vielleicht kan ich das morgen ausbessern - hauptsache es geht mit www - das ist schon mal was

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          saeft_2003 Most Active @liv-in-sky last edited by

                          @liv-in-sky

                          OK das wäre super

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

                            @saeft_2003 nur schnell gemacht - geht das

                            const dpPrefix = "javascript."+ instance +".";
                            const dpPrefixjava = "javascript.2.";
                            const telegramInstanz="telegram.0"
                            var aktWort="www"
                            var mySchedule=" */20  * * * * *";
                            
                            
                            // AB HIER NICHTS MEHR ÄNDERN
                            
                            
                            var arrTrigger=[];
                            var telegramAdresse;
                            
                            
                            
                            
                            createState("VoucherKinder.ArrayAlt"  ,"yyy", { name: 'VoucherKinder',  type: 'string', read:  true,  write: true,});
                            createState("VoucherKinder.LastSend"  , "noch nix gesendet",{ name: 'LastSend',  type: 'string', read:  true,  write: true,});
                            
                            
                            var timeout = setTimeout(function () { 
                            var arrTriggerAlt=getState(dpPrefix+"VoucherKinder.ArrayAlt").val.split(",");
                            
                            
                            schedule(mySchedule,  function () {
                             arrTrigger=[];
                             
                            // log("starte");
                             $(dpPrefixjava+'WLANUnifi.Wifi_Vouchers-CODES.*.notiz').each(function(id, i) {         
                                   var ddd=id.replace("notiz","erstellt")
                                   var timeRechner=getState(ddd).val
                                   var ida = id.split('.');
                                   telegramAdresse=getState(id).val;// log (telegramAdresse)
                                   var val0= id.replace("notiz",ida[4].toLowerCase())                                          
                                   timeRechner=  timeRechner.replace(/(\d\d).(\d\d).(\d\d\d\d) (\d\d):(\d\d)/,"$3-$2-$1T$4:$5:00.000Z")
                            
                                   if (getState(id).val != "na")   {arrTrigger.push([getState(val0).val,Date.parse(timeRechner).toString(),telegramAdresse]) ;}
                             
                                   });
                            
                              arrTrigger.sort(function (alpha, beta) {
                                         if (alpha[1] > beta[1])
                                            return 1;
                                         if (beta[1] > alpha[1])
                                            return -1;
                                         return 0;
                                        });
                            
                            /*
                              log ("neuesArray: "+arrTrigger.toString())
                              log ("altesArray: "+arrTriggerAlt.toString())
                              log(arrTrigger.length.toString() +" -- " +arrTriggerAlt.length.toString())
                            */
                               if (arrTrigger.length > arrTriggerAlt.length-1)  {
                                      arrTriggerAlt=["xxx"];
                                      for (var i=0;i<arrTrigger.length;i++) {
                                           arrTriggerAlt.push(arrTrigger[i]);
                                           setState(dpPrefix+"VoucherKinder.ArrayAlt",arrTriggerAlt.toString());
                                           }
                                   
                                    // log("DER NEUE VOUCHER: "+arrTrigger[arrTrigger.length-1][0])
                                        if (arrTrigger[arrTrigger.length-1][2].includes(aktWort))   {
                                                           //log("username: "+arrTrigger[arrTrigger.length-1][2].replace(/www-(.+) \d+.+/,"$1"));
                                                           log("Versende Voucher an: "+arrTrigger[arrTrigger.length-1][2].replace(/.+-(.+) \d+.+/,"$1") +" mit Nachricht: "+
                                                                arrTrigger[arrTrigger.length-1][2].replace(/.+-.+ (\d+.+)/,"$1")+": "+arrTrigger[arrTrigger.length-1][0]);
                                                    sendTo(telegramInstanz, {
                                                                             user: arrTrigger[arrTrigger.length-1][2].replace(/.+-(.+) \d+.+/,"$1"),
                                                                             text: "Dein neues Voucher für "+arrTrigger[arrTrigger.length-1][2].replace(/.+-.+ (\d+.+)/,"$1")+": "+arrTrigger[arrTrigger.length-1][0],
                                                                             type: 'text'
                                                                              });
                                                    setState(dpPrefix+"VoucherKinder.LastSend",arrTrigger[arrTrigger.length-1][0]+" an: "+arrTrigger[arrTrigger.length-1][2] )
                                            }
                                   } else {
                                        arrTriggerAlt=["na"];
                                       for (var i=0;i<arrTrigger.length;i++) {
                                           arrTriggerAlt.push(arrTrigger[i])
                                           setState(dpPrefix+"VoucherKinder.ArrayAlt",arrTriggerAlt.toString())}
                            
                                   }
                            
                            });
                            }, 2000);
                            
                            
                            
                            

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              saeft_2003 Most Active @liv-in-sky last edited by

                              @liv-in-sky

                              Jo jetzt passts 😊

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              518
                              Online

                              31.9k
                              Users

                              80.1k
                              Topics

                              1.3m
                              Posts

                              javascript template
                              2
                              28
                              1211
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo