NEWS
Unifi-Vouchers via Telg. WWW-Zeit Zuweisung
-
@saeft_2003 was sind deine 2 scripte
es geht nur um ein script - das unifi script läuft und wird nicht beeinflußt
was ist dein hauptscript ? was das nebenscript ?
-
hautskript unifi skript
nebenskript dein voucher skript
Wenn ich das voucher skript starte, dauert es kurz und dann kommen im log vom unifi skript Fehler, gleichzeitig verfärbt sich das Playzeichen zum starten vom voucher skript von grün auf gelb.
-
ja aber die fehlerquelle ist nicht das unifi script, auch wenn es dort seltsamerweise die fehler anzeigt - am besten neustart javascript instanzen und vorher das neue voucher script stoppen und die beiden datenpunkte nochmal löschen - das unifi script so lassen wie es ist - nach dem instanz-neustart das neue voucher script wieder starten
und heute geht nix mehr - lieber morgen weitermachen
-
Alles klar ich versuchs morgen abend wieder. Erstmal vielen Dank soweit und gute Nacht...
p.s. bitte sag mir bei Gelegenheit noch kurz welche beide datenpunkte genau ich löschen soll
-
@saeft_2003 die unter javascript.x.voucherkinder - das unifi script läuft und sollte in ruhe gelassen werden- außer die standard vouchers - die wurden da eingegeben
du kannst noch kontrolliern, ob im unifi script die datenpunkte für die jetztigen vouchers gefüllt sind
dir auch eine gute nacht - bis bald
-
Moin ich hab das gemacht was du gesagt hast und die gleichen fehler kommen wieder im unifi skript. Hast du noch eine Idee?
-
@saeft_2003 anydesk ? - ich bin gerade am testen - und es sind keine fehler bei mir
-
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);
-
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] )
-
@saeft_2003
wie melde ich mich bei deinem bot an - zum test bzw du bei meinem -
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?
-
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 -
Super vielen Dank werde ich heute Abend testen
-
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?
-
@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
-
OK das wäre super
-
@saeft_2003 nur schnell gemacht - geht das
-
Jo jetzt passts