Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Variablen, oder enum als bedingung

    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

    Variablen, oder enum als bedingung

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

      Hallo, ich möchte anhand von gewissen Ereignissen bestimmte Aktoren schalten.

      was findet ihr schöner, / sauberer, oder einfacher zu lesen? (Ist nur einBeispiel)

      A:

      let freigabWeiterschaltung = false;
      on("VeräderterState_1",(dp)=>{
          freigabWeiterschaltung = true;
      });
      
      on("VeräderterState_2",(dp)=>{
          if(freigabWeiterschaltung){
              freigabeWeiterschaltung = false;
              setState("MeinAktor",true);
          }
      });
      

      B:

      const automatikSchritt = {
          bereit : 0,
          freigabeWeiterschaltung : 1
      }
      let automatik = automatikSchritt.bereit;
      on("VeräderterState_1",(dp)=>{
          automatik = automatikSchritt.freigabeWeiterschaltung;
      });
      
      on("VeräderterState_2",(dp)=>{
          if(automatik = automatikSchritt.freigabeWeiterschaltung){
              automatik = automatikSchritt.bereit;
              setState("MeinAktor",true);
          }
      });
      
      
      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Ben1983 last edited by paul53

        @ben1983 sagte: einfacher zu lesen?

        Variante A.

        Was soll "enum" in der Überschrift? automatikSchritt ist ein Objekt. Variante B funktioniert nicht, da nicht die Variable automatic abgefragt wird, sondern ein konstanter Wert.

        Ben1983 2 Replies Last reply Reply Quote 0
        • Ben1983
          Ben1983 @paul53 last edited by

          @paul53 doch das funktioniert, sonst würde gerade bei mir garnichts gehen.
          Ok dann als enum deklariert und nicht als Objekt.
          So war es ja gemeint.

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

            @paul53 Grundsätzlich könnte man es ja mi object.freez denklariern oder so.

            Frage war ja nur, wie andere generell vorgehen.
            Lieber einzelnen variablen deklarieren, oder entsprechend einen wert einer "automatik" zuweisen und diesen quasi als enum abfragen?

            EDIT: Habe das oben geändert, mein beispiel war natürlich falch, da hast du recht

            1 Reply Last reply Reply Quote 0
            • Ben1983
              Ben1983 last edited by

              @paul53 wie deklarierst Du denn eine enum?
              Ps. Was meinst Du zu der Grubdsatzfrage?
              Lieber einzelne Variablen, oder lieber richtig enum / StateId?

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

                @ben1983 sagte: wie deklarierst Du denn eine enum?

                JavaScript kennt keinen enum-Datentyp. ioBroker kennt enums(Aufzählungen) für z.B. Räume(rooms), Gewerke(functions).

                1 Reply Last reply Reply Quote 0
                • Ben1983
                  Ben1983 last edited by Ben1983

                  @paul53 ok,
                  Dann aber nochmal die Frage, was würdest du bevorzugen. A, oder B?

                  Bei B wäre halt ein „Rücksetzen“ über lediglich eine Variable möglich.

                  Nachteil wäre man würde natürlich dann alles zurücksetzen.

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

                    @ben1983 sagte: was würdest du bevorzugen. A, oder B?

                    Ich würde die einfachere Version A bevorzugen.

                    Ben1983 1 Reply Last reply Reply Quote 0
                    • Ben1983
                      Ben1983 last edited by

                      @paul53 ok, danke für die Info / Meinung

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

                        @paul53 Ich habe für mich die "goldene" Mitte gewählt.
                        Finde ich bei mehreren Stati ganz praktisch.

                        let automatikstatus = {
                              freigabeWeiterschaltung : false
                        }
                        
                        on("VeräderterState_1",(dp)=>{
                            automatikstatus.freigabWeiterschaltung = true;
                        });
                         
                        on("VeräderterState_2",(dp)=>{
                            if(automatikstatus.freigabWeiterschaltung){
                                automatikstatus.freigabeWeiterschaltung = false;
                                setState("MeinAktor",true);
                            }
                        });
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        796
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        2
                        10
                        280
                        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