Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Unifi-Vouchers via Telg. WWW-Zeit Zuweisung

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Unifi-Vouchers via Telg. WWW-Zeit Zuweisung

Geplant Angeheftet Gesperrt Verschoben JavaScript
templatejavascript
28 Beiträge 2 Kommentatoren 1.5k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • liv-in-skyL liv-in-sky

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

    S Offline
    S Offline
    saeft_2003
    Most Active
    schrieb am zuletzt editiert von
    #18

    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 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      saeft_2003
      Most Active
      schrieb am zuletzt editiert von
      #19

      @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-skyL 1 Antwort Letzte Antwort
      0
      • S saeft_2003

        @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-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von liv-in-sky
        #20

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

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        S 1 Antwort Letzte Antwort
        0
        • liv-in-skyL liv-in-sky

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

          S Offline
          S Offline
          saeft_2003
          Most Active
          schrieb am zuletzt editiert von
          #21

          @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-skyL 1 Antwort Letzte Antwort
          0
          • S saeft_2003

            @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-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            schrieb am zuletzt editiert von
            #22

            @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

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            S 2 Antworten Letzte Antwort
            1
            • liv-in-skyL liv-in-sky

              @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 Offline
              S Offline
              saeft_2003
              Most Active
              schrieb am zuletzt editiert von
              #23

              @liv-in-sky

              Super vielen Dank werde ich heute Abend testen 😊👍

              1 Antwort Letzte Antwort
              0
              • liv-in-skyL liv-in-sky

                @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 Offline
                S Offline
                saeft_2003
                Most Active
                schrieb am zuletzt editiert von
                #24

                @liv-in-sky

                Also... die Grundfunktion geht :+1: 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-skyL 1 Antwort Letzte Antwort
                0
                • S saeft_2003

                  @liv-in-sky

                  Also... die Grundfunktion geht :+1: 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-skyL Offline
                  liv-in-skyL Offline
                  liv-in-sky
                  schrieb am zuletzt editiert von
                  #25

                  @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

                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                  S 1 Antwort Letzte Antwort
                  0
                  • liv-in-skyL liv-in-sky

                    @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 Offline
                    S Offline
                    saeft_2003
                    Most Active
                    schrieb am zuletzt editiert von
                    #26

                    @liv-in-sky

                    OK das wäre super

                    liv-in-skyL 1 Antwort Letzte Antwort
                    0
                    • S saeft_2003

                      @liv-in-sky

                      OK das wäre super

                      liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      schrieb am zuletzt editiert von
                      #27

                      @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);
                      
                      
                      
                      

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      S 1 Antwort Letzte Antwort
                      0
                      • liv-in-skyL liv-in-sky

                        @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 Offline
                        S Offline
                        saeft_2003
                        Most Active
                        schrieb am zuletzt editiert von
                        #28

                        @liv-in-sky

                        Jo jetzt passts :blush:

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        519

                        Online

                        32.4k

                        Benutzer

                        81.5k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe