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.
    • 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

                            520
                            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