Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Javascript - Verständnisproblem mit if ...

    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

    Javascript - Verständnisproblem mit if ...

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      klassisch Most Active @paul53 last edited by

      @paul53

      so langsam beginnt es zu dämmern.
      Bisher habe ich verwendet

      on({id: 'javascript.0.Visuobjekte.SoftSwitch.Timer_Solar_Plug1', change: "ne"}, function() {
      	result = getState('javascript.0.Visuobjekte.SoftSwitch.Timer_Solar_Plug1').val;
      });
      

      und mich gefragt, warum das Objekt zweimal anfassen muß.
      Muß man aber nicht, geht auch so

      on({id: 'javascript.0.Visuobjekte.SoftSwitch.Timer_Solar_Plug1', change: "ne"}, (obj){
      	result = obj.state.val;	
      });
      

      und es geht noch mehr wie zB. oldState.

      Ist dabei obj ein fester Begriff oder köönte das auch data123 oder so heißen?

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

        @klassisch sagte:

        köönte das auch data123 oder so heißen?

        Ja. Ich verwende dp, das es das statische Objekt und den Zustand (state, oldState) liefert.

        on('javascript.0.Visuobjekte.SoftSwitch.Timer_Solar_Plug1', function(dp) { // triggert bei Wertänderung
           let val = dp.state.val;	
        });
        
        K 1 Reply Last reply Reply Quote 0
        • K
          klassisch Most Active @paul53 last edited by

          @paul53 Danke, also dp als Abkürzung für data point. Muß man die unterscheiden, wenn man mehree "on" statements im Script hat, also dp01, dp02 ?

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

            @klassisch sagte:

            Muß man die unterscheiden, wenn man mehree "on" statements im Script hat, also dp01, dp02 ?

            Nein, Funktionsparameter sind lokal, d.h. nur innerhalb der jeweiligen Callback-Funktion gültig.

            K 1 Reply Last reply Reply Quote 0
            • K
              klassisch Most Active @paul53 last edited by

              @paul53 Danke! Falls man das schachteln würde (wobei mir bei on jetzt nichts dazu einfiele), dann wäre eine andere Benennung wohl sinnvoll.

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

                @klassisch sagte:

                Falls man das schachteln würde (wobei mir bei on jetzt nichts dazu einfiele), dann wäre eine andere Benennung wohl sinnvoll.

                I.d.R. nicht. Beim Schachteln von Triggern sollte man genau wissen, was man tut.

                K 1 Reply Last reply Reply Quote 0
                • K
                  klassisch Most Active @paul53 last edited by

                  @paul53 wenn wir schon bei solchen "Abkürzungen" sind: Kann man den Datenpunkt nach der Operation auch wieder vereinfacht zurückspeichern, also nicht mit setState(id, value), sondern mit dp. irgendwas?

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

                    @klassisch sagte:

                    Kann man den Datenpunkt nach der Operation auch wieder vereinfacht zurückspeichern,

                    Du meinst den Trigger-Datenpunkt ?

                    setState(dp.id, neuer_Wert);
                    

                    Damit löst man aber meist einen neuen Trigger aus.

                    K 1 Reply Last reply Reply Quote 0
                    • K
                      klassisch Most Active @paul53 last edited by

                      @paul53 sagte in Javascript - Verständnisproblem mit if ...:

                      @klassisch sagte:

                      Kann man den Datenpunkt nach der Operation auch wieder vereinfacht zurückspeichern,

                      Du meinst den Trigger-Datenpunkt ?

                      Ja, den Datenpunkt, auf den man getriggert hat, dessen Wert man dann entnommen und verarbeitet hat und dessen neuen Wert man dann zurückspeichern möchte.

                      setState(dp.id, neuer_Wert);
                      

                      Damit löst man aber meist einen neuen Trigger aus.

                      Oh, das könnte dann oszillieren bzw. in einer Endlosschleife enden.

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

                        @klassisch sagte:

                        Oh, das könnte dann oszillieren bzw. in einer Endlosschleife enden.

                        Ja, wenn man es nicht abfängt.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        976
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        4
                        16
                        782
                        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