Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Globale (JS) Funktionen (Einschaltdauer berechnen)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    848

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Globale (JS) Funktionen (Einschaltdauer berechnen)

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptblockly
15 Beiträge 3 Kommentatoren 1.3k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D.VED Offline
    D.VED Offline
    D.VE
    schrieb am zuletzt editiert von
    #1

    Moin,
    komme vom Job her eigentlich von der JavaScript Entwicklung, mache bei ioBroker aber momentan noch sehr viel in Blockly (ist übersichtlicher).

    Jetzt würde ich gerne von TV und Backofen tracken wie lange die Geräte schon eingeschaltet sind. Was in JS nur ein paar Zahlen Code sind, artet aber in Blockly in einen ziemlichen Clusterfuck aus...
    (oder gibt es dahingehend schon was fertiges das ich übersehen habe?)

    Daher die Frage: Kann ich mir eine JavaScript Funktion bauen, die ich dann in Blockly benutze? Falls nicht, kann ich mir generell globale Funktionen (egal ob Blockly oder JS) erstellen, auf die ich in den Scripten zugreifen kann? Hab das bisher immer nur innerhalb eines Scriptes hinbekommen

    Vielen Dank,
    lg, Dave

    Mein SmartHome-Podcast:
    http://www.scheiss-technik.com

    XenonX paul53P 3 Antworten Letzte Antwort
    0
    • D.VED D.VE

      Moin,
      komme vom Job her eigentlich von der JavaScript Entwicklung, mache bei ioBroker aber momentan noch sehr viel in Blockly (ist übersichtlicher).

      Jetzt würde ich gerne von TV und Backofen tracken wie lange die Geräte schon eingeschaltet sind. Was in JS nur ein paar Zahlen Code sind, artet aber in Blockly in einen ziemlichen Clusterfuck aus...
      (oder gibt es dahingehend schon was fertiges das ich übersehen habe?)

      Daher die Frage: Kann ich mir eine JavaScript Funktion bauen, die ich dann in Blockly benutze? Falls nicht, kann ich mir generell globale Funktionen (egal ob Blockly oder JS) erstellen, auf die ich in den Scripten zugreifen kann? Hab das bisher immer nur innerhalb eines Scriptes hinbekommen

      Vielen Dank,
      lg, Dave

      XenonX Offline
      XenonX Offline
      Xenon
      Forum Testing Developer
      schrieb am zuletzt editiert von
      #2

      @D-VE ja kannst du

      js.png

      wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

      D.VED 1 Antwort Letzte Antwort
      0
      • D.VED D.VE

        Moin,
        komme vom Job her eigentlich von der JavaScript Entwicklung, mache bei ioBroker aber momentan noch sehr viel in Blockly (ist übersichtlicher).

        Jetzt würde ich gerne von TV und Backofen tracken wie lange die Geräte schon eingeschaltet sind. Was in JS nur ein paar Zahlen Code sind, artet aber in Blockly in einen ziemlichen Clusterfuck aus...
        (oder gibt es dahingehend schon was fertiges das ich übersehen habe?)

        Daher die Frage: Kann ich mir eine JavaScript Funktion bauen, die ich dann in Blockly benutze? Falls nicht, kann ich mir generell globale Funktionen (egal ob Blockly oder JS) erstellen, auf die ich in den Scripten zugreifen kann? Hab das bisher immer nur innerhalb eines Scriptes hinbekommen

        Vielen Dank,
        lg, Dave

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

        @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 ?

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • XenonX Xenon

          @D-VE ja kannst du

          js.png

          D.VED Offline
          D.VED Offline
          D.VE
          schrieb am zuletzt editiert von
          #4

          @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

          Mein SmartHome-Podcast:
          http://www.scheiss-technik.com

          paul53P 1 Antwort Letzte Antwort
          0
          • D.VED D.VE

            @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

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #5

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

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            D.VED 1 Antwort Letzte Antwort
            0
            • paul53P 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.VED Offline
              D.VED Offline
              D.VE
              schrieb am zuletzt editiert von
              #6

              @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

              Mein SmartHome-Podcast:
              http://www.scheiss-technik.com

              paul53P 1 Antwort Letzte Antwort
              0
              • D.VED D.VE

                @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

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

                @D-VE sagte:

                Wo ist mein Fehler? Die Funktion wird nicht aufgerufen.

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

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                D.VED 1 Antwort Letzte Antwort
                0
                • D.VED D.VE

                  Moin,
                  komme vom Job her eigentlich von der JavaScript Entwicklung, mache bei ioBroker aber momentan noch sehr viel in Blockly (ist übersichtlicher).

                  Jetzt würde ich gerne von TV und Backofen tracken wie lange die Geräte schon eingeschaltet sind. Was in JS nur ein paar Zahlen Code sind, artet aber in Blockly in einen ziemlichen Clusterfuck aus...
                  (oder gibt es dahingehend schon was fertiges das ich übersehen habe?)

                  Daher die Frage: Kann ich mir eine JavaScript Funktion bauen, die ich dann in Blockly benutze? Falls nicht, kann ich mir generell globale Funktionen (egal ob Blockly oder JS) erstellen, auf die ich in den Scripten zugreifen kann? Hab das bisher immer nur innerhalb eines Scriptes hinbekommen

                  Vielen Dank,
                  lg, Dave

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #8

                  @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

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @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.VED Offline
                    D.VED Offline
                    D.VE
                    schrieb am zuletzt editiert von
                    #9

                    @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

                    Mein SmartHome-Podcast:
                    http://www.scheiss-technik.com

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • D.VED D.VE

                      @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

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #10

                      @D-VE sagte:

                      Ja... Siehe Screenshot

                      Das wird das Problem sein. Verwende unterschiedliche Namen.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      D.VED 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @D-VE sagte:

                        Ja... Siehe Screenshot

                        Das wird das Problem sein. Verwende unterschiedliche Namen.

                        D.VED Offline
                        D.VED Offline
                        D.VE
                        schrieb am zuletzt editiert von
                        #11

                        @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???

                        Mein SmartHome-Podcast:
                        http://www.scheiss-technik.com

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • D.VED D.VE

                          @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???

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #12

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

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          D.VED 1 Antwort Letzte Antwort
                          0
                          • paul53P 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.VED Offline
                            D.VED Offline
                            D.VE
                            schrieb am zuletzt editiert von D.VE
                            #13

                            @paul53

                            Ich glaube, ich hab da etwas missverstanden...

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

                            Mein SmartHome-Podcast:
                            http://www.scheiss-technik.com

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • D.VED D.VE

                              @paul53

                              Ich glaube, ich hab da etwas missverstanden...

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

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von paul53
                              #14

                              @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
                              

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              D.VED 1 Antwort Letzte Antwort
                              0
                              • paul53P 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.VED Offline
                                D.VED Offline
                                D.VE
                                schrieb am zuletzt editiert von
                                #15

                                @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

                                Mein SmartHome-Podcast:
                                http://www.scheiss-technik.com

                                1 Antwort Letzte Antwort
                                0
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                394

                                Online

                                32.6k

                                Benutzer

                                82.1k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2025
                                logo
                                • Anmelden

                                • Du hast noch kein Konto? Registrieren

                                • Anmelden oder registrieren, um zu suchen
                                • Erster Beitrag
                                  Letzter Beitrag
                                0
                                • Home
                                • Aktuell
                                • Tags
                                • Ungelesen 0
                                • Kategorien
                                • Unreplied
                                • Beliebt
                                • GitHub
                                • Docu
                                • Hilfe