Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Globale (JS) Funktionen (Einschaltdauer berechnen)

    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

    Globale (JS) Funktionen (Einschaltdauer berechnen)

    This topic has been deleted. Only users with topic management privileges can see it.
    • Xenon
      Xenon Forum Testing Developer @D.VE last edited by

      @D-VE ja kannst du

      js.png

      D.VE 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @D.VE last edited by paul53

        @D-VE sagte:

        Kann ich mir eine JavaScript Funktion bauen, die ich dann in Blockly benutze?

        Ja, innerhalb des Blockly-Scripts.

        @D-VE sagte in Globale (JS) Funktionen (Einschaltdauer berechnen):

        kann ich mir generell globale Funktionen (egal ob Blockly oder JS) erstellen, auf die ich in den Scripten zugreifen kann?

        Javascript: Ja, Blockly: Nein, bzw. nur mit einer Javascript-Funktion, die die globale Funktion aufruft.

        @D-VE sagte in Globale (JS) Funktionen (Einschaltdauer berechnen):

        Blockly (ist übersichtlicher).

        Wirklich ?

        1 Reply Last reply Reply Quote 0
        • D.VE
          D.VE @Xenon last edited by

          @Xenon said in Globale (JS) Funktionen (Einschaltdauer berechnen):

          @D-VE ja kannst du

          Dass man grundsätzlich Funktionen erstellen kann, weiß ich. Mir ging es um globale Funktionen, auf die man in jedem Blockly Script zugreifen kann...

          @paul53 said in Globale (JS) Funktionen (Einschaltdauer berechnen):

          Nein, bzw. nur mit einer Javascript-Funktion, die die globale Funktion aufruft.

          Das hab ich nicht ganz verstanden. Man kann also mit Blockly JS-Funktionen aufrufen?

          @paul53 said in Globale (JS) Funktionen (Einschaltdauer berechnen):

          Wirklich ?

          Für Leute ohne Entwickler-Background: Ja! Auf jeden Fall. Vor allem wenn man anständig kommentiert...

          lg, Dave

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @D.VE last edited by paul53

            @D-VE sagte:

            Man kann also mit Blockly JS-Funktionen aufrufen?

            Beispiel: Ich habe ein Script unter global, das die Funktion runden(val, digits) enthält. Diese Funktion kann per Blockly-JS-Funktion aufgerufen werden.

            Blockly_temp.JPG

            Inhalt der JS-Funktion runde(wert, stellen):

            return runden(wert, stellen);
            

            Warnung: Globale Skripte werden in jedes andere (nicht globale) Skript kopiert ! Deshalb sollten globale Skripte nur häufig verwendete eigene Funktionen enthalten.

            D.VE 1 Reply Last reply Reply Quote 0
            • D.VE
              D.VE @paul53 last edited by

              @paul53

              Thx...

              Wo ist mein Fehler? Die Funktion wird nicht aufgerufen. Im Log steht auch kein Fehler

              d49a8c38-7e2d-4328-b642-2380ab6f8eae-grafik.png

              2a583644-5391-471c-8e82-9f8c36a978bf-grafik.png

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @D.VE last edited by

                @D-VE sagte:

                Wo ist mein Fehler? Die Funktion wird nicht aufgerufen.

                Die Blockly-JS-Funktion hat den gleichen Namen wie die globale Funktion ?

                D.VE 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @D.VE last edited by paul53

                  @D-VE sagte:

                  Einschaltdauer berechnen

                  Eine Startzeit muss man sich nicht in einem Datenpunkt merken, denn die stellt der Datenpunkt des Aktors zur Verfügung, wenn er als Trigger verwendet wird:

                  • "letzte Änderung" während der Aktor ein ist
                  • "vorherige letzte Änderung", wenn der Aktor aus ist
                  1 Reply Last reply Reply Quote 0
                  • D.VE
                    D.VE @paul53 last edited by

                    @paul53 said in Globale (JS) Funktionen (Einschaltdauer berechnen):

                    Die Blockly-JS-Funktion hat den gleichen Namen wie die globale Funktion ?

                    Ja... Siehe Screenshot

                    @paul53 said in Globale (JS) Funktionen (Einschaltdauer berechnen):

                    Eine Startzeit muss man sich nicht in einem Datenpunkt merken, denn die stellt der Datenpunkt des Aktors zur Verfügung, wenn er als Trigger verwendet wird:

                    Das ist kein SmartDevice, sondern eine 15 Jahre alte Spülmaschine die ich über den Shelly tracke. Wenn der Stromverbrauch unter 3 Watt liegt, ist sie aus (Standby) und wenn darüber sollte der Startzeitpunkt gesetzt werden.

                    lg, Dave

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @D.VE last edited by

                      @D-VE sagte:

                      Ja... Siehe Screenshot

                      Das wird das Problem sein. Verwende unterschiedliche Namen.

                      D.VE 1 Reply Last reply Reply Quote 0
                      • D.VE
                        D.VE @paul53 last edited by

                        @paul53 said in Globale (JS) Funktionen (Einschaltdauer berechnen):

                        Das wird das Problem sein. Verwende unterschiedliche Namen.

                        Verstehe ich nicht... Wie soll er denn sonst wissen, welche JS Funktion ich aufrufen will???

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @D.VE last edited by paul53

                          @D-VE sagte:

                          Wie soll er denn sonst wissen, welche JS Funktion ich aufrufen will???

                          Bei gleichen Namen für die globale Funktion und die Blockly-JS-Funktion wird nicht die globale Funktion aus der JS-Funktion aufgerufen, sondern man erzeugt eine Endlosschleife.

                          D.VE 1 Reply Last reply Reply Quote 0
                          • D.VE
                            D.VE @paul53 last edited by D.VE

                            @paul53

                            Ich glaube, ich hab da etwas missverstanden...

                            Wie rufe ich die globale JavaScript-Funktion setStartTime() im Blockly korrekt auf?

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @D.VE last edited by paul53

                              @D-VE sagte:

                              Wie rufe ich die globale JavaScript-Funktion setStartTime() im Blockly korrekt auf?

                              Es genügt, im Namen der Blockly-JS-Funktion, einen Buchstaben zu ändern, z.B.

                              Blockly_temp.JPG

                              Inhalt:

                              setStartTime(deviceStr); // Aufruf der globalen Funktion
                              
                              D.VE 1 Reply Last reply Reply Quote 0
                              • D.VE
                                D.VE @paul53 last edited by

                                @paul53

                                Ah... Jetzt hab ich das erst kapiert, dass man die JS Funktion nicht direkt aufrufen kann, sondern über einen Blockly Wrapper... Das war das fehlender Puzzlestück

                                Vielen dank

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                810
                                Online

                                31.8k
                                Users

                                80.0k
                                Topics

                                1.3m
                                Posts

                                blockly javascript
                                3
                                15
                                866
                                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