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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] RegEx im $ Selector möglich?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.4k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.6k

[gelöst] RegEx im $ Selector möglich?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
26 Beiträge 2 Kommentatoren 1.7k Aufrufe 1 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.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von Ben1983
    #1

    ist im Selector eine RegEx möglich?

    Oder nur eine WIldcard mit *?

    paul53P 1 Antwort Letzte Antwort
    0
    • Ben1983B Ben1983

      ist im Selector eine RegEx möglich?

      Oder nur eine WIldcard mit *?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @ben1983 sagte: ist im Selector eine RegEx möglich?

      Nein. Der Javascript-Adapter macht aus dem Selektor eine RegEx.

      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

      Ben1983B 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @ben1983 sagte: ist im Selector eine RegEx möglich?

        Nein. Der Javascript-Adapter macht aus dem Selektor eine RegEx.

        Ben1983B Offline
        Ben1983B Offline
        Ben1983
        schrieb am zuletzt editiert von
        #3

        @paul53 Ah ok, danke.
        Ich war mir fast sicher ich hätte es schon mal gemacht, aber war wohl mit ne Wildcard.

        paul53P 1 Antwort Letzte Antwort
        0
        • Ben1983B Ben1983

          @paul53 Ah ok, danke.
          Ich war mir fast sicher ich hätte es schon mal gemacht, aber war wohl mit ne Wildcard.

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @ben1983 sagte: ich hätte es schon mal gemacht

          Im on() kann RegEx verwendet werden.

          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

          Ben1983B 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @ben1983 sagte: ich hätte es schon mal gemacht

            Im on() kann RegEx verwendet werden.

            Ben1983B Offline
            Ben1983B Offline
            Ben1983
            schrieb am zuletzt editiert von Ben1983
            #5

            @paul53 Ich wollte gerade den Selector mit WIldcard benutzen ...

            $(`state[id=${idStartAutomatikstati}.*]`).each((id)=>{
                const elementname = id.substring(id.lastIndexOf(".") + 1,id.length);
                automatikstatus[elementname] = getState(id).val;
            });
            

            Funktioniert.

            Aber das hier:

            $(`state[id=${idStartAutomatikstati}.*]`).on((obj)=>{
                log(obj._id);
                const elementname = obj._id.substring(obj._id.lastIndexOf(".") + 1,obj._id.length);
                const value = getState(obj._id);
                log(elementname);
                automatikstatus[elementname] =  value.val;
                if(!value.ack){
                    setState(obj._id,value.val,true);
                }       
            });
            

            Da kommt in der ersten Zeile "undefined" als log und das on reagiert nur auf Änderung.
            Ist das mit der Änderung so korrekt. Damit könnte ich ja noch leben, aber warum ist obj._id undefined?

            Edit:

            OK, ich muss "id" nicht "_id" verwenden.

            paul53P 1 Antwort Letzte Antwort
            0
            • Ben1983B Ben1983

              @paul53 Ich wollte gerade den Selector mit WIldcard benutzen ...

              $(`state[id=${idStartAutomatikstati}.*]`).each((id)=>{
                  const elementname = id.substring(id.lastIndexOf(".") + 1,id.length);
                  automatikstatus[elementname] = getState(id).val;
              });
              

              Funktioniert.

              Aber das hier:

              $(`state[id=${idStartAutomatikstati}.*]`).on((obj)=>{
                  log(obj._id);
                  const elementname = obj._id.substring(obj._id.lastIndexOf(".") + 1,obj._id.length);
                  const value = getState(obj._id);
                  log(elementname);
                  automatikstatus[elementname] =  value.val;
                  if(!value.ack){
                      setState(obj._id,value.val,true);
                  }       
              });
              

              Da kommt in der ersten Zeile "undefined" als log und das on reagiert nur auf Änderung.
              Ist das mit der Änderung so korrekt. Damit könnte ich ja noch leben, aber warum ist obj._id undefined?

              Edit:

              OK, ich muss "id" nicht "_id" verwenden.

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @ben1983 sagte: Ist das mit der Änderung so korrekt.

              Ja.

              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

              Ben1983B 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @ben1983 sagte: Ist das mit der Änderung so korrekt.

                Ja.

                Ben1983B Offline
                Ben1983B Offline
                Ben1983
                schrieb am zuletzt editiert von
                #7

                @paul53 So ist es jetzt eine allgemeine Lösung und ich kann über die States weitere Stati als element der internen Automatikstruktur hinzufügen.

                // automatikstati
                // Wildcard definieren
                let idStartAutomatikstati = "0_userdata.0.Produktiv.Pool.Waermepumpe.automatikstati";
                let automatikstatus = {};
                $(`state[id=${idStartAutomatikstati}.*]`).each((id)=>{
                    const elementname = id.substring(id.lastIndexOf(".") + 1,id.length);
                    automatikstatus[elementname] = getState(id).val;
                });
                
                $(`state[id=${idStartAutomatikstati}.*]`).on((obj)=>{
                    log(obj.id);
                    const elementname = obj.id.substring(obj.id.lastIndexOf(".") + 1,obj.id.length);
                    const value = getState(obj.id);
                    log(elementname);
                    automatikstatus[elementname] =  value.val;
                    if(!value.ack){
                        setState(obj.id,value.val,true);
                    }       
                });
                
                // Funktion zum setzen der Werte
                function setAutomatikstati(elementname){
                    setState(`${idStartAutomatikstati}.${elementname}`,automatikstatus[elementname],true);
                };
                
                paul53P 1 Antwort Letzte Antwort
                0
                • Ben1983B Ben1983

                  @paul53 So ist es jetzt eine allgemeine Lösung und ich kann über die States weitere Stati als element der internen Automatikstruktur hinzufügen.

                  // automatikstati
                  // Wildcard definieren
                  let idStartAutomatikstati = "0_userdata.0.Produktiv.Pool.Waermepumpe.automatikstati";
                  let automatikstatus = {};
                  $(`state[id=${idStartAutomatikstati}.*]`).each((id)=>{
                      const elementname = id.substring(id.lastIndexOf(".") + 1,id.length);
                      automatikstatus[elementname] = getState(id).val;
                  });
                  
                  $(`state[id=${idStartAutomatikstati}.*]`).on((obj)=>{
                      log(obj.id);
                      const elementname = obj.id.substring(obj.id.lastIndexOf(".") + 1,obj.id.length);
                      const value = getState(obj.id);
                      log(elementname);
                      automatikstatus[elementname] =  value.val;
                      if(!value.ack){
                          setState(obj.id,value.val,true);
                      }       
                  });
                  
                  // Funktion zum setzen der Werte
                  function setAutomatikstati(elementname){
                      setState(`${idStartAutomatikstati}.${elementname}`,automatikstatus[elementname],true);
                  };
                  
                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @ben1983
                  Zeile 13 würde ich optimieren:

                      const value = obj.state;
                  

                  wobei der Bezeichner value nicht optimal ist. Es handelt sich um den Zustand (state).

                  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

                  Ben1983B 2 Antworten Letzte Antwort
                  0
                  • paul53P paul53

                    @ben1983
                    Zeile 13 würde ich optimieren:

                        const value = obj.state;
                    

                    wobei der Bezeichner value nicht optimal ist. Es handelt sich um den Zustand (state).

                    Ben1983B Offline
                    Ben1983B Offline
                    Ben1983
                    schrieb am zuletzt editiert von Ben1983
                    #9

                    @paul53 stimmt.
                    ach den state liefert er grad mit. cool.

                    habe es dann so gemacht:

                    // automatikstati
                    // Wildcard definieren
                    let idStartAutomatikstati = "0_userdata.0.Produktiv.Pool.Waermepumpe.automatikstati";
                    let automatikstatus = {};
                    $(`state[id=${idStartAutomatikstati}.*]`).each((id)=>{
                        const elementname = id.substring(id.lastIndexOf(".") + 1,id.length);
                        automatikstatus[elementname] = getState(id).val;
                    });
                    
                    $(`state[id=${idStartAutomatikstati}.*]`).on((obj)=>{
                        if(!obj.state.ack){
                            const elementname = obj.id.substring(obj.id.lastIndexOf(".") + 1,obj.id.length);
                            automatikstatus[elementname] =  obj.state.val;
                            setState(obj.id,obj.state.val,true);
                        }       
                    });
                    
                    // Funktion zum setzen der Werte
                    function setAutomatikstati(elementname){
                        setState(`${idStartAutomatikstati}.${elementname}`,automatikstatus[elementname],true);
                    };
                    
                    // Automatikstati zurücksetzen
                    function setzeAutomatikstatiZurueck(){
                        for(const stati in automatikstatus){
                            automatikstatus[stati] = false;
                            setAutomatikstati(stati);
                        }
                    }
                    
                    1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @ben1983
                      Zeile 13 würde ich optimieren:

                          const value = obj.state;
                      

                      wobei der Bezeichner value nicht optimal ist. Es handelt sich um den Zustand (state).

                      Ben1983B Offline
                      Ben1983B Offline
                      Ben1983
                      schrieb am zuletzt editiert von
                      #10

                      @paul53 Wenn ich im selctor das Objekt logge, dann kommt:

                      o	javascript.0 (3299) script.js.Garten.Pool.Wärmepumpe: {"id":"0_userdata.0.Produktiv.Pool.Waermepumpe.automatikstati.warteAufGeringeLeistung","newState":{"val":true,"ts":1686679813843,"ack":false,"lc":1686679813843,"from":"system.adapter.admin.0","q":0,"user":"system.user.admin"},"oldState":{"val":false,"ts":1686679759809,"ack":true,"lc":1686679759805,"from":"system.adapter.javascript.0","q":0,"c":"script.js.Garten.Pool.Wärmepumpe","user":"system.user.admin"},"state":{"val":true,"ts":1686679813843,"ack":false,"lc":1686679813843,"from":"system.adapter.admin.0","q":0,"user":"system.user.admin"}}
                      

                      aber es gibt ja auch obj.name

                      Warum taucht das nicht mit log(JSON.stringify(obj) auf?

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • Ben1983B Ben1983

                        @paul53 Wenn ich im selctor das Objekt logge, dann kommt:

                        o	javascript.0 (3299) script.js.Garten.Pool.Wärmepumpe: {"id":"0_userdata.0.Produktiv.Pool.Waermepumpe.automatikstati.warteAufGeringeLeistung","newState":{"val":true,"ts":1686679813843,"ack":false,"lc":1686679813843,"from":"system.adapter.admin.0","q":0,"user":"system.user.admin"},"oldState":{"val":false,"ts":1686679759809,"ack":true,"lc":1686679759805,"from":"system.adapter.javascript.0","q":0,"c":"script.js.Garten.Pool.Wärmepumpe","user":"system.user.admin"},"state":{"val":true,"ts":1686679813843,"ack":false,"lc":1686679813843,"from":"system.adapter.admin.0","q":0,"user":"system.user.admin"}}
                        

                        aber es gibt ja auch obj.name

                        Warum taucht das nicht mit log(JSON.stringify(obj) auf?

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #11

                        @ben1983 sagte: es gibt ja auch obj.name

                        obj.name gibt es nicht.

                        @ben1983 sagte in [gelöst] RegEx im $ Selector möglich?:

                        Warum taucht das nicht mit log(JSON.stringify(obj) auf?

                        Das habe ich mich auch schon gefragt. Logge mal obj.common.

                        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

                        Ben1983B 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @ben1983 sagte: es gibt ja auch obj.name

                          obj.name gibt es nicht.

                          @ben1983 sagte in [gelöst] RegEx im $ Selector möglich?:

                          Warum taucht das nicht mit log(JSON.stringify(obj) auf?

                          Das habe ich mich auch schon gefragt. Logge mal obj.common.

                          Ben1983B Offline
                          Ben1983B Offline
                          Ben1983
                          schrieb am zuletzt editiert von
                          #12

                          @paul53 oh ja. Meinte ja obj.common.name

                          Warum logt er das common nicht mit. So meinte ich es.

                          Die Frage ist eigentlich, was alles verfügbar ist in

                          A: dem selector.on()

                          B: getObject()

                          Es ist unterschiedlich, oder?

                          Und obj._Id meldet „undefined“
                          obj.Id geht.

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • Ben1983B Ben1983

                            @paul53 oh ja. Meinte ja obj.common.name

                            Warum logt er das common nicht mit. So meinte ich es.

                            Die Frage ist eigentlich, was alles verfügbar ist in

                            A: dem selector.on()

                            B: getObject()

                            Es ist unterschiedlich, oder?

                            Und obj._Id meldet „undefined“
                            obj.Id geht.

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von paul53
                            #13

                            @ben1983 sagte: was alles verfügbar ist in
                            A: dem selector.on()

                            Siehe Doku zu den Funktionen des Javascript-Adapters.

                            @ben1983 sagte in [gelöst] RegEx im $ Selector möglich?:

                            B: getObject()

                            Liefert nur die statischen Eigenschaften eine Objektes.

                            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

                            Ben1983B 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @ben1983 sagte: was alles verfügbar ist in
                              A: dem selector.on()

                              Siehe Doku zu den Funktionen des Javascript-Adapters.

                              @ben1983 sagte in [gelöst] RegEx im $ Selector möglich?:

                              B: getObject()

                              Liefert nur die statischen Eigenschaften eine Objektes.

                              Ben1983B Offline
                              Ben1983B Offline
                              Ben1983
                              schrieb am zuletzt editiert von Ben1983
                              #14

                              @paul53 sagte in [gelöst] RegEx im $ Selector möglich?:

                              @ben1983 sagte: was alles verfügbar ist in
                              A: dem selector.on()

                              Siehe Doku zu den Funktionen des Javascript-Adapters.

                              OK.... aber z.B. geht auch
                              obj.name ..... und das steht nicht in der Doku und wird auch nicht geloggt.

                              @ben1983 sagte in [gelöst] RegEx im $ Selector möglich?:

                              B: getObject()

                              Liefert nur die statischen Eigenschaften eine Objektes.

                              Was genau ist das denn alles?

                              paul53P 2 Antworten Letzte Antwort
                              0
                              • Ben1983B Ben1983

                                @paul53 sagte in [gelöst] RegEx im $ Selector möglich?:

                                @ben1983 sagte: was alles verfügbar ist in
                                A: dem selector.on()

                                Siehe Doku zu den Funktionen des Javascript-Adapters.

                                OK.... aber z.B. geht auch
                                obj.name ..... und das steht nicht in der Doku und wird auch nicht geloggt.

                                @ben1983 sagte in [gelöst] RegEx im $ Selector möglich?:

                                B: getObject()

                                Liefert nur die statischen Eigenschaften eine Objektes.

                                Was genau ist das denn alles?

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #15

                                @ben1983 sagte: Was genau ist das denn alles?

                                Siehe Doku Kernkonzept, Abschnitt "Objekte".

                                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

                                Ben1983B 1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @ben1983 sagte: Was genau ist das denn alles?

                                  Siehe Doku Kernkonzept, Abschnitt "Objekte".

                                  Ben1983B Offline
                                  Ben1983B Offline
                                  Ben1983
                                  schrieb am zuletzt editiert von
                                  #16

                                  @paul53 ok, ich schau mal.

                                  Nur beim on() passt es ja auch nicht. ist es mal erweitert worden?

                                  1 Antwort Letzte Antwort
                                  0
                                  • Ben1983B Ben1983

                                    @paul53 sagte in [gelöst] RegEx im $ Selector möglich?:

                                    @ben1983 sagte: was alles verfügbar ist in
                                    A: dem selector.on()

                                    Siehe Doku zu den Funktionen des Javascript-Adapters.

                                    OK.... aber z.B. geht auch
                                    obj.name ..... und das steht nicht in der Doku und wird auch nicht geloggt.

                                    @ben1983 sagte in [gelöst] RegEx im $ Selector möglich?:

                                    B: getObject()

                                    Liefert nur die statischen Eigenschaften eine Objektes.

                                    Was genau ist das denn alles?

                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von paul53
                                    #17

                                    @ben1983 sagte: aber z.B. geht auch obj.name

                                    Stimmt. Habe bisher nur obj.common.name verwendet. Ist vielleicht mal um obj.name erweitert worden?

                                    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

                                    Ben1983B 1 Antwort Letzte Antwort
                                    0
                                    • paul53P paul53

                                      @ben1983 sagte: aber z.B. geht auch obj.name

                                      Stimmt. Habe bisher nur obj.common.name verwendet. Ist vielleicht mal um obj.name erweitert worden?

                                      Ben1983B Offline
                                      Ben1983B Offline
                                      Ben1983
                                      schrieb am zuletzt editiert von
                                      #18

                                      @paul53 Aber nur beim
                                      on()

                                      beim getObject() gibts den nicht

                                      1 Antwort Letzte Antwort
                                      0
                                      • Ben1983B Offline
                                        Ben1983B Offline
                                        Ben1983
                                        schrieb am zuletzt editiert von
                                        #19

                                        @paul53 ist es möglich die $(selector).on() reaktion auch noch anderes einzustellen, als "NUR" auf Änderungen?

                                        paul53P 1 Antwort Letzte Antwort
                                        0
                                        • Ben1983B Ben1983

                                          @paul53 ist es möglich die $(selector).on() reaktion auch noch anderes einzustellen, als "NUR" auf Änderungen?

                                          paul53P Offline
                                          paul53P Offline
                                          paul53
                                          schrieb am zuletzt editiert von
                                          #20

                                          @ben1983 sagte: ist es möglich die $(selector).on() reaktion auch noch anderes einzustellen, als "NUR" auf Änderungen?

                                          Ich wüsste nicht wie.
                                          Hast Du es mal mit on({id: RegEx}, cb) versucht?

                                          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

                                          Ben1983B 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          285

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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