Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Alle Objekte mit einer Rolle

    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

    Alle Objekte mit einer Rolle

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mariva @ticaki last edited by mariva

      @ticaki

      Ok Danke. Kann ich channel state.id und state role auch kombinieren?

      var reedContacts  = $('state[id=*.SENSOR][role=sensor.window]');
      
      // on Change
      reedContacts.on(function(obj){
          updateStates(obj);
      });
      

      scheint nicht mehr zu gehen. vermutlich weil ich nun keine objekte mehr bekomme. mit channel ist das anderst oder ?

      T 1 Reply Last reply Reply Quote 0
      • T
        ticaki Developer @mariva last edited by

        @mariva
        Da muß ich passen. Das ich state benutze ist ne Angewohnheit, mir ist noch kein Unterschied aufgefallen.

        Ich mache das so:

        const devices = 'state(functions=switch)(functions=humidity)';
        const sensor = 'state(functions=sumroom)(functions=humidity)';
        const targethumidity = 'state(functions=target)(functions=humidity)';
        const windows = 'state(functions=window)';
        
        var x = $(devices) //usw.
        

        weil nicht jeder Adapter die gleiche Role verwendet und ids noch unsicherer sind. Ich hab hier shelly, homematic und deconz im Einsatz. Deshalb benutze ich jetzt 2 Funktionen um ein Gerät zu identifizieren.

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @mariva last edited by

          @mariva sagte: Ist es möglich das ich die ROLE = window.sensor selektieren kann ?

          Gerade getestet: Bei mir funktioniert es so:

          const idsSetpoint = $('[role=level.temperature]');
          idsSetpoint.each(function(id, i) {
              log(id);
          });
          
          T M 2 Replies Last reply Reply Quote 0
          • T
            ticaki Developer @paul53 last edited by ticaki

            @paul53 sagte in Alle Objekte mit einer Rolle:
            Scheine die Frage falsch verstanden zu haben

            suchen nach [role=xyz] geht natürlich nur nicht mit *

            Den Unterschied zwischen state/channel/nichts erschließt sich mir nicht. Habs getestet sehe das wieso jedoch nicht.

            Der erste State($('channel(id=sensor)')) wird nicht gefunden, der 2. schon...

            {
              "mihome-vacuum.0.consumable.sensors": {
                "_id": "mihome-vacuum.0.consumable.sensors",
                "type": "state",
                "common": {
                  "name": "sensors lifetime",
                  "type": "number",
                  "role": "value.usage.sensors",
                  "read": true,
                  "write": false,
                  "unit": "%"
                },
                "native": {},
                "from": "system.adapter.mihome-vacuum.0",
                "user": "system.user.admin",
                "ts": 1628194429902,
                "acl": {
                  "object": 1632,
                  "state": 1632,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                }
              }
            }
            
                "daikin.0.sensorInfo.cmpfreq": {
                    "type": "state",
                    "common": {
                        "role": "value",
                        "read": true,
                        "write": false,
                        "type": "number",
                        "name": "Wohnzimmer Jr. sensorInfo.cmpfreq"
                    },
                    "native": {
                        "id": "sensorInfo.cmpfreq"
                    },
                    "from": "system.adapter.daikin.0",
                    "user": "system.user.admin",
                    "ts": 1575113145790,
                    "_id": "daikin.0.sensorInfo.cmpfreq",
                    "acl": {
                        "object": 1636,
                        "state": 1636
                    }
                },
            
            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @ticaki last edited by

              @ticaki
              Was soll "channel" im Selektor? Das sind Datenpunkte mit sehr unterschiedlichen IDs. Versuche mal

              $('*.sensor*');
              
              T 1 Reply Last reply Reply Quote 0
              • T
                ticaki Developer @paul53 last edited by

                @paul53 sagte in Alle Objekte mit einer Rolle:

                @ticaki
                Was soll "channel" im Selektor? Das sind Datenpunkte mit sehr unterschiedlichen IDs. Versuche mal

                $('*.sensor*');
                

                Die * waren drin das kursiv 🙂

                Es geht um:

                Format of selector:
                
                "name[commonAttr=something1](enumName=something2){nativeName=something3}[id=idfilter][state.id=idfilter]"
                name can be: state, channel, device or schedule "idfilter" can have wildcards '*'
                

                channel und state unterscheiden sich, jedoch nicht nachvollziehbar für mich. Dachte du wüsstest es vielleicht.

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @ticaki last edited by

                  @ticaki sagte: channel und state unterscheiden sich, jedoch nicht nachvollziehbar für mich.

                  Der Selektor wurde im Laufe der Zeit überarbeitet, so dass es wohl keinen Unterschied mehr macht. Früher musste bei HomeMatic "channel" angegeben werden, da Aufzählungen (Räume, Gewerke) bei HomeMatic den Kanälen zugeordnet sind.

                  1 Reply Last reply Reply Quote 0
                  • M
                    mariva @paul53 last edited by

                    @paul53 said in Alle Objekte mit einer Rolle:

                    const idsSetpoint = $('[role=level.temperature]'); idsSetpoint.each(function(id, i) { log(id); });

                    Ich möchte ja ein On Change auf jedes dieser Objekte welche ich mit dem selektor greife.
                    Sicher das ich das jetzt vorher noch iterieren muss um dann dort das on change zu machen ?

                    Möchte einfach der möglichst performanteste Code, da es doch einige Sensoren sind 😉

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @mariva last edited by paul53

                      @mariva sagte: Ich möchte ja ein On Change auf jedes dieser Objekte welche ich mit dem selektor greife.

                      Wenn

                      Selektor.each(function(id, i) {});
                      

                      funktioniert, dann funktioniert auch

                      Selektor.on(function(dp) {});
                      
                      M 1 Reply Last reply Reply Quote 1
                      • M
                        mariva @paul53 last edited by

                        @paul53 said in Alle Objekte mit einer Rolle:

                        iert, dann funktioniert

                        DAnke. Es klappt mit :

                        var reedContacts = $('state[id=*.SENSOR][role=sensor.window]');

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        776
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        javascript
                        3
                        12
                        583
                        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