Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Blockly
  5. Timer nicht objektorientiert?

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    480

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    395

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    980

Timer nicht objektorientiert?

Geplant Angeheftet Gesperrt Verschoben Blockly
13 Beiträge 3 Kommentatoren 735 Aufrufe 1 Beobachtet
  • Ä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.
  • P ptr

    Hallo zusammen,

    habe folgendes Experiment:
    Nach Türöffnung macht das Skript das Licht an & schaltet einen Timer, der das Licht nach 10sek wieder ausmacht.
    Das klappt jeweils mit jeder Tür einzeln.

    Mit mehreren Türen jedoch nicht, falls die Timer gleichzeitig laufen müssten. Die letzte Tür hijackt dann den laufenden Timer, was ich denke daran zu sehen, dass das licht bereits nach weniger Zeit z.B. 5sek ausgehen.

    -> Sind die Timer in Blockly nicht objektorientiert, sodass jeder Trigger(Tür) einen eigene Timer(Tür) haben sollte?
    -> Oder anders gefragt: wie sähe hier eine Lösung aus? (kann mehr beschreiben falls nötig dafür)

    (Bin schon anderweitig auf das Thema gestoßen.)

    e739a16f-c6a5-45cd-8bea-b7fcb64d2ed2-image.png

    Nebenergänzung:

    • hinter der Funktion anwesenheit_dp_aktualisieren, steckt nur eine Zeile: Aktualisiere ObjektID mit Wert ohne verzögerung inkl. löschen falls läuft.... sollte egal sein für das Timer-Thema?
    • Variable "+tuer_pfade+" = "alias.0.*.opened" -> darüber werden alle Türen erfasst.

    Vielen Dank schonmal für die Hilfe!

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

    @ptr sagte: jeder Trigger(Tür) einen eigene Timer(Tür) haben sollte?

    Ja.

    @ptr sagte in Timer nicht objektorientiert?:

    wie sähe hier eine Lösung aus?

    Array of timer - aber nicht in Blockly.

    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

    P 2 Antworten Letzte Antwort
    0
    • paul53P paul53

      @ptr sagte: jeder Trigger(Tür) einen eigene Timer(Tür) haben sollte?

      Ja.

      @ptr sagte in Timer nicht objektorientiert?:

      wie sähe hier eine Lösung aus?

      Array of timer - aber nicht in Blockly.

      P Offline
      P Offline
      ptr
      schrieb am zuletzt editiert von ptr
      #3

      @paul53 Ok, danke Dir!
      Also Timer in einem Array schreiben. Über JS habe ich da schon einen Angriffspunkt. Muss mir das dann also darüber mal anschauen: Thema dazu im JS-Forumsteil:
      https://forum.iobroker.net/topic/59907/dynamisch-erstellte-variablen/36

      P 1 Antwort Letzte Antwort
      0
      • P ptr

        @paul53 Ok, danke Dir!
        Also Timer in einem Array schreiben. Über JS habe ich da schon einen Angriffspunkt. Muss mir das dann also darüber mal anschauen: Thema dazu im JS-Forumsteil:
        https://forum.iobroker.net/topic/59907/dynamisch-erstellte-variablen/36

        P Offline
        P Offline
        ptr
        schrieb am zuletzt editiert von
        #4

        Auf dem Weg dahin habe ich folgendes Element bei mir in einem Skript gefunden:
        f4cbdd0d-50cb-4a07-8aa8-3471db1bf696-image.png

        -> 1. Dieser Javascript-Funktionsblock, wie bekomme ich den wieder aus dem Blockly-Menü her? Keine Ahnung wie ich das gemacht hatte... verrückt....

        -> 2. wenn ich timer_multi aufrufe führt er mir das JS-Skript innerhalb des Blockes auf. Nicht den Block der zuzusagen lila "halb umrahmt" ist. Das lässt vermuten, dass ich hier im JS-Code den "halb umrahmten"-Blockly-Code explizit per Befehl aufrufen muss. Wie mache ich das?

        paul53P 2 Antworten Letzte Antwort
        0
        • P ptr

          Auf dem Weg dahin habe ich folgendes Element bei mir in einem Skript gefunden:
          f4cbdd0d-50cb-4a07-8aa8-3471db1bf696-image.png

          -> 1. Dieser Javascript-Funktionsblock, wie bekomme ich den wieder aus dem Blockly-Menü her? Keine Ahnung wie ich das gemacht hatte... verrückt....

          -> 2. wenn ich timer_multi aufrufe führt er mir das JS-Skript innerhalb des Blockes auf. Nicht den Block der zuzusagen lila "halb umrahmt" ist. Das lässt vermuten, dass ich hier im JS-Code den "halb umrahmten"-Blockly-Code explizit per Befehl aufrufen muss. Wie mache ich das?

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

          @ptr sagte: per Befehl aufrufen muss. Wie mache ich das?

          Die erstellte Funktion wird unter "Funktionen" angeboten.

          Bild_2022-11-24_204018862.png

          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

          P 2 Antworten Letzte Antwort
          0
          • paul53P paul53

            @ptr sagte: per Befehl aufrufen muss. Wie mache ich das?

            Die erstellte Funktion wird unter "Funktionen" angeboten.

            Bild_2022-11-24_204018862.png

            P Offline
            P Offline
            ptr
            schrieb am zuletzt editiert von
            #6

            @paul53 Hallo Paul, ja das ist gut zu finden. Das ruft den JS-Code (hier nicht sichtbar) innerhalb des lila Blocks auf.

            Was noch unklar ist, ist wie rufe ich diesen Teil auf:
            d24e1d99-9bff-4e43-80b9-0326019fd41d-image.png

            1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @ptr sagte: per Befehl aufrufen muss. Wie mache ich das?

              Die erstellte Funktion wird unter "Funktionen" angeboten.

              Bild_2022-11-24_204018862.png

              P Offline
              P Offline
              ptr
              schrieb am zuletzt editiert von
              #7

              @paul53 und die erste Frage war: wie finde ich GENAU diesen JS-Funktion-Block?
              Im Menü sehen sie alle anders aus. Keiner hat Code UND Blockly mit drin...:
              00088993-e345-4952-a552-2f7a2d65f1c8-image.png

              HomoranH 1 Antwort Letzte Antwort
              0
              • P ptr

                @paul53 und die erste Frage war: wie finde ich GENAU diesen JS-Funktion-Block?
                Im Menü sehen sie alle anders aus. Keiner hat Code UND Blockly mit drin...:
                00088993-e345-4952-a552-2f7a2d65f1c8-image.png

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #8

                @ptr sagte in Timer nicht objektorientiert?:

                Keiner hat Code UND Blockly mit drin...:

                dafür gibt es ja weitere Optionen hinter dem Zahnrad.
                nimm mal den ersten Block

                kein Support per PN! - Fragen im Forum stellen -
                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                P 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @ptr sagte in Timer nicht objektorientiert?:

                  Keiner hat Code UND Blockly mit drin...:

                  dafür gibt es ja weitere Optionen hinter dem Zahnrad.
                  nimm mal den ersten Block

                  P Offline
                  P Offline
                  ptr
                  schrieb am zuletzt editiert von
                  #9

                  @homoran stehe da wohl irgendwie auf dem Schlauch. Sehe da nichts...
                  0ae362c0-0ca9-4055-b87a-642051d1abee-image.png
                  Variablen definieren ja, JS-Code hinzufügen geht nicht. Das liegende "U" des Blocks sieht auch anders aus. Hm...

                  1 Antwort Letzte Antwort
                  0
                  • P ptr

                    Auf dem Weg dahin habe ich folgendes Element bei mir in einem Skript gefunden:
                    f4cbdd0d-50cb-4a07-8aa8-3471db1bf696-image.png

                    -> 1. Dieser Javascript-Funktionsblock, wie bekomme ich den wieder aus dem Blockly-Menü her? Keine Ahnung wie ich das gemacht hatte... verrückt....

                    -> 2. wenn ich timer_multi aufrufe führt er mir das JS-Skript innerhalb des Blockes auf. Nicht den Block der zuzusagen lila "halb umrahmt" ist. Das lässt vermuten, dass ich hier im JS-Code den "halb umrahmten"-Blockly-Code explizit per Befehl aufrufen muss. Wie mache ich das?

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

                    @ptr sagte: Javascript-Funktionsblock, wie bekomme ich den wieder aus dem Blockly-Menü her? Keine Ahnung wie ich das gemacht hatte

                    Ich auch nicht.
                    Nur mit einer "normalen" Blockly-Funktion bekomme ich es hin.

                    Bild_2022-11-24_211230758.png

                    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

                    P 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @ptr sagte: Javascript-Funktionsblock, wie bekomme ich den wieder aus dem Blockly-Menü her? Keine Ahnung wie ich das gemacht hatte

                      Ich auch nicht.
                      Nur mit einer "normalen" Blockly-Funktion bekomme ich es hin.

                      Bild_2022-11-24_211230758.png

                      P Offline
                      P Offline
                      ptr
                      schrieb am zuletzt editiert von
                      #11

                      @paul53 ich erinnere mich, dass es irgendein drop-down war - glaube ich - mit "Anweisungen erlauben" oder irgendsowas... hm...

                      P 1 Antwort Letzte Antwort
                      0
                      • P ptr

                        @paul53 ich erinnere mich, dass es irgendein drop-down war - glaube ich - mit "Anweisungen erlauben" oder irgendsowas... hm...

                        P Offline
                        P Offline
                        ptr
                        schrieb am zuletzt editiert von
                        #12

                        @ptr falls das Element "doch nicht geht". Dann hätte ich noch eine andere Idee fürs Ziel einen Multi-Timer-Block selber zu bauen:

                        Eine JS-"Multi-Timer"-Funktion erstellen, die nur eine JS-Funktions-Block (als "Ausführung nach Timeout") aufruft - der dann eben wieder Blockly-Anweisungen enthält. So wäre man dann wieder "zurück" in Blockly für die Definition, welche Anweisungen durch einen Timeout verspätet werden sollen...

                        1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @ptr sagte: jeder Trigger(Tür) einen eigene Timer(Tür) haben sollte?

                          Ja.

                          @ptr sagte in Timer nicht objektorientiert?:

                          wie sähe hier eine Lösung aus?

                          Array of timer - aber nicht in Blockly.

                          P Offline
                          P Offline
                          ptr
                          schrieb am zuletzt editiert von
                          #13

                          @paul53 doch nochmal die Frage dazu: Du sagst "Ja." zu jedem Trigger folgt hier ein eigener Timer.
                          jedoch sagst Du auch, dass man einen Timer-Array braucht. Nicht zwingend dann oder?

                          Meine Experimente würden Deinem ersten "ja" Wiedersprechen. Falls ich da nicht irgendwo einen anderen Fehler mache - was ich versuche rauszufinden.

                          Nach meinem Verständnis müsste im Hintergrund eine UID erstellt werden die die variable timeout2 PRO TRIGGER unterscheidbar macht(Objektorientierung). Das würde dazu führen, dass folgende Annahme richtig wäre:

                          1. Tür1 öffnen, Licht geht an. 1sek warten
                          2. Tür2 öffnen, Licht geht an.
                            -> nach 10sek geht Licht in Raum1 aus.
                            -> eine Sekunde später geht das Licht in Raum2 aus.

                          Meine Experimente unterstreichen das leider nicht. Daher die Frage.
                          Im Experiment bleibt Raum1-Licht an und Raum2-Licht geht nach 9sek Brenndauer aus. Ist das nachvollziehbar?

                          Irgendwas habe ich da noch nicht verstanden. Ich bin gespannt was...

                          1 Antwort Letzte Antwort
                          0

                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                          Registrieren Anmelden
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          421

                          Online

                          32.8k

                          Benutzer

                          82.8k

                          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