Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. on trigger

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    859

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

on trigger

Scheduled Pinned Locked Moved ioBroker Allgemein
18 Posts 5 Posters 1.1k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T tminimax

    Hallo,
    ich habe folgende Objektstruktur unter "0_userdata.0"

    6934a5ff-d3c1-43da-93fa-73789d3ae212-grafik.png

    Dort gibt es Unterordner für die unterschiedlichen Fassaden und darunter pro Fassade identische Variablen/States.

    nun möchte ich bei jeder Veränderung von "Fassade1.Beschattung_jetzt_aktiv" oder "Fassade2.Beschattung_jetzt_aktiv" oder ... "Fassade13.Beschattung_jetzt_aktiv" jeweils einen Trigger haben.

    Ich möchte es aber vermeiden jetzt 13 Trigger für die gleiche Funktion manuell anzulegen, sondern nur 1en Trigger mit z.B. RegularExpressions oder so anlegen. Geht das?

    lt. einem RegExp. Tool wäre das das korrekte Suchpattern: /Fassade\d\d?/gm

    wie müßte - sofern das geht - die korrekte ON "Funktion" aussehen:

    on ({
    id : "0_userdata.0.sonstige_Variablen.Raffstore.Beschattungsautomatik.Fassade1.Beschattung_jetzt_aktiv",
    change : 'ne'
    }, function (obj) {

    //bearbeite Trigger
    

    });

    T Do not disturb
    T Do not disturb
    ticaki
    wrote on last edited by ticaki
    #8

    @tminimax sagte in on trigger:

    wie müßte - sofern das geht - die korrekte ON "Funktion" aussehen:

    Ist schon etwas her, bastel es dir hieraus bitte zusammen :)

    var mainStatePath = '0_userdata.0.wetterwarnung.';
    
    on(new RegExp(getRegEx(mainStatePath +'config.basiskonfiguration.warnzelle.', '^')+'.*'), function(obj) {
    
    function getRegEx(value, firstChar) {
        let path = value.split('.');
        if (value[value.length-1] == '.') path.splice(path.length-1,1);
        let r = '';
        if (firstChar !== undefined) r+=firstChar;
        for (let a=0;a<path.length;a++) {
            if (path[a]) r+=path[a]+'\.';
        }
        return r;
    }
    

    https://github.com/ticaki/DWD-UWZ-NINA-Pushwarnungen-iobroker/blob/cdc0cdbf1979537d0d5d5d9b6f8bd2adbf008a78/dwd_uwz_nina_script.js#L1009

    In dem Skript werden eine ganze Menge RegExp trigger benutzt.

    Edit: und das richtige Suchpattern wäre sowas hier:

    /0_userdata\.0\.sonstige_Variablen\.Raffstore\.Beschattungsautomatik\.Fassade[0-9]{1,2}\..+/
    

    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

    Spenden

    1 Reply Last reply
    0
    • CodierknechtC Codierknecht

      @tminimax

      Das kannst Du mit den "wildcards" erreichen.

      on ({id : "0_userdata.0.sonstige_Variablen.Raffstore.Beschattungsautomatik.*.Beschattung_jetzt_aktiv",
      change : 'ne'}, function (obj) {
         //code here
      });
      
      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #9

      @codierknecht sagte: Das kannst Du mit den "wildcards" erreichen.

      Nur mittels Selektor oder RegExp.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      CodierknechtC 1 Reply Last reply
      0
      • paul53P paul53

        @codierknecht sagte: Das kannst Du mit den "wildcards" erreichen.

        Nur mittels Selektor oder RegExp.

        CodierknechtC Offline
        CodierknechtC Offline
        Codierknecht
        Developer Most Active
        wrote on last edited by
        #10

        @paul53 sagte in on trigger:

        Nur mittels Selektor oder RegExp.

        <kopfauftischplatte>

        Natürlich

        on ({id : $('0_userdata.0.sonstige_Variablen.Raffstore.Beschattungsautomatik.*.Beschattung_jetzt_aktiv').toArray(), change : 'ne'}, function (obj) {
           //code here
        });
        

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        T 1 Reply Last reply
        0
        • CodierknechtC Codierknecht

          @paul53 sagte in on trigger:

          Nur mittels Selektor oder RegExp.

          <kopfauftischplatte>

          Natürlich

          on ({id : $('0_userdata.0.sonstige_Variablen.Raffstore.Beschattungsautomatik.*.Beschattung_jetzt_aktiv').toArray(), change : 'ne'}, function (obj) {
             //code here
          });
          
          T Offline
          T Offline
          tminimax
          wrote on last edited by tminimax
          #11

          @codierknecht & @paul53: super danke - jetzt funktioniert es

          1 Reply Last reply
          0
          • T Do not disturb
            T Do not disturb
            ticaki
            wrote on last edited by
            #12

            Vorteil von RegExp ist das es nicht statisch ist, es werden auch neu erstelle States gefunden im laufenden Betrieb.
            Vorteil von Selektor ist, das er nicht kryptisch ist :)

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            T 1 Reply Last reply
            0
            • T ticaki

              Vorteil von RegExp ist das es nicht statisch ist, es werden auch neu erstelle States gefunden im laufenden Betrieb.
              Vorteil von Selektor ist, das er nicht kryptisch ist :)

              T Offline
              T Offline
              tminimax
              wrote on last edited by
              #13

              @ticaki danke, dann werde ich versuchen, das mit RegExp nachzubauen um es noch weiter zu optimieren - danke (ich hoffe ich kann das von deinem Muster auf meine Anforderung umbauen)

              T paul53P 2 Replies Last reply
              0
              • T tminimax

                @ticaki danke, dann werde ich versuchen, das mit RegExp nachzubauen um es noch weiter zu optimieren - danke (ich hoffe ich kann das von deinem Muster auf meine Anforderung umbauen)

                T Do not disturb
                T Do not disturb
                ticaki
                wrote on last edited by
                #14

                @tminimax

                im meinem Suchpattern fehlt noch am Anfang das ^ für: hiermit beginnt der string

                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                Spenden

                1 Reply Last reply
                0
                • T tminimax

                  @ticaki danke, dann werde ich versuchen, das mit RegExp nachzubauen um es noch weiter zu optimieren - danke (ich hoffe ich kann das von deinem Muster auf meine Anforderung umbauen)

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by paul53
                  #15

                  @tminimax sagte: mit RegExp

                  on(/^0_userdata\.0\.sonstige_Variablen\.Raffstore\.Beschattungsautomatik\.Fassade.+\.Beschattung_jetzt_aktiv$/, function (obj) {
                     //code here
                  });
                  

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  T T 2 Replies Last reply
                  0
                  • paul53P paul53

                    @tminimax sagte: mit RegExp

                    on(/^0_userdata\.0\.sonstige_Variablen\.Raffstore\.Beschattungsautomatik\.Fassade.+\.Beschattung_jetzt_aktiv$/, function (obj) {
                       //code here
                    });
                    
                    T Do not disturb
                    T Do not disturb
                    ticaki
                    wrote on last edited by ticaki
                    #16

                    @paul53 sagte in on trigger:

                    @tminimax sagte: mit RegExp

                    on(/^0_userdata\.0\.sonstige_Variablen\.Raffstore\.Beschattungsautomatik\.Fassade\d+\.Beschattung_jetzt_aktiv$/, function (obj) {
                       //code here
                    });
                    

                    :)

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    T 1 Reply Last reply
                    0
                    • paul53P paul53

                      @tminimax sagte: mit RegExp

                      on(/^0_userdata\.0\.sonstige_Variablen\.Raffstore\.Beschattungsautomatik\.Fassade.+\.Beschattung_jetzt_aktiv$/, function (obj) {
                         //code here
                      });
                      
                      T Offline
                      T Offline
                      tminimax
                      wrote on last edited by
                      #17

                      @paul53 danke perfekt - super!

                      1 Reply Last reply
                      0
                      • T ticaki

                        @paul53 sagte in on trigger:

                        @tminimax sagte: mit RegExp

                        on(/^0_userdata\.0\.sonstige_Variablen\.Raffstore\.Beschattungsautomatik\.Fassade\d+\.Beschattung_jetzt_aktiv$/, function (obj) {
                           //code here
                        });
                        

                        :)

                        T Offline
                        T Offline
                        tminimax
                        wrote on last edited by
                        #18

                        @ticaki danke perfekt - super!

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        810

                        Online

                        32.6k

                        Users

                        82.1k

                        Topics

                        1.3m

                        Posts
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Home
                        • Recent
                        • Tags
                        • Unread 0
                        • Categories
                        • Unreplied
                        • Popular
                        • GitHub
                        • Docu
                        • Hilfe