Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Enums vergleichen

    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

    Enums vergleichen

    This topic has been deleted. Only users with topic management privileges can see it.
    • AutoBroker
      AutoBroker last edited by

      Hallo zusammen,

      ich möchte basierend auf einem Event eines Fenstersensors, die Rolladen ansteuern.
      Dazu habe ich funktionsenums erstellt. Eins für Fenster und entsprechend eins für Rolladen. Die Rolladen und Fenster sind Räumen zugeordnet.

      Das Problem wollte ich wie folgt lösen.
      Auf das Event des Fensters möchte ich den Raum des Fensters über die Objekteigenschaften abfragen. Über den Raum will ich das Fenster identifizieren um final das Fenster anzusteuern.

      Um das zu realisieren muß ich die ausgelesen enums mit einander vergleichen. Das scheint irgenwie nicht zu funktionieren. Hat jemand einen Tipp?

      anbei der code

      function Test()
      {
      var Raum,RaumName;
      Raum = getObject('shelly.0.SHDW-2#D8BFC01A7139#1.sensor.door','rooms');
      log(Raum);
      RaumName = Raum.enumNames[0];

      log(RaumName);

      log("Liste der Rollos:");
      var Rolladen = getObject("enum.functions.astrorolladen").common.members;
      for(let i = 0; i < Rolladen.length; i++) {
      var RollState = getState(Rolladen[i]);

      log("Rollladen: "+RollState+" "+Rolladen[i]);
      var Roll =  getObject(Rolladen[i],'rooms');
      var RollName = Roll.enumNames[0];
      
      if (RollName == RaumName)
      {
          log("trigger");
      }
      
        log(RollName);
        log(RaumName);      
      

      }
      //log(Rolladen) ;

      }

      Test();

      E 1 Reply Last reply Reply Quote 0
      • E
        ente34 @AutoBroker last edited by

        @AutoBroker

        Also schematisch so:

        on({ id: FensterSensor }, function (obj) {
           raum = HoleRaum(obj);
           //raum im Selector verwenden
           //States von Rollläden auswählen und setzen
           $(selector).setState(value, ack);
        });
        

        HoleRaum() hast Du ja in Deinem Script sch realisiert.

        Doku zum $-Selektor oder Beispiele im Forum

        AutoBroker 2 Replies Last reply Reply Quote 0
        • AutoBroker
          AutoBroker @ente34 last edited by

          @ente34
          das funktioniert leider nicht, scheint das selbe Problem wie oben zu sein.
          Wenn ich auf Raum über getObject zugreife ist der Rückgabewert vom Typ object. Der selector erwartet aber einen String.
          Das selbe gilt für die Funktion getAttr(), die liefert auch ein Objekt zurück.
          An dem ObjektTypen scheint auch die Abfrage oben zu scheitern, gibt es irgendwo ein Kapitel wie man aus Objekten Strings ziehen kann?

          1 Reply Last reply Reply Quote 0
          • AutoBroker
            AutoBroker @ente34 last edited by

            @ente34
            OK, ich habe es gelöst. Der Vergleich funktioniert wenn man an die Enums .toString() dran hängt.
            Es convertiert das Objekt in einen String und mit dem String funktioniert dann der Vergleich.

            AutoBroker 1 Reply Last reply Reply Quote 0
            • AutoBroker
              AutoBroker @AutoBroker last edited by

              @AutoBroker zu früh gefreut, die Syntax geht zwar aber der Inhalt ist Schrott, es kommt nur [Objekt objekt] dabei raus

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

              Support us

              ioBroker
              Community Adapters
              Donate

              738
              Online

              31.8k
              Users

              80.0k
              Topics

              1.3m
              Posts

              2
              5
              298
              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