Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Einfaches Script aber "Probleme" mit Timeout

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    5
    1
    46

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

Einfaches Script aber "Probleme" mit Timeout

Scheduled Pinned Locked Moved Blockly
10 Posts 3 Posters 589 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • U Offline
    U Offline
    UncleB
    wrote on last edited by UncleB
    #1

    Mahlzeit zusammen,
    ich nutze ioBroker bei mir für die einfachsten Sachen, in Sachen Programmierung bin ich leider nicht so fit, ich wollte grad eine Denkbar einfaches "Alarmanlagen" Script erstellen.
    Falls Bewegung in meinem Lager erkannt wird, und sich mein Handy nicht im Wlan befindet eine Nachricht über Telegram.
    Die Nachricht soll aber erst 1 Minute versendet werden, da es manchmal einen kurzen Augenblick dauert bis sich das Handy verbunden hat, das löst man wohl mit Timeout?
    5bae7f98-4797-4ca9-893f-4445f7030391-image.png
    Habs jetzt so versucht, aber das klappt nicht, kann mir jemand helfen? :)

    CodierknechtC 1 Reply Last reply
    0
    • U UncleB

      Mahlzeit zusammen,
      ich nutze ioBroker bei mir für die einfachsten Sachen, in Sachen Programmierung bin ich leider nicht so fit, ich wollte grad eine Denkbar einfaches "Alarmanlagen" Script erstellen.
      Falls Bewegung in meinem Lager erkannt wird, und sich mein Handy nicht im Wlan befindet eine Nachricht über Telegram.
      Die Nachricht soll aber erst 1 Minute versendet werden, da es manchmal einen kurzen Augenblick dauert bis sich das Handy verbunden hat, das löst man wohl mit Timeout?
      5bae7f98-4797-4ca9-893f-4445f7030391-image.png
      Habs jetzt so versucht, aber das klappt nicht, kann mir jemand helfen? :)

      CodierknechtC Online
      CodierknechtC Online
      Codierknecht
      Developer Most Active
      wrote on last edited by Codierknecht
      #2

      @uncleb
      1.000 ms sind 1 Sekunde. Ich empfehle daher den anderen Block - ist übersichtlicher:

      ed1f0400-7d64-4d8a-952d-81755a763065-image.png

      https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/9

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      U 1 Reply Last reply
      0
      • CodierknechtC Codierknecht

        @uncleb
        1.000 ms sind 1 Sekunde. Ich empfehle daher den anderen Block - ist übersichtlicher:

        ed1f0400-7d64-4d8a-952d-81755a763065-image.png

        https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/9

        U Offline
        U Offline
        UncleB
        wrote on last edited by
        #3

        Hallo @codierknecht, danke für die Hilfe,
        das funktioniert schon mal, Nachricht wird ne Minute später gesendet.
        Allerdings bekomme ich die Nachricht das Bewegung erkannt wurde trotzdem.
        Ich muss den Timeout zwischen den Bedingungen einbauen oder?
        Also: Bewegung Erkannt -> Minute warten -> Handy immer noch offline -> Nachricht.
        Kannst mir da nochmal kurz helfen?

        AsgothianA 1 Reply Last reply
        0
        • U UncleB

          Hallo @codierknecht, danke für die Hilfe,
          das funktioniert schon mal, Nachricht wird ne Minute später gesendet.
          Allerdings bekomme ich die Nachricht das Bewegung erkannt wurde trotzdem.
          Ich muss den Timeout zwischen den Bedingungen einbauen oder?
          Also: Bewegung Erkannt -> Minute warten -> Handy immer noch offline -> Nachricht.
          Kannst mir da nochmal kurz helfen?

          AsgothianA Offline
          AsgothianA Offline
          Asgothian
          Developer
          wrote on last edited by Asgothian
          #4

          @uncleb sagte in Einfaches Script aber "Probleme" mit Timeout:

          Kannst mir da nochmal kurz helfen?

          Screenshot 2024-07-29 at 12.32.36.png
          Bin zwar nicht @Codierknecht , aber helfen kann ich.

          • Trigger am besten auf "ist grösser als vorher" - dann kommt der Trigger nur in dem Moment wo das erste mal Bewegung erkannt wird.
          • Die Abfrage ob Handy nicht im WLan brauchst du doppelt - einmal vor dem Timeout, einmal im Timeout, damit du den Timeout nur startest wenn auch wirklich das Handy nicht im WLan ist.
          • Das Stop-Timeout kann raus, besser die Abfrage das der Timeout noch nicht läuft, ansonsten wird der Timeout bei jedem neuen Auslösen des BWM gelöscht und die Meldung kommt ggf. nie.

          A.
          Nachtrag: Trigger auf test_dp, Value of Objekt ID ist Is online von Deinem Beispiel oben.

          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

          CodierknechtC 1 Reply Last reply
          3
          • AsgothianA Asgothian

            @uncleb sagte in Einfaches Script aber "Probleme" mit Timeout:

            Kannst mir da nochmal kurz helfen?

            Screenshot 2024-07-29 at 12.32.36.png
            Bin zwar nicht @Codierknecht , aber helfen kann ich.

            • Trigger am besten auf "ist grösser als vorher" - dann kommt der Trigger nur in dem Moment wo das erste mal Bewegung erkannt wird.
            • Die Abfrage ob Handy nicht im WLan brauchst du doppelt - einmal vor dem Timeout, einmal im Timeout, damit du den Timeout nur startest wenn auch wirklich das Handy nicht im WLan ist.
            • Das Stop-Timeout kann raus, besser die Abfrage das der Timeout noch nicht läuft, ansonsten wird der Timeout bei jedem neuen Auslösen des BWM gelöscht und die Meldung kommt ggf. nie.

            A.
            Nachtrag: Trigger auf test_dp, Value of Objekt ID ist Is online von Deinem Beispiel oben.

            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            wrote on last edited by
            #5

            @asgothian
            Ich würd's ähnlich machen. Hier mal zur Vereinfachung auf Deutsch ;-)

            5866a7b9-0139-4a27-97e3-8980b558033c-image.png

            @UncleB
            Es passiert folgendes:

            • wenn Bewegung erkannt wird (größer als letztes), wird geprüft, ob das Handy online ist und noch kein Timer läuft.
              In diesem Fall wird der timeout gestartet.
            • Feuert nach 1 Minute der timeout, wird nochmal geprüft, ob das Handy nicht möglicherweise inzwischen online ist.
              Nur in diesem Fall wird die Meldung gesendet.

            So funktioniert das auch, wenn ein "Besucher" einmal kurz den Melder auslöst und sich dann min. 1 Minute ruhig verhält.
            Falls Du selbst der Besucher bist, sollte sich ja innerhalb der Minute das Handy eingeloggt haben.

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            U 1 Reply Last reply
            0
            • CodierknechtC Codierknecht

              @asgothian
              Ich würd's ähnlich machen. Hier mal zur Vereinfachung auf Deutsch ;-)

              5866a7b9-0139-4a27-97e3-8980b558033c-image.png

              @UncleB
              Es passiert folgendes:

              • wenn Bewegung erkannt wird (größer als letztes), wird geprüft, ob das Handy online ist und noch kein Timer läuft.
                In diesem Fall wird der timeout gestartet.
              • Feuert nach 1 Minute der timeout, wird nochmal geprüft, ob das Handy nicht möglicherweise inzwischen online ist.
                Nur in diesem Fall wird die Meldung gesendet.

              So funktioniert das auch, wenn ein "Besucher" einmal kurz den Melder auslöst und sich dann min. 1 Minute ruhig verhält.
              Falls Du selbst der Besucher bist, sollte sich ja innerhalb der Minute das Handy eingeloggt haben.

              U Offline
              U Offline
              UncleB
              wrote on last edited by
              #6

              @codierknecht
              Danke euch beiden, das funktioniert wunderbar, auch wenn ich den "nicht" Baustein nicht ganz verstehe.

              Und wenn jetzt noch paar Clienten auf die "Whitelist" sollen dann mach ich einfach n "oder" dazu
              76030a44-d505-4a64-a8cf-a280216c9e82-image.png

              CodierknechtC AsgothianA 2 Replies Last reply
              0
              • U UncleB

                @codierknecht
                Danke euch beiden, das funktioniert wunderbar, auch wenn ich den "nicht" Baustein nicht ganz verstehe.

                Und wenn jetzt noch paar Clienten auf die "Whitelist" sollen dann mach ich einfach n "oder" dazu
                76030a44-d505-4a64-a8cf-a280216c9e82-image.png

                CodierknechtC Online
                CodierknechtC Online
                Codierknecht
                Developer Most Active
                wrote on last edited by
                #7

                @uncleb sagte in Einfaches Script aber "Probleme" mit Timeout:

                auch wenn ich den "nicht" Baustein nicht ganz verstehe

                Ein "nicht" (not) negiert einen bool'schen Wert.
                So wie Du das machst (Falls Wert von X = wahr) wäre das unnötig. Aber Programmierer sind faul, darum vereinfachen sie alle was geht.
                Geprüft wird ja eine Gesamtaussage.
                Ein "Wert von X = falsch" liefert true, wenn der Wert false ist.
                Ein "Wert von X = wahr" liefert true, wenn der Wert true ist.
                In diesem Fall kann ich auch gleich schreiben "Wenn Wert von X". Denn in X steht auch nur true oder false.
                Wenn etwas passieren soll, wenn der Wert des Objektes X false ist, nimmt man das "nicht". Denn "nicht falsch" ergibt wieder? Richtig ... "wahr".

                Auch komplexe Ausdrücke wie "Wert von X = 42 UND Wert von Y = 4711 ODER Wert von Z = Wahr ODER is_online" liefern nur eine einzige Aussage zurück ... true oder false.
                Und auf diese eine Aussage reagiert das "Falls".

                Vielleicht wird das noch klarer, wenn man sich den JS-Code ansieht:

                // Laie
                if (occupancy == true && is_online == false)
                // Programmierer (schreibfaul)
                if (occupance && !is_online)
                

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Certified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                1 Reply Last reply
                1
                • U UncleB

                  @codierknecht
                  Danke euch beiden, das funktioniert wunderbar, auch wenn ich den "nicht" Baustein nicht ganz verstehe.

                  Und wenn jetzt noch paar Clienten auf die "Whitelist" sollen dann mach ich einfach n "oder" dazu
                  76030a44-d505-4a64-a8cf-a280216c9e82-image.png

                  AsgothianA Offline
                  AsgothianA Offline
                  Asgothian
                  Developer
                  wrote on last edited by Asgothian
                  #8

                  @uncleb sagte in Einfaches Script aber "Probleme" mit Timeout:

                  @codierknecht
                  Danke euch beiden, das funktioniert wunderbar, auch wenn ich den "nicht" Baustein nicht ganz verstehe.

                  Und wenn jetzt noch paar Clienten auf die "Whitelist" sollen dann mach ich einfach n "oder" dazu
                  76030a44-d505-4a64-a8cf-a280216c9e82-image.png

                  Ja, einfach mit oder (zumindest wenn es reicht das mindestens einer da ist).

                  Aber: Du hast die Falls-Abfrage vor dem Timeout falsch umgesetzt. Durch den Trigger auf "ist grösser als vorher" wir der Trigger nur aktiv wenn der Wert von occupancy von falsch auf wahr wechselt - die Abfrage ob er noch wahr ist kann also entfallen. Wichtiger wäre da die Liste der Handys' die im WLan sein sollen abzufragen, damit der Timeout gar nicht gestartet wird wenn die noch im WLan sind.

                  A.
                  Nachtrag: wenn die Anzahl der Klienten grösser wird (grösser als 3), dann macht es Sinn unter 0_userdata einen eigenen Datenpunkt dafür anzulegen das alle Mobiltelefone im WLan angemeldet sind. Diesen kannst du dann auf die folgende Art und Weise aktuell halten:

                  Screenshot 2024-07-29 at 14.00.52.png
                  Das Skript ist so aufgebaut das der Datenpunkt auf wahr steht wenn mindestens 1 Handy im WLan ist.

                  Das ist effektiver als jedes mal wenn der BWM Auslöst alle 5 Datenpunkte abzuklappern.

                  ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                  "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                  U 1 Reply Last reply
                  0
                  • AsgothianA Asgothian

                    @uncleb sagte in Einfaches Script aber "Probleme" mit Timeout:

                    @codierknecht
                    Danke euch beiden, das funktioniert wunderbar, auch wenn ich den "nicht" Baustein nicht ganz verstehe.

                    Und wenn jetzt noch paar Clienten auf die "Whitelist" sollen dann mach ich einfach n "oder" dazu
                    76030a44-d505-4a64-a8cf-a280216c9e82-image.png

                    Ja, einfach mit oder (zumindest wenn es reicht das mindestens einer da ist).

                    Aber: Du hast die Falls-Abfrage vor dem Timeout falsch umgesetzt. Durch den Trigger auf "ist grösser als vorher" wir der Trigger nur aktiv wenn der Wert von occupancy von falsch auf wahr wechselt - die Abfrage ob er noch wahr ist kann also entfallen. Wichtiger wäre da die Liste der Handys' die im WLan sein sollen abzufragen, damit der Timeout gar nicht gestartet wird wenn die noch im WLan sind.

                    A.
                    Nachtrag: wenn die Anzahl der Klienten grösser wird (grösser als 3), dann macht es Sinn unter 0_userdata einen eigenen Datenpunkt dafür anzulegen das alle Mobiltelefone im WLan angemeldet sind. Diesen kannst du dann auf die folgende Art und Weise aktuell halten:

                    Screenshot 2024-07-29 at 14.00.52.png
                    Das Skript ist so aufgebaut das der Datenpunkt auf wahr steht wenn mindestens 1 Handy im WLan ist.

                    Das ist effektiver als jedes mal wenn der BWM Auslöst alle 5 Datenpunkte abzuklappern.

                    U Offline
                    U Offline
                    UncleB
                    wrote on last edited by
                    #9

                    @asgothian danke für Eure Hilfe,
                    das muss ich mir ansehen, allein schon das mit der Liste is mir n bisschen zuuu komplex :)

                    AsgothianA 1 Reply Last reply
                    0
                    • U UncleB

                      @asgothian danke für Eure Hilfe,
                      das muss ich mir ansehen, allein schon das mit der Liste is mir n bisschen zuuu komplex :)

                      AsgothianA Offline
                      AsgothianA Offline
                      Asgothian
                      Developer
                      wrote on last edited by
                      #10

                      @uncleb sagte in Einfaches Script aber "Probleme" mit Timeout:

                      @asgothian danke für Eure Hilfe,
                      das muss ich mir ansehen, allein schon das mit der Liste is mir n bisschen zuuu komplex :)

                      Wie gesagt - das mit der Liste wird erst gebraucht wenn deine "whitelist" länger wird.

                      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      334

                      Online

                      32.5k

                      Users

                      81.7k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe