Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. trigger mit regex mit variablen

    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

    trigger mit regex mit variablen

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

      bräuchte etwas hilfe

      folgender code: ein trigger mit einem regex:

      
      var myreg= /^0_userdata\.0\.CONTROL-OWN\.AAATEST\.mehr\..*$/
      let idDatenpunktPrefix = '0_userdata.0';                                                            // '0_userdata.0' or 'javascript.x'
      let idDatenPunktStrukturPrefixS = `Withings.Test.Schlaf`;
      
      // Schlafdauer
      on({id: myreg}, function (obj) {          // Wird ausgeführt, sobald sich im letzten Ordner was ändert
      var value = obj.state.val;
        log(obj.id)
          let ida=obj.id.split('.');
          
          mySetState(`${idDatenpunktPrefix}.${idDatenPunktStrukturPrefixS}.${ida[ida.length-1]}`, value, 'boolean', ida[ida.length-1]); // Schreibt den Wert in einen Datenpunkt. Dieser muss für das Diagramm geloggt werden    
      });
      

      ich bräuchte aber ein regex, welches variable ist, da das "mehr" im regex variable sein soll- es sollte, jedesmal, wenn der trigger reagiert, auch der myreg angepaßt werden - es können neue ordner erscheinen und dann soll das ganze auf den neuen order (z.b. mehr1) angewandt werden - das herausfinden, ob ein neuer ordner da ist, ist hier nicht implementiert - soll aber die variable myreg im trigger anpassen

      geht sowas überhaupt ? und wie erzeuge ich eine regex , die variable ist

      O paul53 2 Replies Last reply Reply Quote 0
      • O
        Oli @liv-in-sky last edited by

        @liv-in-sky
        Da scheint jemand das halbe Forum in Beschlag zu nehmen.

        Bei mir funktioniert es so:
        https://forum.iobroker.net/topic/54601/withings-werte-korrekt-umrechnen/11

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

          @oli

          ja, macht er

          ich versuche gerade das script, das von dir geklaut ist 🙂 , für alle datenpunkte anzuwenden

          aber eigentlich ist das der job des adapter erstellers - diese serial-ordner sind sehrseltsam und braucht niemand - es scheint, das dieapi diesedaten automatisch holt, weil sie dort gespeichert sind - bei uns - iobroker - haben wir die history für sowas , man muss also keine alten daten in ordner unter dem adapter speichern

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

            @liv-in-sky

            Im den Adaptereinstellungen kannst du die Anzahl der Tage begrenzen, vielleicht sollte man mit diesen etwas spielen, In den Grundeinstellungen sind 30 Tage hinterlegt. Für jede Änderung, was innerhalb dieser 30 Tage stattfindet wir ein neuer Ordner angelegt.

            Außerdem, wenn sich ein Wert innerhalb des Ordners ändert, ändern sich alle, die darin enthalten sind

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

              @oli

              habe das ganze nicht bei mir installiert - daher kann ich nur nachsehen, wenn ich bei andy über anydesk online bin - wir habe heute mal alle datenpunkte gelöscht und neu anlegen lassen - dann gab es bis .. serials59

              aber ich wollte dich eh noch was fragen - dein script lädt den ordnerS namen nur beim start des scriptes - ich sehe nichts, was dann, wenn ein neuer ordner (z.b. serials60) erstellt wurde, den pfad ändert und die aktuellen daten ausliest und speichert - check ich da was nicht ?

              ich werd mich vielleicht nochmal an dich wenden, wenn ich wieder daran code, obwohl ich immer noch hoffe, dass dies mit dem instanzsetting einfacher werden sollte

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

                @liv-in-sky

                Das war nur schnell zusammen kopiert und als Denkanstoß gedacht.

                Mein Skript hat mittlerweile fast 4000 Zeilen.
                Hier mal ein paar Bilder meiner VIS

                https://forum.iobroker.net/topic/51104/test-withings-v0-0-x/281

                Mit Diagramme spiele ich momentan auch etwas ich glaube aber nicht, dass dies so richtig funktioniert.

                Selbst wenn man sich im Adapter nur einen Tag anzeigen lässt, funktioniert das ganze nur, wenn man kein Nickerchen macht, da er dann einen neuen Ordner anlegt und dann diese Daten mit geloggt werden. Da wüsste ich nicht, wie mann das abfangen soll.

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

                  @oli

                  4000 zeilen - nicht schlecht 🙂

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

                    @liv-in-sky

                    Da ich nicht der Skriptkönig bin, geht da bestimmt auch etliches einfacher, aber es funktioniert. Kann das ja mal posten, allerdings frühestens am Montag.

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

                      @liv-in-sky sagte: das "mehr" im regex variable sein soll

                      Ich würde den variablen Ordner innerhalb des Triggers auswerten. Etwa so:

                      let myreg= /^0_userdata\.0\.CONTROL-OWN\.AAATEST\..*/;
                      let path = '0_userdata.0.CONTROL-OWN.AAATEST.';
                      let ordner = 'mehr.';
                      let idDatenpunktPrefix = '0_userdata.0';                                                            // '0_userdata.0' or 'javascript.x'
                      let idDatenPunktStrukturPrefixS = `Withings.Test.Schlaf`;
                       
                      on({id: myreg}, function (obj) {
                          if(obj.id.startsWith(path + ordner)) {
                      
                      liv-in-sky 1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @paul53 last edited by

                        @paul53

                        ich denke, ich werde mal einen anderen weg probieren

                        aber nochmal für die klärung - es geht darum, wie man auf datenpunkte triggern kann, die neu erstellt werden, während das script läuft

                        • wenn ich einen trigger mit einem array habe, gibt es keine möglicheit, durch änderung des arrays (neue dp/id's) die subscription zu ändern
                        • was passiert, wenn man einen schedule hat und im schedule das array definiert und dann im schedule anschliessend den on(.. codet - werden dann bei jedem schedule wieder neue subsc. erstellt?
                        • ein regex erkennt auch neue datenpunkte und triggert
                        • ein selector erkennt auch neu angelegte dp und kann die verarbeiten

                        ist das so einigermaßend richtig ?

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

                          @liv-in-sky sagte: ein regex erkennt auch neue datenpunkte und triggert

                          Ja.

                          @liv-in-sky sagte in trigger mit regex mit variablen:

                          ein selector erkennt auch neu angelegte dp und kann die verarbeiten

                          Nein, der Selektor verwendet den Puffer der JS-Instanz.

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

                            @paul53

                            danke dir - und ist klar- hatte schon öfter das problem mit dem selektor - hatte ich vergessen bzw verdrängt 😞

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

                              @liv-in-sky

                              seit ihr schon weiter gekommen, braucht ihr noch etwas?

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

                                @oli nein .- wir warten auf tombox - evtl ändert er den adapter und das ganze hat sich erledigt

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

                                  @liv-in-sky
                                  Habt ihr schon mal versucht den Adapter auf einen Tag zu stellen?

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

                                    @oli geht nur mit activities

                                    bei den schlafdaten geht das im adapter nicht

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

                                      @liv-in-sky
                                      Ist echt komisch, bei mir wurden noch nie so viele Ordner angelegt. Kann es sein, dass er mehrere Schlafträcker hat?
                                      Ich lege Nachts meine Uhr ab und lass die Schlafmatte aufzeichnen. Kann das aber heute Nacht mal testen

                                      liv-in-sky Damrak2022 2 Replies Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @Oli last edited by

                                        @oli da musst du mit @Damrak2022 schreiben - ich kenne mich eigentlich damit nicht aus - er ha tmich nur nach einem script gefragt

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

                                          @liv-in-sky

                                          Kann dir auch gerne mein Skript mal einstellen, wenn du willst. Vielleicht kannst du dir da was raus ziehen.

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

                                            @oli

                                            danke dir -würd mich dann nochmal melden - ich finde es besser,wenn das mit dem adapter klappt - bei den activities funktioniert es ja auch

                                            tombox hat nicht si viel zeit - muss halt einfach ein wenig geduld aufgebracht werden

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            797
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            4
                                            21
                                            750
                                            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