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. Skripten / Logik
  4. JavaScript
  5. Raum eines States herausfinden

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Raum eines States herausfinden

Geplant Angeheftet Gesperrt Verschoben JavaScript
7 Beiträge 3 Kommentatoren 306 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.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von
    #1

    Hallo, wenn ich eine Funktion wie folgt erstelle:

    $(`state(${enumtypeFunctions}=${enumBewegungsmelder})`).on((obj)=>{
        .... Hier steht der quellcode
    });
    

    kann ich irgendwie direkt herausfinden, in welcher enum "rooms" der state ist,
    oder müsste ich erst die enum "rooms" durchlaufen und suchen, ob es eine Übereinstimmung gibt?

    Außer common.role habe ich nichts gefunden.... also zu "function" oder "rooms".

    Kann natürlich sein, dass es das nicht gibt, weil es ja beliebig erweiterbar ist. Liegt es daran?

    paul53P 1 Antwort Letzte Antwort
    0
    • Ben1983B Ben1983

      Hallo, wenn ich eine Funktion wie folgt erstelle:

      $(`state(${enumtypeFunctions}=${enumBewegungsmelder})`).on((obj)=>{
          .... Hier steht der quellcode
      });
      

      kann ich irgendwie direkt herausfinden, in welcher enum "rooms" der state ist,
      oder müsste ich erst die enum "rooms" durchlaufen und suchen, ob es eine Übereinstimmung gibt?

      Außer common.role habe ich nichts gefunden.... also zu "function" oder "rooms".

      Kann natürlich sein, dass es das nicht gibt, weil es ja beliebig erweiterbar ist. Liegt es daran?

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

      @ben1983 sagte: herausfinden, in welcher enum "rooms" der state ist,

          let room = getObject(obj.id, 'rooms').enumNames[0];
          if(typeof room == 'object') room = room.de;
      

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

        @ben1983 sagte: herausfinden, in welcher enum "rooms" der state ist,

            let room = getObject(obj.id, 'rooms').enumNames[0];
            if(typeof room == 'object') room = room.de;
        
        T Nicht stören
        T Nicht stören
        ticaki
        schrieb am zuletzt editiert von ticaki
        #3

        @paul53
        Ah so greift man wohl direkt auf den Namen zu?

        Ich mache das meinst so:

        var rooms = getObject(obj.replace('.available', ''), 'rooms').enumIds;
                if (rooms === undefined) return;
                if (rooms.indexOf('enum.rooms.Haus.second_floor.schlafzimmer') != -1...
        

        Wobei ich aber keine Ahnung habe wieso da das obj.replace() drin ist.

        bzw. mehr auf die Frage bezogen so:

        var rooms = getObject(obj.replace('.available', ''), 'rooms').enumIds;      
        if (rooms === undefined) return;
        let rname = ''
        rooms.forEach((room) => {
            // workaround manche Geräte enthalten Räume die ihnen nicht zugewiesen sind.
            var enumObj = getObject(room);
            if (enumObj.common.members.findIndex((a) => {return obj.includes(a)}) == -1 ) return;
            room = enumObj.common.name;
            let r = room.de;
            if (r === undefined) r = room;
            rname+= rname =='' ? r : `, ${r}`;
        }
        

        Code ist schon alt, keine Ahnung ob der Workaround heute noch nötig ist.

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        paul53P Ben1983B 2 Antworten Letzte Antwort
        0
        • T ticaki

          @paul53
          Ah so greift man wohl direkt auf den Namen zu?

          Ich mache das meinst so:

          var rooms = getObject(obj.replace('.available', ''), 'rooms').enumIds;
                  if (rooms === undefined) return;
                  if (rooms.indexOf('enum.rooms.Haus.second_floor.schlafzimmer') != -1...
          

          Wobei ich aber keine Ahnung habe wieso da das obj.replace() drin ist.

          bzw. mehr auf die Frage bezogen so:

          var rooms = getObject(obj.replace('.available', ''), 'rooms').enumIds;      
          if (rooms === undefined) return;
          let rname = ''
          rooms.forEach((room) => {
              // workaround manche Geräte enthalten Räume die ihnen nicht zugewiesen sind.
              var enumObj = getObject(room);
              if (enumObj.common.members.findIndex((a) => {return obj.includes(a)}) == -1 ) return;
              room = enumObj.common.name;
              let r = room.de;
              if (r === undefined) r = room;
              rname+= rname =='' ? r : `, ${r}`;
          }
          

          Code ist schon alt, keine Ahnung ob der Workaround heute noch nötig ist.

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

          @ticaki sagte: so greift man wohl direkt auf den Namen zu?

          Ja, wobei ich davon ausgehe, dass nur ein Raum zugewiesen wurde.

          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

          1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @ben1983 sagte: herausfinden, in welcher enum "rooms" der state ist,

                let room = getObject(obj.id, 'rooms').enumNames[0];
                if(typeof room == 'object') room = room.de;
            
            Ben1983B Offline
            Ben1983B Offline
            Ben1983
            schrieb am zuletzt editiert von
            #5

            @paul53 cool danke muss mir wohl das getObject nochmal genauer ansehen.

            1 Antwort Letzte Antwort
            0
            • T ticaki

              @paul53
              Ah so greift man wohl direkt auf den Namen zu?

              Ich mache das meinst so:

              var rooms = getObject(obj.replace('.available', ''), 'rooms').enumIds;
                      if (rooms === undefined) return;
                      if (rooms.indexOf('enum.rooms.Haus.second_floor.schlafzimmer') != -1...
              

              Wobei ich aber keine Ahnung habe wieso da das obj.replace() drin ist.

              bzw. mehr auf die Frage bezogen so:

              var rooms = getObject(obj.replace('.available', ''), 'rooms').enumIds;      
              if (rooms === undefined) return;
              let rname = ''
              rooms.forEach((room) => {
                  // workaround manche Geräte enthalten Räume die ihnen nicht zugewiesen sind.
                  var enumObj = getObject(room);
                  if (enumObj.common.members.findIndex((a) => {return obj.includes(a)}) == -1 ) return;
                  room = enumObj.common.name;
                  let r = room.de;
                  if (r === undefined) r = room;
                  rname+= rname =='' ? r : `, ${r}`;
              }
              

              Code ist schon alt, keine Ahnung ob der Workaround heute noch nötig ist.

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

              @ticaki sagte in Raum eines States herausfinden:

              @paul53
              Ah so greift man wohl direkt auf den Namen zu?

              Ich mache das meinst so:

              var rooms = getObject(obj.replace('.available', ''), 'rooms').enumIds;
                      if (rooms === undefined) return;
                      if (rooms.indexOf('enum.rooms.Haus.second_floor.schlafzimmer') != -1...
              

              Wobei ich aber keine Ahnung habe wieso da das obj.replace() drin ist.

              Was sollte denn ".abailable" sein?
              gab es das früher mal?

              T 1 Antwort Letzte Antwort
              0
              • Ben1983B Ben1983

                @ticaki sagte in Raum eines States herausfinden:

                @paul53
                Ah so greift man wohl direkt auf den Namen zu?

                Ich mache das meinst so:

                var rooms = getObject(obj.replace('.available', ''), 'rooms').enumIds;
                        if (rooms === undefined) return;
                        if (rooms.indexOf('enum.rooms.Haus.second_floor.schlafzimmer') != -1...
                

                Wobei ich aber keine Ahnung habe wieso da das obj.replace() drin ist.

                Was sollte denn ".abailable" sein?
                gab es das früher mal?

                T Nicht stören
                T Nicht stören
                ticaki
                schrieb am zuletzt editiert von
                #7

                @ben1983 sagte in Raum eines States herausfinden:

                @ticaki sagte in Raum eines States herausfinden:

                @paul53
                Ah so greift man wohl direkt auf den Namen zu?

                Ich mache das meinst so:

                var rooms = getObject(obj.replace('.available', ''), 'rooms').enumIds;
                        if (rooms === undefined) return;
                        if (rooms.indexOf('enum.rooms.Haus.second_floor.schlafzimmer') != -1...
                

                Wobei ich aber keine Ahnung habe wieso da das obj.replace() drin ist.

                Was sollte denn ".abailable" sein?
                gab es das früher mal?

                Weiß ich nicht mehr, hab den Code vor hm 4 Jahren??? eingebaut/kopiert/keine Ahnung und seit dem kopiere ich ihn nur dahin wo ich ihn brauche.

                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                Spenden

                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

                765

                Online

                32.6k

                Benutzer

                82.2k

                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