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

                              630
                              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