Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst] Unifi Voucher

    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

    [Gelöst] Unifi Voucher

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

      @liv-in-sky Schon mal Danke für deine Hilfe 😊

      Also der Counter funktioniert wunderbar. Keine Voucher = 0; 1 Voucher = 1; usw.
      Der zählt wunderbar rauf und runter.
      Was nicht geht is das wenn ein Voucher vorhanden ist der Datenpunkt Name mit dem Vouchercode in den Datenpunkt Rohdaten geschrieben wird.

      Ich habe bereits die Instanz neu gestartet, das Script gelöscht, den Raspi samz ioBroker neugestartet. Funzt aber nicht mehr 😥

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

        @draexler

        siehe mal im chat

        ansonsten: in der function wird der voucher code selbst nicht abgefragt - nur die id des datenpunktes und das erstelldatum - könnte man aber dazufügen

        soweit ich das erkenne, wird im unterem blockly der dp rohdaten zerlegt - darin ist aber, wie erwähnt, der vouchercode nicht enthalten - den müßtest du extra ergänzen in der function

        Image 014.png

        beim zerlegen des return-wertes, also den rohdaten würde ich dann eine liste erzeugen und darin das 2te element nehmen - ungfähr so:

        Image 015.png

        das sollte dann der voucher code sein !!!

        das erste element ist die id (namen) des vouchers

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

          @liv-in-sky Wegen Chat...Komme ich gerne darauf zurück, bin nur die ganze Zeit sehr sporadisch vor dem Bildschirm.

          Ich bin jetzt auf jeden Fall einen Schritt weiter.
          Aber... Lasse ich ein einfaches Debug Log laufen sehe ich in dem Logs wunderbar das die Voucherdaten geliefert werden.
          Bildschirmfoto 2022-08-13 um 15.06.48.png
          Bildschirmfoto 2022-08-13 um 15.08.36.png
          Wobei ich mich frage sollte dann eigentlich dann nicht mehr die "0" geliefert werden solange ein Voucher existiert?

          Wenn ich jetzt aber diesen Wert mit diesen Blockly weiterverarbeiten will:
          Bildschirmfoto 2022-08-13 um 15.12.32.png
          wird in den „Rohdaten“ Datenpunkt immer nur die "0" geschrieben (sollte es tatsächlich die 0 sein, schreibt es wie gewünscht "NULL"

          Bildschirmfoto 2022-08-13 um 15.09.34.png

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

            @draexler weiß nicht, ob ich das alles richtig verstehe

            entweder stimmt die falls abfrage nicht und es kommt immer "0" zurück

            falls wert von UNIFI.Voucherueberwachung = 0 kannste mal auf = "0" - also einen string vergleichen, nicht eine zahl - evtl ist da was falsch

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

              @liv-in-sky sorry wenn es kompliziert ist.

              Also ich will das in den „Rohdaten“ Datenpunkt der Return Wert deines „Abfrage“
              scripts eingetragen wird.
              Aber mein Blockly trägt immer „0“ ein. Außer der Return Wert deines „Abfrage“
              Scripts ist „0“ dann schreibt er „NULL“ gemäß des Blocklys.

              Ich hoffe das war verständlicher 😊

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

                @draexler ich glaube, das habe ich soweit verstanden - daher die falls abfrage ändern. die function gibt immer einen string zurück, du fragst aber eine zahl in der 2ten if abfrage ab- daher meine idee, dass mal zu ändern

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

                  @liv-in-sky Sicher das immer ein String zurückgeliefert wird?
                  Ich habe den Datenpunkt mal auf Zahl geändert und habe nun das im Log:

                  State value to set for "0_userdata.0.VIS_Datenpunkte.UNIFI.Voucherueberwachung" has to be type "string" but received type "number"
                  
                  liv-in-sky 1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @draexler last edited by

                    @draexler ok - das sollte dann schon stimmen - habe ich mich geirrt

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

                      @liv-in-sky Habe jetzt mal wieder ein bisschen getestet. Aber keine Chance. Er schreibt mir immer wieder nur die "0" als Return Wert.

                      Ich habe jetzt mal unter dem Blockly ein Debug Output eingebaut:
                      Bildschirmfoto 2022-08-14 um 00.47.00.png

                      Man sieht also das das wenn der Return Wert der "Abfrage" ungleich "0" er die korrekte if Abfrage nimmt. Er schreibt aber trotzdem nur eine "0" ins Log.

                      Bildschirmfoto 2022-08-14 um 00.52.01.png

                      Lasse ich wie schon mal geschrieben vollkommen losgelöst einen Debug Output Trigger lassen schreibt er den gewünschten Wert
                      Bildschirmfoto 2022-08-14 um 00.58.15.png Bildschirmfoto 2022-08-14 um 00.57.22.png

                      Ich bin ratlos....

                      Hier nochmal das Abfrage Skript:

                        const dpPrefix = "0_userdata.0.VIS_Datenpunkte.";
                        let arrTrigger=[];
                        let count=0
                      
                       let alterWert=getState(dpPrefix+"UNIFI.Voucherueberwachung").val
                        $('unifi.0.default.vouchers.*.create_time').each(function(id, i) {
                            if(!id.includes("voucher_.create")){  
                              count++  
                      
                            let erstellt=getState(id).val
                           arrTrigger.push([new Date(erstellt).getTime(),id,getState(id.replace("create_time","code")).val])
                      
                        }
                              });
                          
                              setState(dpPrefix+"UNIFI.Voucherueberwachung",count)
                      
                      
                      arrTrigger.sort(function (alpha, beta) {
                                   
                                    return  beta[0]- alpha[0];
                                   });
                                   
                          if  (alterWert<count) {return arrTrigger[0][1]+","+arrTrigger[0][2]; } else { return "0";} 
                          alterWert=count  
                      

                      Vielleicht ist hier ja doch ein Fehler drin 😞

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

                        @draexler
                        du rufst die function öfter mal in einem if block auf - versuche mal eine neue variable zu erstellen und rufe dort die function auf - im if-block nutzt du dann die neue variable, anstatt immer wieder die function aufzurufen.

                        die function setzt bei einmaligen durchlaufen einen wert und merkt sich den für den nächstan aufruf - das könnte evtl das seltsame verhalten zeigen

                        hier ein beispiel:
                        Image 018.png

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

                          @liv-in-sky Das war es! Super Danke dir 🙂

                          Jetzt bastel ich mal weiter.

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

                            @draexler dann noch viel spaß beim "coden"

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            965
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

                            2
                            15
                            463
                            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