Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Meine ersten schritte mit JavaScript

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Meine ersten schritte mit JavaScript

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

      @RedOne:

      und wenn ich auf zeit triggern möchte statt auf zustand wechsel mach ich die geschweiften klammern rein? `
      Welche geschweifeten Klammern meinst Du ? Wenn eine anonyme Funktion deklariert wird, muss der Code der Funktion immer in geschweifte Klammern. Bei Triggern auf Zeit (schedule) wird allerdings kein Datenpunkt-Objekt übergeben, d.h. es ist auch kein Name zu übergeben:

      // Triggern jede Minute
      schedule('* * * * *', function() {
         hier kommt der Code der Funktion rein
      });
      

      @RedOne:

      und wie funktioniert das wenn ich 2 und mehr States überwachen möchte `
      Beispiel: Mittelwert aus 3 Datenpunkten:

      const idMittel = '...';  // ID des Datenpunktes für Mittelwert
      var a, b, c;
      
      function mittel() {
         setState(idMittel, (a + b + c) / 3):
      }
      
      on('ID Datenpunkt a', function(dp) {
         a = dp.state.val;
         mittel();
      });
      on('ID Datenpunkt b', function(dp) {
         b = dp.state.val;
         mittel();
      });
      on('ID Datenpunkt c', function(dp) {
         c = dp.state.val;
         mittel();
      });
      
      1 Reply Last reply Reply Quote 0
      • R
        RedOne last edited by

        on ({idVorheizen}, function (dp){
        
        });
        
        

        jetzt schaut er wohl laut log im Sekundentakt ob sich ein Wert geändert hat anhand vom Zeitstempel.

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

          @RedOne:

          jetzt schaut er wohl laut log im Sekundentakt ob sich ein Wert geändert `
          :?: Dieses Konstrukt (ID in Klammern) habe ich noch nicht probiert. Die Klammern sind jedenfalls falsch. Richtig:

          on (idVorheizen, function (dp){
          
          });
          
          
          1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer last edited by

            @paul53:

            Dieses Konstrukt (ID in Klammern) habe ich noch nicht probiert `
            Das macht auch keinen Sinn.

            {idVorheizen}
            

            ist in ES6 eine Abkürzung für

            {idVorheizen: idVorheizen}
            
            1 Reply Last reply Reply Quote 0
            • S
              starfish last edited by

              @paul53:

              Die https://github.com/ioBroker/ioBroker.javascript/blob/master/README.md kennst Du ? Und auch die http://www.iobroker.net/docu/?page_id=5385&lang=de ? `
              Diese Einführung ist in der Tat sehr gut und empfehlenswert. Was ich aber nicht finde, sind genauere Erläuterungen zu Arrays. Habe ich etwas übersehen - oder ist die Einführung einfach noch nicht fertig? (….Was das ist, schauen wir uns im Abschnitt über Arrays im Detail an ...)

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

                @starfish:

                Diese Einführung ist in der Tat sehr gut und empfehlenswert. Aber leider fehlerhaft, die Tabelle zu den logischen Operatoren betreffend: > Eingabe Ergebnis

                A B A && B A || B !A

                false false true false true

                false true false true false

                true false false true false

                true true true true false `
                Richtig:

                Eingabe      Ergebnis
                A     B      A && B A || B !A
                false false  false  false  true
                false true   false  true   true
                true  false  false  true   false
                true  true   true   true   false
                

                Bitte korrigieren !

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  @paul53:

                  Bitte korrigieren ! `

                  Jawoll 😉

                  erledigt.

                  Bitte kontrollieren!

                  Rainer

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

                    @Homoran:

                    Bitte kontrollieren! `
                    Passt 😄 Super schnelle Reaktion 8-)

                    1 Reply Last reply Reply Quote 0
                    • R
                      RedOne last edited by

                      so weit bin ich noch nicht.

                      um mit Arrays zu arbeiten.

                      ich hab mein Script ja jetzt am Laufen mit dem BadVorheizen und mir fiel da was auf.

                      
                      var BadVorheizenSchalter = "javascript.0.VirSchalterBadVorheizen";      //Virtueller Schalter muss erstellt sein
                      var BadVorheizenSchalterZustand = getState(BadVorheizenSchalter).val;   // Status aus Virtuellem schaltter lesen
                      
                      // Funktion wo sie heizung aktivirt wenn BadVorheizenschalter True gesetzt wird
                      function BadVorheizenAktivieren(){
                          switch(BadVorheizenSchalterZustand)
                          {
                              case true: setState("hm-rpc.0.BidCoS-RF.1.PRESS_SHORT");
                                          setStateDelayed(BadVorheizenSchalter, false, 2000);
                              break;
                      
                          }
                      }
                      
                      // Überwachung des schalters und bei True wird geschaltet
                      on(BadVorheizenSchalter, function(dp)
                      {
                          BadVorheizenSchalterZustand = dp.state.val;
                          BadVorheizenAktivieren();
                      
                      });
                      
                      

                      Da ich das mit dem schedule noch nicht hinbekomme bzw. noch nicht mit befasst habe.

                      habe ich das ganze über ein programm in der ccu gemacht das dann die Heizung nach 20min wieder ausgeht.

                      funktioniert auch alles wenn ich sage Alexa Bad Vorheizen springt die Heizung an und geht nach 20 min wieder aus aber nur 2 Tage lang wenn ich es dann mache sagt Alexa okay aber es passiert nichts mehr.

                      Wenn ich den schalter BadVorheizen händisch auf True setze passiert auch nichts mehr.

                      Der schalter wieder rum in der CCU funktioniert aber noch.

                      wenn ich dann aber hingehe und das Script stoppe und wieder starte funktioniert es wieder und dann plötzlich nicht mehr nach ca 2 Tagen.

                      Habt ihr eine Lösung? oder eine Idee?

                      hab es jetzt erst mal mit Blockly nach gestellt.

                      und jetzt läuft es seit gestern mal schauen ob es wieder aussteigt.

                      Gesendet von meinem SM-G935F mit Tapatalk

                      1 Reply Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer last edited by

                        Nicht sicher, ob das was damit zu tun hat, aber sollte

                        setState("hm-rpc.0.BidCoS-RF.1.PRESS_SHORT");
                        

                        nicht

                        setState("hm-rpc.0.BidCoS-RF.1.PRESS_SHORT", true);
                        

                        heißen?

                        1 Reply Last reply Reply Quote 0
                        • R
                          RedOne last edited by

                          ähm ja bei meinen schaltern muss es so heisen

                          bei der ccu weis ich gerade nicht.

                          werd ich gleich mal reinschrieben

                          Gesendet von meinem SM-G935F mit Tapatalk

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          827
                          Online

                          31.7k
                          Users

                          79.8k
                          Topics

                          1.3m
                          Posts

                          5
                          22
                          2679
                          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