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. ioBroker Allgemein
  4. on trigger

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    343

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

on trigger

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
18 Beiträge 5 Kommentatoren 984 Aufrufe 2 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.
  • 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
    

    });

    CodierknechtC Online
    CodierknechtC Online
    Codierknecht
    Developer Most Active
    schrieb am zuletzt editiert von Codierknecht
    #2

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

    "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 paul53P 2 Antworten Letzte Antwort
    0
    • 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
      

      });

      bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #3

      @tminimax

      so:

      var idTest    = ["parser.0.Blitzer_01", "parser.0.Blitzer_02", "parser.0.Blitzer_03", "parser.0.Blitzer_04", "parser.0.Blitzer_05", "parser.0.Blitzer_06", "parser.0.Blitzer_07", "parser.0.Blitzer_08","parser.0.Blitzer_09", "parser.0.Blitzer_10", "parser.0.Blitzer_11", "parser.0.Blitzer_12","parser.0.Blitzer_13", "parser.0.Blitzer_14", "parser.0.Blitzer_15"];
      on({id: idTest, change: "any"}, function(){
          weiter();
      });
      
      

      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      T 1 Antwort Letzte Antwort
      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
        });
        
        T Offline
        T Offline
        tminimax
        schrieb am zuletzt editiert von
        #4

        @codierknecht hätte ich soeben probiert, wenn ich dann z.B. die Variable "Beschattung_jetzt_aktiv" von "Fassade1" verändere, dann löst der Trigger mit Wildcard aber nicht aus, d.h. er wird nicht aktiviert.

        CodierknechtC 1 Antwort Letzte Antwort
        0
        • bahnuhrB bahnuhr

          @tminimax

          so:

          var idTest    = ["parser.0.Blitzer_01", "parser.0.Blitzer_02", "parser.0.Blitzer_03", "parser.0.Blitzer_04", "parser.0.Blitzer_05", "parser.0.Blitzer_06", "parser.0.Blitzer_07", "parser.0.Blitzer_08","parser.0.Blitzer_09", "parser.0.Blitzer_10", "parser.0.Blitzer_11", "parser.0.Blitzer_12","parser.0.Blitzer_13", "parser.0.Blitzer_14", "parser.0.Blitzer_15"];
          on({id: idTest, change: "any"}, function(){
              weiter();
          });
          
          
          T Offline
          T Offline
          tminimax
          schrieb am zuletzt editiert von
          #5

          @bahnuhr danke habs so mal umgesetzt; geht es ev. auch ohne Array irgendwie, weil dann würde es dynamisch auch gehen (ohne das Array immer nachzuziehen, sollte mal eine Fassada dazukommen)?

          bahnuhrB 1 Antwort Letzte Antwort
          0
          • T tminimax

            @bahnuhr danke habs so mal umgesetzt; geht es ev. auch ohne Array irgendwie, weil dann würde es dynamisch auch gehen (ohne das Array immer nachzuziehen, sollte mal eine Fassada dazukommen)?

            bahnuhrB Online
            bahnuhrB Online
            bahnuhr
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #6

            @tminimax sagte in on trigger:

            @bahnuhr danke habs so mal umgesetzt; geht es ev. auch ohne Array irgendwie, weil dann würde es dynamisch auch gehen (ohne das Array immer nachzuziehen, sollte mal eine Fassada dazukommen)?

            Hab ich bisher noch nicht probiert und auch nicht gebraucht.
            Könnte mit einem selektor funktionieren.
            Musste mal suchen und probieren.


            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
            Danke.
            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
            ScreenToGif :https://www.screentogif.com/downloads.html

            1 Antwort Letzte Antwort
            0
            • T tminimax

              @codierknecht hätte ich soeben probiert, wenn ich dann z.B. die Variable "Beschattung_jetzt_aktiv" von "Fassade1" verändere, dann löst der Trigger mit Wildcard aber nicht aus, d.h. er wird nicht aktiviert.

              CodierknechtC Online
              CodierknechtC Online
              Codierknecht
              Developer Most Active
              schrieb am zuletzt editiert von
              #7

              @tminimax sagte in on trigger:

              dann löst der Trigger mit Wildcard aber nicht aus

              Was sagt denn das Log dazu?
              Wenn Du das Script startest, steht im Log, auf wie viele Elemente denn nun getriggert wird.
              Da sollte bei Dir ja sowas wie

              registered 13 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
              

              stehen. Anderenfalls stimmt der Selektor nicht.

              "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

              1 Antwort Letzte Antwort
              0
              • 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 Nicht stören
                T Nicht stören
                ticaki
                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • paul53P paul53

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

                    Nur mittels Selektor oder RegExp.

                    CodierknechtC Online
                    CodierknechtC Online
                    Codierknecht
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von tminimax
                      #11

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

                      1 Antwort Letzte Antwort
                      0
                      • T Nicht stören
                        T Nicht stören
                        ticaki
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antworten Letzte Antwort
                          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 Nicht stören
                            T Nicht stören
                            ticaki
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                              0
                              • paul53P paul53

                                @tminimax sagte: mit RegExp

                                on(/^0_userdata\.0\.sonstige_Variablen\.Raffstore\.Beschattungsautomatik\.Fassade.+\.Beschattung_jetzt_aktiv$/, function (obj) {
                                   //code here
                                });
                                
                                T Nicht stören
                                T Nicht stören
                                ticaki
                                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #17

                                  @paul53 danke perfekt - super!

                                  1 Antwort Letzte Antwort
                                  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
                                    schrieb am zuletzt editiert von
                                    #18

                                    @ticaki danke perfekt - super!

                                    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
                                    FAQ Cloud / IOT
                                    HowTo: Node.js-Update
                                    HowTo: Backup/Restore
                                    Downloads
                                    BLOG

                                    981

                                    Online

                                    32.6k

                                    Benutzer

                                    81.9k

                                    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